IP Library Granted Patent US 9,094,449
Granted Patent B2
US 9,094,449 · App. 14/165,368 · Granted Jul 28, 2015

Fight-through nodes for survivable computer network

Inventors: Stephen K. Brueckner (Ithaca, NY); Kenneth J. Thurber (Hopkins, MN)
Assignee: Architecture Technology Corporation
H04L63/1441G06F9/45533G06F21/552H04L63/1416H04L63/20
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,094,449
App. No.
14/165,368
Granted
Jul 28, 2015
Kind
B2
Abstract

A survivable network is described in which one or more network device includes enhanced functionality to fight through cyber attacks. A Fight-Through Node (FTN) is described, which may be a combined hardware/software system that enhances existing networks with survivability properties. A network node comprises a hardware-based processing system having a set of one or more processing units, a hypervisor executing on each one of the processing units, and a plurality of virtual machines executing on each of the hypervisor. The network node includes an application-level dispatcher to receive a plurality of transaction requests from a plurality of network communication session with a plurality of clients and distribute a copy of each of the transaction requests to the plurality of virtual machines executing on the network node over a plurality of time steps to form a processing pipeline of the virtual machines.

Claims (34)

1. A method comprising:

receiving a plurality of transaction requests associated with one or more network communication sessions;

distributing copies of the transaction requests to a plurality of virtual machines over a plurality of time steps to form a processing pipeline of the virtual machines;

upon dispatching a threshold number (n) of the transaction requests to the plurality of virtual machines, detecting whether any of the virtual machines in the processing pipeline has been compromised;

when none of the virtual machines in the processing pipeline has been compromised, check-pointing the processing pipeline of virtual machines by recording a state for each of the plurality of virtual machines;

when at least one of the virtual machines in the processing pipeline has been compromised, removing the compromised virtual machines from the processing pipeline; and

reordering the processing pipeline by promoting the non-compromised virtual machines to earlier stages in the processing pipeline that correspond to stages associated with the removed virtual machines that have been compromised.

2. The method of claim 1 , further comprising, instantiating new virtual machines and assigning the new virtual machines within stages previously associated with the non-compromised virtual machines that have been promoted to earlier stages in the processing pipeline.

3. The method of claim 2 , further comprising initializing the new virtual machines to a state previously recorded when checkpointing the processing pipeline.

4. The method of claim 1 , wherein receiving a plurality of transaction requests comprises receiving, with a server, a plurality inbound transaction requests from one or more client devices.

5. The method of claim 1 ,

wherein receiving a plurality of transaction requests comprises receiving a plurality outbound transaction requests from application software executing on a client device; and

wherein distributing copies of the transaction requests to a plurality of virtual machines comprises distributing copies of the transaction requests to a plurality of virtual machines executing on the client device.

6. The method of claim 1 , further comprising:

executing each of the transactions on each of the virtual machines; and

for each of the virtual machines, after execution of each transaction, synchronizing resultant state data from the virtual machine to a subsequent one of the virtual machines in the processing pipelines of virtual machines.

7. A network node comprising:

a hardware-based processing system having a set of one or more processing units;

a hypervisor executing on each one of the processing units;

a plurality of virtual machines executing on the hypervisor;

an application-level dispatcher to receive a plurality of transaction requests associated with one or more network communication sessions, wherein the application-level dispatcher distributes a copy of each of the transaction requests to the plurality of virtual machines executing on the network node over a plurality of time steps to form a processing pipeline of the virtual machines;

one or more intrusion detection systems to detect whether any of the virtual machines in the processing pipeline has been compromised upon the distribution of a threshold number (n) of the transaction requests to the plurality of virtual machines by the dispatcher;

a control module that coordinates with the hypervisor to checkpoint the processing pipeline of virtual machines by recording a state for each of the plurality of virtual machines when none of the virtual machines in the processing pipeline has been compromised,

wherein, when at least one of the virtual machines in the processing pipeline has been compromised, the control module instructs the hypervisor to remove the compromised virtual machines from the processing pipeline and reorders the processing pipeline by promoting the non-compromised virtual machines to earlier stages in the processing pipeline that correspond to stages associated with the removed virtual machines.

8. The network node of claim 7 , wherein the processing units include a plurality of processing units connected to the dispatcher by an unprivileged local area network within the network node and connected to the control unit by a privileged local area network within the network node.

9. The network node of claim 7 , wherein the dispatcher provides a store-and-forward component that sends transaction requests to the virtual machines after each synchronization time step and sends responses to clients only after the one or more instruction detection systems verify integrity of the virtual machines post-transaction.

10. The network node of claim 7 , wherein the control module instantiates new virtual machines and assigns the new virtual machines within stages previously associated with the non-compromised virtual machines that have been promoted to earlier stages in the processing pipeline.

11. The network node of claim 7 , wherein the control module initializes the new virtual machines to a state previously recorded when check-pointing the processing pipeline.

12. The network node of claim 7 , wherein the network node comprises a server.

13. The network node of claim 7 , wherein the network node comprises a client device, the client device further comprising:

application software executing on the network node that issues the transaction requests as outbound transaction requests to a server,

wherein the application-level dispatcher receives the transaction requests from the application software.

14. The network node of claim 7 , wherein the network node comprises a firewall, a gateway, a router, or a switch.

15. The network node of claim 7 , wherein, after execution of each transaction, each of the virtual machines synchronizes resultant state data to a subsequent one of the virtual machines in the processing pipelines of virtual machines.

Continuity (3)
Continuation In Part 13352148 · Jan 17, 2012
Provisional Application 61534817 · Sep 14, 2011
Related Publication 20140310810A1 · Oct 16, 2014