IP Library › Granted Patent US 10,909,236
Granted Patent B2
US 10,909,236 · App. 16/422,711 · Granted Feb 2, 2021

Detection of malicious invocation of application program interface calls

Inventors: Kunal Mehta (Hillsboro, OR); Balbir Singh (Gurgaon, IN); Rajbir Bhattacharjee (New Delhi, IN)
Assignee: McAfee, LLC
G06F21/54G06F21/52G06F2221/033
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,909,236
App. No.
16/422,711
Granted
Feb 2, 2021
Kind
B2
Abstract

Particular embodiments described herein provide for an electronic device that includes a binder kernel driver. The binder kernel driver can be configured to receive an application program interface (API) call, extract metadata from the API call, determine that the API call should be hooked based on the extracted metadata, and hook the API call.

Claims (45)

1. At least one non-transitory computer-readable medium comprising one or more instructions that when executed by a processor, cause the processor to:

receive, by a kernel driver executed by the processor, an application program interface (API) call from an application, wherein the kernel driver is included within a kernel space;

compare, with the kernel driver, the API call and extracted metadata to one or more security policies to determine whether the extracted metadata matches the one or more security policies;

determine, with the kernel driver, whether the API call should be blocked based on the extracted metadata matching the one or more security policies;

determine, with the kernel driver, based on a determination that the API call should not be blocked, whether the API call should be allowed based on the extracted metadata matching the one or more security policies;

determine, with the kernel driver, based on a determination that the API call should not be allowed, whether the API call should be hooked based on the extracted metadata matching the one or more security policies;

hook, with the kernel driver, the API call based on the determination that the API call should be hooked;

communicate, after hooking the API call, the API call and the extracted metadata to a security module, wherein the security module determines if the API call should be allowed or blocked; and

allow or block the API call based on a response received from the security module.

2. The at least one non-transitory computer-readable medium of claim 1 , wherein the kernel driver is a binder kernel driver.

3. The at least one non-transitory computer-readable medium of claim 1 , wherein block the API call further includes: add a blocking notification with the API call and the extracted metadata to the security module.

4. The at least one non-transitory computer-readable medium of claim 1 , wherein allow the API call includes: allow the API call if a response from the security module is not received after a predetermined amount of time has passed from when the API call and the extracted metadata was communicated to the security module.

5. The at least one non-transitory computer-readable medium of claim 4 , wherein allow the API call further includes: communicate an allowed notification to the security module.

6. The at least one non-transitory computer-readable medium of claim 1 , wherein block the API call further includes: communicate an access denied code to the application.

7. An apparatus comprising:

a hardware processor configured to execute a kernel driver, wherein the kernel driver is configured to:

receive an application program interface (API) call from an application, wherein the kernel driver is included within a kernel space;

compare, with the kernel driver, the API call and extracted metadata to one or more security policies to determine whether the extracted metadata matches the one or more security policies;

determine whether the API call should be blocked based on the extracted metadata matching the one or more security policies;

determine, with the kernel driver, based on a determination that the API call should not be blocked, whether the API call should be allowed based on the extracted metadata matching the one or more security policies;

determine, with the kernel driver, based on a determination that the API call should not be allowed, whether the API call should be hooked based on the extracted metadata matching the one or more security policies;

hook the API call based on the determination that that the API call should be hooked;

communicate, after hooking the API call, the API call and the extracted metadata to a security module, wherein the security module determines if the API call should be allowed or blocked; and

allow or block the API call based on a response received from the security module.

8. The apparatus of claim 7 , wherein the kernel driver is a binder kernel driver.

9. The apparatus of claim 7 , wherein block the API call further includes: add a blocking notification with the API call and the extracted metadata to the security module.

10. The apparatus of claim 9 , wherein the one or more security policies are located in the kernel driver.

11. The apparatus of claim 7 , wherein allow the API call includes: allow the API call if a response from the security module is not received after a predetermined amount of time has passed from when the API call and the extracted metadata was communicated to the security module.

12. The apparatus of claim 11 , wherein allow the API call further includes: communicate an allowed notification to the security module.

13. The apparatus of claim 7 , wherein block the API call further includes: communicate an access denied code to the application.

14. A method comprising:

receiving, by a kernel driver executed by a processor, an application program interface (API) call from an application, wherein the kernel driver is included within a kernel space;

comparing, with the kernel driver, the API call and extracted metadata to one or more security policies to determine whether the extracted metadata matches the one or more security policies;

determining, with the kernel driver, whether the API call should be blocked based on the extracted metadata matching the one or more security policies;

determining, with the kernel driver, based on a determination that the API call should not be blocked, whether the API call should be allowed based on the extracted metadata matching the one or more security policies;

determining, with the kernel driver, based on a determination that the API call should not be allowed, whether the API call should be hooked based on the extracted metadata matching the one or more security policies;

hooking, with the kernel driver, the API call based on the determination that the API call should be hooked;

communicating, after hooking the API call, the API call and the extracted metadata to a security module, wherein the security module determines if the API call should be allowed or blocked; and

allowing or blocking the API call based on a response received from the security module.

15. The method of claim 14 , wherein the kernel driver is a binder kernel driver.

16. The method of claim 14 , wherein blocking the API call further includes: adding a blocking notification with the API call and the extracted metadata to the security module.

17. The method of claim 14 , wherein the done or more security policies are located in the kernel driver.

18. The method of claim 14 , wherein allowing the API call includes: allowing the API call if a response from the security module is not received after a predetermined amount of time has passed from when the API call and the extracted metadata was communicated to the security module.

19. The method of claim 14 , wherein allowing the API call further includes: communicating an allowed notification to the security module.

20. The method of claim 14 , wherein blocking the API call further includes: communicating an access denied code to the application.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 23, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 060792/0307 →
SECURITY INTEREST Recorded Mar 3, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 059354/0335 →
Continuity (2)
Continuation 14780536
Related Publication 20190278908A1 · Sep 12, 2019
Cited By (1)
US 12,676,863