IP Library › Granted Patent US 10,255,433
Granted Patent B2
US 10,255,433 · App. 14/934,857 · Granted Apr 9, 2019

Executing process code integrity verificaton

Inventors: Kristof Takacs (Waterloo, CA); Jameson Bauer Hyde (Cambridge, CA); Marek Paruzel (Kitchener, CA); Ravi Singh (Toronto, CA)
Assignee: BlackBerry Limited
G06F21/552G06F21/12G06F21/52G06F21/554G06F21/57G06F21/6218
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,255,433
App. No.
14/934,857
Granted
Apr 9, 2019
Kind
B2
Abstract

A system and method to monitor executing processes are disclosed. A respective starting fingerprint of memory of each executing process within at least one process is determined during a system startup phase that is prior to a device operational phase. A present fingerprint of memory of the selected executing process within the at least one process is determined during the device operational phase and while a selected executing process is executing. A difference between the respective starting fingerprint of the selected executing process and the present fingerprint of the selected executing process is determined and an indication of the difference for the selected executing process is reported based on determining the difference.

Claims (53)

1. A method, comprising:

computing, by a processor of a device during a system startup phase that starts privileged software processes that initialize the device and that is prior to transitioning to a device operational phase wherein any software present on the device is able to execute, a respective starting fingerprint of memory of each executing process within at least one process other than a kernel process, each process in the at least one process being started after the kernel process and during the system startup phase;

determining, by the processor during the device operational phase and while a selected executing process is executing, a present fingerprint of memory of the selected executing process where the selected executing process is within the at least one process;

determining a difference between the respective starting fingerprint of the selected executing process and the present fingerprint of the selected executing process; and

reporting, based on determining the difference, an indication of the difference for the selected executing process.

2. The method of claim 1 , wherein the respective starting fingerprint for the selected executing process and the present fingerprint of the selected executing process each comprise a respective fingerprint value calculated for values stored in program memory storing program code executed by a processor to execute the selected executing process when the respective starting fingerprint and the present fingerprint are determined.

3. The method of claim 1 , wherein the respective starting fingerprint for the selected executing process and the present fingerprint of the selected executing process each comprise a respective fingerprint value calculated for values stored in data memory used by the selected executing process when the respective starting fingerprint and the present fingerprint are determined.

4. The method of claim 1 , wherein the respective starting fingerprint for the selected executing process and the present fingerprint of the selected executing process each comprise a respective hash value calculated for values stored in memory associated with the selected executing process when the respective starting fingerprint and the present fingerprint are determined.

5. The method of claim 1 , wherein the respective starting fingerprint for the selected executing process and the present fingerprint of the selected executing process each comprise a respective fingerprint value calculated for values stored in program memory storing a subset of program code executed by a processor to execute the selected executing process when the respective starting fingerprint and the present fingerprint are determined.

6. The method of claim 1 , wherein each of the at least one process executes with elevated privileges.

7. The method of claim 1 , further comprising:

starting, during the system startup phase, each of the at least one process, and

wherein the determining the respective starting fingerprint of each executing process is performed after starting all of the at least one process.

8. The method of claim 1 , further comprising iteratively repeating, during the device operational phase:

determining, during the device operational phase, a new present fingerprint of memory of the selected executing process within the at least one process;

determining, based on determining the new present fingerprint, a present difference between the respective starting fingerprint of the selected executing process and the new present fingerprint of the selected executing process; and

reporting, based on determining the present difference, an indication of the present difference for the selected executing process.

9. The method of claim 1 , wherein some of the at least one process comprises at least one privileged process, each privileged process executing with elevated privileges, the method further comprising:

recording, based on starting a privileged process within the at least one privileged process during the system startup phase, the privileged process into a privileged process list;

detecting, during the device operational phase, a new privileged process, the new privileged process assuming elevated privileges during the device operational phase;

recording, within the privileged process list based on detecting the new privileged process, the new privileged process; and

reporting, based on detecting the new privileged process, the starting of the new privileged process.

10. The method of claim 9 , wherein detecting the new privileged process comprises receiving a request from the new privileged process to assume elevated privileges.

11. The method of claim 9 , further comprising:

