IP Library › Granted Patent US 12,047,411
Granted Patent B2
US 12,047,411 · App. 16/709,198 · Granted Jul 23, 2024

Detecting compromised web pages in a runtime environment

Inventors: Wesley Hales (Atlanta, GA); Jarrod Overson (Santa Clara, CA)
Assignee: SHAPE SECURITY, INC.
H04L63/1483G06F16/986H04L63/1416
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,047,411
App. No.
16/709,198
Granted
Jul 23, 2024
Kind
B2
Abstract

Techniques are provided for detecting compromised web pages in a runtime environment. A first version of a web page is retrieved and loaded in a browser comprising a browser extension configured to detect event listeners added when web pages are loaded by the browser. First data is generated describing a first set of event listeners detected by the browser extension when the first version of the web page is loaded. At a second time a second version of the web page is retrieved and loaded in the browser. Second data is generated describing a second set of event listeners detected by the browser extension when the second version of the web page is loaded. It is determined that the web page is compromised based on comparing the first data and the second data. In response to determining that the web page is compromised, a threat response action is performed.

Claims (93)

1. A non-transitory computer readable medium having stored thereon instructions for managing servers comprising executable code which when executed by processors, causes the processors to:

at a first time, retrieve and load a first version of a web page hosted on a web server system in a browser comprising a browser extension configured to detect event listeners added when web pages are loaded by the browser;

generate first data describing a first set of event listeners detected by the browser extension when the first version of the web page is loaded;

at a second time after the first time, retrieve and load a second version of the web page in the browser;

generate second data describing a second set of event listeners detected by the browser extension when the second version of the web page is loaded;

determine that the web page is compromised by comparing the first data and the second data to identify a change between the first set of event listeners and the second set of event listeners, wherein the change is added at run time between the first time and the second time, prior to loading the second version of the web page; and

in response to determining that the web page is compromised, perform a threat response action.

2. The medium of claim 1 , wherein the executable code which when executed by the processors, further causes the processors to:

at a third time, retrieve and load a first version of a second web page hosted on a second web server system in the browser;

generate third data describing a third set of event listeners detected by the browser extension when the first version of the second web page is loaded;

at a fourth time after the third time, retrieve and load a second version of the second web page in the browser;

generate fourth data describing a fourth set of event listeners detected by the browser extension when the second version of the second web page is loaded;

determine that the second web page is compromised based on comparing the third data and the fourth data; and

in response to determining that the second web page is compromised, perform a second threat response action.

3. The medium of claim 1 :

wherein computing devices belong to a security server system configured to detect, in a plurality of web pages hosted by a plurality of web server systems, compromised web pages;

wherein the plurality of web pages includes the web page; and

wherein the plurality of web server systems includes the web server system.

4. The medium of claim 1 :

wherein the first version of the web page includes first web code that adds the first set of event listeners to one or more elements of a first Document Object Model (DOM) tree generated by the browser when the first version of the web page is loaded; and

wherein the second version of the web page includes second web code that adds the second set of event listeners to one or more elements of a second DOM tree generated by the browser when the second version of the web page is loaded.

5. The medium of claim 1 , wherein the executable code which when executed by the processors, further causes the processors to:

based on the first data, generate an XHR whitelist comprising server addresses associated with the first set of event listeners; and

provide XHR whitelist code for execution on a client computing device that requests the web page after the first time, wherein the XHR whitelist code prevents XHR requests to server addresses not included in the XHR whitelist.

6. A method implemented by one or more computer systems, server devices, or client devices, the method comprising:

at a first time, retrieving and loading a first version of a web page hosted on a web server system in a browser comprising a browser extension configured to detect event listeners added when web pages are loaded by the browser;

generating first data describing a first set of event listeners detected by the browser extension when the first version of the web page is loaded;

at a second time after the first time, retrieving and loading a second version of the web page in the browser;

generating second data describing a second set of event listeners detected by the browser extension when the second version of the web page is loaded;

determining that the web page is compromised by comparing the first data and the second data to identify a change between the first set of event listeners and the second set of event listeners, wherein the change is added at run time between the first time and the second time, prior to loading the second version of the web page; and

in response to determining that the web page is compromised, performing a threat response action.

7. The method of claim 6 , further comprising:

at a third time, retrieving and loading a first version of a second web page hosted on a second web server system in the browser;

generating third data describing a third set of event listeners detected by the browser extension when the first version of the second web page is loaded; at a fourth time after the third time, retrieving and loading a second version of the second web page in the browser;

generating fourth data describing a fourth set of event listeners detected by the browser extension when the second version of the second web page is loaded;

determining that the second web page is compromised based on comparing the third data and the fourth data; and

in response to determining that the second web page is compromised, performing a second threat response action.

8. The method of claim 6 :

wherein the one or more computing devices performing the method belong to a security server system configured to detect, in a plurality of web pages hosted by a plurality of web server systems, compromised web pages;

wherein the plurality of web pages includes the web page; and

wherein the plurality of web server systems includes the web server system.

9. The method of claim 6 :

wherein the first version of the web page includes first web code that adds the first set of event listeners to one or more elements of a first Document Object Model (DOM) tree generated by the browser when the first version of the web page is loaded; and

wherein the second version of the web page includes second web code that adds the second set of event listeners to one or more elements of a second DOM tree generated by the browser when the second version of the web page is loaded.

10. The method of claim 6 , further comprising:

