IP Library Granted Patent US 8,499,283
Granted Patent B2
US 8,499,283 · App. 13/010,639 · Granted Jul 30, 2013

Detection of scripting-language-based exploits using parse tree transformation

Inventor: Rajesh Mony (Sunnyvale, CA)
Assignee: Webroot Inc.
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 8,499,283
App. No.
13/010,639
Granted
Jul 30, 2013
Kind
B2
Abstract

Systems and methods for protecting client computers are described. One exemplary system includes an initial filter that gathers scripting-language-data from webpage data and a signature database of signatures of known scripting-language-data exploits. In addition, a parser generates a parse tree from the scripting-language-data, and a normalization and signature matching component reduces a complexity of the parse tree, generates a representation of at least a portion of a structure of the parse tree, and prevents the scripting-language-data from reaching an intended recipient if the representation matches one of the signatures of known scripting-language-data exploits.

Claims (62)

1. A method for protecting client computers, comprising:

receiving webpage data at a proxy from a webpage before the data reaches

an intended recipient, wherein the proxy is disposed as an intermediary between a server serving up the webpage and the intended recipient;

gathering scripting-language-data from the webpage data;

identifying characteristics of the scripting-language-data;

scoring the characteristics of the scripting-language-data based upon a likelihood that the characteristics of the scripting-language-data are associated with malicious scripting-language-data;

generating a parse tree from the gathered scripting-language-data;

normalizing string-splitting constructs to reduce a level of string splitting in the parse tree;

replacing variable names of the parse tree with standard names;

generating a representation of at least a portion of the standard names;

comparing the representation with signatures of known scripting language exploits; and

determining whether to prevent the scripting-language-data from reaching the intended recipient based upon one or more of:

(i) a score of characteristics of a normalized scripting-language-data;

(ii) a score of characteristics of inspection data based on the scripting-language-data; and

(iii) when the representation matches a signature of the one of the known scripting language exploits.

2. The method of claim 1 , wherein the representation is a hash of at least a portion of the standard names.

3. The method of claim 1 , including:

disassembling a string that is generated from the scripting-language-data;

pseudo-executing the disassembled string; and

determining whether the scripting-language-data includes shellcode.

4. The method of claim 3 , wherein the disassembling is responsive to a size of the string exceeding a threshold.

5. The method of claim 1 , wherein identifying characteristics of the normalized scripting language-data includes identifying a presence of Eval functions, identifying statements exceeding a threshold-string-size, and identifying the existence of a DOM object, and wherein the inspection-data collected from the inspection points includes an indication whether a hidden Iframe is present, an indication whether a script writes another dynamic script, and an indication whether a script error matches a known anti-emulator method.

6. The method of claim 1 , wherein the normalized scripting-language-data comprises consolidated portions of scripting-language-data that are normalized into tokens; and

wherein the inspection data is collected during the emulated execution of data suspected of being scripting-language-based.

7. The method of claim 6 , wherein the normalized scripting-language-data indicates functions that the scripting-language-data would execute when executed in a web browser.

8. A system executed by a processor for protecting client computers; comprising:

an initial filter that gathers scripting-language-data from webpage data;

a signature database of signatures of known scripting-language-data exploits;

a parser that generates a parse tree from the scripting-language-data;

a normalization and signature matching component that reduces a complexity of the parse tree, generates a representation of at least a portion of a structure of the parse tree, and prevents the scripting-language-data from reaching an intended recipient when the representation matches one of the signatures of known scripting-language-data exploits; and

an analysis component that identifies characteristics of the scripting-language-data, scores the characteristics of scripting-language-data based upon a likelihood that the characteristics of the scripting-language-data are associated with malicious scripting-language data, and determines whether to block the scripting-language-data from reaching the intended recipient based upon a score of characteristics of a normalized scripting-language-data and a score of characteristics of inspection data based on the scripting language-data.

9. The system of claim 8 , wherein the normalization and signature matching component generates a hash representation of at least a portion of the structure of the parse tree.

10. The system of claim 8 , including:

a shellcode module that disassembles one or more strings that are generated during an emulated execution of the scripting-language-data so as to generate disassembled code and pseudo-executes at least a portion of the disassembled code to determine whether to block the scripting-language-data from reaching the intended recipient based upon pseudo-execution-data.

11. The system of claim 8 , wherein the shellcode module does not disassemble the one or more strings unless the one or mores strings exceeds a size threshold.

