IP Library Granted Patent US 9,292,693
Granted Patent B2
US 9,292,693 · App. 13/647,711 · Granted Mar 22, 2016

Remediation of security vulnerabilities in computer software

Inventor: Omer Tripp (Har-Adar, IL)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F21/577G06F21/12G06F21/57G06F21/52G06F21/54G06F2221/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 9,292,693
App. No.
13/647,711
Granted
Mar 22, 2016
Kind
B2
Abstract

Processing a downgrader specification by constructing a set of candidate downgrader placement locations found within a computer software application, where each of the candidate downgrader placement locations corresponds to a transition between a different pair of instructions within the computer software application, and where each of the transitions participates in any of a plurality of data flows in a set of security-sensitive data flows within the computer software application, applying a downgrader specification to the set of candidate downgrader placement locations, and determining that the downgrader specification provides full coverage of the set of security-sensitive data flows within the computer software application if at least one candidate downgrader placement location within each of the security-sensitive data flows is a member of the set of candidate downgrader placement locations.

Claims (30)

1. A system for processing a downgrader specification, the system comprising:

a processor programmed to implement executable operations comprising:

constructing a set of candidate downgrader placement locations found within a computer software application, wherein each of the candidate downgrader placement locations corresponds to a transition between a different pair of instructions within the computer software application, and wherein each of the transitions participates in any of a plurality of data flows in a set of security-sensitive data flows within the computer software application;

applying a downgrader specification to the set of candidate downgrader placement locations, wherein applying the downgrader specification comprises eliminating from the set of candidate downgrader placement locations any of the candidate downgrader placement locations whose elimination is indicated by the downgrader specification; and

determining that the downgrader specification provides full coverage of the set of security-sensitive data flows within the computer software application if at least one candidate downgrader placement location within each of the security-sensitive data flows is a member of the set of candidate downgrader placement locations.

2. The system according to claim 1 wherein the processor is configured to construct the set of candidate downgrader placement locations wherein membership of each of the candidate downgrader placement locations in the set of candidate downgrader placement locations is indicated by the downgrader specification.

3. The system according to claim 1 wherein the downgrader specification is defined by a computer user.

4. The system according to claim 1 wherein the downgrader specification indicates areas of the computer software application where downgraders are not to be placed.

5. The system according to claim 1 wherein the downgrader specification indicates that downgraders be placed within a predefined number of instructions steps from a code location within the computer software application where untrusted data is read.

6. The system according to claim 1 wherein the downgrader specification indicates that downgraders be placed within a predefined number of instruction steps from a security-sensitive operation within the computer software application.

7. A system for processing a downgrader specification, the system comprising:

a processor programmed to implement executable operations comprising:

constructing a set of candidate downgraders for processing a set of security-sensitive data flows within a computer software application, wherein each of the security-sensitive data flows is processable by at least one of the candidate downgraders;

applying a downgrader specification to the set of candidate downgraders, wherein applying the downgrader specification comprises eliminating from the set of candidate downgraders any of the candidate downgraders whose elimination is indicated by the downgrader specification; and

determining that the downgrader specification provides full coverage of the set of security-sensitive data flows within the computer software application if each of the security-sensitive data flows is processable by at least one of the candidate downgraders remaining in the set of candidate downgraders.

8. The system according to claim 7 wherein the processor is configured to construct the set of candidate downgraders wherein membership of each of the candidate downgraders in the set of candidate downgraders is indicated by the downgrader specification.

9. A computer program product for processing a downgrader specification, the computer program product comprising a computer-readable storage medium storing computer-readable program code, wherein the computer-readable program code is executable by a processor to perform a method comprising:

constructing, using the processor, a set of candidate downgrader placement locations found within a computer software application, wherein each of the candidate downgrader placement locations corresponds to a transition between a different pair of instructions within the computer software application, and wherein each of the transitions participates in any of a plurality of data flows in a set of security-sensitive data flows within the computer software application;

applying, using the processor, a downgrader specification to the set of candidate downgrader placement locations, wherein applying the downgrader specification comprises eliminating from the set of candidate downgrader placement locations any of the candidate downgrader placement locations whose elimination is indicated by the downgrader specification; and

determining, using the processor, that the downgrader specification provides full coverage of the set of security-sensitive data flows within the computer software application if at least one candidate downgrader placement location within each of the security-sensitive data flows is a member of the set of candidate downgrader placement locations.

10. The computer program product according to claim 9 wherein the method further comprises constructing the set of candidate downgrader placement locations wherein membership of each of the candidate downgrader placement locations in the set of candidate downgrader placement locations is indicated by the downgrader specification.

11. The computer program product according to claim 9 wherein the downgrader specification is defined by a computer user.

12. The computer program product according to claim 9 wherein the downgrader specification indicates areas of the computer software application where downgraders are not to be placed.

13. The computer program product according to claim 9 wherein the downgrader specification indicates that downgraders be placed within a predefined number of instructions steps from a code location within the computer software application where untrusted data is read.

14. The computer program product according to claim 9 wherein the downgrader specification indicates that downgraders be placed within a predefined number of instruction steps from a security-sensitive operation within the computer software application.

15. A computer program product for processing a downgrader specification, the computer program product comprising a computer-readable storage medium storing computer-readable program code, wherein the computer-readable program code is executable by a processor to perform a method comprising:

constructing, using the processor, a set of candidate downgraders for processing a set of security-sensitive data flows within a computer software application, wherein each of the security-sensitive data flows is processable by at least one of the candidate downgraders;

applying, using the processor, a downgrader specification to the set of candidate downgraders, wherein applying the downgrader specification comprises eliminating from the set of candidate downgraders any of the candidate downgraders whose elimination is indicated by the downgrader specification; and

determining, using the processor, that the downgrader specification provides full coverage of the set of security-sensitive data flows within the computer software application if each of the security-sensitive data flows is processable by at least one of the candidate downgraders remaining in the set of candidate downgraders.

16. The computer program product according to claim 15 wherein the method further comprises constructing the set of candidate downgraders wherein membership of each of the candidate downgraders in the set of candidate downgraders is indicated by the downgrader specification.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2012
From: TRIPP, OMER
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 029097/0310 →
Continuity (1)
Related Publication 20140101756A1 · Apr 10, 2014