IP Library Granted Patent US 10,621,348
Granted Patent B1
US 10,621,348 · App. 15/678,096 · Granted Apr 14, 2020

Detecting a malicious application executing in an emulator based on a check made by the malicious application after making an API call

Inventors: Mircea Ciubotariu (Culver City, CA); Priti Nachiket More (Pune, IN)
Assignee: CA, Inc.
G06F21/566G06F21/53
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 10,621,348
App. No.
15/678,096
Granted
Apr 14, 2020
Kind
B1
Abstract

Detecting a malicious application executing in an emulator based on a check made by the malicious application after making an API call. In one embodiment, a method may include executing an application in an emulator that emulates a real-world computing environment. The method may also include detecting, in the application, an API call configured to accept a parameter and return a variable return value to a return address in the application. The method may further include detecting, at the return address, a check to be performed on the variable return value returned by the API call. The method may also include, in response to the detecting of the check, determining that the application is malicious. The method may further include performing a security action on the malicious application to prevent the malicious application from executing in the real-world computing environment.

Claims (37)

1. A computer-implemented method for detecting a malicious application executing in an emulator based on a check made by the malicious application after making an API call, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

executing an application in an emulator that emulates a real-world computing environment;

detecting, in the application, an API call configured to accept a parameter and return a variable return value to a return address in the application;

detecting, at the return address, a check to be performed on the variable return value returned by the API call;

in response to the detecting of the check, determining that the application is malicious; and

performing a security action on the malicious application to prevent the malicious application from executing in the real-world computing environment.

2. The method of claim 1 , wherein the detecting of the check further comprises evaluating the check to determine that the check is not simply checking for an error code in the variable return value.

3. The method of claim 1 , wherein the detecting of the check further comprises detecting that the parameter is an invalid parameter that is hardcoded in the application and detecting that the variable return value is dependent on the invalid hardcoded parameter.

4. The method of claim 1 , wherein the detecting of the check further comprises correlating the check with the parameter to determine that the check is a non-standard check.

5. The method of claim 1 , wherein the variable return value is dependent on the emulated computing environment.

6. The method of claim 1 , wherein the real-world computing environment is a standard operating system and the API call is a standard API call of the standard operating system.

7. The method of claim 6 , wherein the standard operating system is a Windows operating system.

8. A computer-implemented method for detecting a malicious application executing in an emulator based on a check made by the malicious application after making an API call, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

executing an application in an emulator that emulates a real-world computing environment;

detecting, in the application, an API call configured to accept a parameter and return a variable return value to a return address in the application;

detecting, at the return address, a check to be performed on the variable return value returned by the API call;

detecting that the parameter is an invalid parameter that is hardcoded in the application;

detecting that the variable return value is dependent on the invalid hardcoded parameter;

in response to the detecting of the check, the detecting that the parameter is an invalid hardcoded parameter, and the detecting that the variable return value is dependent on the invalid hardcoded parameter, determining that the application is malicious; and

performing a security action on the malicious application to prevent the malicious application from executing in the real-world computing environment.

9. The method of claim 8 , wherein the detecting of the check further comprises evaluating the check to determine that the check is not simply checking for an error code in the variable return value.

10. The method of claim 8 , wherein the variable return value is dependent on the emulated computing environment.

11. The method of claim 8 , wherein the real-world computing environment is a standard operating system.

12. The method of claim 11 , wherein the API call is a standard API call of the standard operating system.

13. The method of claim 11 , wherein the standard operating system is a Windows operating system.

14. One or more non-transitory computer-readable media comprising one or more computer-readable instructions that, when executed by one or more processors of one or more computing devices, cause the one or more computing devices to perform a method for detecting a malicious application executing in an emulator based on a check made by the malicious application after making an API call, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

executing an application in an emulator that emulates a real-world computing environment;

detecting, in the application, an API call configured to accept a parameter and return a variable return value to a return address in the application;

detecting, at the return address, a check to be performed on the variable return value returned by the API call;

in response to the detecting of the check, determining that the application is malicious; and

performing a security action on the malicious application to prevent the malicious application from executing in the real-world computing environment.

15. The one or more non-transitory computer-readable media of claim 14 , wherein the detecting of the check further comprises evaluating the check to determine that the check is not simply checking for an error code in the variable return value.

16. The one or more non-transitory computer-readable media of claim 14 , wherein the detecting of the check further comprises detecting that the parameter is an invalid parameter that is hardcoded in the application and detecting that the variable return value is dependent on the invalid hardcoded parameter.

17. The one or more non-transitory computer-readable media of claim 14 , wherein the detecting of the check further comprises correlating the check with the parameter to determine that the check is a non-standard check.

18. The one or more non-transitory computer-readable media of claim 14 , wherein the variable return value is dependent on the emulated computing environment.

19. The one or more non-transitory computer-readable media of claim 14 , wherein the real-world computing environment is a standard operating system and the API call is a standard API call of the standard operating system.

20. The one or more non-transitory computer-readable media of claim 19 , wherein the standard operating system is a Windows operating system.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2019
From: SYMANTEC CORPORATION
To: CA, INC.
Reel/Frame 051144/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2017
From: CIUBOTARIU, MIRCEA; MORE, PRITI NACHIKET
To: SYMANTEC CORPORATION
Reel/Frame 043304/0353 →