IP Library Granted Patent US 12,399,993
Granted Patent B2
US 12,399,993 · App. 17/980,652 · Granted Aug 26, 2025

Recovering infected snapshots in a snapshot chain

Inventors: Adam Gee (San Francisco, CA); Surendar Chandra (Sunnyvale, CA); Gregory Robert Johnston (Mountain View, CA); Ishaan Sang (Mountain View, CA)
Assignee: Rubrik, Inc.
G06F21/565G06F11/1435G06F11/1469G06F16/156G06F21/53G06F21/56G06F21/568G06F2201/84G06F2221/032G06F2221/034
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 12,399,993
App. No.
17/980,652
Granted
Aug 26, 2025
Kind
B2
Abstract

Subject matter related to data management is disclosed. A most recent snapshot in a snapshot chain that is not infected by malware may be identified based on mounting snapshots in the snapshot chain and determining whether the snapshots are infected. A selection of an infected snapshot may be received, where the infected snapshot may be more recent than the identified most recent snapshot. The selected infected snapshot may be mounted. Based on mounting the infected snapshot, a determination of which content in the selected snapshot are not infected may be made. Based on determining which content in the selected snapshot is not infected, at least one of the non-infected content may be recovered.

Claims (56)

1. A method, comprising:

displaying a graphical user interface showing:

at least a portion of respective snapshot chains for respective computing objects of a plurality of computing objects, wherein the respective snapshot chains are represented as one or more individual snapshots, wherein a representation of an individual snapshot indicates whether the individual snapshot is infected with malware, and wherein a first computing object of the plurality of computing objects is a first virtual machine, a first file system, a first database, or a first network attached storage system, and a second computing object of the plurality of computing objects is a second virtual machine, a second file system, a second database, or a second network attached storage system, and

across the respective snapshot chains, a cut line delineating infected snapshots from non-infected snapshots, wherein snapshots above the cut line are restricted from being recovered;

receiving a selection, from a user, of an infected snapshot in a snapshot chain of the respective snapshot chains associated with a computing object of the respective computing objects, wherein the infected snapshot is more recent than a most recent non-infected snapshot identified in the snapshot chain and is positioned above the cut line;

mounting, in response to the selection, the selected infected snapshot;

determining, based at least in part on mounting the selected infected snapshot, which content in the selected infected snapshot are not infected;

receiving, based at least in part on the selection, a command to recover, for the respective computing objects, non-infected data; and

recovering, in response to the command, for the respective computing objects, a non-infected snapshot from the respective snapshot chains in accordance with the cut line and at least one of the non-infected content in the selected infected snapshot.

2. The method of claim 1 , further comprising:

identifying a most recent snapshot in the respective snapshot chains that is not infected by malware, wherein the identifying comprises mounting snapshots in the respective snapshot chains in reverse chronological order and determining whether the mounted snapshots are infected by malware.

3. The method of claim 2 , wherein mounting the snapshots and determining whether the mounted snapshots are infected is repeated until at least one non-infected snapshot in the respective snapshot chains is identified.

4. The method of claim 2 , wherein mounting the snapshots and determining whether the mounted snapshots are infected is repeated past at least one non-infected snapshot in the respective snapshot chains being identified.

5. The method of claim 2 , further comprising:

repeating the identifying for all computing objects in a system.

6. The method of claim 2 , wherein determining whether the mounted snapshots are infected comprises:

applying YARA rules and hash matching to the mounted snapshots.

7. The method of claim 2 , wherein mounting the snapshots comprises mounting the snapshots in a sandboxed virtual machine.

8. The method of claim 2 , further comprising:

hydrating data in a mounted snapshot before determining whether the mounted snapshots are infected.

9. An apparatus, comprising:

a processor; and

a memory storing instructions that, when executed by the processor, cause the apparatus to:

display a graphical user interface showing:

at least a portion of respective snapshot chains for respective computing objects of a plurality of computing objects, wherein the respective snapshot chains are represented as one or more individual snapshots, wherein a representation of an individual snapshot indicates whether the individual snapshot is infected with malware, and wherein a first computing object of the plurality of computing objects is a first virtual machine, a first file system, a database, or a first network attached storage system, and a second computing object of the plurality of computing objects is a second virtual machine, a second file system, a second database, or a second network attached storage system, and

across the respective snapshot chains, a cut line delineating infected snapshots from non-infected snapshots, wherein snapshots above the cut line are restricted from being recovered;

receive a selection, from a user, of an infected snapshot in a snapshot chain of the respective snapshot chains associated with a computing object of the respective computing objects, wherein the infected snapshot is more recent than a most recent non-infected snapshot identified in the snapshot chain and is positioned above the cut line;

mount, in response to the selection, the selected infected snapshot;

determine, based at least in part on mounting the selected infected snapshot, which content in the selected infected snapshot are not infected;

receive, based at least in part on the selection, a command to recover, for the respective computing objects, non-infected data; and

recover, in response to the command, for the respective computing objects, anon-infected snapshot from the respective snapshot chains in accordance with the cut line and at least one of the non-infected content in the selected infected snapshot.

10. The apparatus of claim 9 , wherein the instructions are further executable by the processor to cause the apparatus to:

identify a most recent snapshot in the respective snapshot chains that is not infected by malware, wherein, to identify the most recent snapshot, the instructions are further executable by the processor to cause the apparatus to:

mount snapshots in the respective snapshot chains in reverse chronological order and determine whether the mounted snapshots are infected by malware.

11. The apparatus of claim 10 , wherein the instructions are further executable by the processor to cause the apparatus to:

repeat mounting the snapshots and determining whether the mounted snapshots are infected until at least one non-infected snapshot in the respective snapshot chains is identified.

