IP Library Granted Patent US 8,074,115
Granted Patent B2
US 8,074,115 · App. 12/091,150 · Granted Dec 6, 2011

Methods, media and systems for detecting anomalous program executions

Assignee: The Trustees of Columbia University in the City of New York
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,074,115
App. No.
12/091,150
Granted
Dec 6, 2011
Kind
B2
Abstract

Methods, media, and systems for detecting anomalous program executions are provided. In some embodiments, methods for detecting anomalous program executions are provided, 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.

Claims (65)

1. A method for detecting anomalous program executions, 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;

identifying the function call as anomalous based on the comparison; and

upon identifying the anomalous function call, notifying an application community that includes a plurality of computers of the anomalous function call.

2. The method of claim 1 , further comprising creating a combined model from at least two models created using different computers.

3. The method of claim 1 , further comprising creating a combined model from at least two models created at different times.

4. The method of claim 1 , further comprising modifying the function call so that the function call becomes non-anomalous.

5. The method of claim 1 , further comprising generating a virtualized error in response to the function call being identified as being anomalous.

6. The method of claim 1 , wherein the comparing compares the function call name and arguments to the model.

7. The method of claim 1 , wherein the model reflects normal activity of the at least a part of the program.

8. The method of claim 1 , wherein the model reflects attacks against the at least a part of the program.

9. The method of claim 1 , further comprising randomly selecting the model as to be used in the comparison from a plurality of different models relating to the program.

10. The method of claim 1 , further comprising randomly selecting a portion of the model to be used in the comparison.

11. A non-transitory computer-readable medium containing computer-executable instructions that, when executed by a processor, cause the processor to perform a method for detecting anomalous program executions, 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;

identifying the function call as anomalous based on the comparison; and

upon identifying the anomalous function call, notifying an application community that includes a plurality of computers of the anomalous function call.

12. The medium of claim 11 , wherein the method further comprises creating a combined model from at least two models created using different computers.

13. The medium of claim 11 , wherein the method further comprises creating a combined model from at least two models created at different times.

14. The medium of claim 11 , wherein the method further comprises modifying the function call so that the function call becomes non-anomalous.

15. The medium of claim 11 , wherein the method further comprises generating a virtualized error in response to the function call being identified as being anomalous.

16. The medium of claim 11 , wherein the comparing compares the function call name and arguments to the model.

17. The medium of claim 11 , wherein the model reflects normal activity of the at least a part of the program.

18. The medium of claim 11 , wherein the model reflects attacks against the at least a part of the program.

19. The medium of claim 11 , wherein the method further comprises randomly selecting the model as to be used in the comparison from a plurality of different models relating to the program.

20. The medium of claim 11 , wherein the method further comprises randomly selecting a portion of the model to be used in the comparison.

21. A system for detecting anomalous program executions, comprising:

a digital processing device that:

executes at least a part of a program in an 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

identifies the function call as anomalous based on the comparison; and

upon identifying the anomalous function call, notifies an application community that includes a plurality of computers of the anomalous function call.

22. A method for detecting anomalous program executions, 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 an emulator to a model of function calls for 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.

23. The method of claim 22 , further comprising creating a combined model from at least two models created using different computers.

24. The method of claim 22 , further comprising creating a combined model from at least two models created at different times.

25. The method of claim 22 , further comprising modifying the function call so that the function call becomes non-anomalous.

26. The method of claim 22 , further comprising generating a virtualized error in response to the function call being identified as being anomalous.

27. The method of claim 22 , wherein the comparing compares the function call name and arguments to the model.

28. The method of claim 22 , wherein the model reflects normal activity of the at least a part of the program.

29. The method of claim 22 , wherein the model reflects attacks against the at least a part of the program.

30. The method of claim 22 , further comprising randomly selecting the model as to be used in the comparison from a plurality of different models relating to the program.

31. The method of claim 22 , further comprising randomly selecting a portion of the model to be used in the comparison.

32. A non-transitory computer-readable medium containing computer-executable instructions that, when executed by a processor, cause the processor to perform a method for detecting anomalous program executions, 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 an emulator to a model of function calls for 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.

33. The medium of claim 32 , wherein the method further comprises creating a combined model from at least two models created using different computers.

34. The medium of claim 32 , wherein the method further comprises creating a combined model from at least two models created at different times.

35. The medium of claim 32 , wherein the method further comprises modifying the function call so that the function call becomes non-anomalous.

36. The medium of claim 32 , wherein the method further comprises generating a virtualized error in response to the function call being identified as being anomalous.

37. The medium of claim 32 , wherein the comparing compares the function call name and arguments to the model.

38. The medium of claim 32 , wherein the model reflects normal activity of the at least a part of the program.

39. The medium of claim 32 , wherein the model reflects attacks against the at least a part of the program.

40. The medium of claim 32 , wherein the method further comprises randomly selecting the model as to be used in the comparison from a plurality of different models relating to the program.

41. The medium of claim 32 , wherein the method further comprises randomly selecting a portion of the model to be used in the comparison.

42. A system for detecting anomalous program executions, comprising:

a digital processing device that:

modifies 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 an emulator to a model of function calls for at least a part of the program; and

identifies a function call corresponding to the at least one of the indicators as anomalous based on the comparison.

Assignments (2)
CONFIRMATORY LICENSE Recorded Oct 26, 2016
From: COLUMBIA UNIVERSITY
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 040492/0407 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2008
From: STOLFO, SALVATORE J; KEROMYTIS, ANGELOS D; SIDIROGLOU, STYLIANOS
To: THE TRUSTEES OF COLUMBIA UNIVERSITY IN THE CITY OF NEW YORK
Reel/Frame 021507/0369 →
Continuity (2)
Provisional Application 60730289 · Oct 25, 2005
Related Publication 20100023810A1 · Jan 28, 2010