throbber
US008074115B2
`
`(12) United States Patent
`Stolfo et a].
`
`(10) Patent N0.:
`(45) Date of Patent:
`
`US 8,074,115 B2
`Dec. 6, 2011
`
`(54)
`
`(75)
`
`METHODS, MEDIA AND SYSTEMS FOR
`DETECTING ANOMALOUS PROGRAM
`EXECUTIONS
`
`Inventors: Salvatore J. Stolfo, Ridgewood, NJ
`(US); Angelos D. Keromytis, New York,
`NY (US); Stelios Sidiroglou, New York,
`NY (US)
`
`(73)
`
`Assignee: The Trustees of Columbia University
`in the City of New York, New York, NY
`(Us)
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,968,113 A * 10/1999 Haley et a1. ................... .. 714/38
`6,079,031 A *
`6/2000 Haley et a1.
`714/38
`6,154,876 A * ll/2000 Haley et a1.
`717/133
`7,155,708 B2 * 12/2006 Hammes et al. ............ .. 717/155
`7,490,268 B2
`2/2009 Keromytis et al.
`7,496,898 B1 *
`2/2009 Vu .............................. .. 717/127
`7,639,714 B2 12/2009 Stolfo et al.
`2005/0108562 A1 *
`5/2005 KhaZan et al. .............. .. 713/200
`
`OTHER PUBLICATIONS
`
`Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`Hangal et al., Tracking down software bugs using automatic anomaly
`detection, Proceedings of the 24the international conference on soft
`ware engineering, May 2002, pp. 291-301.*
`
`(21)
`(22)
`
`(86)
`
`(87)
`
`(65)
`
`(60)
`
`(51)
`
`(52)
`(58)
`
`Appl. No.:
`
`12/091,150
`
`PCT Filed:
`
`Oct. 25, 2006
`
`PCT No.:
`§ 371 (0X1),
`(2), (4) Date:
`
`PCT/US2006/041591
`
`Jun. 15, 2009
`
`PCT Pub. No.: WO2007/050667
`PCT Pub. Date: May 3, 2007
`
`Prior Publication Data
`
`US 2010/0023810A1
`
`Jan. 28, 2010
`
`Related US. Application Data
`
`Provisional application No. 60/730,289, ?led on Oct.
`25, 2005.
`
`Int. Cl.
`(2006.01)
`G06F 11/00
`US. Cl. .................................................... .. 714/38.1
`Field of Classi?cation Search .............. .. 7l4/2il 0,
`7l4/25i29, 32, 33, 37*39, 47
`See application ?le for complete search history.
`
`(Continued)
`
`Primary Examiner * Nadeem Iqbal
`(74) Attorney, Agent, or Firm * Byrne Poh LLP
`
`(57)
`ABSTRACT
`Methods, media, and systems for detecting anomalous pro
`gram executions are provided. In some embodiments, meth
`ods for detecting anomalous program executions are pro
`vided, comprising: executing at least a part of a program in an
`emulator; comparing a function call made in the emulator to
`a model of function calls for the at least a part of the program;
`and identifying the function call as anomalous based on the
`comparison. In some embodiments, methods for detecting
`anomalous program executions are provided, comprising:
`modifying a program to include indicators of program-level
`function calls being made during execution of the program;
`comparing at least one of the indicators of program-level
`function calls made in the emulator to a model of function
`calls for the at least a part of the program; and identifying a
`function call corresponding to the at least one of the indicators
`as anomalous based on the comparison.
`
`42 Claims, 8 Drawing Sheets
`
`300
`
`\ MONITORING AN APPLICATION FOR VARIOUS TYPES
`OF FAILURES USING ONE OR MORE SENSORS
`
`3111
`
`PREDICTI'NG 'l'I-LAT A FAULT MAY OCCUR OR
`DETECTING A FAULT THAT OCCURRED IN AT LEAST 320
`A PORTION OF THE APPLICATION'S CODE (E.G.Y
`DETERMINING WHICH PORTIONS OF THE
`APPLICATION ARE VULNERAELE TO FAULTS
`AND/OR ATTACKS)
`
`UPON PREmcTmo THAT A PAULT MAY OCCUR OR 330
`DETECTING THAT A FAULT occumn, ISOLATING
`THE PORTION OF THE APPLICATION‘S CODE HAVING
`THE FAULTY INSTRUCTION
`
`I
`
`GENERATING AN INSTRUNEENTED VERSION OF THE
`PORTION OF THE APPLICATION'S CODE OR
`WRAPPING THAT PORTION OF THE APPLICATION'S
`CODE
`
`340
`
`350
`
`CONSTRUCTING AN EMULATOR‘EASED VACCINE
`
`360
`EMULATENG SEGMENTS OF AN APPLICATIONS
`CODE WI‘DZRE THE FAULT OCCURRED USING THE J
`EMULATOR-BASED VACCINE (E.G,, TESTING WITH
`THE INPUTS SEENS BEFORE THE FAULT OCCURRED)
`
`l
`
`IF THE FAULT OCCURS AGAIN, CAUSING THAT
`PORTION OF THE APPLICATION CODE TO RETURN
`WITH AN ERROR CODE, THEREBY SIMULATING A
`PROGRAMIMIED FAILURE
`
`370
`
`1
`
`SYMC 1001
`
`

`

