IP Library Granted Patent US 12,499,248
Granted Patent B2
US 12,499,248 · App. 18/655,439 · Granted Dec 16, 2025

Systems and methods for breach-proof, resilient, compliant data in a multi-vendor cloud environment and automatically self heals in the event of a ransomware attack

Inventors: Ophir Rachman (Sunnyvale, CA); Eric Sites (Palm Harbor, FL); Matthew Wilkinson (Gainesville, FL); Blake Emmons (Louisville, KY); Matt Meuse (Quechee, VT); Kelly McLaughlin (South Plainfield, NJ); Lauren Miehe (East Wenatchee, WA); Paul Lewis (Asbury, NJ)
G06F21/602G06F3/062G06F3/064G06F3/067G06F21/6218H04L9/0819H04L9/0861H04L9/14H04L9/3226H04L63/0428H04L63/08G06F2221/2107H04L67/1097
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,499,248
App. No.
18/655,439
Granted
Dec 16, 2025
Kind
B2
Abstract

A cloud-based system and method for securely storing data formed into cloud technology-specific data objects (hereinafter, “buckets”) by an S3 gateway, comprising obtaining a source data bucket from the S3 gateway; splitting the data bucket into at least three fragments; encrypting the fragments using an encryption key associated with the fragments and distributing the encrypted fragments among at least three cloud storage providers, and creating a pointer file containing information for retrieving the encrypted fragments. When a system user requests access to the data, the system ensures the request is legitimate, then uses the information stored in the pointer file to retrieve the stored encrypted bucket fragments from the plurality of clouds, decrypts the fragments and reconstructs the data buckets, and provides data access to the S3 gateway.

Claims (97)

1 . A cloud-based system for securely storing data formed into cloud technology-specific data objects (hereinafter, “buckets”), comprising:

a processor configured to:

obtain original data buckets from a client cloud storage gateway device;

split the original data buckets into at least three data blocks;

encrypt the data blocks using an encryption key associated with the data blocks; and

write the encrypted data blocks across at least three cloud storage providers, each cloud storage provider located in a different physical location, each data block written to at least two but less than all of the cloud storage providers, whereby there is no single cloud storage provider to which all of the data blocks are written; such that if any one cloud storage provider is unavailable, the encrypted data blocks stored thereon may be retrieved from at least one other cloud storage provider; and in the case any one of the cloud storage providers is compromised, the original data cannot be recovered from the encrypted data blocks stored in that cloud storage provider alone;

create a pointer file containing locations of each of the encrypted data blocks in every cloud storage provider in which they were written;

store the pointer file in a storage device;

delete the original data from a client storage device that provided it to the client cloud storage gateway device;

analyze communications of a specific backup software during the ordinary course of backup and restore operations, including:

identify at least one read operations pattern that the backup software generates during backups;

create a white list that represents the identified read patterns using regex expressions; and

deploy the white list at the backend platform to support multi-factor authentication (MFA) for read operations from the cloud storage used by the backup software as a Restore Control capability.

2 . The system of claim 1 , the processor being further configured, after the original data is deleted, to:

detect a condition in one of the clouds that renders it abnormal and unusable;

abandon the abnormal cloud;

establish a new cloud to replace the abnormal cloud;

use the pointer file to:

identify the encrypted block fragments that were stored in the abnormal cloud; and

locate at least one normal cloud for each of the identified encrypted block fragments in which that identified encrypted block fragment is stored;

copy the identified encrypted block fragments from the located normal clouds to the established new cloud; and

update the pointer file by replacing information contained therein of encrypted block fragments that were stored in the abnormal cloud, with information of corresponding encrypted block fragments stored in the established new cloud.

3 . The system of claim 1 , wherein the processor is further configured to thereafter:

obtain encrypted block storage information from the pointer file;

retrieve the encrypted blocks using the storage information; and

decrypt and reassemble the retrieved encrypted blocks as the original buckets.

4 . The system as recited in claim 1 , wherein a client or application accesses the system via an S3 gateway application programming interface (API).

5 . The system of claim 1 , wherein the processor is further configured to:

obtain a request to restore a backup stored in the cloud storage; and

enforce multi-factor authentication (MFA) for restore operations.

6 . The system of claim 5 , wherein the enforcing multi-factor authentication (MFA) includes issuing a challenge before allowing the backup data to be reconstituted.

7 . The system of claim 1 , wherein the processor is further configured, after the Restore Control is enabled for a Cloud storage vault used by the backup software, to:

responsive to a read operation being requested from the vault, examine the source of the request and determine whether the user agent of the request matches a supported backup software:

in the case the user-agent matches a supported backup software:

determine which specific backup software is requesting the read operation; and

associate the request with the appropriate white list for that backup software;

match the requested file against the whitelist;

in the case there is a match, grant the request;

in the case there is not a match, block the read request;

in the case the user-agent does not match any supported backup software:

associate the request with an empty white list, and block the read request.

8 . The system of claim 7 , wherein the processor is further configured, after the read request is blocked, to:

cause a Restore Control request to appear in a back-end management console;

cause a Restore Control notification to be sent to a user having rights sufficient to approve the request;

receive from a user a request to log on to a back-end management console, including an interactive MFA;

authorize the user and allow them to log on to the back-end management console and approve the Restore Control request;

allow read operations for a pre-determined period; and

notify the user who initiated the restore operation that they can restart the restore operation using the backup software; and

responsive to a new request for restore operations received from the initiating user, allow the restore operation to begin and run to completion.

9 . A computer implemented method for securely storing data formed into cloud technology-specific data objects (hereinafter, “buckets”), comprising:

causing a processor to complete steps including:

obtaining original data buckets from a client cloud storage gateway device;

splitting the original data buckets into at least three data blocks each; encrypting the data blocks using an encryption key associated with the data blocks;

writing the encrypted data blocks across at least three cloud storage providers, each cloud storage provider located in a different physical location, each data block written to at least two but less than all of the cloud storage providers, whereby there is no single cloud storage provider to which all of the data blocks are written; such that if any one cloud storage provider is unavailable, the encrypted data blocks stored thereon may be retrieved from at least one other cloud storage provider; and in the case any one of the cloud storage providers is compromised, the original data cannot be recovered from the encrypted data blocks stored in that cloud storage provider alone;

creating a pointer file containing locations of the encrypted data blocks in every cloud storage provider to which each of the encrypted data blocks was written;

storing the pointer file in the client cloud storage gateway device;

deleting the original data from the client cloud storage gateway device;

analyze communications of a specific backup software during the ordinary course of backup and restore operations, including:

identify at least one read operations pattern that the backup software generates during backups;

create a white list that represents the identified read patterns using regex expressions; and

deploy the white list at the backend platform to support multi-factor authentication (MFA) for read operations from the cloud storage used by the backup software as a Restore Control capability.

10 . The method of claim 9 , further causing the processor to complete steps after the original data is deleted, including:

detecting a condition in one of the clouds that renders it abnormal and unusable;

abandoning the abnormal cloud;

establishing a new cloud to replace the abnormal cloud;

using the pointer file to:

identify the encrypted block fragments that were stored in the abnormal cloud; and

locate at least one normal cloud in which each of the identified encrypted block fragments is stored;

copying the identified encrypted block fragments from the located normal clouds to the established new cloud; and

updating the pointer file by replacing information contained therein of encrypted block fragments that were stored in the abnormal cloud, with information of corresponding encrypted block fragments stored in the established new cloud.

11 . The method of claim 10 , further causing the processor to complete steps including:

obtaining encrypted block storage information from the pointer file;

retrieving the encrypted blocks using the storage information; and

decrypting and reassembling the retrieved encrypted blocks as the original data buckets.

12 . The method of claim 9 , wherein a client or application accesses the system via an S3 gateway application programming interface (API).

13 . The method of claim 9 , wherein the processor is further configured to:

obtain a request to restore a backup stored in the cloud storage; and

enforce multi-factor authentication (MFA) for restore operations.

14 . The method of claim 13 , wherein the enforcing multi-factor authentication (MFA) includes issuing a challenge before allowing the backup data to be reconstituted.

15 . The method of claim 9 , wherein the processor is further configured, after the Restore Control is enabled for a Cloud storage vault used by the backup software, to:

responsive to a read operation being requested from the vault, examine the source of the request and determine whether the user agent of the request matches a supported backup software:

in the case the user-agent matches a supported backup software:

determine which specific backup software is requesting the read operation; and

associate the request with the appropriate white list for that backup software;

match the requested file against the associated whitelist;

in the case there is a match, grant the request;

in the case there is not a match, block the read request;

in the case the user-agent does not match any supported backup software:

associate the request with an empty white list, and block the read request.

16 . The system of claim 15 , wherein the processor is further configured, after the read request is blocked, to:

cause a Restore Control request to appear in a back-end management console;

cause a Restore Control notification to be sent to a user having rights sufficient to approve the request;

