IP Library Granted Patent US 12,292,969
Granted Patent B2
US 12,292,969 · App. 17/801,686 · Granted May 6, 2025

Provenance inference for advanced CMS-targeting attacks

Inventors: Ranjita Pai Kasturi (Atlanta, GA); Brendan D. Saltaformaggio (Atlanta, GA)
Assignee: Georgia Tech Research Corporation
G06F21/554G06F2221/033
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,292,969
App. No.
17/801,686
Granted
May 6, 2025
Kind
B2
Abstract

In a method for detecting an attack compromise window in a CMS website for which a temporal sequence of a plurality of snapshots of website backups have been stored, a temporally ordered set of spatial elements from each snapshot is constructed. Spatial metrics are computed for each individual snapshot's elements. The collected spatial metrics are temporally correlated and queried against attack models to recover an attack timeline. Attack events in the attack timeline are labelled. A sequence of assigned attack labels is verified. The compromise window is extracted from the plurality of snapshots.

Claims (70)

1. A method for remediating a content management systems website that has been subjected to a targeting attack and for which a temporal sequence of a plurality of snapshots of website backups have been stored, comprising the steps of:

(a) detecting the targeting attack by:

(i) constructing a temporally ordered set of spatial elements from each of the plurality of snapshots;

(ii) computing spatial metrics for elements of each individual snapshot of the plurality of snapshots;

(iii) temporally correlating the computed spatial metrics and querying them against attack models to recover an attack timeline and labelling attack events in the attack timeline with assigned attack labels;

(iv) verifying a sequence of the assigned attack labels;

(v) extracting an attack compromise window from the plurality of snapshots, the attack compromise window indicating a period between a first temporal snapshot that includes suspicious activities and a last temporal snapshot that includes suspicious activities; and

(b) remediating the content management systems website by rolling back the content management systems website to one of the plurality of snapshots corresponding to a pre-compromise window snapshot, wherein the step of computing spatial metrics for each individual snapshot's elements comprises the steps of:

extracting a structural metric from each snapshot's elements; and

extracting a code metric from each snapshot's elements,

wherein the step of extracting the attack compromise window from the plurality of snapshots comprises designating a subset of the plurality of snapshots as the attack compromise window when the structural metric and the code metric have an attack label of high severity according to a predetermined attack modeling rule, and

wherein the step of extracting structural metrics comprises the steps of:

detecting hidden files and hidden directories in each snapshot and, when detected then adding a hidden file element to the structural metric for the snapshot;

detecting extension mismatches between file type and file extension in each snapshot and, when detected then adding an extension mismatch file element to the structural metric for the snapshot;

detecting file name high entropy in each snapshot and, when detected then adding a file name high entropy element to the structural metric for the snapshot;

and detecting permission changes between snapshots and, when detected then adding a permission name element to the structural metric for the snapshot,

wherein the step of detecting the file name high entropy comprises the steps of:

(a) computing a randomness score for each file name in the snapshot;

(b) calculating a median absolute deviation of all randomness scores for the snapshot;

(c) comparing the median absolute deviation to a relative threshold for the plurality of snapshots; and

(d) when the median absolute deviation is greater than the relative threshold for the plurality of snapshots, then designating the snapshot as having high name entropy.

2. The method of claim 1 , wherein the step of constructing the temporally ordered set of spatial elements from each snapshot comprises the step of extracting files associated with each snapshot and mapping the files as spatial elements.

3. The method of claim 1 , wherein the step of detecting the file name high entropy comprises the step of detecting long, incoherent or randomly generated filenames.

4. The method of claim 1 , wherein the step of detecting permission changes comprises the step of determining when a permission change has changed a file's permission from a non-executable state to an executable state.

5. The method of claim 1 , wherein the step of extracting a code metric for each snapshot comprises the steps of:

(a) detecting a script directive outlier in each snapshot and, when the script directive outlier is detected, then adding a script directive outlier element to the code metric for the snapshot; and

(b) detecting an obfuscation indicator in each snapshot and, when the obfuscation indicator is detected, then adding an obfuscation indicator element to the code metric for the snapshot.

6. The method of claim 5 , wherein the step of detecting a script directive outlier comprises the step of indicating that the script directive is an outlier if it has a predetermined number of characters that is greater than a threshold number of characters.

7. The method of claim 6 , wherein the predetermined number is a number that is at least an average number of characters in all script directives in the snapshot.

8. The method of claim 5 , wherein the obfuscation indicator comprises detection of UTF-8 characters coupled with ASCII characters in an executable file.

9. The method of claim 5 , wherein the obfuscation indicator comprises a mapping function that maps at least a plurality of characters in the executable file to another corresponding plurality of characters.

10. The method of claim 1 , wherein the step of temporally correlating the collected spatial metrics and querying them against attack models to recover an attack timeline and labelling attack events in the attack timeline comprises the steps of:

(a) querying each two consecutive temporal snapshots in a window at a time against a plurality of attack models; and

(b) assigning an attack label and a corresponding severity to each temporal snapshot, thereby building an incremental the attack timeline.

11. The method of claim 9 , wherein the step of extracting the attack compromise window from the plurality of snapshots comprises the steps of:

(a) parsing consecutive pairs of the spatial elements, the spatial metrics and the attack labels;

(b) ranking the temporal snapshots in the attack compromise window in the order of most suspicious to least suspicious; and

(c) outputting the final attack labels for the snapshots for the temporal sequence.

