IP Library Granted Patent US 9,361,456
Granted Patent B2
US 9,361,456 · App. 13/854,287 · Granted Jun 7, 2016

Secure computing device using a library of programs

Inventors: Terrence Ming Swee Heng (Arlington Heights, IL); Walter Lee Davis (Rogersville, MO)
Assignee: UNIQUESOFT, LLC
G06F21/55G06F21/552
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,361,456
App. No.
13/854,287
Granted
Jun 7, 2016
Kind
B2
Abstract

A computing device includes a central processing resource, memory, a network interface, and a security control module. The security control module determines when to change a program of the computing device. When the program is to be changed, the security control module accesses a library of programs that includes a plurality of versions of the program and selects one of the plurality of versions of the program. The security control module then updates an active program list to include the selected version of the program. When the program is evoked, the central processing resource uses the selected version of the program such that execution of the program is changed, which changes internal operation of the computing device thereby reducing adverse impact of the malicious software.

Claims (102)

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

determining to change a program of the computing device; and

when the program is to be changed:

accessing a library of programs that includes a plurality of versions of the program;

selecting one of the plurality of versions of the program;

updating an active program list to include the selected one of the plurality of versions of the program; and

when the program is evoked, utilizing the selected one of the plurality of versions of the program such that execution of the program is changed, which changes internal operation of the computing device thereby reducing adverse impact of the malicious software.

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

utilizing a pseudo random sequence to identify, at pseudo random time intervals, the program from the library of programs;

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 1 , wherein the selecting one of the plurality of versions of the program comprises one of:

selecting a new version of an application program from a plurality of versions of application programs and using a currently active operation system program;

selecting a new version of an operation system program from a plurality of versions of operation systems; and

selecting the new version of the application program from the plurality of versions of application programs and selecting the new version of the operation system program from the plurality of versions of operation systems, wherein the plurality of versions of the program includes the plurality of versions of application programs and the plurality of versions of operation systems.

5. The method of claim 1 , wherein the selecting one of the plurality of versions of the program comprises:

retrieving the selected one of the plurality of versions of the program from memory of the computing device.

6. The method of claim 1 , wherein the selecting one of the plurality of versions of the program comprises:

sending a request to a trusted network computing device regarding the selected one of the plurality of versions of the program; and

receiving the selected one of the plurality of versions of the program from the trusted network computing device.

7. The method of claim 1 further comprises:

determining to change a portion of the program; and

when the portion of the program is to be changed:

accessing the library of program that includes a plurality of versions of portions of the program;

selecting one of the plurality of versions of portions of the program;

updating an active program list to include the selected one of the plurality of versions of portions of the program; and

when the program is evoked, utilizing the selected one of the plurality of versions of portions of the program.

8. The method of claim 1 further comprises:

determining to change the program by determining to change at least a portion of the program; and

when the at least a portion of the program is to be changed:

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

receiving the new versions of the at least a portion of the program;

replacing the at least a portion of the program of the plurality of versions of the program with the new versions of the at least a portion of the program; and

selecting one of the plurality of versions of the program that includes the new versions of the at least a portion of the program.

9. The method of claim 8 , wherein the sending 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.

10. The method of claim 8 , wherein the sending 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.

11. 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 a program of the computing device; and

when the program is to be changed:

access a library of programs that includes a plurality of versions of the program;

select one of the plurality of versions of the program; and

update an active program list to include the selected one of the plurality of versions of the program, wherein when the program is evoked, the central processing resource uses the selected one of the plurality of versions of the program such that execution of the program is changed, which changes internal operation of the computing device thereby reducing adverse impact of malicious software.

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

utilizing a pseudo random sequence to identify, at pseudo random time intervals, the program from the library of programs;

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.

13. The computing device of claim 11 , 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.

14. The computing device of claim 11 , wherein the security control module is further operable to select the one of the plurality of versions of the program by one of:

selecting a new version of an application program from a plurality of versions of application programs and using a currently active operation system program;

selecting a new version of an operation system program from a plurality of versions of operation systems; and

selecting the new version of the application program from the plurality of versions of application programs and selecting the new version of the operation system program from the plurality of versions of operation systems, wherein the plurality of versions of the program includes the plurality of versions of application programs and the plurality of versions of operation systems.

15. The computing device of claim 11 , wherein the security control module is further operable to select the one of the plurality of versions of the program by:

retrieving the selected one of the plurality of versions of the program from memory of the computing device.

16. The computing device of claim 11 , wherein the security control module is further operable to select the one of the plurality of versions of the program by:

sending a request to a trusted network computing device regarding the selected one of the plurality of versions of the program; and

receiving the selected one of the plurality of versions of the program from the trusted network computing device.

17. The computing device of claim 11 , wherein the security control module is further operable to:

determine to change a portion of the program; and

when the portion of the program is to be changed:

access the library of program that includes a plurality of versions of portions of the program;

select one of the plurality of versions of portions of the program; and

update an active program list to include the selected one of the plurality of versions of portions of the program, wherein when the program is evoked, the central processing resource uses the selected one of the plurality of versions of portions of the program.

18. The computing device of claim 11 , wherein the security control module is further operable to:

determine to change the program by determining to change at least a portion of the program; and

when the at least a portion of the program is to be changed:

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

receive the new versions of the at least a portion of the program;

replace the at least a portion of the program of the plurality of versions of the program with the new versions of the at least a portion of the program; and

select one of the plurality of versions of the program that includes the new versions of the at least a portion of the program.

19. The computing device of claim 18 , 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, which resides within the computing device; and

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

20. The computing device of claim 18 , 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 the request to the software generation module based on the network address.

21. The computing device of claim 11 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 030123 FRAME 0204. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 19, 2013
From: HENG, TERRENCE MING SWEE; DAVIS, WALTER LEE
To: UNIQUESOFT, LLC
Reel/Frame 030656/0965 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2013
From: HENG, TERRANCE MING SWEE; DAVIS, WALTER LEE
To: UNIQUESOFT , L.L.C.
Reel/Frame 030123/0204 →
Continuity (1)
Related Publication 20140298453A1 · Oct 2, 2014