receive from a user a request to log on to a back-end management console, including an interactive MFA;

authorize the user and allow them to log on to the back-end management console and approve the Restore Control request;

allow read operations for a pre-determined period; and

notify the user who initiated the restore operation that they can restart the restore operation using the backup software; and

responsive to a new request for restore operations received from the initiating user, allow the restore operation to begin and run to completion.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2025
From: RACHMAN, OPHIR; SITES, ERIC; WILKINSON, MATTHEW; EMMONS, BLAKE; MEUSE, MATT; MCLAUGHLIN, KELLY; MIEHE, LAUREN; LEWIS, PAUL
To: CALAMU TECHNOLOGIES CORPORATION
Reel/Frame 072414/0344 →
Continuity (7)
Continuation In Part 18124009 · Mar 21, 2023
Continuation 17211919 · Mar 25, 2021
Continuation In Part 16261720 · Jan 30, 2019
Continuation In Part 16055587 · Aug 6, 2018
Continuation 15226237 · Aug 2, 2016
Continuation 14251612 · Jun 30, 2014
Related Publication 20240330486A1 · Oct 3, 2024
References Cited (40)
US 7103558B1 · Patton et al. · 2006 [cited by applicant]
US 7574579B2 · Gladwin et al. · 2009 [cited by applicant]
US 9405926B2 · Lewis · 2016 [cited by applicant]
US 10043017B2 · Lewis · 2018 [cited by applicant]
US 11636217B2 · Lewis · 2023 [cited by applicant]
US 12400076B2 · Carrier · 2025 [cited by examiner]
US 20030084020A1 · Shu · 2003 [cited by examiner]
US 20030220985A1 · Kawamoto · 2003 [cited by examiner]
US 20040153952A1 · Sharma et al. · 2004 [cited by applicant]
US 20050044561A1 · McDonald · 2005 [cited by applicant]
US 20050125236A1 · Agapi et al. · 2005 [cited by applicant]
US 20080183975A1 · Foster et al. · 2008 [cited by applicant]
US 20080256143A1 · Reddy · 2008 [cited by examiner]
US 20090049260A1 · Upadhyayula · 2009 [cited by applicant]
US 20090300719A1 · Ferris · 2009 [cited by applicant]
US 20100031086A1 · Leppard · 2010 [cited by applicant]
US 20100146375A1 · Katz et al. · 2010 [cited by applicant]
US 20100235887A1 · Burch et al. · 2010 [cited by applicant]
US 20100299313A1 · Orsini · 2010 [cited by examiner]
US 20110107103A1 · Dehaan et al. · 2011 [cited by applicant]
US 20120110346A1 · Resch · 2012 [cited by applicant]
US 20120278622A1 · Lesavich et al. · 2012 [cited by applicant]
US 20120311346A1 · Resch · 2012 [cited by examiner]
US 20140331065A1 · Resch · 2014 [cited by examiner]
US 20160321461A1 · Oliver · 2016 [cited by examiner]
US 20160344546A1 · Resch · 2016 [cited by examiner]
US 20170053132A1 · Resch · 2017 [cited by examiner]
US 20180013680A1 · Bull · 2018 [cited by examiner]
US 20180204192A1 · Whaley et al. · 2018 [cited by applicant]
US 20210286884A1 · Lewis · 2021 [cited by examiner]
WO 2013101085A1 · 2013 [cited by applicant]
WO 2016003969A2 · 2016 [cited by applicant]
WO 2018031342A1 · 2018 [cited by applicant]
International Search Report and Written Opinion issued on Dec. 24, 2015 for International Application No. PCT/US2015/038433, pp. 6. [cited by applicant]
International Preliminary Report on Patentability issued on Feb. 5, 2019 for International Application No. PCT/US2017/045149, pp. 5. [cited by applicant]
International Search Report and Written Opinion issued on Dec. 7, 2017 for International Application No. PCT/US2017/045149, pp. 6. [cited by applicant]
Extended European Search Report issued on May 3, 2018 for EP 15814481.6 International Application No. PCT/US2015/038433, pp. 6. [cited by applicant]
Supplementary European Search Report issued on Apr. 23, 2018 for EP 15814481.6 International Application No. PCT/US2015/038433, pp. 2. [cited by applicant]
International Preliminary Report on Patentability issued on Jan. 3, 2017 for International Application No. PCT/US2015/038433, pp. 5. [cited by applicant]
International Search Report and Written Opinion issued on Mar. 10, 2020, for International Application No. PCT/US2020/015664, pp. 6. [cited by applicant]