12. A method for remediating a content management systems website that has been subjected to a targeting attack and for which a temporal sequence of a plurality of snapshots of website backups have been stored, comprising the steps of:

(a) detecting the targeting attack by:

(i) constructing a temporally ordered set of spatial elements from each of the plurality of snapshots;

(ii) computing spatial metrics for elements of each individual snapshot of the plurality of snapshots by executing the steps of:

1. Extracting a structural metric from each snapshot's elements, wherein the step of extracting the structural metric comprises the steps of:

(a) detecting hidden files and hidden directories in each snapshot and, when detected then adding a hidden file element to the structural metric for the snapshot;

(b) detecting extension mismatches between file type and file extension in each snapshot and, when detected then adding an extension mismatch file element to the structural metric for the snapshot;

(c) detecting file name high entropy in each snapshot and, when detected then adding a file name high entropy element to the structural metric for the snapshot;

(d) detecting permission changes between snapshots and, when detected then adding a permission name element to the structural metric for the snapshot;

wherein the step of detecting the file name high entropy comprises the steps of:

(a) computing a randomness score for each file name in the snapshot;

(b) calculating a median absolute deviation of all randomness scores for the snapshot;

(c) comparing the median absolute deviation to a relative threshold for the plurality of snapshots; and

(d) when the median absolute deviation is greater than the relative threshold for the plurality of snapshots, then designating the snapshot as having high name entropy,

2. Extracting a code metric from each snapshot's elements;

(iii) temporally correlating the computed spatial metrics and querying them against attack models to recover an attack timeline and labelling attack events in the attack timeline with assigned attack labels by executing the steps of:

querying each two consecutive temporal snapshots in a window at a time against the plurality of attack models; and

assigning an attack label to each attack event and a corresponding severity to each temporal snapshot, thereby building an incremental attack timeline;

(iv) verifying a sequence of the assigned attack labels;

(v) extracting the attack compromise window from the plurality of snapshots, the attack compromise window indicating a period between a first temporal snapshot that includes suspicious activities and a last temporal snapshot that includes suspicious activities, wherein the step of extracting the attack compromise window from the plurality of snapshots comprises designating a subset of the plurality of snapshots as the attack compromise window when the structural metric and the code metric have an attack label of high severity according to a predetermined attack modeling rule; and

(b) remediating the content management systems website by rolling back the content management systems website to one of the plurality of snapshots corresponding to a pre-compromise window snapshot.

13. The method of claim 12 wherein the step of detecting the file name high entropy comprises the step of detecting long, incoherent or randomly generated filenames.

14. The method of claim 12 , wherein the step of detecting permission changes comprises the step of determining when a permission change has changed a file's permission from a non-executable state to an executable state.

15. The method of claim 12 , wherein the step of extracting a code metric for each snapshot comprises the steps of:

(a) detecting a script directive outlier in each snapshot by indicating that a script directive is an outlier if it has a predetermined number of characters that is greater than a threshold number of characters, wherein the predetermined number is a number that is at least an average number of characters in all script directives in the snapshot and, when the script directive outlier is detected, then adding a script directive outlier element to the code metric for the snapshot; and

(b) detecting an obfuscation indicator in each snapshot and, when the obfuscation indicator is detected, then adding an obfuscation indicator element to the code metric for the snapshot, wherein the obfuscation indicator includes at least one of:

(i) a detection of UTF-8 characters coupled with ASCII characters in the executable file; and

(ii) a mapping function that maps at least a plurality of characters in an executable file to another corresponding plurality of characters.

16. The method of claim 12 , wherein the step of extracting the attack compromise window from the plurality of snapshots comprises the steps of:

(a) parsing consecutive pairs of the spatial elements, the spatial metrics and the attack labels;

(b) ranking the temporal snapshots in the attack compromise window in the order of most suspicious to least suspicious; and

(c) outputting the final attack labels for the snapshots for the temporal sequence.

Assignments (2)
CONFIRMATORY LICENSE Recorded Feb 10, 2025
From: GEORGIA INSTITUTE OF TECHNOLOGY
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 070159/0188 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 28, 2022
From: KASTURI, RANJITA PAI; SALTAFORMAGGIO, BRENDAN D.
To: GEORGIA TECH RESEARCH CORPORATION
Reel/Frame 061894/0338 →
Continuity (2)
Provisional Application 62985067 · Mar 4, 2020
Related Publication 20230133791A1 · May 4, 2023
References Cited (13)
US 9477836B1 · Ramam · 2016 [cited by examiner]
US 10460107B2 · Crofton · 2019 [cited by examiner]
US 11755420B2 · Borate · 2023 [cited by examiner]
US 20100024033A1 · Kang · 2010 [cited by examiner]
US 20160308966A1 · Zhang · 2016 [cited by examiner]
US 20180307839A1 · Bhave · 2018 [cited by examiner]
US 20200042707A1 · Kucherov · 2020 [cited by examiner]
US 20200233962A1 · Chantry · 2020 [cited by examiner]
US 20210056203A1 · Qiao · 2021 [cited by examiner]
US 20210165879A1 · Duo · 2021 [cited by examiner]
US 20210240828A1 · Gaurav · 2021 [cited by examiner]
US 20210247743A1 · Raj · 2021 [cited by examiner]
X. Zhao, J. Luan and M. Wolff, “Evaluating randomness in cyber attack textual artifacts,” 2016 APWG Symposium on Electronic Crime Research (eCrime), Toronto, ON, Canada, 2016, pp. 1-5 (Year: 2016). [cited by examiner]
Cited By (1)
US 12,689,634