IP Library Granted Patent US 9,208,235
Granted Patent B1
US 9,208,235 · App. 13/793,663 · Granted Dec 8, 2015

Systems and methods for profiling web applications

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 9,208,235
App. No.
13/793,663
Granted
Dec 8, 2015
Kind
B1
Abstract

A computer-implemented method for profiling a web application. A web page containing JavaScript (JS) is crawled. At least a portion of the JS is extracted from the crawled web page. An automated simulation of the extracted JS is executed.

Claims (65)

1. A computer-implemented method for profiling a web application, the method comprising:

crawling a web page containing JavaScript (JS);

extracting at least a portion of the JS from the crawled web page;

executing an automated simulation of the extracted JS;

analyzing a document object model (DOM) structure of the web page, wherein the portion of extracted JS is based at least in part on a result of the analysis of the DOM structure;

generating a mock object that mimics an object from the DOM structure of the web page; and

generating a symbolic value configured to interact with the mock object, wherein the execution of the automated simulation of the extracted JS comprises utilizing the symbolic value in relation to the mock object.

2. The method of claim 1 , further comprising:

modifying a JS interpreter to incorporate the mock object and to accept the symbolic value; and

tracking, by the modified JS interpreter, the propagation of the symbolic value throughout the execution of the automated simulation of the extracted JS.

3. The method of claim 1 , further comprising:

identifying a user-interaction driven event based at least in part on the analysis of the DOM structure; and

detecting one or more execution paths of the user-interaction driven event.

4. The method of claim 3 , further comprising:

estimating an effect of the one or more detected execution paths of the user-interaction driven event; and

summarizing the estimated effects of the detected execution paths.

5. The method of claim 1 , further comprising:

determining, based on the automated simulation of the extracted JS, whether the JS makes a request to access a portion of a device;

determining whether the access is authorized; and

determining at least a level and a type of access requested by the JS.

6. The method of claim 1 , further comprising:

detecting, based on the automated simulation of the extracted JS, whether a predetermined type of application programming interface (API) is requested by the JS; and

determining whether the JS implements a predetermined security check in relation to the JS accessing the requested API.

7. The method of claim 1 , further comprising:

selecting one or more application programming interfaces (APIs) known to be used in association with malware;

determining, based on the automated simulation of the extracted JS, whether the JS utilizes the one or more selected APIs.

8. A computing device configured to profile a web application, comprising:

a processor;

memory in electronic communication with the processor;

instructions stored in the memory, the instructions being executable by the processor to:

crawl a web page containing JavaScript (JS);

extract at least a portion of the JS from the crawled web page;

execute an automated simulation of the extracted JS;

analyze a document object model (DOM) structure of the web page, wherein the portion of extracted JS is based at least in part on a result of the analysis of the DOM structure;

generate a mock object that mimics an object from the DOM structure of the web page; and

generate a symbolic value configured to interact with the mock object, wherein the execution of the automated simulation of the extracted JS comprises utilizing the symbolic value in relation to the mock object.

9. The computing device of claim 8 , wherein the instructions are executable by the processor to:

modify a JS interpreter to incorporate the mock object and to accept the symbolic value; and

track, by the modified JS interpreter, the propagation of the symbolic value throughout the execution of the automated simulation of the extracted JS.

10. The computing device of claim 8 , wherein the instructions are executable by the processor to:

identify a user-interaction driven event based at least in part on the analysis of the DOM structure; and

detect one or more execution paths of the user-interaction driven event.

11. The computing device of claim 10 , wherein the instructions are executable by the processor to:

estimate an effect of the one or more detected execution paths of the user-interaction driven event; and

summarize the estimated effects of the detected execution paths.

12. The computing device of claim 8 , wherein the instructions are executable by the processor to:

determine, based on the automated simulation of the extracted JS, whether the JS makes a request to access a portion of a device;

determine whether the access is authorized; and

determine at least a level and a type of access requested by the JS.

13. The computing device of claim 8 , wherein the instructions are executable by the processor to:

detect, based on the automated simulation of the extracted JS, whether a predetermined type of application programming interface (API) is requested by the JS; and

determine whether the JS implements a predetermined security check in relation to the JS accessing the requested API.

14. The computing device of claim 8 , wherein the instructions are executable by the processor to:

select one or more application programming interfaces (APIs) known to be used in association with malware;

determine, based on the automated simulation of the extracted JS, whether the JS utilizes the one or more selected APIs.

15. A computer-program product for profiling, by a processor, a web application, the computer-program product comprising a non-transitory computer-readable medium storing instructions thereon, the instructions being executable by the processor to:

crawl a web page containing JavaScript (JS);

extract at least a portion of the JS from the crawled web page;

execute an automated simulation of the extracted JS;

analyze a document object model (DOM) structure of the web page, wherein the portion of extracted JS is based at least in part on a result of the analysis of the DOM structure;

generate a mock object that mimics an object from the DOM structure of the web page; and

generate a symbolic value configured to interact with the mock object, wherein the execution of the automated simulation of the extracted JS comprises utilizing the symbolic value in relation to the mock object.

16. The computer-program product of claim 15 , wherein the instructions are executable by the processor to:

modify a JS interpreter to incorporate the mock object and to accept the symbolic value; and

track, by the modified JS interpreter, the propagation of the symbolic value throughout the execution of the automated simulation of the extracted JS.

Assignments (5)
NOTICE OF SUCCESSION OF AGENCY (REEL 050926 / FRAME 0560) Recorded Sep 13, 2022
From: JPMORGAN CHASE BANK, N.A.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 061422/0371 →
SECURITY AGREEMENT Recorded Sep 13, 2022
From: NORTONLIFELOCK INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062220/0001 →
CHANGE OF NAME Recorded Jan 30, 2020
From: SYMANTEC CORPORATION
To: NORTONLIFELOCK INC.
Reel/Frame 051759/0845 →
SECURITY AGREEMENT Recorded Nov 4, 2019
From: SYMANTEC CORPORATION; BLUE COAT LLC; LIFELOCK, INC,; SYMANTEC OPERATING CORPORATION
To: JPMORGAN, N.A.
Reel/Frame 050926/0560 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2013
From: LIU, YIN
To: SYMANTEC CORPORATION
Reel/Frame 029964/0337 →