`US 8,074,115 B2
`Page 2
`
`OTHER PUBLICATIONS
`
`Chan et al., A machine learning approach to anomaly detection,
`Technical Report, Dept. of computer science, Florida institute of
`technology, Mar. 2003, pp. 1-13.*
`M. Chew and D. Song, Mitigating Buffer Over?ows by Operating
`System Randomization, Technical Report CMUCS-02-197,
`Carnegie Mellon University, Dec. 2002.
`V. Prevelakis, A Secure Station for Network Monitoring and Control,
`In Proceedings of the 8th USENIX Security Symposium, Aug. 1999.
`J. Reynolds, J. Just, L. Clough, and R. Maglich, On-Line Intrusion
`Detection and Attack Prevention Using Diversity, Generate-and
`Test, and Generalization, In Proceedings of the 36th Annual Hawaii
`International Conference on System Sciences (HICSS), Jan. 2003.
`H. Shacham, M. Page, B. Pfaff, E. Goh, N. Modadugu, and D. Boneh,
`on the Effectiveness of Address-Space Randomization, In Proceed
`ings of the 11thACM Conference on Computer and Communications
`Security (CCS), pp. 298-307, Oct. 2004.
`S. Sidiroglou, M. Locasto, S. Boyd, and A. Keromytis, Building A
`Reactive Immune System for Software Services, In Proceedings of
`the 11th USENIX Annual Technical Conference, Apr. 2005.
`M. Stamp, Risk of Monoculture, Communications of the ACM,
`47(3):120, Mar. 2004.
`Using Network-Based Application Recognition and ACLs for Block
`ing the “Code Red” Worm, Technical report, Cisco Systems, Inc.
`Aleph One, Smashing the stack for fun and pro?t, Phrack, 7(49),
`1996.
`K. Ashcraft and D. Engler, Detecting Lots of Security Holes Using
`System-Speci?c Static Analysis, In Proceedings of the IEEE Syrn
`posium on Security and Privacy, May 2002.
`S. M. Bellovin, Distributed Firewalls, ;login: magazine, special issue
`on security, Nov. 1999.
`M. Bhattacharyya, M. G. Schultz, E. Eskin, S. Hershkop, and S. J.
`Stolfo, MET: An Experimental System for Malicious Email Track
`ing, In Proceedings of the New Security Paradigms Workshop
`(NSPW), pp. 1-12, Sep. 2002.
`Bulba and Kil3r, Bypassing StackGuard and StackShield, Phrack,
`5(56), May 2000.
`B. Chess, Improving Computer Security Using Extended Static
`Checking, In Proceedings of the IEEE Symposium on Security and
`Privacy, May 2002.
`M. Christodorescu and S. Jha, Static Analysis of Executables to
`Detect Malicious Patterns, In Proceedings of the 12th USENIX Secu
`rity Symposium, pp. 169-186, Aug. 2003.
`F. Cohen, Computer Viruses: Theory and Practice, Computers &
`Security, 6:22-35, Feb. 1987.
`C. Cowan, M. Barringer, S. Beattie, and G. Kroah-Hartman,
`Formatguard: Automatic protection from printf format string vulner
`abilities, In Proceedings of the 10th USENIX Security Symposium,
`Aug. 2001.
`C. Cowan, S. Beattie, C. Pu, P. Wagle, andV. Gligor, SubDomain:
`Parsimonious Security for Server Appliances, In Proceedings of the
`14th USENIX System Administration Conference (LISA 2000),
`Mar. 2000.
`C. Cowan, C. Pu, D. Maier, H. Hinton, J. Walpole, P. Bakke, S.
`Beattie, A. Grier, P. Wagle, and Q. Zhang, Stackguard: Automatic
`adaptive detection and prevention of buffer-over?ow attacks, In Pro
`ceedings of the 7th USENIX Security Symposium, Jan. 1998.
`D. Engler and K. Ashcraft, RacerX: Effective, Static Detection of
`Race Conditions and Deadlocks, Proceedings of ACM SOSP, Oct.
`2003.
`S. Forrest, A. Somayaji, and D. Ackley, Building Diverse Computer
`Systems, In Proceedings of the 6th HotOS Workshop, 1997.
`M. Frantzen and M. Shuey, StackGhost: Hardware facilitated stack
`protection, In Proceedings of the 10th USENIX Security Sympo
`sium, pp. 55-66, Aug. 2001.
`T. Gar?nkel, Traps and Pitfalls: Practical Problems in System Call
`Interposition Based Security Tools, In Proceedings of the Sympo
`sium on Network and Distributed Systems Security (SNDSS), pp.
`163-176, Feb. 2003.
`I. Goldberg, D. Wagner, R. Thomas, and E. Brewer, A Secure Envi
`ronment for Untrusted Helper Applications, In Proceedings of the
`1996 USENIX Annual Technical Conference, 1996.
`
`S. loannidis, A. Keromytis, S. Bellovin, and J. Smith, Implementing
`a Distributed Firewall, In Proceedings of the ACM Computer and
`Communications Security (CCS) Conference, pp. 190-199, Nov.
`2000.
`R. Janakiraman, M. Waldvogel, and Q. Zhang, Indra: A peer-topeer
`approach to network intrusion detection and prevention, In Proceed
`ings of the IEEE International Workshops on Enabling Technologies:
`Infrastructure for Collaborative Enterprises (WETICE), Workshop
`on Enterprise Security, Jun. 2003.
`R. Jones and P. Kelly, Backwards-compatible bounds checking for
`arrays and pointers in C programs, In Third International Workshop
`on Automated Debugging, 1997.
`J. Just, L. Clough, M. Danforth, K. Levitt, R. Maglich, J. C. Reynolds,
`and J. Rowe, Learning Unknown AttacksiA Start, In Proceedings of
`the 5th International Symposium on Recent Advances in Intrusion
`Detection (RAID), Oct. 2002.
`J. Kephart, A Biologically Inspired Immune System for Computers,
`In Arti?cial Life IV: Proceedings of the Fourth International Work
`shop on the Synthesis and Simulation of Living Systems, pp. 130
`139. MIT Press, 1994.
`M. Kodialam and T. V. Lakshman, Detecting Network Intrusions via
`Sampling: A Game Theoretic Approach, In Proceedings of the 22nd
`Annual Joint Conference of IEEE Computer and Communication
`Societies (INFOCOM), Apr. 2003.
`D. Larochelle and D. Evans, Statically Detecting Likely Buffer Over
`?owVulnerabilities, In Proceedings of the 10th Security Symposium,
`pp. 177-190, Aug. 2001.
`E. Larson and T. Austin, High Coverage Detection of Input-Related
`Security Faults, In Proceedings of the 12th Security Symposium, pp.
`121-136, Aug. 2003.
`K. Lhee and S. J. Chapin, Type-Assisted Dynamic Buffer Over?ow
`Detection. In Proceedings of the 11th Security Symposium, pp.
`81-90, Aug. 2002.
`M.-J. Lin, A. Ricciardi, and K. Marzullo, A New Model for Avail
`ability in the Face of Self-Propagating Attacks, In Proceedings of the
`New Security Paradigms Workshop, Nov. 1998.
`A. J. Malton, The Denotational Semantics of a Functional Tree
`Manipulation Language, Computer Languages, 19 (3): 157-168,
`1993.
`T. C. Miller and T. de Raadt, strlcpy and strlcat: Consistent, Safe,
`String Copy and Concatenation, In Proceedings of the USENIX
`Annual Technical Conference, Freenix Track, Jun. 1999.
`D. Moore, C. Shanning, and K. Claffy, Code-Red: a case study on the
`spread and victims of an Internet worm. In Proceedings of the 2nd
`Internet Measurement Workshop (IMW), pp. 273 -284, Nov. 2002.
`D. Moore, C. Shannon, G. Voelker, and S. Savage, Internet Quaran
`tine: Requirements for Containing Self-Propagating Code, In Pro
`ceedings of the IEEE Infocom Conference, Apr. 2003.
`C. Nachenberg, Computer Virus-Coevolution, Communications of
`the ACM, 50(1):46-51, 1997.
`D. Nojiri, J. Rowe, and K. Levitt, Cooperative Response Strategies
`for Large Scale Attack Mitigation, In Proceedings of the 3rd DARPA
`Information Survivability Conference and Exposition (DISCEX),
`pp. 293-302, Apr. 2003.
`D. S. Peterson, M. Bishop, and R. Pandey, A Flexible Containment
`Mechanism for Executing Untrusted Code, In Proceedings of the
`11th USENIX Security Symposium, pp. 207-225, Aug. 2002.
`M. Prasad and T. Chiueh, A Binary Rewriting Defense Against Stack
`based Buffer Over?ow Attacks, In Proceedings of the USENIX
`Annual Technical Conference, pp. 211-224, Jun. 2003.
`V. Prevelakis and D. Spinellis, Sandboxing Applications, In Proceed
`ings of the USENIX Technical Annual Conference, Freenix Track,
`pp. 119-126, Jun. 2001.
`N. Provos, M. Friedl, and P. Honeyman, Preventing Privilege Esca
`lation, In Proceedings of the 12th USENIX Security Symposium, pp.
`231-242, Aug. 2003.
`J. Reynolds, J. Just, E. Lawson, L. Clough, and R. Maglich, The
`Design and Implementation of an Intrusion Tolerant System, In Pro
`ceedings of the International Conference on Dependable Systems
`and Networks (DSN), Jun. 2002.
`M. Rosenblum, E. Bugnion, S. Devine, and S. A. Herrod, Using the
`SimOS Machine Simulator to Study Complex Computer Systems,
`Modeling and Computer Simulation, 7(1):78-103, 1997.
`
`2
`
`SYMC 1001
`
`

