Runtime analysis of software security vulnerabilities
First Claim
1. A computer program product comprising a program stored on a non-transitory computer-readable medium containing an executable set of instructions for detecting a vulnerability in a software application in a database system, the set of instructions operable to:
- store defined vulnerabilities that identify operations in the software application vulnerable to the security risk and are each associated with one or more input tags and one or more sanitization tags;
receive by the software application in the database system a request from a user system;
at runtime of the application, assign one or more of the input tags to one or more objects associated with the request, wherein the input tags identify the request as potentially malicious and carrying a security risk;
at runtime of the application, assign one or more of the sanitization tags to the one or more objects associated with the request to indicate security checks performed on the objects;
at runtime of the application, compare the input tags assigned to the objects with any of the sanitization tags assigned to the objects; and
at runtime of the application, identify at least one of the defined vulnerabilities as a vulnerability in a part of the software application when the assigned input tag for an identified one of the objects matches the input tag associated with an identified one of the defined vulnerabilities, and one or more of the sanitization tags associated with the identified one of the defined vulnerabilities is not an assigned sanitization tag for the identified one of the objects; and
generating a report identifying the vulnerability in a part of the software application.
1 Assignment
0 Petitions
Accused Products
Abstract
During runtime of the software application, the runtime analysis framework may assign input tags to objects associated with the user requests. The input tags may identify the requests as potentially malicious and carry a security risk. The RTA framework then may assign sanitization tags to the objects identifying security checks performed on the objects during runtime. The RTA framework identifies output responses to the user requests that include the objects and compares the input tags assigned to the objects with any sanitization tags assigned to the objects. The RTA framework may identify the software application as susceptible to a security vulnerability when the input tags for the objects do not include corresponding sanitization tags.
203 Citations
17 Claims
-
1. A computer program product comprising a program stored on a non-transitory computer-readable medium containing an executable set of instructions for detecting a vulnerability in a software application in a database system, the set of instructions operable to:
-
store defined vulnerabilities that identify operations in the software application vulnerable to the security risk and are each associated with one or more input tags and one or more sanitization tags; receive by the software application in the database system a request from a user system; at runtime of the application, assign one or more of the input tags to one or more objects associated with the request, wherein the input tags identify the request as potentially malicious and carrying a security risk; at runtime of the application, assign one or more of the sanitization tags to the one or more objects associated with the request to indicate security checks performed on the objects; at runtime of the application, compare the input tags assigned to the objects with any of the sanitization tags assigned to the objects; and
at runtime of the application, identify at least one of the defined vulnerabilities as a vulnerability in a part of the software application when the assigned input tag for an identified one of the objects matches the input tag associated with an identified one of the defined vulnerabilities, and one or more of the sanitization tags associated with the identified one of the defined vulnerabilities is not an assigned sanitization tag for the identified one of the objects; andgenerating a report identifying the vulnerability in a part of the software application. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for detecting vulnerabilities in a software application operating in a database system, comprising:
-
a processor; and memory storing one or more stored sequences of instructions which, when executed by the processor, cause the processor to carry out the steps of; storing defined vulnerabilities that identify operations in the software application vulnerable to the security risk and are each associated with one or more input tags and one or more sanitization tags; assigning the one or more of the input tags to objects returned by input methods in the software application, wherein the input tags identify the objects as potentially malicious and security risks; assigning the one or more of the sanitization tags to the one or more objects associated with the request, wherein the sanitization tags identify security checks performed on the objects; comparing the input tags assigned to the objects with the sanitization tags assigned to the objects; identifying at least one of the defined vulnerabilities as a vulnerability in a part of the software application when the assigned input tag for an identified one of the objects matches the input tag associated with an identified one of the defined vulnerabilities, and one or more of the sanitization tags associated with the identified one of the defined vulnerabilities is not an assigned sanitization tag for the identified one of the objects; and generating a report identifying the vulnerability in a part of the software application. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A method for detecting a vulnerability in a software application in a database system, comprising:
-
storing a defined vulnerability including an associated input event, at least one security event, and an output event; receiving by the software application in the database system a request from a user system; executing an input rule in the software application that identifies an input event for at least one object associated with the request; executing a sanitization rule in the software application that identifies a security event for a security operation performed on the object; executing an output rule in the software application that identifies an output event generating a response to the request; executing a vulnerability rule in the software application that identifies a vulnerability in a part of the software application based on a comparison of the input event associated with the defined vulnerability with the identified input event, a comparison of the security events associated with the defined vulnerability with the identified security event, and a comparison of the output event associated with the defined vulnerability with the identified output event; and generating a report identifying the vulnerability in a part of the software application. - View Dependent Claims (16, 17)
-
Specification