IP Library Granted Patent US 11,899,536
Granted Patent B2
US 11,899,536 · App. 17/366,568 · Granted Feb 13, 2024

Autoscreenshot systems and methods for virtual operating system states

Inventor: Collin Mitchell (Rochester, NY)
Assignee: DATTO, INC.
G06F11/1448G06F9/4401G06F9/45558G06N3/04G11C29/08G06F2009/45575
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 11,899,536
App. No.
17/366,568
Granted
Feb 13, 2024
Kind
B2
Abstract

Described screenshot verification systems and methods for automatically verifying the integrity of a backup image or other process-of-interest using a screenshot verification system, as well as disaster recovery systems including said systems and performing said methods. In accordance with various aspects of the present disclosure, a virtual machine is booted and screenshots of the boot process are taken, which are used by a trained model, such as a convolutional neural network, to determine a boot state consistency. The systems and methods described deliver over 99% accuracy and do not involve regular expression analysis typical of conventional methods.

Claims (55)

1. A method of evaluating the integrity of a process-of-interest associated with a protected machine, the method comprising:

(a) initiating, via an operating system managing the protected machine, the process-of-interest;

(b) taking, via the operating system managing the protected machine, a plurality of screenshots of display output while the process-of-interest is being initiated;

(c) communicating one or more of the plurality of screenshots of the display output to a prediction module;

(d) using the prediction module, determining a state classification for each screenshot of the plurality of screenshots of the display output using a trained model, based on one or more determined attributes associated with each screenshot of the plurality of screenshots, wherein the trained model is an artificial neural network;

(e) adding each screenshot of the plurality of screenshots of the display output and the state classification associated with each screenshot to a memory array;

(f) testing at least a first portion of the memory array to determine a consistency class for the process-of-interest based on screenshots and the associated state classifications stored in at least the first portion of the memory array, wherein the consistency class represents a steady state classification over a particular period of time;

(g) based on the consistency class determined based on at least the first portion of the memory array, performing at least one of the following:

(g1) repeating steps (b) through (g) and testing at least a second portion of the memory array to determine a consistency class for the process-of-interest based on the screenshots and the associated state classifications stored in at least the second portion of the memory array, and wherein the second portion of the memory array includes one or more screenshots and one or more state classifications not included in the first portion of the memory array; and

(g2) generating a report concerning the consistency class determined in connection with at least the first portion of the memory array, the report comprising a representative screenshot selected from the screenshots stored within the memory array and the consistency class.

2. The method of claim 1 , wherein the associated state classifications determined in association with each screenshot of the plurality of screenshots is at least one of: positive; informational; neutral; and negative.

3. The method of claim 2 , wherein at least the first portion of the memory array has a sample period m 1 and is tested to determine the consistency class by determining whether the first portion of the memory array has a common state classification associated with the one or more screenshots of the plurality of screenshots of the display output across the first portion of the memory array, wherein m 1 is an integer between 2 and 1000.

4. A method of evaluating the integrity of at least a first backup image associated with a protected machine, the method comprising:

(a) booting, via an operating system managing a first device, a virtual machine based on at least the first backup image;

(b) taking, via the operating system managing the first device, a plurality of samples of display output of the virtual machine over a first duration;

(c) communicating, the plurality of samples to a prediction module located on a second device, the prediction module comprising a trained model;

(d) determining, via the trained model of the prediction module, state classifications for one or more samples of the plurality of samples, based on one or more determined attributes associated with the one or more samples of the plurality of samples, wherein the trained model is an artificial neural network trained using a plurality of training images from one or more operating systems;

(e) adding each sample of the plurality of samples and each associated state classifications to a memory array;

(f) testing, at least a first portion of the memory array to determine a consistency class based on the plurality of samples and the state classifications stored in at least the first portion of the memory array, wherein the consistency class represents a steady state classification over a particular period of time;

(g) based on the consistency class determined based on at least the first portion of the memory array, performing at least one of the following:

(g1) repeating steps (b) through (g) and testing at least a second portion of the memory array to determine a consistency class based on the plurality of samples and state classifications stored in at least the second portion of the memory array, wherein the second portion of the memory array includes one or more samples and one or more state classifications not included in the first portion of the memory array; and

(g2) generating a report concerning the consistency class determined in connection with at least the first portion of the memory array, the report comprising a representative screenshot selected from the screenshots stored within the memory array and the consistency class.

5. The method of claim 4 , wherein the method further comprises:

(h) generating a recommended action to be taken based on the consistency class; and

(i) taking the recommended action, wherein the recommended action is taken by at least one of the first device and the second device.

6. The method of claim 5 , wherein one or more of steps (d) through (i) are performed by at least one processor of the second device based on instructions for performing those steps stored in a memory of the second device.

7. The method of claim 5 , wherein the first device is the protected machine, and the second device is a screenshot verification server located remotely from the protected machine.

8. The method of claim 5 , wherein the first device is a remote storage server that is storing the backup image associated with the protected machine, and the second device is a screenshot verification server located remotely from the protected machine and the remote storage server.

9. The method of claim 5 , wherein the first device and the second device are the same device and are located remotely from the protected machine.

