EP1810152B1

Method and system for adaptive rule-based content scanners

Abstract

This record has no abstract on file.

EP1810152B1, drawing sheet 1
Sheet 1 of 11

Term

Term ended

Expired 24 August 2025, 1.1 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

16 claims: 10 independent, 6 dependent

  1. 1
    A computer system (130; 200) for scanning incoming mobile code, comprising:a receiver for receiving an incoming stream of mobile code for a specific programming language;parser rules and analyzer rules for the specific programming language, wherein the parser rules define certain patterns in terms of tokens, tokens being lexical constructs for the specific programming language, and wherein the analyzer rules identify certain combinations of tokens and patterns as being indicators of potential exploits, exploits being portions of mobile code that are malicious;a tokenizer (210) operatively coupled to said receiver for identifying individual tokens within the incoming stream;a parser (220) operatively coupled to said tokenizer and operable to use said parser rules for dynamically building, while said receiver is receiving the incoming stream, a parse tree whose nodes represent tokens or patterns in accordance with the parser rules;an analyzer (230) operatively coupled to said parser and operable to use said analyzer rules for dynamically detecting, while said parser is dynamically building the parse tree, combinations of nodes in the parse tree which are indicators of potential exploits, based on the analyzer rules;and means for generating a security profile for the stream indicating whether or not potential exploits have been discovered within the stream, and, if so, providing a diagnostic list of one or more potential exploits and their respective locations within the stream.
  2. 4
    The system of any preceding claim, further comprising a pattern-matching engine operatively coupled to said parser, for matching a pattern within a sequence of tokens in accordance with the parser rules.
  3. 7
    The system of any one of claims 4 to 6, wherein parser rules are merged into a single deterministic finite automaton (DFA).
  4. 8
    The system of any preceding claim, wherein the parser and analyzer rules include actions to be performed when corresponding rules are matched.
  5. 9
    The system of any preceding claim, further comprising a scripting engine operatively coupled to said parser and said analyzer for implementing the actions to be performed.
  6. 10
    The system of any preceding claim, wherein the specific programming language is at least one of JavaScript, Visual Basic, HyperText Markup Language (HTML) and Uniform Resource Identifier (URI).
  7. 11
    A computer processor-based method for scanning incoming mobile code, comprising:receiving, by a computer, an incoming stream of mobile code for a specific programming language;identifying (500), by the computer, individual tokens within the incoming stream, tokens being lexical constructs for the specific programming language;dynamically building (510), by the computer while said receiving receives the incoming stream, a parse tree whose nodes represent tokens or patterns in accordance with parser rules for the specific programming language, wherein the parser rules define certain patterns in terms of tokens;dynamically detecting (560), by the computer while said dynamically building builds the parse tree, combinations of nodes in the parse tree, which are indicators of potential exploits, based on analyzer rules for the specific programming language, wherein the analyzer rules identify certain combinations of tokens and patterns as being indicators of potential exploits, exploits being portions of mobile code that are malicious;and generating a security profile for the stream indicating whether or not potential exploits have been discovered within the stream, and, if so, the security profile further providing a diagnostic list of one or more potential exploits and their respective locations within the stream.
  8. 14
    The method of any one of claims 11 to 13, wherein the specific programming language is at least one of JavaScript, Visual Basic VBScript, HyperText Markup Language (HTML) and Uniform Resource Identifier (URI).
  9. 15
    The method of any one of claims 11 to 14, wherein the incoming stream of mobile code includes embedded mobile code for another programming language different than the specific programming language, the method further comprising repeating said identifying, said dynamically building, said dynamically detecting and said generating for the embedded mobile code, based on the parser and analyzer rules for the other programming language.
  10. 16
    A computer-readable storage medium storing program code for causing a computer to perform the steps of:receiving an incoming stream of mobile code for a specific programming language;identifying individual tokens within the incoming stream, tokens being lexical constructs for the specific programming language;dynamically building, while said receiving receives the incoming stream, a parse tree whose nodes represent tokens or patterns in accordance with parser rules for the specific programming language, wherein the parser rules define certain patterns in terms of tokens;dynamically detecting, while said dynamically building builds the parse tree, combinations of nodes in the parse tree, which are indicators of potential exploits, based on analyzer rules for the specific programming language, wherein the analyzer rules identify certain combinations of tokens and patterns as being indicators of potential exploits, exploits being portions of mobile code that are malicious;and generating a security profile for the stream indicating whether or not potential exploits have been discovered within the stream, and, if so, the security profile further providing a diagnostic list of one or more potential exploits and their respective locations within the stream.