based on the first data, generating an XHR whitelist comprising server addresses associated with the first set of event listeners; and

providing XHR whitelist code for execution on a client computing device that requests the web page after the first time, wherein the XHR whitelist code prevents XHR requests to server addresses not included in the XHR whitelist.

11. An apparatus, comprising memory comprising programmed instructions stored in the memory and processors configured to be capable of executing the programmed instructions stored in the memory to:

at a first time, retrieve and load a first version of a web page hosted on a web server system in a browser comprising a browser extension configured to detect event listeners added when web pages are loaded by the browser;

generate first data describing a first set of event listeners detected by the browser extension when the first version of the web page is loaded;

at a second time after the first time, retrieve and load a second version of the web page in the browser;

generate second data describing a second set of event listeners detected by the browser extension when the second version of the web page is loaded;

determine that the web page is compromised by comparing the first data and the second data to identify a change between the first set of event listeners and the second set of event listeners, wherein the change is added at run time between the first time and the second time, prior to loading the second version of the web page; and

in response to determining that the web page is compromised, perform a threat response action.

12. The device as set forth in claim 11 , wherein the processors are further configured to be capable of executing the programmed instructions stored in the memory to:

at a third time, retrieve and load a first version of a second web page hosted on a second web server system in the browser;

generate third data describing a third set of event listeners detected by the browser extension when the first version of the second web page is loaded; at a fourth time after the third time, retrieve and load a second version of the second web page in the browser;

generate fourth data describing a fourth set of event listeners detected by the browser extension when the second version of the second web page is loaded;

determine that the second web page is compromised based on comparing the third data and the fourth data; and

in response to determining that the second web page is compromised, perform a second threat response action.

13. The device as set forth in claim 11 :

wherein computing devices belong to a security server system configured to detect, in a plurality of web pages hosted by a plurality of web server systems, compromised web pages;

wherein the plurality of web pages includes the web page; and

wherein the plurality of web server systems includes the web server system.

14. The device as set forth in claim 11 :

wherein the first version of the web page includes first web code that adds the first set of event listeners to one or more elements of a first Document Object Model (DOM) tree generated by the browser when the first version of the web page is loaded; and

wherein the second version of the web page includes second web code that adds the second set of event listeners to one or more elements of a second DOM tree generated by the browser when the second version of the web page is loaded.

15. The device as set forth in claim 11 , wherein the processors are further configured to be capable of executing the programmed instructions stored in the memory to:

based on the first data, generate an XHR whitelist comprising server addresses associated with the first set of event listeners; and

provide XHR whitelist code for execution on a client computing device that requests the web page after the first time, wherein the XHR whitelist code prevents XHR requests to server addresses not included in the XHR whitelist.

16. A system, comprising traffic management apparatuses, client devices, or server devices, the system comprising memory comprising programmed instructions stored thereon and processors configured to be capable of executing the stored programmed instructions to:

at a first time, retrieve and load a first version of a web page hosted on a web server system in a browser comprising a browser extension configured to detect event listeners added when web pages are loaded by the browser;

generate first data describing a first set of event listeners detected by the browser extension when the first version of the web page is loaded;

at a second time after the first time, retrieve and load a second version of the web page in the browser;

generate second data describing a second set of event listeners detected by the browser extension when the second version of the web page is loaded;

determine that the web page is compromised by comparing the first data and the second data to identify a change between the first set of event listeners and the second set of event listeners, wherein the change is added at run time between the first time and the second time, prior to loading the second version of the web page; and

in response to determining that the web page is compromised, perform a threat response action.

17. The system as set forth in claim 16 , wherein the processors are further configured to be capable of executing the programmed instructions stored in the memory to:

at a third time, retrieve and load a first version of a second web page hosted on a second web server system in the browser;

generate third data describing a third set of event listeners detected by the browser extension when the first version of the second web page is loaded; at a fourth time after the third time, retrieve and load a second version of the second web page in the browser;

generate fourth data describing a fourth set of event listeners detected by the browser extension when the second version of the second web page is loaded;

determine that the second web page is compromised based on comparing the third data and the fourth data; and

in response to determining that the second web page is compromised, perform a second threat response action.

18. The system as set forth in claim 16 :

wherein computing devices belong to a security server system configured to detect, in a plurality of web pages hosted by a plurality of web server systems, compromised web pages;

wherein the plurality of web pages includes the web page; and

wherein the plurality of web server systems includes the web server system.

19. The system as set forth in claim 16 :

wherein the first version of the web page includes first web code that adds the first set of event listeners to one or more elements of a first Document Object Model (DOM) tree generated by the browser when the first version of the web page is loaded; and

wherein the second version of the web page includes second web code that adds the second set of event listeners to one or more elements of a second DOM tree generated by the browser when the second version of the web page is loaded.

20. The system as set forth in claim 16 , wherein the processors are further configured to be capable of executing the programmed instructions stored in the memory to:

based on the first data, generate an XHR whitelist comprising server addresses associated with the first set of event listeners; and

provide XHR whitelist code for execution on a client computing device that requests the web page after the first time, wherein the XHR whitelist code prevents XHR requests to server addresses not included in the XHR whitelist.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2019
From: HALES, WESLEY; OVERSON, JARROD
To: SHAPE SECURITY, INC.
Reel/Frame 051237/0678 →
Continuity (1)
Related Publication 20210176273A1 · Jun 10, 2021