`

`US 8,074,115 B2
`Page 3
`
`R. Sekar, V. Venkatakrishnan, S. Basu, S. Bhatkar, and D. C.
`DuVaney, Model-Carrying Code: A Practice Approach for Safe
`Execution of Untrusted Applications, in Proceedings of ACM SOSP,
`Oct. 2003.
`N. Nethercote and J. Seward, Valgrind: A Framework for Heavy
`weight Dynamic Binary Instrumentation, PLDI ’07, Jun. 2007.
`J. F. Shoch and J. A. Hupp, The “worm” programs4early experi
`ments with a distributed computation, Communications of the ACM,
`22(3):172-180, Mar. 1982.
`Song, R. Malan, and R. Stone.,A Snapshot of Global Internet Worm
`Activity, Technical report, Arbor Networks, Nov. 2001.
`E. H. Spafford, The Internet Worm Program: An Analysis, Technical
`Report CSD-TR-823, Purdue University, 1988.
`S. Staniford, V. Paxson, and N. Weaver, How to Own the Internet in
`Your Spare Time, In Proceedings of the 11th USENIX Security
`Symposium, pp. 149-167, Aug. 2002.
`T. Toth and C. Kruegel, Connection-history Based Anomaly Detec
`tion, In Proceedings of the IEEE Workshop on Information Assur
`ance and Security, Jun. 2002.
`H. Toyoizumi and A. Kara, Predators: Good Will Mobile Codes
`Combat against Computer Viruses, In Proceedings of the New Secu
`rity Paradigms Workshop (NSPW), pp. 13-21, Sep. 2002.
`J. Twycross and M. M. Williamson, Implementing and testing a virus
`throttle, In Proceedings of the 12th USENIX Security Symposium,
`pp. 285-294, Aug. 2003.
`G. Venkitachalam and B.-H. Lim, Virtualizing i/o devices on vmware
`workstation’s hosted virtual machine monitor.
`C. Wang, J. C. Knight, and M. C. Elder, on Computer Viral Infection
`and the Effect of Immunization, In Proceedings of the 16th Annual
`Computer SecurityApplications Conference (ACSAC), pp. 246-256,
`2000.
`A. Whitaker, M. Shaw, and S. D. Gribble, Scale and Performance in
`the Denali Isolation Kernel, In Proceedings of the Fifth Symposium
`on Operating Systems Design and Implementation (OSDI), Dec.
`2002.
`J. Wilander and M. Kamkar, A Comparison of Publicly Available
`Tools for Dynamic Intrusion Prevention, In Proceedings of the Syrn
`posium on Network and Distributed Systems Security (SNDSS), pp.
`123-130, Feb. 2003.
`M. Williamson, ThrottlingViruses: Restricting Propagation to Defeat
`Malicious Mobile Code, Technical Report HPL-2002-172, HP Labo
`ratories Bristol, 2002.
`C. C. Zou, L. Gao, W. Gong, and D. Towsley, Monitoring and Early
`Warning for Internet Worms, In Proceedings of the 10th ACM Inter
`national Conference on Computer and Communications Security
`(CCS), pp. 190-199, Oct. 2003.
`C. C. Zou, W. Gong, and D. Towsley, Code Red Worm Propagation
`Modeling and Analysis, In Proceedings of the 9th ACM Conference
`on Computer and Communications Security (CCS), pp. 138-147,
`Nov. 2002.
`S. Hangal and M. Lam, Tracking Down Software Bugs Using Auto
`matic Anomaly Detection, ICSE ’02. May 19-25, 2002, pp. 291-301.
`P. Chan, M. Mahoney, andM. Arshad, A Machine Learning Approach
`to Anomaly Detection, Technical Report CS-2003 -06, Department of
`Computer Sciences, Florida Institute of Technology, Mar. 29, 2003.
`Interational Search Report and Written Opinion, International Appli
`cation No. PCT/US06/41591, dated Jun. 25, 2008.
`F. Apap, A. Honig, S. Hershkop, E. Eskin, and S. Stolfo, Detecting
`malicious software by monitoring anomalous windows registry
`accesses, Proceedings of the Fifth International Symposium on
`Recent Advances in Intrusion Detection (RAID 2002), 2002.
`D. Denning, An intrusion detection model, IEEE Transactions on
`Software Engineering, SE-13:222-232, Feb. 1987.
`E. Eskin, Anomaly detection over noisy data using learned probabil
`ity distributions, Proceedings of the Seventeenth International Con
`ference on Machine Learning (ICML-2000), 2000.
`S. Forrest, S. Hofmeyr, A. Somayaji, and T. Longstaff, A sense of self
`for unix processes, Proceedings of the IEEE Symposium on Research
`in Security and Privacy, pp. 120-128, 1996.
`N. Friedman andY. Singer, Ef?cient bayesian parameter estimation
`in large discrete domains, Advances in Neural Information Process
`ing Systems, 11, 1999.
`
`S. Hofmeyr, S. Forrest, and A. Somayaji, Intrusion detection using
`sequences of system calls, Journal ofComputer Security, 6: 151-180,
`1998.
`H. Javitz andA. Valdes, The nides statistical component: Description
`and justi?cation, Technical Report, SRI International, Computer Sci
`ence Laboratory, 1993.
`W. Lee, S. Stolfo, and P. Chan, Learning patterns from unix processes
`execution traces for intrusion detection, AAAI Workshop on AI
`Approaches to Fraud Detection and Risk Management, pp. 50-56,
`1997.
`W. Lee, S. Stolfo, and K. Mok, A data mining framework for building
`intrusion detection models, IEEE Symposium on Security and Pri
`vacy, pp. 120-132, 1999.
`W. Lee, S. Stolfo, and K. Mok, Data mining in work ?ow environ
`ments: Experiences in intrusion detection, Proceedings of the 1999
`Conference on Knowledge Discovery and Data Mining (KDD-99),
`1999.
`M. Mahoney and P. Chan, Detecting novel attacks by identifying
`anomalous network packet headers, Technical Report CS-2001-2,
`2001.
`B. Scholkopf, J. Platt, J. Shawe-Taylor, A. Smola, and R. Williamson,
`Estimating the support of a high dimensional distribution, Neural
`Computation, 13(7): 1443-1472, 2001.
`C. Warrender, S. Forrest, B. Pearlmutter, Detecting intrusions using
`system calls: Alternative data models, IEEE Symposium on Security
`and Privacy, pp. 133-145, 1999.
`A. Honig, A. Howard, E. Eskin, and S. Stolfo, Adaptive model gen
`eration: An architecture for the deployment of data mining-based
`intrusion detection systems, in Data Mining for Security Applica
`tions, Kluwer, 2002.
`S. White, Open problems in computer virus reseach, in Virus Bulletin
`Conference, 1998.
`CERT Advisory CA-2003-21: W32/Blaster Worm, http://wwwcert.
`org/advisories/CA-2003 -20.html, Aug. 2003.
`A. Baratloo, N. Singh, and T. Tsai, Transparent Run-Time Defense
`Against Stack Smashing Attacks, In Proceedings of the Annual Tech
`nical Conference, Jun. 2000.
`E. G. Barrantes, D. H. Ackley, S. Forrest, T. S. Palmer, D. Stefanovic,
`and D. D. Zovi, Randomized Instruction Set Emulation to Distrupt
`Binary Code Injection Attacks, in 10th ACM Conference on Com
`puter and Communications Security (CCS), Oct. 2003.
`D. Bruening, T. Garnett, and S. Amarasinghe, An Infrastructure for
`Adaptive Dynamic Optimization, In Proceedings of the International
`Symposium on Code Generation and Optimization, pp. 265-275,
`2003.
`G. Candea and A. Fox, Crash-Only Software, in Proceedings of the
`9th Workshop on Hot Topics in Operating Systems, May 2003.
`H. Chen and D. Wagner, MOPS: an Infrastructure for Examining
`Security Properties of Software, In Proceedings of the ACM Com
`puter and Communications Security (CC S) Conference, pp. 235 -244,
`Nov. 2002.
`S. A. Crosby and D. S. Wallach, Denial of Service via Algorithmic
`Complexity Attacks, In Proceedings of the 12th USENIX Security
`Symposium, pp. 29-44, Aug. 2003.
`B. Demsky and M. C. Rinard, Automatic Detection and Repair of
`Errors in Data Structures, In Proceedings of the 18th Annual ACM
`SIGPLAN Conference on Object Oriented Programming, Systems,
`Languages, and Applications, Oct. 2003.
`G. W. Dunlap, S. King, S. Cinar, M. A. Basrai, and P. M. Chen,
`ReVirt: Enabling Intrusion Analysis Through Virtual-Machine Log
`ging and Replay, In Proceedings of the Symposium on Operating
`Systems Design and Implementation (OSDI), Feb. 2002.
`C. Cowan et al., StackGuard: Automatic Adaptive Detection and
`Prevention of Buffer-Overow Attacks, In Proceedings of the 7th
`Security Symposium, Jan. 1998.
`T. Gar?nkel and M. Rosenblum, A Virtual Machine Introspection
`Based Architecture for Intrusion Detection, in 10th ISOC Sympo
`sium on Network and Distributed Systems Security (SNDSS), Feb.
`2003.
`T. Jim, G. Morrisett, D. Grossman, M. Hicks, J. Cheney, andY. Wang,
`Cyclone: A safe dialect of C, In Proceedings of the Annual Technical
`Conference, pp. 275-288, Jun. 2002.
`
`3
`
`SYMC 1001
`
`

`

