IP Library Granted Patent US 9,104,862
Granted Patent B2
US 9,104,862 · App. 13/854,262 · Granted Aug 11, 2015

Secure computing device using new software versions

Inventors: Terrence Ming Swee Heng (Arlington Heights, IL); Walter Lee Davis (Rogersville, MO)
Assignee: UniqueSoft, LLC
G06F21/55G06F21/56G06F21/566G06F21/75
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,104,862
App. No.
13/854,262
Granted
Aug 11, 2015
Kind
B2
Abstract

A computing device includes a central processing resource, memory, a network interface, and a security control module. The security control module is operable to determine to change at least a portion of a program of the computing device. When the program, or portion thereof, is to be changed, the security control module sends a request to a software generation module for a new version of the program, or portion thereof. The security control module then receives the new version of the program, or portion thereof, and replaces, within the memory, the program, or portion thereof, with the new version of the program, or portion thereof. When the program is evoked, the central processing resource uses the new version of the program, or portion thereof, such that execution of the program is changed, which changes internal operation of the computing device thereby reducing adverse impact of malicious software.

Claims (82)

1. A method for reducing adverse impact of malicious software in a computing device, the method comprises:

determining to change at least a portion of a program of the computing device at a rate less than a time needed for malicious software to acquire knowledge of the computing device to impose adverse impact on the computing device; and

when the at least the portion of the program is to be changed based on the rate:

sending a request to a software generation module for a new version of the at least the portion of the program;

facilitating receiving the new version of the at least the portion of the program;

coordinating replacing the at least the portion of the program with the new version of the at least the portion of the program; and

when the program is evoked, utilizing the new version of the at least the portion of the program, such that execution of the program is changed, which changes an internal operation of the computing device, in order to inhibit the malicious software from acquiring the knowledge to impose the adverse impact on the computing device.

2. The method of claim 1 , wherein the determining to change the at least the portion of the program comprises at least one of:

utilizing a pseudo random sequence to identify, at pseudo random time intervals, the program from a plurality of programs and to identify the at least the portion from a plurality of portions of the program;

determining when the program has been evoked a predetermined number of time or a pseudo random number of times;

determining that the program is operating outside of anticipated normal operating parameters; and

receiving a command from a trusted management device.

3. The method of claim 1 , wherein the program comprises:

an operating system (OS) that includes a plurality of OS functions;

a user application that includes a plurality of user application functions; or

a system application that includes a plurality of system application functions.

4. The method of claim 3 further comprises:

the OS functions including process management, interrupts, device management, networking, memory management, file system, security, and input/output management, wherein respective OS functions include one or more OS function sub-routines and wherein a portion of the OS includes one of the OS functions or the corresponding one or more OS function sub-routines;

one of the user application functions includes one or more user application function sub-routines, wherein a portion of the user application includes the one of the user application functions or the one or more user application function sub-routines; and

one of the system application functions includes one or more system application function sub-routines, wherein a portion of the system application includes the one of the system application functions or the one or more system application function sub-routines.

5. The method of claim 1 , wherein the sending of the request to the software generation module comprises:

generating the request to include a local address of the software generation module, which resides within the computing device; and

sending the request to the software generation module based on the local address.

6. The method of claim 1 , wherein the sending of the request to the software generation module comprises:

generating the request to include a network address of the software generation module, which resides within a trusted network computing device; and

sending the request to the software generation module based on the network address.

7. The method of claim 1 , wherein the sending of the request to the software generation module comprises:

generating the request to include input requirements for the at least the portion of the program, wherein the software generation module uses the input requirements to generate application requirements, which the software generation module uses to generate the new version of the at least the portion of the program.

8. The method of claim 1 , wherein the facilitating of the receiving the new version of the at least the portion of the program comprises:

authenticating the new version of the at least the portion of the program based on a trusted relationship with the software generation module.

9. The method of claim 1 , wherein the coordinating of the replacing the at least the portion of the program comprises:

facilitating storing the new version of the at least the portion of the program in memory of the computing device; and

updating a memory mapping for the program to include the new version of the at least the portion of the program and to exclude a previous version of the at least the portion of the program.

10. A computing device comprises:

a central processing resource;

memory operably coupled to the central processing resource;

a network interface operably coupled to the central processing resource; and

a security control module operable to:

determine to change at least a portion of a program of the computing device at a rate less than a time needed for malicious software to acquire knowledge of the computing device to impose adverse impact on the computing device; and

when the at least the portion of the program is to be changed based on the rate:

send a request to a software generation module for a new version of the at least the portion of the program;

facilitate receiving the new version of the at least the portion of the program;

and

facilitate replacing, within the memory, the at least the portion of the program with the new version of the at least the portion of the program, wherein, when the program is evoked, the central processing resource uses the new version of the at least the portion of the program, such that execution of the program is changed, which changes an internal operation of the computing device, in order to inhibit the malicious software from acquiring the knowledge to impose the adverse impact on the computing device.

11. The computing device of claim 10 , wherein the security control module is further operable to determine to change the at least the portion of the program by at least one of:

utilizing a pseudo random sequence to identify, at pseudo random time intervals, the program from a plurality of programs and to identify the at least the portion from a plurality of portions of the program;

determining when the program has been evoked a predetermined number of time or a pseudo random number of times;

determining that the program is operating outside of anticipated normal operating parameters; and

receiving a command from a trusted management device.

12. The computing device of claim 10 , wherein the program comprises:

an operating system (OS) that includes a plurality of OS functions;

a user application that includes a plurality of user application functions; or

a system application that includes a plurality of system application functions.

13. The computing device of claim 12 further comprises:

the OS functions including process management, interrupts, device management, networking, memory management, file system, security, and input/output management, wherein respective OS functions include one or more OS function sub-routines and wherein a portion of the OS includes one of the OS functions or the corresponding one or more OS function sub-routines;

one of the user application functions includes one or more user application function sub-routines, wherein a portion of the user application includes the one of the user application functions or the one or more user application function sub-routines; and

one of the system application functions includes one or more system application function sub-routines, wherein a portion of the system application includes the one of the system application functions or the one or more system application function sub-routines.

14. The computing device of claim 10 further comprises:

the software generation module operably coupled to the security control module, wherein the security control module is further operable to send the request to the software generation module by:

generating the request to include a local address of the software generation module; and

sending the request to the software generation module based on the local address.

15. The computing device of claim 10 , wherein the security control module is further operable to send the request to the software generation module by:

generating the request to include a network address of the software generation module, which resides within a trusted network computing device; and

sending, via the network interface, the request to the software generation module based on the network address.

16. The computing device of claim 10 , wherein the security control module is further operable to send the request to the software generation module by:

generating the request to include input requirements for the at least the portion of the program, wherein the software generation module uses the input requirements to generate application requirements, which the software generation module uses to generate the new version of the at least the portion of the program.

17. The computing device of claim 10 , wherein the security control module is further operable to facilitate receiving the new version of the at least a portion of the program by:

authenticating the new version of the at least the portion of the program based on a trusted relationship with the software generation module.

18. The computing device of claim 10 , wherein the security control module is further operable to facilitate replacing the at least the portion of the program by:

facilitating writing the new version of the at least the portion of the program to the memory;

and

updating a memory mapping for the program to include the new version of the at least the portion of the program and to exclude a previous version of the at least the portion of the program.

19. The computing device of claim 10 further comprises:

the central processing resource including one or more of:

one or more processing modules;

one or more memory control units;

one or more input/output interface control units;

one or more peripheral control units;

one or more video graphics processing units; and

the memory including one or more of:

one or more main memories; and

one or more external memories.

Assignments (3)
CHANGE OF NAME Recorded Feb 10, 2021
From: UNIQUESOFT, LLC
To: UPDRAFT, LLC
Reel/Frame 055270/0683 →
CORRECTIVE ASSIGNMENT TO CORRECT THE FIRST ASSIGNOR'S NAME IN THE ASSIGNMENT DOCUMENT FROM TERRANCE TO TERRENCE PREVIOUSLY RECORDED ON REEL 030122 FRAME 0854. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 12, 2013
From: HENG, TERRENCE MING SWEE; DAVIS, WALTER LEE
To: UNIQUESOFT, LLC
Reel/Frame 030601/0730 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2013
From: HENG, TERRANCE MING SWEE; DAVIS, WALTER LEE
To: UNIQUESOFT , L.L.C.
Reel/Frame 030122/0854 →
Continuity (1)
Related Publication 20140298452A1 · Oct 2, 2014