IP Library › Granted Patent US 9,081,968
Granted Patent B2
US 9,081,968 · App. 14/102,613 · Granted Jul 14, 2015

Quantitative analysis of information leakage vulnerabilities

Inventors: Marco Pistoia (Amawalk, NY); Omer Tripp (Har-Adar, IL)
Assignee: International Business Machines Corporation
G06F21/577G06F21/74H04L67/125G06F3/04815G06F2221/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,081,968
App. No.
14/102,613
Granted
Jul 14, 2015
Kind
B2
Abstract

A method includes recording, during execution of a program and by a computing system, concrete values exhibited at source and sink statements in the program. The source statements read confidential information and the sink statements release the confidential information to an outside environment. The method includes determining, by the computing system, using at least the recorded concrete values and source-sink pairs whether information leakage meeting one or more quantitative criteria occurs by the program. Apparatus and program products are also disclosed.

Claims (38)

1. A method, comprising:

during execution of a program, recording by a computing system concrete values exhibited at source and sink statements in the program, wherein source statements read confidential information and sink statements release the confidential information to an outside environment;

determining, by the computing system, using at least the recorded concrete values and source-sink pairs whether information leakage meeting one or more quantitative criteria occurs by the program, at least by the following:

determining, in response to the source and sink in a source-sink pair having a same thread identification, information leakage by the sink statement in a source-sink pair by determining a quantitative measure of an amount of information released by the sink statement in the source-sink pair; and

determining whether the quantitative measure meets the one or more quantitative criteria, wherein the quantitative measure of the amount of information release is a number of bits that are the same between a source value and a sink value for the source-sink pair, wherein the number of bits that are the same between the source value and the sink value for the source-sink pair is determined using a difference function comparing the source and sink values and signifying a distance between the source and sink values according to a metric.

2. The method of claim 1 , wherein the source value and the sink value are strings.

3. The method of claim 1 , wherein the difference function comprises one of a Levenshtein distance or a Hamming distance.

4. The method of claim 1 , wherein the source statements and the sink statements are instrumented to allow the recording of the concrete values exhibited at the source statements and sink statements during execution of the program.

5. The method of claim 4 , further comprising instrumenting the source statements and the sink statements to allow the recording of the concrete values exhibited at the source statements and sink statements during execution of the program.

6. The method of claim 1 , wherein concrete values exhibited at the source statements are values read by the source statements.

7. The method of claim 1 , wherein concrete values exhibited at the sink statements are argument values used by the sink statements.

8. The method of claim 1 , wherein the source-sink pairs were previously determined by a static analysis performed on the program to determine flows that start at sources in the source-sink pairs and end at corresponding sinks in the source-sink pairs.

9. The method of claim 1 , wherein;

recording further comprises recording thread identifications corresponding to the source and sink statements reached in the program; and

determining information leakage further comprises determining information leakage occurs only for source-sink pairs having same thread identifications for the source statement and the sink statements in individual ones of the source-sink pairs.

10. An apparatus, comprising:

one or more memories comprising computer-readable code;

one or more processors,

wherein the one or more processors are configured, in response to execution of the computer-readable code, to cause the apparatus to perform the following:

during execution of a program, recording by a computing system concrete values exhibited at source and sink statements in the program, wherein source statements read confidential information and sink statements release the confidential information to an outside environment;

determining, by the computing system, using at least the recorded concrete values and source-sink pairs whether information leakage meeting one or more quantitative criteria occurs by the program, at least by the following:

determining, in response to the source and sink in a source-sink pair having a same thread identification, information leakage by a sink statement in the source-sink pair by determining a quantitative measure of an amount of information released by the sink statement in the source-sink pair; and

determining whether the quantitative measure meets the one or more quantitative criteria, wherein the quantitative measure of the amount of information release is a number of bits that are the same between a source value and a sink value for the source-sink pair, wherein the number of bits that are the same between the source value and the sink value for the source-sink pair is determined using a difference function comparing the source and sink values and signifying a distance between the source and sink values according to a metric.

11. The apparatus of claim 10 , wherein the source value and the sink value are strings.

12. The apparatus of claim 10 , wherein the difference function comprises one of a Levenshtein distance or a Hamming distance.

13. The apparatus of claim 10 , wherein the source statements and the sink statements are instrumented to allow the recording of the concrete values exhibited at the source statements and sink statements during execution of the program.

14. The apparatus of claim 13 , further comprising instrumenting the source statements and the sink statements to allow the recording of the concrete values exhibited at the source statements and sink statements during execution of the program.

15. The apparatus of claim 10 , wherein concrete values exhibited at the source statements are values read by the source statements.

16. The apparatus of claim 10 , wherein concrete values exhibited at the sink statements are argument values used by the sink statements.

17. The apparatus of claim 10 , wherein the source-sink pairs were previously determined by a static analysis performed on the program to determine flows that start at sources in the source-sink pairs and end at corresponding sinks in the source-sink pairs.

18. The apparatus of claim 10 , wherein;

recording further comprises recording thread identifications corresponding to the source and sink statements reached in the program;

determining information leakage further comprises determining information leakage occurs only for source-sink pairs having same thread identifications for the source statement and the sink statements in individual ones of the source-sink pairs.

19. A computer program product comprising a computer readable storage device having program code embodied therewith, the program code executable by a computing system to cause the computing system to perform:

during execution of a program, recording by a computing system concrete values exhibited at source and sink statements in the program, wherein source statements read confidential information and sink statements release the confidential information to an outside environment; and

determining, by the computing system, using at least the recorded concrete values and source-sink pairs whether information leakage meeting one or more quantitative criteria occurs by the program, at least by the following:

determining, in response to the source and sink in a source-sink pair having a same thread identification, information leakage by a sink statement in the source-sink pair by determining a quantitative measure of an amount of information released by the sink statement in the source-sink pair; and

determining whether the quantitative measure meets the one or more quantitative criteria, wherein the quantitative measure of the amount of information release is a number of bits that are the same between a source value and a sink value for the source-sink pair, wherein the number of bits that are the same between the source value and the sink value for the source-sink pair is determined using a difference function comparing the source and sink values and signifying a distance between the source and sink values according to a metric.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2013
From: PISTOIA, MARCO; TRIPP, OMER
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 031756/0612 →
Continuity (1)
Related Publication 20150161393A1 · Jun 11, 2015