`US 8,074,115 B2
`Page 4
`
`G. S. Kc, A. D. Keromytis, and V. Prevelakis, Countering Code
`Injection Attacks With Instruction-Set Randomization, in 10th ACM
`Conference on Computer and Communications Security (CCS), Oct.
`2003.
`S. T. King and P. M. Chen, Backtracking Intrusions, In 19th ACM
`Symposium on Operating Systems Principles (SOSP), Oct. 2003.
`S. T. King, G. Dunlap, and P. Chen, Operating System Support for
`Virtual Machines, In Proceedings of the Annual Technical Confer
`ence, Jun. 2003.
`V. Kiriansky, D. Bruening, and S. Amarasinghe, Secure Execution
`Via Program Shepherding, In Proceedings of the llth Security Syrn
`posium, Aug. 2002.
`D. Mosberger and T. Jin, httperf: A tool for measuring web server
`performance, In First Workshop on Internet Server Performance, pp.
`59-67, ACM, Jun. 1998.
`N. Nethercote and J. Seward, Valgrind: A Program Supervision
`Framework, In Electronic Notes in Theoretical Computer Science,
`vol. 89, 2003.
`J. Newsome and D. Dong, Dynamic Taint Analysis for Automatic
`Detection, Analysis, and Signature Generation of Exploits on Com
`modity Software, In The 12th Annual Network and Distributed Sys
`tem Security Symposium, Feb. 2005.
`J. Oplinger and M. S. Lam, Enhancing Software Reliability with
`Speculative Threads, In Proceedings of the 10th International Con
`ference on Architectural Support for Programming Languages and
`Operating Systems (ASPLOS X), Oct. 2002.
`N. Provos, Improving Host Security with System Call Policies, In
`Proceedings of the 12th USENIX Security Symposium, pp. 257-272,
`Aug. 2003.
`M. Rinard, C. Cadar, D. Dumitran, D. Roy, and T. Leu, A Dynamic
`Technique for Eliminating Buffer Overow Vulnerabilities (and Other
`Memory Errors), In Proceedings 20th Annual Computer Security
`Applications Conference (ACSAC), Dec. 2004.
`M. Rinard, C. Cadar, D. Dumitran, D. Roy, T. Leu, and J. W Beebee,
`Enhancing Server Availability and Security Through Failure-Oblivi
`ous Computing, In Proceedings 6th Symposium on Operating Sys
`tems Design and Implementation (OSDI), Dec. 2004.
`
`A. Rudys and D. S. Wallach, Transactional Rollback for Language
`Based Systems, In ISOC Symposium on Network and Distributed
`Systems Security (SNDSS), Feb. 2001.
`A. Rudys and D. S. Wallach, Termination in Language-based Sys
`tems, ACM Transactions on Information and System Security, 5(2),
`May 2002.
`S. Sidiroglou and A. D. Keromytis, A Network Worm Vaccine Archi
`tecture. In Proceedings of the IEEE Workshop on Enterprise Tech
`nologies: Infrastructure for Collaborative Enterprises (WET-ICE),
`Workshop on Enterprise Security, pp. 220-225, Jun. 2003.
`A. Smirnov and T. Chiueh, DIRA: Automatic Detection, Identica
`tion, and Repair of Control-Hij acking Attacks, In The 12th Annual
`Network and Distributed System Security Symposium, Feb. 2005.
`G. E. Suh, J. W. Lee, D. Zhang, and S. Devadas, Secure program
`execution via dynamic information ?ow tracking, SIGOPS Oper.
`Syst. Rev., 38(5):85-96, 2004.
`T. Toth and C. Kruegel, Accurate Buffer Over?ow Detection via
`Abstract Payload Execution, In Proceedings of the 5th Symposium
`on Recent Advances in Intrusion Detection (RAID), Oct. 2002.
`N. Wang, M. Fertig, and S. Patel, Y-Branches: When You Come to a
`Fork in the Road, Take It, In Proceedings of the 12th International
`Conference on Parallel Architectures and Compilation Techniques,
`Sep. 2003.
`J. Yin, J.-P. Martin, A. Venkataramani, L. Alvisi, and M. Dahlin,
`Separating Agreement from Execution for Byzantine Fault Tolerant
`Services, in Proceedings ofACM SOSP, Oct. 2003.
`A. AviZienis, The n-version approach to fault-tolerant software, IEEE
`Transactionson Software Engineering, ll (l2):l49l-l50l, 1985.
`S. Bhatkar, D. C. DuVarney, and R. Sekar, Address Obfuscation: an
`Efficient Approach to Combat a Broad Range of Memory Error
`Exploits, In Proceedings of the 12th Security Symposium, pp. 105
`120, Aug. 2003.
`S. Brilliant, J. C. Knight, and N. G. Leveson, Analysis ofFaults in an
`N-Version Software Experiment, IEEE Transactions on Software
`Engineering, 16(2), Feb. 1990.
`
`* cited by examiner
`
`4
`
`SYMC 1001
`
`

`

`US. Patent
`
`Dec. 6, 2011
`
`Sheet 1 of8
`
`US 8,074,115 B2
`
`SERVER
`
`110
`J
`
`106
`
`COMMUNICATIONS NETWORK
`(E.G., INTERNET, INTRANET,
`LAN, WAN, ETC.)
`
`102
`WORKSTATION J
`
`102
`WORKSTATION J
`
`102
`WORKSTATION 1
`
`FIG. 1
`
`5
`
`SYMC 1001
`
`

`

`US. Patent
`
`Dec. 6, 2011
`
`Sheet 2 618
`
`US 8,074,115 B2
`
`COMMUNICATIONS
`NETWORK
`
`1104
`
`106
`
`108
`
`WORKSTATION
`
`SERVER
`
`202
`f
`
`204
`r
`
`220
`f
`
`222
`/
`
`PROCESSOR
`
`DISPLAY
`
`PROCESSOR
`
`DISPLAY
`
`206
`f
`INPUT
`DEVICE
`
`208
`f
`
`MEMORY
`
`224
`f
`INPUT
`DEVICE
`
`226
`/
`
`MEMORY
`
`FIG. 2
`
`6
`
`SYMC 1001
`
`

`

`US Patent
`
`Dec. 6, 2011
`
`Sheet 3 0f 8
`
`US 8,074,115 B2
`
`300
`
`MONITORING AN APPLICATION FOR VARIOUS TYPES
`OF FAILURES USING ONE OR MORE SENSORS
`
`I
`
`PREDICTING THAT A FAULT MAY OCCUR OR
`DETECTING A FAULT THAT OCCURRED IN AT LEAST
`A PORTION OF THE APPLICATION’S CODE (E.G.,
`DETERMINING WHICH PORTIONS OF THE
`APPLICATION ARE VULNERABLE TO FAULTS
`AND/ OR ATTACKS)
`
`I
`
`UPON PREDICTING THAT A FAULT MAY OCCUR OR
`DETECTING THAT A FAULT OCCURRED, ISOLATING
`THE PORTION OF THE APPLICATION’S CODE HAVING
`THE FAULTY INSTRUCTION
`
`I
`
`GENERATING AN INSTRUMENTED VERSION OF THE
`PORTION OF THE APPLICATION’S CODE OR
`WRAPPING THAT PORTION OF THE APPLICATION’S
`CODE
`
`CONSTRUCTING AN EMULATOR-BASED VACCINE
`
`I
`I
`
`310
`
`/
`
`320
`
`330
`
`340
`
`350
`
`EMULATING SEGMENTS OF AN APPLICATION’S
`CODE WHERE THE FAULT OCCURRED USING THE
`EMULATOR-BASED VACCINE (E.G., TESTING WITH
`THE INPUTS SEENS BEFORE THE FAULT OCCURRED)
`
`360
`
`I
`
`IF THE FAULT OCCURS AGAIN, CAUSING THAT
`PORTION OF THE APPLICATION CODE TO RETURN
`WITH AN ERROR CODE, THEREBY SIMULATING A
`PROGRAMMED FAILURE
`
`370
`
`FIG. 3
`
`7
`
`SYMC 1001
`
`

`

`US. Patent
`
`Dec. 6, 2011
`
`Sheet 4 of8
`
`US 8,074,115 B2
`
`400
`
`DETECTING THAT A FAULT HAS OCCURRED (E.G.,
`ILLEGAL MEMORY DEREFERENCES, ETC.) THAT /
`CAUSES THE APPLICATION TO ABORT
`
`l
`
`420
`
`GENERATING A CORE DUMP AND GATHERING
`OTHER INFORMATION IN RESPONSE TO DETECTING j
`THAT THE FAULT HAS OCCURRED (E.G., TYPE OF
`FAILURE, STACK TRACE, ETC.)
`
`1
`
`ISOLATING A PORTION OF THE APPLICATION’S CODE j
`BASED AT LEAST IN PART ON THE CORE DUMP AND
`THE OTHER GATHERED INFORMATION, WHERE
`THAT PORTION OF THE APPLICATION CODE WILL BE
`EXECUTED UNDER EMULATION TO DETECT AND
`RECOVER FROM FUTURE INSTANCES OF THE FAULT
`
`FIG. 4
`
`8
`
`SYMC 1001
`
`

`

`US. Patent
`
`Dec. 6, 2011
`
`Sheet 5 of8
`
`US 8,074,115 B2
`
`500
`
`{
`"emici 5:31:11 E]
`int 51. = 1,;
`5*
`E-mtilatE-_init { f1‘
`emulatewbegin [jp_a:g5 ji
`a+~+gt
`emulatemerzdlj];
`emulate_:erm[]g
`prinzfi?a = ?arlzlkn“, E113
`
`,;
`
`FIG. 5
`
`9
`
`SYMC 1001
`
`

`

`US. Patent
`
`Dec. 6, 2011
`
`Sheet 6 of8
`
`US 8,074,115 B2
`
`600
`
`DIVIDING AN APPLICATION’S CODE INTO PORTIONS OF CODE
`
`l
`
`MONITORING THE PORTION OF CODE USING ONE OF THE
`PLURALITY OF DEVICES FOR VARIOUS TYPES OF FAILURES
`
`610
`
`620
`
`l
`
`PREDICTING THAT A FAULT
`630
`MAY OCCUR IN THE
`MONITORED PORTION OF CODE /
`(E.G., VULNERABLE TO FAULTS
`AND/OR ATTACKS)
`
`I
`
`640
`
`DETECTTNO THAT A
`FAULT HAS OCCURRED
`THAT CAUsEs THE
`APPLICATION TO
`ABORT OR OTHERWISE
`FAIL
`
`i
`
`l
`
`NOTIFYING THE OTHER DEVICES (E.G.,
`WORKSTATIONS, SERVERS, ETC.) OF THE FAULT;
`ALL DEVICES USE MONITOR AND RECOVERY ON
`THE IDENTIFIED-AS—VULNERABLE PORTION OF THE
`CODE, IN ALL INSTANCES OF THE APPLICATION
`
`650
`
`/
`
`i
`
`FIG. 6
`
`10
`
`SYMC 1001
`
`

`

`US. Patent
`
`Dec. 6, 2011
`
`Sheet 7 of8
`
`US 8,074,115 B2
`
`\‘
`
`fl.
`
`xi
`
`a()
`
`100
`
`b0
`
`200
`
`c()
`
`300
`
`rt.
`
`1
`
`2
`
`3
`
`vi
`
`(11
`
`(12
`
`(13
`
`T
`
`CW‘) rf‘vi
`
`600
`
`16
`
`(11
`
`600
`
`33
`
`2112
`
`600
`
`50
`
`3&3
`
`FIG. 7
`
`11
`
`SYMC 1001
`
`

`

`US. Patent
`
`Dec. 6, 2011
`
`Sheet 8 of8
`
`US 8,074,115 B2
`
`800
`
`802K
`
`Detect function
`call being made
`
`804 \ Comparc function
`call to model
`
`i
`
`806
`
`Identify function
`call as anomalous
`
`FIG. 8
`
`12
`
`SYMC 1001
`
`

`

`US 8,074,115 B2
`
`1
`METHODS, MEDIA AND SYSTEMS FOR
`DETECTING ANOMALOUS PROGRAM
`EXECUTIONS
`
`CROSS REFERENCE TO RELATED
`APPLICATION
`
`This application is a US. National Phase Application
`Under 35 U.S.C. §37l of International PatentApplication No.
`PCT/US2006/04l59l, ?led Oct. 25, 2006, Which claims the
`bene?t under 35 U.S.C. §l 19(e) of United States Provisional
`Patent Application No. 60/730,289, ?led Oct. 25, 2005, each
`of Which is hereby incorporated by reference herein in its
`entirety.
`
`TECHNOLOGY AREA
`
`The disclosed subject matter relates to methods, media,
`and systems for detecting anomalous program executions.
`
`BACKGROUND
`
`Applications may terminate due to any number of threats,
`program errors, software faults, attacks, or any other suitable
`softWare failure. Computer viruses, Worms, trojans, hackers,
`key recovery attacks, malicious executables, probes, etc. are a
`constant menace to users of computers connected to public
`computer netWorks (such as the Internet) and/ or private net
`Works (such as corporate computer netWorks). In response to
`these threats, many computers are protected by antivirus soft
`Ware and ?reWalls. HoWever, these preventative measures are
`not alWays adequate. For example, many services must main
`tain a high availability When faced by remote attacks, high
`volume events (such as fast-spreading Worms like Slammer
`and Blaster), or simple application-level denial of service
`(DoS) attacks.
`Aside from these threats, applications generally contain
`errors during operation, Which typically result from program
`mer error. Regardless of Whether an application is attacked by
`one of the above-mentioned threats or contains errors during
`operation, these softWare faults and failures result in illegal
`memory access errors, division by Zero errors, buffer over
`?oWs attacks, etc. These errors cause an application to termi
`nate its execution or “crash.”
`
`SUMMARY
`
`Methods, media, and systems for detecting anomalous pro
`gram executions are provided. In some embodiments, meth
`ods for detecting anomalous program executions are pro
`vided, comprising: executing at least a part of a program in an
`emulator; comparing a function call made in the emulator to
`a model of function calls for the at least a part of the program;
`and identifying the function call as anomalous based on the
`comparison.
`In some embodiments, computer-readable media contain
`ing computer-executable instructions that, When executed by
`a processor, cause the processor to perform a method for
`detecting anomalous program executions are provide, the
`method comprising: executing at least a part of a program in
`an emulator; comparing a function call made in the emulator
`to a model of function calls for the at least a part of the
`program; and identifying the function call as anomalous
`based on the comparison.
`In some embodiments, systems for detecting anomalous
`program executions are provided, comprising: a digital pro
`cessing device that: executes at least a part of a program in an
`
`2
`emulator; compares a function call made in the emulator to a
`model of function calls for the at least a part of the program;
`and identi?es the function call as anomalous based on the
`comparison.
`In some embodiments, methods for detecting anomalous
`program executions are provided, comprising: modifying a
`program to include indicators of program-level function calls
`being made during execution of the program; comparing at
`least one of the indicators of program-level function calls
`made in the emulator to a model of function calls for the at
`least a part of the program; and identifying a function call
`corresponding to the at least one of the indicators as anoma
`lous based on the comparison.
`In some embodiments, computer-readable media contain
`ing computer-executable instructions that, When executed by
`a processor, cause the processor to perform a method for
`detecting anomalous program executions are provide, the
`method comprising: modifying a program to include indica
`tors of program-level function calls being made during execu
`tion of the program; comparing at least one of the indicators
`of program-level function calls made in the emulator to a
`model of function calls for the at least a part of the program;
`and identifying a function call corresponding to the at least
`one of the indicators as anomalous based on the comparison.
`In some embodiments, systems for detecting anomalous
`program executions are provided, comprising: a digital pro
`cessing device that: modi?es a program to include indicators
`of program-level function calls being made during execution
`of the program; compares at least one of the indicators of
`program-level function calls made in the emulator to a model
`of function c

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket