IP Library Granted Patent US 10,089,494
Granted Patent B2
US 10,089,494 · App. 15/267,794 · Granted Oct 2, 2018

System and method for securing a network device

Inventors: David Lau (Elmhurst, IL); Gerald R. Thompson (Somerset, NJ); Gregory St.Louis (Geneva, IL); Steve Jacks (Villa Park, IL)
Assignee: LGS Innovations LLC
G06F21/6281G06F21/51G06F2212/1052
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,089,494
App. No.
15/267,794
Granted
Oct 2, 2018
Kind
B2
Abstract

A network device is provided. The network device includes a processor and a memory with code thereupon. The code when executed by the processor causes the processor to provide object files referenced in the code, randomize an order of linking the object files in the code at a link time, and create a plurality of unique static images of a binary file based upon the randomized order.

Claims (45)

1. A network device, comprising:

a processor and a memory with code thereupon, the code which when executed by the processor causes the processor to:

provide object files referenced in the code;

generate a look-up table defining different permutations of an order of linking the object files;

determine if one of the different permutations has been previously utilized;

dynamically attach an indicator in the look-up table for the one different permutation that has been previously utilized:

randomize the order of linking the object files in the code at a link time based upon the dynamically attached indicator; and

create a plurality of unique static images of a binary file based upon the randomized order.

2. The network device of claim 1 , wherein the processor is further configured to randomize the order of linking the object files in the code upon a calling of a linker at the network device.

3. The network device of claim 1 , wherein the processor is further configured to randomize the order of linking the object files in the code such that each of the object files is linked at a different position than a position referenced in the code.

4. The network device of claim 1 , wherein the processor is further configured to provide the object files referenced in the code by compiling the object files at a compiler to obtain compiled object files.

5. The network device of claim 1 , wherein the processor is further configured to: generate the look-up table by applying a randomizer seed to randomize an initial order of the object files, and verify a uniqueness of the randomized order of the object files.

6. The network device of claim 1 , wherein the processor is further configured to create the plurality of unique static images of the binary file by verifying that each binary file in the plurality of unique static images has component locations different from original component locations of the binary file.

7. The network device of claim 1 , wherein the processor is further configured to: distribute the plurality of unique static images respectively to one or more trusted network devices.

8. The network device of claim 1 , wherein the network device is a network switch.

9. The network device of claim 1 , wherein the code which when executed by the processor further causes the processor to repeat the determine and dynamically attach instructions based upon the dynamically attached indicator before the randomize instruction.

10. A method for securing a network, the method comprising:

providing object files referenced in a code;

generating a look-up table defining different permutations of an order of linking the object files;

determining if one of the different permutations has been previously utilized;

dynamically attaching an indicator in the look-up table for the one different permutation that has been previously utilized;

randomizing the order of linking the object files in the code at a link time based upon the dynamically attached indicator;

creating a plurality of unique static images of a binary file based upon the randomized order; and

distributing the plurality of unique static images respectively to one or more trusted network devices.

11. The method of claim 10 , wherein the randomizing step is performed upon a calling of a linker at a network device.

12. The method of claim 10 , wherein the randomizing step is performed such that each of the object files is linked at a different position than a position referenced in the code.

13. The method of claim 10 , wherein the providing step includes compiling the code at a compiler to obtain the object files as compiled.

14. The method of claim 10 , wherein the generating step includes: applying a randomizer seed to an initial order of the object files for the randomizing step; and verifying a uniqueness of the randomized order of the object files.

15. The method of claim 10 , wherein the creating step includes verifying that each binary file in the plurality of unique static images has component locations different from original component locations of the binary file.

16. The method of claim 10 , further comprising:

repeating the determining and dynamically attaching steps based upon the dynamically attached indicator before the randomizing step.

17. A method for securing a network against cyber attacks, the method comprising:

receiving a source code at a network switch, the source code referencing object files in an initial order;

compiling, at the network switch, the source code to obtain compiled object files in the initial order;

calling, at the network switch, a linker;

generating a look-up table defining different permutations for linking the object files based upon the initial order;

determining if one of the different permutations has been previously utilized;

dynamically attaching an indicator in the look-up table for the one different permutation that has been previously utilized;

randomizing, at the network switch, the initial order of linking the compiled object files in the source code by the linker at a link time based upon the dynamically attached indicator; and

creating a plurality of unique static images of a binary file based upon the randomized order.

18. The method of claim 17 , wherein the randomizing step is performed such that each of the compiled object files is linked at a different position than a position referenced in the source code.

19. The method of claim 17 , wherein the generating step includes:

applying a randomizer seed to the initial order of the compiled object files for the randomizing step; and

verifying a uniqueness of the randomized order of the compiled object files.

20. The method of claim 17 , further comprising: distributing the plurality of unique static images respectively to one or more trusted network devices.

Assignments (4)
NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS Recorded Jan 22, 2025
From: CACI LGS INNOVATIONS LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 069987/0444 →
CHANGE OF NAME Recorded Nov 4, 2024
From: LGS INNOVATIONS LLC
To: CACI LGS INNOVATIONS LLC
Reel/Frame 069292/0991 →
NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS Recorded May 29, 2019
From: LGS INNOVATIONS LLC
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 049312/0843 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2016
From: LAU, DAVID; THOMPSON, GERALD R.; JACKS, STEVE; ST. LOUIS, GREGORY
To: LGS INNOVATIONS LLC
Reel/Frame 039858/0415 →
Continuity (2)
Provisional Application 62347732 · Jun 9, 2016
Related Publication 20170357593A1 · Dec 14, 2017