IP Library Granted Patent US 9,092,229
Granted Patent B2
US 9,092,229 · App. 13/463,629 · Granted Jul 28, 2015

Software analysis system and method of use

Inventors: Muhammad Aljammaz (Clifton, VA); Edward J. Wegman (Fairfax Station, VA)
Assignee: GEORGE MASON RESEARCH FOUNDATION, INC.
G06F9/44G06F8/60G06F8/70G06F21/00
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,092,229
App. No.
13/463,629
Granted
Jul 28, 2015
Kind
B2
Abstract

Systems and Methods are utilized for determining a software signature. A software program in a form of a sequence of instructions of the software program is obained. The software program is clustered into a software family. A signature for each software family is generated.

Claims (64)

1. A method for determining a software signature, comprising:

performing processing associated with obtaining a software program in a form of a sequence of instructions (“SOI”) of the software program;

performing processing associated with clustering the software program into a software family; and

performing processing associated with generating a signature for each software family, comprising:

performing processing associated with calculating an average ratio of the software family as a set of discriminatory SOI counts over total discriminatory SOI counts for the software family;

performing processing associated with calculating a ratio of each software program in the software family as a set of discriminatory SOI counts over total discriminatory SOI counts for each software program;

performing processing associated with filtering out each software program if a similarity measure value between the average ratio of the software family and the ratio of the each software program does not exceed a threshold value; and

performing processing associated with repeating the calculation of the average ratio of the software family and the filtration until the similarity measure value between every software program and the software family exceed the threshold value.

2. The method of claim 1 , wherein the performing processing associated with clustering the software program comprises:

performing processing associated with utilizing a matrix comprising SOI information versus software program information.

3. The method of claim 2 , wherein the performing processing associated with clustering the software program comprises:

performing processing associated with pairing software programs;

performing processing associated with measuring structural equivalences between the software pairs; and

performing processing associated with applying a clustering algorithm against the structural equivalences to group the software programs into software families.

4. The method of claim 1 , further comprising:

performing processing associated with classifying a previously unclassified software program into the software family, comprising:

performing processing associated with receiving the previously unclassified software program;

performing processing associated with generating a ratio of the previously unclassified software program; and

performing processing associated with classifying the previously unclassified software program as classified into the software family if a similarity measure value between the ratio of the previously unclassified software program and the signature of the software family exceeds a threshold value.

5. The method of claim 2 , further comprising:

performing processing associated with converting a matrix of software programs in the software family and a collection of the SOI in the software programs into a matrix of the collection of the SOI representing strength of ties between the SOI;

performing processing associated with pairing all the SOI in the software family;

performing processing associated with measuring structural equivalences between the SOI pairs;

performing processing associated with applying a clustering algorithm against the structural equivalences to group the SOI into SOI families;

performing process associated with generating a image matrix of the relational ties between the SOI families; and

performing processing associated with visualizing the image matrix.

6. The method of claim 1 , wherein the SOI comprises:

an Application Programming Interface (“API”); a sequence of n number of low-level assembly instructions; or both.

7. The method of claim 4 , further comprising:

performing process associated with storing a generated signature of a software family into a signature repository.

8. The method of claim 1 , further comprising:

performing processing associated with classifying a previously unclassified software program into the software family.

9. A system for determining a software signature comprising:

a processor configured for:

performing processing associated with obtaining a software program in a form of a sequence of instructions (“SOI”) of the software program;

performing processing associated with clustering the software program into a software family; and

performing processing associated with generating a signature for each software family, comprising:

performing processing associated with calculating an average ratio of the software family as a set of discriminatory SOI counts over total discriminatory SOI counts for the software family;

performing processing associated with calculating a ratio of each software program in the software family as a set of discriminatory SOI counts over total discriminatory SOI counts for each software program;

performing processing associated with filtering out each software program if a similarity measure value between the average ratio of the software family and the ratio of the each software program does not exceed a threshold value; and

performing processing associated with repeating the calculation of the average ratio of the software family and the filtration until the similarity measure value between every software program and the software family exceed the threshold value.

10. The system of claim 9 , wherein the performing processing associated with clustering the software program comprises:

performing processing associated with utilizing a matrix comprising SOI information versus software program information.

11. The system of claim 10 , wherein the performing processing associated with clustering the software program comprises:

performing processing associated with pairing software programs;

performing processing associated with measuring structural equivalences between the software pairs; and

performing processing associated with applying a clustering algorithm against the structural equivalences to group the software programs into software families.

12. The system of claim 1 , further comprising:

performing processing associated with classifying a previously unclassified software program into the software family comprising:

performing processing associated with receiving the previously unclassified software program;

performing processing associated with generating a ratio of the previously unclassified software program; and

performing processing associated with classifying the previously unclassified software program as classified into a software family if a similarity measure value between the ratio of the previously unclassified software program and the signature of the software family exceeds a threshold value.

13. The system of claim 10 , further comprising:

performing processing associated with converting a matrix of software programs in the software family and a collection of the SOI in the software programs into a matrix of the collection of the SOI representing strength of ties between the SOI;

performing processing associated with pairing all the SOI in the software family; performing process associated with measuring structural equivalences between the SOI pairs;

performing processing associated with applying a clustering algorithm against the structural equivalences to group the SOI into SOI families;

performing process associated with generating a image matrix of the relational ties between the SOI families; and

performing processing associated with visualizing the image matrix.

14. The system of claim 9 , wherein the SOI comprises:

an Application Programming Interface (“API”); a sequence of n number of low-level assembly instructions; or both.

15. The system of claim 12 , further comprising:

performing process associated with storing a generated signature of a software family into a signature repository.

16. The system of claim 9 , further comprising:

performing processing associated with classifying a previously unclassified software program into the software family.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2015
From: GEORGE MASON UNIVERSITY
To: GEORGE MASON INTELLECTUAL PROPERTIES, INC.
Reel/Frame 035660/0967 →
CHANGE OF NAME Recorded May 18, 2015
From: GEORGE MASON INTELLECTUAL PROPERTIES, INC.
To: GEORGE MASON RESEARCH FOUNDATION, INC.
Reel/Frame 035716/0157 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2015
From: WEGMAN, EDWARD
To: GEORGE MASON UNIVERSITY
Reel/Frame 035557/0393 →
Continuity (2)
Provisional Application 61483238 · May 6, 2011
Related Publication 20120284691A1 · Nov 8, 2012