creating, based on detecting the new privileged process, a log indicating the new privileged process;

digitally signing the log to create a signed log; and

storing the signed log into a protected storage location.

12. A device, comprising:

a processor;

a memory coupled to the processor;

a fingerprint processor, coupled to the processor and memory, the fingerprint processor, when operating, being configured to:

compute, during a system startup phase that starts privileged software processes that initialize the device and that is prior to transitioning to a device operational phase wherein any software present on the device is able to execute, a respective starting fingerprint of memory of each executing process within at least one process other than a kernel process, each process in the at least one process being started after the kernel process and during the system startup phase;

determine, during the device operational phase and while a selected executing process is executing, a present fingerprint of memory of the selected executing process where the selected executing process is within the at least one process; and

determine a difference between the respective starting fingerprint of the selected executing process and the present fingerprint of the selected executing process; and

a reporting processor that when operating, is configured to report, based on a determination of the difference, an indication of the difference for the selected executing process.

13. The device of claim 12 , wherein the respective starting fingerprint for the selected executing process and the present fingerprint of the selected executing process each comprise a respective fingerprint value calculated for values stored in program memory storing program code executed by a processor to execute the selected executing process when the respective starting fingerprint and the present fingerprint are determined.

14. The device of claim 12 , wherein the respective starting fingerprint for the selected executing process and the present fingerprint of the selected executing process each comprise a respective hash value calculated for values stored in memory associated with the selected executing process when the respective starting fingerprint and the present fingerprint are determined.

15. The device of claim 12 , wherein each of the at least one process executes with elevated privileges.

16. The device of claim 12 , wherein the fingerprint process, when operating, is further configured to iteratively repeat, during the device operational phase:

determining, during the device operational phase, a new present fingerprint of memory of the selected executing process within the at least one process;

determining, based on determining the new present fingerprint, a present difference between the respective starting fingerprint of the selected executing process and the new present fingerprint of the selected executing process; and

reporting, based on determining the difference, an indication of the present difference for the selected executing process.

17. A non-transitory computer readable storage medium having computer readable program code embodied therewith, the computer readable program code comprising instructions executable by a processor to:

compute, by a processor during a system startup phase that starts privileged software processes that initialize the device and that is prior to transitioning to a device operational phase wherein any software present on the device is able to execute, a respective starting fingerprint of memory of each executing process within at least one process other than a kernel process, each process in the at least one process being started after the kernel process and during the system startup phase;

determine, by the processor during the device operational phase and while a selected executing process is executing, a present fingerprint of memory of the selected executing process where the selected executing process is within the at least one process;

determine a difference between the respective starting fingerprint of the selected executing process and the present fingerprint of the selected executing process; and

report, based on determining the difference, an indication of the difference for the selected executing process.

18. The non-transitory computer readable storage medium of claim 17 , wherein the respective starting fingerprint for the selected executing process and the present fingerprint of the selected executing process each comprise a respective fingerprint value calculated for values stored in program memory storing program code executed by a processor to execute the selected executing process when the respective starting fingerprint and the present fingerprint are determined.

19. The non-transitory computer readable storage medium of claim 17 , wherein the respective starting fingerprint for the selected executing process and the present fingerprint of the selected executing process each comprise a respective hash value calculated for values stored in memory associated with the selected executing process when the respective starting fingerprint and the present fingerprint are determined.

20. The non-transitory computer readable storage medium of claim 17 , wherein the computer readable program code further comprising instructions executable by a processor to:

determine, during the device operational phase, a new present fingerprint of memory of the selected executing process within the at least one process;

determine, based on determining the new present fingerprint, a present difference between the respective starting fingerprint of the selected executing process and the new present fingerprint of the selected executing process; and

report, based on determining the present difference, an indication of the present difference for the selected executing process.

Assignments (3)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064271/0199 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2016
From: TAKACS, KRISTOF; HYDE, JAMESON BAUER; PARUZEL, MAREK; SINGH, RAVI
To: BLACKBERRY LIMITED
Reel/Frame 037556/0157 →
Continuity (2)
Provisional Application 62247131 · Oct 27, 2015
Related Publication 20170116413A1 · Apr 27, 2017
Cited By (1)
US 12,717,971