IP Library › Granted Patent US 10,366,232
Granted Patent B1
US 10,366,232 · App. 15/284,025 · Granted Jul 30, 2019

Language-based missing function call detection

Inventors: George Kuan (Westlake Village, CA); Aleksey Nogin (Fresno, CA); Alexei Kopylov (Pasadena, CA)
Assignee: HRL Laboratories, LLC
G06F21/563G06F21/577G06F2221/033G06F2221/034
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,366,232
App. No.
15/284,025
Granted
Jul 30, 2019
Kind
B1
Abstract

Described is a language-based system for detecting function calls. The system detects missing authorization and authentication functionality in computer software source code via typechecking. New classes of software vulnerability in the computer software source code are detected.

Claims (29)

1. A system for preventing security vulnerabilities in software, the system comprising:

one or more processors and a non-transitory computer-readable medium having executable instructions encoded thereon such that when executed, the one or more processors perform operations of:

detecting, in computer software source code, missing function calls in appropriate security contexts, wherein varying security contexts represent varying ordered security levels of security-sensitive operations,

applying a typechecking operation to enforce a requirement that a function is only called with a security context that is at least at its required security level; and

detecting at least one new class of security flaws in the computer software source code to defend against cybersecurity risk.

2. The system as set forth in claim 1 , wherein the one or more processors further perform an operation of assigning at least one security label to each function identifier in a function call, wherein the at least one security label is assigned to each function identifier to enable information flow, thereby enforcing a requirement that certain function calls must precede other function calls.

3. The system as set forth in claim 2 , wherein each function identifier is mapped to a tuple of two security labels, a first security label for a security level required for executing the function call and a second security label for a security level granted upon execution of the function call.

4. The system as set forth in claim 1 , wherein the one or more processors further perform an operation of enforcing required information flows based on the at least one new class of security flaws.

5. The system as set forth in claim 1 , wherein the one or more processors further perform an operation of determining whether presence of side-effects will lead to security vulnerability.

6. The system as set forth in claim 1 , wherein the one or more processors further perform an operation of determining whether an order of execution of function calls will lead to security vulnerability.

7. A computer-implemented for method detecting missing function calls in source code, comprising:

an act of causing one or more processors to execute instructions stored on a non-transitory memory such that upon execution, the one or more processors perform operations of:

detecting, in computer software source code, missing function calls in appropriate security contexts, wherein varying security contexts represent varying ordered security levels of security-sensitive operations,

applying a typechecking operation to enforce a requirement that a function is only called with a security context that is at least at its required security level; and

detecting at least one new class of security flaws in the computer software source code to defend against cybersecurity risk.

8. The method as set forth in claim 7 , wherein the one or more processors further perform an operation of assigning at least one security label to each function identifier in a function call, wherein the at least one security label is assigned to each function identifier to enable information flow, thereby enforcing a requirement that certain function calls must precede other function calls.

9. The method as set forth in claim 8 , wherein each function identifier is mapped to a tuple of two security labels, a first security label for a security level required for executing the function call and a second security label for a security level granted upon execution of the function call.

10. The method as set forth in claim 7 , wherein the one or more processors further perform an operation of enforcing required information flows based on the at least one new class of security flaws.

11. The method as set forth in claim 7 , wherein the one or more processors further perform an operation of determining whether presence of side-effects will lead to security vulnerability.

12. The method as set forth in claim 7 , wherein the one or more processors further perform an operation of determining whether an order of execution of function calls will lead to security vulnerability.

13. A computer program product for detecting missing function calls in source code, comprising computer-readable instructions stored on a non-transitory computer-readable medium that are executable by a computer having a processor for causing the processor to perform operations of:

detecting, in computer software source code, missing function calls in appropriate security contexts, wherein varying security contexts represent varying ordered security levels of security-sensitive operations,

applying a typechecking operation to enforce a requirement that a function is only called with a security context that is at least at its required security level; and

detecting at least one new class of security flaws in the computer software source code to defend against cybersecurity risk.

14. The computer program product as set forth in claim 13 , further comprising instructions for causing the one or more processors to further perform an operation of assigning at least one security label to each function identifier in a function call, wherein the at least one security label is assigned to each function identifier to enable information flow, thereby enforcing a requirement that certain function calls must precede other function calls.

15. The computer program product as set forth in claim 14 , wherein each function identifier is mapped to a tuple of two security labels, a first security label for a security level required for executing the function call and a second security label for a security level granted upon execution of the function call.

16. The computer program product as set forth in claim 13 , further comprising instructions for causing the one or more processors to further perform an operation of enforcing required information flows based on the at least one new class of security flaws.

17. The computer program product as set forth in claim 13 , further comprising instructions for causing the one or more processors to further perform an operation of determining whether presence of side-effects will lead to security vulnerability.

18. The computer program product as set forth in claim 13 , further comprising instructions for causing the one or more processors to further perform an operation of determining whether an order of execution of function calls will lead to security vulnerability.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2016
From: KUAN, GEORGE; NOGIN, ALEKSEY; KOPYLOV, ALEXEI
To: HRL LABORATORIES, LLC
Reel/Frame 040672/0649 →
Continuity (1)
Provisional Application 62236764 · Oct 2, 2015
Cited By (1)
US 12,670,258