12. The apparatus of claim 10 , wherein the instructions are further executable by the processor to cause the apparatus to:

repeat mounting the snapshots and determining whether the mounted snapshots are infected past at least one non-infected snapshot in the respective snapshot chains being identified.

13. The apparatus of claim 10 , wherein the instructions are further executable by the processor to cause the apparatus to:

repeat the identifying for all computing objects in a system.

14. The apparatus of claim 10 , wherein, to determine whether the mounted snapshots are infected, the instructions are further executable by the processor to cause the apparatus to:

apply YARA rules and hash matching to the mounted snapshots.

15. The apparatus of claim 10 , wherein, to mount the snapshots, the instructions are further executable by the processor to cause the apparatus to mount the snapshots in a sandboxed virtual machine.

16. The apparatus of claim 10 , wherein the instructions are further executable by the processor to cause the apparatus to:

hydrate data in a mounted snapshot before determining whether the mounted snapshots are infected.

17. The apparatus of claim 10 , wherein the instructions are further executable by the processor to cause the apparatus to:

quarantine snapshots determined to be infected so that the quarantined snapshots are restricted from recovery.

18. A non-transitory, computer-readable medium storing code comprising instructions executable by a processor of a device to cause the device to:

display a graphical user interface showing:

at least a portion of respective snapshot chains for respective computing objects of a plurality of computing objects, wherein the respective snapshot chains are represented as one or more individual snapshots, wherein a representation of an individual snapshot indicates whether the individual snapshot is infected with malware, and wherein a first computing object of the plurality of computing objects is a first virtual machine, a first file system, a first database, or a first network attached storage system, and a second computing object of the plurality of computing objects is a second virtual machine, a second file system, a second database, or a second network attached storage system, and

across the respective snapshot chains, a cut line delineating infected snapshots from non-infected snapshots, wherein snapshots above the cut line are restricted from being recovered;

receive a selection, from a user, of an infected snapshot in a snapshot chain of the respective snapshot chains associated with a computing object of the respective computing objects, wherein the infected snapshot is more recent than a most recent non-infected snapshot identified in the snapshot chain and is positioned above the cut line;

mount, in response to the selection, the selected infected snapshot;

determine, based at least in part on mounting the selected infected snapshot, which content in the selected infected snapshot are not infected;

receive, based at least in part on the selection, a command to recover, for the respective computing objects, non-infected data; and

recover, in response to the command, for the respective computing objects, a non-infected snapshot from the respective snapshot chains in accordance with the cut line and at least one of the non-infected content in the selected infected snapshot.

Assignments (3)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 64659/0236 Recorded Jun 13, 2025
From: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
To: RUBRIK, INC.
Reel/Frame 071566/0187 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Aug 21, 2023
From: RUBRIK, INC.
To: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
Reel/Frame 064659/0236 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2023
From: GEE, ADAM; CHANDRA, SURENDAR; JOHNSTON, GREGORY ROBERT; SANG, ISHAAN
To: RUBRIK, INC.
Reel/Frame 062267/0790 →
Continuity (4)
Provisional Application 63421536 · Nov 1, 2022
Provisional Application 63319953 · Mar 15, 2022
Provisional Application 63276822 · Nov 8, 2021
Related Publication 20230142613A1 · May 11, 2023
References Cited (25)
US 8495037B1 · Westenberg · 2013 [cited by examiner]
US 9218252B1 · Revur et al. · 2015 [cited by applicant]
US 10650146B1 · Gaurav et al. · 2020 [cited by applicant]
US 10887339B1 · Sokolov et al. · 2021 [cited by applicant]
US 11681591B2 · Kulaga et al. · 2023 [cited by applicant]
US 20070245105A1 · Suzuki et al. · 2007 [cited by applicant]
US 20110197279A1 · Ueoka · 2011 [cited by applicant]
US 20190235973A1 · Brewer et al. · 2019 [cited by applicant]
US 20190354443A1 · Haustein et al. · 2019 [cited by applicant]
US 20200159624A1 · Malkov et al. · 2020 [cited by applicant]
US 20200201998A1 · Jung · 2020 [cited by examiner]
US 20200226256A1 · Gaurav · 2020 [cited by examiner]
US 20200319979A1 · Kulaga · 2020 [cited by examiner]
US 20210044604A1 · Annen et al. · 2021 [cited by applicant]
US 20210240828A1 · Gaurav et al. · 2021 [cited by applicant]
US 20220100378A1 · Borate · 2022 [cited by examiner]
US 20220245250A1 · Warwick et al. · 2022 [cited by applicant]
US 20220345473A1 · Kare et al. · 2022 [cited by applicant]
U.S. Appl. No. 17/980,645, filed Nov. 4, 2022, Pending, Indicating Infected Snapshots in a Snapshot Chain. [cited by applicant]
U.S. Appl. No. 17/980,676, filed Nov. 4, 2022, Pending, Quarantining Information in Backup Locations. [cited by applicant]
U.S. Appl. No. 17/980,752, filed Nov. 4, 2022, Pending, Recovering Quarantined Information From Backup Locations. [cited by applicant]
U.S. Appl. No. 17/980,930, filed Nov. 4, 2022, Pending, Bulk Snapshot Recovery. [cited by applicant]
PCT/US22/79400, Nov. 7, 2022, Pending, Snapshot-Based Malware Maangement. [cited by applicant]
ISA/EP, Int'l App. No. PCT/US2022/079400, Partial International Search Report and Provisional Opinion dated Mar. 7, 2023, 6 pages. [cited by applicant]
ISA/EP, Int'l App. No. PCT/US2022/079400, Search Report and Written Opinion dated Mar. 7, 2023, 9 pages. [cited by applicant]
Cited By (1)
US 12,639,428