10. The method of claim 5 , wherein the state classification determined for each sample of the plurality of samples is at least one of: positive; informational; neutral; and negative.

11. The method of claim 5 , wherein at least the first portion of the memory array has a sample period m 1 and is tested to determine the consistency class by determining whether the first portion of the memory array has a common state classification associated with the one or more samples of the plurality of samples of the virtual machine across the first portion of the memory array, wherein m 1 is an integer between 2 and 1000.

12. The method of claim 11 , wherein the second portion of the memory array has a sample period m 2 and is tested to determine the consistency class based on the second portion of the memory array by determining whether the second portion of the memory array has a common state classification associated with the one or more samples of the plurality of samples of the virtual machine stored in the memory array across the sample period m 2 , wherein m 2 is an integer between 2 and 1000.

13. The method of claim 12 , wherein at least the second portion of the memory array includes one or more samples and one or more state classifications not included in the first portion of the memory array.

14. The method of claim 5 , wherein the recommended action includes at least one of: reporting information regarding the consistency class; recording information regarding the consistency class; and ending the method.

15. The method of claim 4 , wherein the consistency class is at least one of: consistent positive; consistent negative; consistent neutral; and consistent informational.

16. The method of claim 4 , wherein the method further comprises: (g3) repeating steps (b) through (g) one or more times until a timeout duration is reached.

17. A backup system comprising: a first device including at least one processor and memory including instructions that, when executed by the at least one processor, cause the first device to perform one or more of the following steps:

(a) booting a virtual machine based on at least a first backup image;

(b) taking a plurality of samples of the display output of the virtual machine over a first duration while the virtual machine is booting;

(c) communicating the plurality of samples of the virtual machine to a prediction module comprising a trained model, wherein the trained model is an artificial neural network trained using a plurality of boot-state training images from one or more operating systems;

(d) determining, via the prediction module, state classifications for each sample of the plurality of samples of the virtual machine, based on one or more determined attributes associated with the one or more samples of the plurality of samples;

(e) adding each sample of the plurality of samples of the virtual machine and the state classifications determined in association with each sample to a memory array;

(f) testing at least a first portion of the memory array to determine a consistency class based on the plurality of samples and the state classifications stored in at least the first portion of the memory array, wherein the consistency class represents a steady state classification over a particular period of time; and

(g) based on the consistency class determined based on at least the first portion of the memory array, performing at least one of the following:

(g1) repeating steps (b) through (g) and testing at least a second portion of the memory array to determine a consistency class based on the plurality of samples and state classifications stored in at least the second portion of the memory array, wherein the second portion of the memory array includes one or more samples and one or more state classifications not included in the first portion of the memory array;

(g2) generating a report concerning the consistency class determined in connection with at least the first portion of the memory array, the report comprising a representative sample selected from the plurality of samples stored within the memory array and the consistency class; and

(g3) generating a recommended action to be taken based on the consistency class and taking the recommended action, wherein the recommended action including at least one of: reporting information regarding the consistency class; recording information regarding the consistency class; and ending the method.

18. The system of claim 17 , wherein the system further comprises a second device including at least one processor and memory including instructions that, when executed by the at least one processor, cause the second device to perform one or more of steps (a) through (g).

19. The system of claim 18 , wherein the first device is at least one of: a protected machine; a screenshot verification server; and a remote storage server.

20. The system of claim 19 , wherein the second device is at least one of: a protected machine; a screenshot verification server; and a remote storage server.

21. The system of claim 20 , wherein the first device is a protected machine and the second device is a screenshot verification server, the screenshot verification server being located at a cloud storage center remote from the protected machine.

22. The system of claim 17 , wherein the state classification associated with each sample of the plurality of samples is at least one of: positive; informational; neutral; and negative.

23. The system of claim 17 , wherein at least the first portion of the memory array has a sample period m 1 and is tested to determine the consistency class by determining whether the first portion of the memory array has a common state classification associated with the one or more samples of the plurality of samples of the virtual machine across the first portion of the memory array, wherein m 1 is an integer between 2 and 1000.

24. The system of claim 23 , wherein at least the second portion of the memory array has a sample period m 2 and is tested to determine the consistency class based on the second portion of the memory array by determining whether the second portion of the memory array has a common state classification associated with the one or more samples of the plurality of samples of the virtual machine stored in the memory array across the sample period m 2 , wherein m 2 is an integer between 2 and 1000.

25. The system of claim 23 , wherein the consistency class is at least one of: consistent positive; consistent negative; consistent neutral; and consistent informational.

Assignments (5)
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Mar 24, 2025
From: KASEYA US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS SECOND LIEN COLLATERAL AGENT
Reel/Frame 070608/0192 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Mar 21, 2025
From: KASEYA US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 070586/0834 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2024
From: DATTO, LLC
To: KASEYA US LLC
Reel/Frame 069176/0037 →
CHANGE OF NAME Recorded Oct 27, 2023
From: DATTO, INC.
To: DATTO, LLC
Reel/Frame 065385/0256 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2021
From: MITCHELL, COLLIN
To: DATTO, INC.
Reel/Frame 056744/0488 →