12. The system of claim 8 , wherein the normalized scripting-language-data comprises consolidated portions of scripting-language-data that are normalized into tokens; and

wherein the inspection data is collected during the emulated execution of data suspected of being scripting-language-based.

13. The system of claim 12 , wherein the normalized scripting-language-data indicates functions that the scripting-language-data would execute when executed in a web browser.

14. A non-transitory, tangible computer readable storage medium, encoded with processor readable instructions to perform a method for protecting client computers, the method comprising:

receiving webpage data at a proxy from a webpage before the data reaches an intended recipient, wherein the proxy is disposed as an intermediary between a server serving up the webpage and the intended recipient;

gathering scripting-language-data from the webpage data;

generating a parse tree from the gathered scripting-language-data;

identifying characteristics of the scripting-language-data;

scoring the characteristics of the scripting-language-data based upon a likelihood that the characteristics of the scripting-language-data are associated with malicious scripting-language-data;

normalizing string-splitting constructs to reduce a level of string splitting in the parse tree;

replacing variable names of the parse tree with standard names;

generating a representation of at least a portion of the standard names;

comparing the representation with signatures of known scripting language exploits; and

determining whether to prevent the scripting-language-data from reaching the intended recipient based upon one or more of:

(i) a score of characteristics of a normalized scripting-language-data;

(ii) a score of characteristics of inspection data based on the scripting-language-data; and

(iii) when the representation matches a signature of the one of the known scripting language exploits.

15. The non-transitory, tangible computer readable storage medium of claim 14 , wherein the representation is a hash of at least a portion of the standard names.

16. The non-transitory, tangible computer readable storage medium of claim 14 , the method including:

disassembling a string that is generated from the scripting-language-data;

pseudo-executing the disassembled string; and

determining whether the scripting-language-data includes shellcode.

17. The non-transitory, tangible computer readable storage medium of claim 16 , wherein the disassembling is responsive to a size of the string exceeding a threshold.

18. The non-transitory, tangible computer readable storage medium of claim 14 , wherein identifying characteristics of the normalized scripting-language-data includes identifying a presence of Eval functions, identifying statements exceeding a threshold-string-size, and identifying the existence of a DOM object, and wherein the inspection-data collected from the inspection points includes an indication whether a hidden Iframe is present, an indication whether a script writes another dynamic script, and an indication whether a script error matches a known anti-emulator method.

19. The non-transitory, tangible computer readable storage medium of claim 14 , wherein the normalized scripting-language-data comprises consolidated portions of scripting-language-data that are normalized into tokens; and

wherein the inspection data is collected during the emulated execution of data suspected of being scripting-language-based.

20. The non-transitory, tangible computer readable storage medium of claim 19 , wherein the normalized scripting-language-data indicates functions that the scripting-language-data would execute when executed in a web browser.

Assignments (9)
ASSIGNMENT AND ASSUMPTION AGREEMENT Recorded Jul 6, 2023
From: CARBONITE, LLC
To: OPEN TEXT INC.
Reel/Frame 064351/0178 →
CERTIFICATE OF CONVERSION Recorded Jun 29, 2023
From: WEBROOT INC.
To: WEBROOT LLC
Reel/Frame 064176/0622 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2023
From: WEBROOT LLC
To: CARBONITE, LLC
Reel/Frame 064167/0129 →
RELEASE OF SECURITY INTEREST IN PATENT RIGHTS RECORDED AT R/F 048723/0612 Recorded Dec 26, 2019
From: BARCLAYS BANK PLC, AS COLLATERAL AGENT
To: WEBROOT INC.
Reel/Frame 051418/0714 →
SECURITY INTEREST Recorded Mar 28, 2019
From: WEBROOT INC.
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 048723/0612 →
RELEASE OF SECURITY INTEREST Recorded Mar 22, 2019
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: WEBROOT INC.
Reel/Frame 050454/0102 →
SECURITY INTEREST Recorded Jan 6, 2015
From: WEBROOT INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 034742/0085 →
CHANGE OF NAME Recorded Oct 1, 2012
From: WEBROOT SOFTWARE, INC.
To: WEBROOT INC.
Reel/Frame 029062/0290 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2011
From: MONY, RAJESH
To: WEBROOT SOFTWARE, INC.
Reel/Frame 025671/0554 →
Continuity (3)
Continuation In Part 12703074 · Feb 9, 2010
Provisional Application 61387420 · Sep 28, 2010
Related Publication 20110197177A1 · Aug 11, 2011