throbber
Case 3:17-cv-05659-WHA Document 391-6 Filed 03/14/19 Page 1 of 17
`Case 3:17-cv-05659-WHA Document 391-6 Filed 03/14/19 Page 1 of 17
`
`EXHIBIT 4
`EXHIBIT 4
`
`

`

`Case 3:17-cv-05659-WHA Document 391-6 Filed 03/14/19 Page 2 of 17
`111111
`1111111111111111111111111111111111111111111111111111111111111
`US008141154B2
`
`c12) United States Patent
`Gruzman et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 8,141,154 B2
`Mar.20,2012
`
`(54) SYSTEM AND METHOD FOR INSPECTING
`DYNAMICALLY GENERATED EXECUTABLE
`CODE
`
`(75)
`
`Inventors: David Gruzman, Ramat Gan (IL);
`Yuval Ben-Itzhak, Tel Aviv (IL)
`
`(73) Assignee: Finjan, Inc. (IL)
`
`( *) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(21) Appl. No.: 12/814,584
`
`(22) Filed:
`
`Jun.14,2010
`
`(65)
`
`(51)
`
`(52)
`(58)
`
`(56)
`
`Prior Publication Data
`
`US 2010/0251373 Al
`
`Sep. 30, 2010
`
`Int. Cl.
`G06F 11100
`(2006.01)
`U.S. Cl. ............... 726/22; 726/23; 726/24; 713/188
`Field of Classification Search ........................ None
`See application file for complete search history.
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`5,359,659 A
`10/1994 Rosenthal ....................... 726/24
`5,974,549 A
`10/1999 Golan ............................. 726/23
`1111999 Ji
`.................................... 726113
`5,983,348 A
`6,092,194 A
`7/2000 Touboul .......................... 726/24
`6,167,520 A
`12/2000 Touboul .......................... 726/23
`6,272,641 B1
`8/2001 Ji
`.................................... 726/24
`6,934,857 B1
`8/2005 Bartleson eta!. ................. 726/5
`6,965,968 B1
`1112005 Touboul ........................ 7111118
`7,203,934 B2
`4/2007 Souloglou et al ............. 717/146
`7,287,279 B2
`10/2007 Bertman eta!. ................ 726/23
`7,313,822 B2
`12/2007 Ben-Itzhak ..................... 726/24
`7,739,682 B1 *
`6/2010 Badenell ....................... 717/174
`7,836,504 B2 *
`1112010 Ray eta!. ........................ 726/24
`
`200110005889 A1 *
`2002/0116635 A1
`2004/0133796 A1
`2004/0153644 A1
`2004/0158729 A1
`2005/0108562 A1
`2005/0149749 A1 *
`2006/0015940 A1
`2006/0161981 A1
`2007/0016948 A1
`* cited by examiner
`
`6/2001 Albrecht ....................... 713/201
`8/2002 Sheymov ........................ 726/24
`7/2004 Cohen eta!. .................... 726/24
`8/2004 McCorkendale eta!. .... 713/156
`8/2004 Szor .............................. 713/190
`5/2005 Khazan eta!. .................. 726/23
`7/2005 Van Brabant ................. 713/200
`112006 Zamir et a!.
`.................... 726/22
`7/2006 Sheth eta!. ..................... 726/22
`112007 Dubrovsky eta!. ............. 726/22
`
`Primary Examiner- Ponnoreay Pich
`(74) Attorney, Agent, or Firm- Dawn-Marie Bey; King &
`Spalding LLP
`
`ABSTRACT
`(57)
`A method for protecting a client computer from dynamically
`generated malicious content, including receiving at a gateway
`computer content being sent to a client computer for process(cid:173)
`ing, the content including a call to an original function, and
`the call including an input, modifying the content at the
`gateway computer, including replacing the call to the original
`function with a corresponding call to a substitute function, the
`substitute function being operational to send the input to a
`security computer for inspection, transmitting the modified
`content from the gateway computer to the client computer,
`processing the modified content at the client computer, trans(cid:173)
`mitting the input to the security computer for inspection when
`the substitute function is invoked, determining at the security
`computer whether it is safe for the client computer to invoke
`the original function with the input, transmitting an indicator
`of whether it is safe for the client computer to invoke the
`original function with the input, from the security computer to
`the client computer, and invoking the original function at the
`client computer with the input, only if the indicator received
`from the security computer indicates that such invocation is
`safe. A system and a computer-readable storage medium are
`also described and claimed.
`
`12 Claims, 5 Drawing Sheets
`
`-
`
`,-----
`
`-
`
`Gl
`
`0
`0
`~:'!i r'--465
`om
`_z
`:::!!:::!
`g:~
`c
`
`~
`~
`--<
`440-., ?:
`z
`--<f--- (/l " :j
`m "'
`
`0 c m z
`--< ,
`~ ir445
`<
`m
`"'
`
`INDICATOR TO CLIENT
`COMPUTER OF SAFE INPUT
`
`ORIGINAL INCOMING
`CONTENT
`42{
`
`~f-.-
`~ v-4as
`"'
`m <
`m "
`
`m
`0
`
`-
`
`z
`"
`5i
`z en
`" a H DATABASE OF
`
`~
`
`l'-475
`
`SI:CURITY POLICIES
`iso
`
`405-
`
`-
`
`GATEWAY COMPUTER
`
`MODIFIED INPUT
`
`'-----
`
`425
`
`450-.,
`
`'----
`
`410+
`
`CLIENT COMPUTER
`
`-
`
`,-----
`0
`0
`~ '-470
`\""rn~' ~ 91
`--<
`~ _ . , -
`0 §
`g
`"'
`m
`z
`--<
`.1
`/_'"~·
`~
`iii
`" ~
`"'
`
`

`

`Case 3:17-cv-05659-WHA Document 391-6 Filed 03/14/19 Page 3 of 17
`
`U.S. Patent
`
`Mar.20,2012
`
`Sheet 1 of 5
`
`US 8,141,154 B2
`
`I CONTENT PROCESSOR I
`[,
`t:: J
`~ ::;
`I CONTENT INSPECTOR I 8
`ffi
`:J u
`I
`I CUENT RECEIVER
`'--------,...;:-----'· r
`
`I GATCWAYTRANSMITTER I
`~ a.
`f "' J
`::;
`8
`>
`~
`I GATEWAYRECEIVER I (3
`r
`
`I CONTENT PROCESSOR I
`1
`a:
`::
`1!:
`~
`J
`ir ::;
`I CONTENT INSPECTOR I 8
`ffi :J
`
`0
`
`..,.
`"'
`\
`I
`I CLIENT RECEIVER
`r--(--
`!z
`5!
`~ 0
`<i z a
`
`f\~
`
`0
`
`i2
`0
`
`I GATEWAY TRANSMIT11:R j
`.(
`~
`:!
`I!
`J
`I CONTENT INSPECTOR I 8
`~
`\ I GATCWAY RECEIVER I
`
`:!!
`
`(!)
`z
`~ 8!z
`:!:I!! "~
`~z _8
`(!) a:
`0
`
`Q.
`::;
`
`>
`
`(3
`
`L
`J,
`~
`
`I CONTENT PROCESSOR I ~
`l
`
`~
`
`D. ::;
`0
`u
`ffi
`Ia
`(-
`~
`
`"'
`j
`I CUENT RECEIVER
`...
`~
`z
`0 u '\~
`~
`~ 0
`I GATEWAY TRANSMITTER I
`1
`m
`I!
`::::1
`J
`D. ::;
`I CONTENT INSPECTOR I 0 u
`~
`~
`\
`I GATCWAY RECEIVER I
`
`:!:
`
`~
`
`r
`J,
`~
`
`t!l
`z
`~!z
`;!;~
`~8 t!l
`
`i2
`0
`
`"~
`
`

`

`Case 3:17-cv-05659-WHA Document 391-6 Filed 03/14/19 Page 4 of 17
`
`U.S. Patent
`
`Mar.20,2012
`
`Sheet 2 of 5
`
`US 8,141,154 B2
`
`I
`INPUT. CUENT ID
`F====~\=====~====~v'l SECURITY RECEIVER
`
`I
`MODIFIED INPIJT
`K==:==:::;:::~~~::;::;:::::::====::J SECURITY TRANSMITTER
`CLIENT RECEIVER
`1..-----,..----' I
`1
`INDICATOR TOCUENT
`'-----1"'~---f--Jr~ COMPUTER OF SAFE INPIJT 1..-----------------.f---Jr
`6
`1.,
`N
`N
`
`I CLIENT TRANSMITTER
`t :!:!
`~n.
`}~
`d I
`::;:
`I CONTENT PROCESSOR I 8
`ffi
`
`~
`
`"'
`~
`
`_'-,
`
`I
`~ '
`~ ~
`d~
`~
`j
`t5 ~
`~ Hr--IN_P_UT-IN-'SL..PE-C-TO_R...t!-..,l .... _ __.._
`~
`r---~~
`~I\
`( ~~
`-
`g
`i3Ul
`N L.......--
`L......-
`
`:2
`
`N
`
`~
`
`\.
`
`N
`
`D
`
`I GATEWAYTRANSMITIER I
`[
`~
`
`:3
`J
`I_ CONTENT MODIFIER
`
`I GATEWAY RECEIVER I
`r
`
`

`

`Case 3:17-cv-05659-WHA Document 391-6 Filed 03/14/19 Page 5 of 17
`
`U.S. Patent
`
`Mar.20,2012
`
`Sheet 3 of 5
`
`US 8,141,154 B2
`
`r- GATEWAYCOMPUTER --+j
`
`1-- CLIENT COMPUTER -.J
`
`1-- SECURJTV COMPUTER -.J
`
`392
`
`SET INDICATOR • TRUE
`
`SET INDICATOR c FALSE
`
`FIG. 3
`
`

`

`Case 3:17-cv-05659-WHA Document 391-6 Filed 03/14/19 Page 6 of 17
`
`.---
`
`0
`0
`:s:;z
`~'--465
`o-1 em
`_z
`:::!!:::!
`m-
`;o~
`c
`-1
`
`440-..,
`
`r -
`
`G)
`
`~
`
`~
`-1
`~
`z
`(FJ
`~
`
`=I
`m
`;o
`
`.___
`
`- ' - -
`
`2 ,
`s
`2
`,
`en
`m
`a
`
`;o
`
`1'--475
`
`'---
`
`- ' - - -
`
`~
`m v-435
`~
`" '-<
`;o
`m
`0 m
`<
`m
`;o
`
`...
`
`ORIGINAL INCOMING
`CONTENT
`
`4/o
`
`.....__ ,...-
`
`DATABASE OF
`SECURITY POLICIES
`
`'
`
`480
`
`...--
`
`0 r m z
`
`-1
`:u
`m
`(') [t-445
`!!!
`<
`m :u
`
`v
`
`' - - -
`
`INDICATOR TO CLIENT
`COMPUTER OF SAFE INPUT
`MODIFIED CONTENT,
`MODIFIED INPUT
`
`425
`
`INPUT, CLIENT ID
`
`...--
`0
`0
`~ i'-470
`~
`-f .,
`
`;o
`0
`0 m
`~
`0
`;o
`' - - -
`
`-
`
`450~
`
`-1
`
`0 c m z
`~ z en :::
`~ ;o
`
`405-
`
`"''---- GATEWAY COMPUTER
`
`410-
`
`1\
`
`CLIENT COMPUTER
`
`' - - -
`
`FIG. 4
`
`~
`00
`•
`~
`~
`~
`
`~ = ~
`
`~
`~ :-:
`N
`~0
`N
`
`0 ....
`
`N
`
`rFJ =(cid:173)
`.....
`
`('D
`('D
`
`.j;o.
`
`0 .....
`Ul
`
`d
`rJl
`"'010
`""""' ~
`""""'
`"'
`""""' u.
`
`~ = N
`
`

`

`Case 3:17-cv-05659-WHA Document 391-6 Filed 03/14/19 Page 7 of 17
`
`U.S. Patent
`
`Mar.20,2012
`
`Sheet 5 of 5
`
`US 8,141,154 B2
`
`r- CLIENT COMPUTER
`
`----1
`
`1----- G4TEWAYCOMPUTER _ ,
`
`RECEIVE CONTENT FROM
`NETWORK INTENDED FOR CLIENT
`COMPUTER
`
`t
`
`Jo
`
`SCAN CONTENT/INPUT FOR
`~
`PRESEfiCE OF FUNCTION CALLS
`
`~5
`t
`_J' ~L"'ON CAUS>OO~
`f YES
`
`510
`
`l
`._f ' \ _ TRI\NSMIT CONTENT TO CLIENT -
`RECEIVE INPUT AND CLIENT ID -
`'
`
`REPLACE ORIGINAL FUNCTION
`CALLS WlTH SUBSTITUTE
`FUNCTION CAUS
`
`t
`
`FOR PROCESSING
`
`-
`
`FROM CLIENT COMPUTER
`
`SCAN INPUT TO DETERMINE
`SECURiTY PROFILE
`
`*
`
`RETRIEVE SECURITY POliCY FOR
`CLIENT COMPUTER
`
`t
`
`COMPARE CONTENT SECURIT'l'
`PROFILE WITH CLIENT SECURITY
`POUCY
`
`~
`~FOR CLIENT TO INVOKE
`
`GINAL FUNCTION WITH
`INPUT?
`
`*YES
`
`SET INDICATOR"" TRUE
`
`'--too
`
`SET INDICATOR~ FALSE
`
`RECEIVE CONTENT FROM
`GATEWAY COMPUTER
`
`~5
`
`•
`CONTINUE TO PROCESS -
`)0
`J
`
`CONTENT
`
`INVOKE SUBSTITUTE FUNCTION
`
`TRANSMIT INPUT AND CLIENT 10
`~ TO GATEWAY COMPUTER FOR
`INSPECTION
`
`*
`
`r-
`
`RECEIVE SAFETV INDICA TOR
`FROM GATEWAY COMPU1ER
`
`)5
`
`~0
`
`~5
`
`*
`
`INDICATOR" TRUE :? y
`
`~YES
`
`INVOKE ORIGINAL FUNCTION
`WITH INPUT
`
`580
`
`-
`~s
`
`Jo
`
`J5
`
`550
`
`~5
`
`l
`
`565
`
`-
`Jo
`
`)5
`
`COMPUTER
`
`TRANSMIT INDICATOR TO CLIENT -
`*
`' 5110
`FIG. 5
`
`

`

`Case 3:17-cv-05659-WHA Document 391-6 Filed 03/14/19 Page 8 of 17
`
`US 8,141,154 B2
`
`1
`SYSTEM AND METHOD FOR INSPECTING
`DYNAMICALLY GENERATED EXECUTABLE
`CODE
`
`FIELD OF THE INVENTION
`
`The present invention relates to computer security, and
`more particularly to protection against malicious code such as
`computer viruses.
`
`BACKGROUND OF THE INVENTION
`
`Computer viruses have been rampant for over two decades
`now. Computer viruses generally come in the form of execut(cid:173)
`able code that performs adverse operations, such as modifY(cid:173)
`ing a computer's operating system or file system, damaging a
`computer's hardware or hardware interfaces, or automati(cid:173)
`cally transmitting data from one computer to another. Gener(cid:173)
`ally, computer viruses are generated by hackers willfully, in
`order to exploit computer vulnerabilities. However, viruses
`can also arise by accident due to bugs in software applica(cid:173)
`tions.
`Originally computer viruses were transmitted as execut(cid:173)
`able code inserted into files. As each new virus was discov(cid:173)
`ered, a signature of the virus was collected by anti-virus
`companies and used from then on to detect the virus and
`protect computers against it. Users began routinely scanning
`their file systems using anti-virus software, which regularly
`updated its signature database as each new virus was discov(cid:173)
`ered.
`Such anti -virus protection is referred to as "reactive", since
`it can only protect in reaction to viruses that have already been
`discovered.
`With the advent of the Internet and the ability to run execut(cid:173)
`able code such as scripts within Internet browsers, a new type
`of virus formed; namely, a virus that enters a computer over
`the Internet and not through the computer's file system. Such
`Internet viruses can be embedded within web pages and other
`web content, and begin executing within an Internet browser
`as soon as they enter a computer. Routine file scans are not
`able to detect such viruses, and as a result more sophisticated
`anti-virus tools had to be developed.
`Two generic types of anti-virus applications that are cur(cid:173)
`rently available to protect against such Internet viruses are (i)
`gateway security applications, and (ii) desktop security appli(cid:173)
`cations. Gateway security applications shield web content
`before the content is delivered to its intended destination
`computer. Gateway security applications scan web content,
`and block the content from reaching the destination computer
`if the content is deemed by the security application to be
`potentially malicious. In distinction, desktop security appli(cid:173)
`cations shield against web content after the content reaches its
`intended destination computer.
`Moreover, in addition to reactive anti-virus applications,
`that are based on databases of known virus signatures,
`recently "proactive" antivirus applications have been devel(cid:173)
`oped. Proactive anti-virus protection uses a methodology
`known as "behavioral analysis" to analyze computer content
`for the presence of viruses. Behavior analysis is used to auto(cid:173)
`matically scan and parse executable content, in order to detect
`which computer operations the content may perform. As
`such, behavioral analysis can block viruses that have not been
`previously detected and which do not have a signature on
`record, hence the name "proactive".
`Assignee's U.S. Pat. No. 6,092,194 entitled SYSTEM
`AND METHOD FOR PROTECTING A COMPUTER AND
`A NETWORK FROM HOSTILE DOWNLOAD ABLES, the
`
`2
`contents of which are hereby incorporated by reference,
`describes gateway level behavioral analysis. Such behavioral
`analysis scans and parses content received at a gateway and
`generates a security profile for the content. A security profile
`is a general list or delineation of suspicious, or potentially
`malicious, operations that executable content may perform.
`The derived security profile is then compared with a security
`policy for the computer being protected, to determine
`whether or not the content's security profile violates the com-
`10 puter's security policy. A security policy is a general set of
`simple or complex rules, that may be applied logically in
`series or in parallel, which determine whether or not a specific
`operation is permitted or forbidden to be performed by the
`content on the computer being protected. Security policies are
`15 generally configurable, and set by an administrator of the
`computer that is being protected.
`Assignee's U.S. Pat. No. 6,167,520 entitled SYSTEM
`AND METHOD FOR PROTECTING A CLIENT DURING
`RUNTIME FROM HOSTILE DOWNLOADABLES, the
`20 contents of which are hereby incorporated by reference,
`describes desktop level behavioral analysis. Desktop level
`behavioral analysis is generally implemented during run(cid:173)
`time, while a computer's web browser is processing web
`content received over the Internet. As the content is being
`25 processed, desktop security applications monitor calls made
`to critical systems of the computer, such as the operating
`system, the file system and the network system. Desktop
`security applications use hooks to intercept calls made to
`operating system functions, and allow or block the calls as
`30 appropriate, based on the computer's security policy.
`Each of the various anti-virus technologies, gateway vs.
`desktop, reactive vs. proactive, has its pros and cons. Reactive
`anti-virus protection is computationally simple and fast; pro(cid:173)
`active virus protection is computationally intensive and
`35 slower. Reactive anti-virus protection cannot protect against
`new "first-time" viruses, and carmot protect a user if his
`signature file is out of date; proactive anti -virus protection can
`protect against new "first-time" viruses and do not require
`regular downloading of updated signature files. Gateway
`40 level protection keeps computer viruses at a greater distance
`from a local network of computers; desktop level protection is
`more accurate. Desktop level protection is generally available
`in the consumer market for hackers to obtain, and is suscep(cid:173)
`tible to reverse engineering; gateway level protection is not
`45 generally available to hackers.
`Reference is now made to FIG. 1, which is a simplified
`block diagram of prior art systems for blocking malicious
`content, as described hereinabove. The topmost system
`shown in FIG. 1 illustrates a gateway level security applica-
`50 tion. The middle system shown in FIG. 1 illustrates a desktop
`level security application, and the bottom system shown in
`FIG. 1 illustrates a combined gateway+desktop level security
`application.
`The topmost system shown in FIG. 1 includes a gateway
`55 computer 105 that receives content from the Internet, the
`content intended for delivery to a client computer 110. Gate(cid:173)
`way computer 105 receives the content over a communication
`channel120, and gateway computer communicates with cli(cid:173)
`ent computer 110 over a communication charmel125. Gate-
`60 way computer 105 includes a gateway receiver 135 and a
`gateway transmitter 140. Client computer 110 includes a
`client receiver 145. Client computer generally also has a
`client transmitter, which is not shown.
`Client computer 110 includes a content processor 170,
`65 such as a conventional web browser, which processes Internet
`content and renders it for interactive viewing on a display
`monitor. Such Internet content may be in the form of execut-
`
`

`

`Case 3:17-cv-05659-WHA Document 391-6 Filed 03/14/19 Page 9 of 17
`
`US 8,141,154 B2
`
`4
`tion, since the malicious JavaScript is not present in the con(cid:173)
`tent prior to run-time. A content inspector will only detect the
`presence of a call to Document. write() with input text that is
`yet unknown. If such a content inspector were to block all
`calls to Document. write() indiscriminately, then many harm(cid:173)
`less scripts will be blocked, since most of the time calls to
`Document.write( ) are made for dynamic display purposes
`only.
`U.S. Pat. Nos. 5,983,348 and 6,272,641, both to Ji, describe
`10 reactive client level content inspection, that modifies down(cid:173)
`loaded executable code within a desktop level anti-virus
`application. However, such inspection can only protect
`against static malicious content, and cannot protect against
`dynamically generated malicious content.
`Desktop level run-time behavioral analysis has a chance of
`shielding a client computer against dynamically generated
`malicious code, since such code will ultimately make a call to
`an operating system function. However, desktop anti-virus
`protection has a disadvantage of being widely available to the
`20 hacker community, which is always eager to find vulnerabili(cid:173)
`ties. In addition, desktop anti -virus protection has a disadvan(cid:173)
`tage of requiring installation of client software.
`As such, there is a need for a new form of behavioral
`analysis, which can shield computers from dynamically gen-
`25 erated malicious code without running on the computer itself
`that is being shielded.
`
`15
`
`SUMMARY OF THE DESCRIPTION
`
`3
`able code, JavaScript, VBScript, Java applets, ActiveX con(cid:173)
`trols, which are supported by web browsers.
`Gateway computer 105 includes a content inspector 17 4
`which may be reactive or proactive, or a combination of
`reactive and proactive. Incoming content is analyzed by con(cid:173)
`tent inspector 17 4 before being transmitted to client computer
`110. If incoming content is deemed to be malicious, then
`gateway computer 105 preferably prevents the content from
`reaching client computer 110. Alternatively, gateway com(cid:173)
`puter 105 may modifY the content so as to render it harmless,
`and subsequently transmit the modified content to client com(cid:173)
`puter 110.
`Content inspector 17 4 can be used to inspect incoming
`content, on its way to client computer 110 as its destination,
`and also to inspect outgoing content, being sent from client
`computer 110 as its origin.
`The middle system shown in FIG. 1 includes a gateway
`computer 105 and a client computer 110, the client computer
`110 including a content inspector 176. Content inspector 176
`may be a conventional Signature-based anti-virus applica(cid:173)
`tion, or a run-time behavioral based application that monitors
`run-time calls invoked by content processor 170 to operating
`system, file system and network system functions.
`The bottom system shown in FIG. 1 includes both a content
`inspector 174 at gateway computer 105, and a content inspec(cid:173)
`tor 176 at client computer 110. Such a system can support
`conventional gateway level protection, desktop level protec(cid:173)
`tion, reactive anti-virus protection and proactive anti-virus
`protection.
`As the hacker vs. anti-virus protection battle continues to
`wage, a newer type of virus has sprung forward; namely,
`dynamically generated viruses. These viruses are themselves
`generated only at run-time, thus thwarting conventional reac(cid:173)
`tive analysis and conventional gateway level proactive behav- 35
`ioral analysis. These viruses take advantage of features of
`dynamic HTML generation, such as executable code or
`scripts that are embedded within HTML pages, to generate
`themselves on the fly at runtime.
`For example, consider the following portion of a standard 40
`HTMLpage:
`
`30
`
`The present invention concerns systems and methods for
`implementing new behavioral analysis technology. The new
`behavioral analysis technology affords protection against
`dynamically generated malicious code, in addition to conven(cid:173)
`tiona! computer viruses that are statically generated.
`The present invention operates through a security com(cid:173)
`puter that is preferably remote from a client computer that is
`being shielded while processing network content. During
`run-time, while processing the network content, but before
`the client computer invokes a function call that may poten(cid:173)
`tially dynamically generate malicious code, the client com(cid:173)
`puter passes the input to the function to the security computer
`for inspection, and suspends processing the network content
`pending a reply back from the security computer. Since the
`input to the function is being passed at run-time, it has already
`45 been dynamically generated and is thus readily inspected by
`a content inspector. Referring to the example above, were the
`input to be passed to the security computer prior to run-time,
`it would take the form of indeterminate text; whereas the
`input passed during run-time takes the determinate form
`50 <SCRIPT>malicious JavaScript</SCRIPT>,
`which can readily be inspected. Upon receipt of a reply from
`the security computer, the client computer resumes process(cid:173)
`ing the network content, and knows whether to by-pass the
`function call invocation.
`To enable the client computer to pass function inputs to the
`security computer and suspend processing of content pending
`replies from the security computer, the present invention
`operates by replacing original function calls with substitute
`function calls within the content, at a gateway computer, prior
`60 to the content being received at the client computer.
`The present invention also provides protection against
`arbitrarily many recursive levels of dynamic generation of
`malicious code, whereby such code is generated via a series
`of successive function calls, one within the next.
`By operating through the medium of a security computer,
`the present invention overcomes the disadvantages of desktop
`anti-virus applications, which are available to the hacker
`
`<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
`Transitional/ /EN">
`<HTML>
`<SCRIPT LANGUAGE~"JavaScript">
`document.write("<h1>text that is generated at run-time</h1>");
`</SCRIPT>
`<BODY>
`</BODY>
`</HTML>
`
`The text within the <SCRIPT> tags is JavaScript, and
`includes a call to the standard function document.write( ),
`which generates dynamic HTML. In the example above, the 55
`function document.write() is used to generate HTML header
`text, with a text string that is generated at run-time. If the text
`string generated at run-time is of the form
`<SCRIPT>malicious JavaScript</SCRIPT>
`then the document.write( ) function will insert malicious
`JavaScript into the HTML page that is currently being ren(cid:173)
`dered by a web browser. In turn, when the web browser
`processes the inserted text, it will perform malicious opera(cid:173)
`tions to the client computer.
`Such dynamically generated malicious code cannot be 65
`detected by conventional reactive content inspection and con(cid:173)
`ventional gateway level behavioral analysis content inspec-
`
`

`

`Case 3:17-cv-05659-WHA Document 391-6 Filed 03/14/19 Page 10 of 17
`
`US 8,141,154 B2
`
`5
`community for exploit. Security applications embodying the
`present invention are concealed securely within managed
`computers.
`There is thus provided in accordance with a preferred
`embodiment of the present invention a method for protecting
`a client computer from dynamically generated malicious con(cid:173)
`tent, including receiving at a gateway computer content being
`sent to a client computer for processing, the content including
`a call to an original function, and the call including an input,
`modifYing the content at the gateway computer, including 10
`replacing the call to the original function with a correspond(cid:173)
`ing call to a substitute function, the substitute function being
`operational to send the input to a security computer for
`inspection, transmitting the modified content from the gate(cid:173)
`way computer to the client computer, processing the modified 15
`content at the client computer, transmitting the input to the
`security computer for inspection when the substitute function
`is invoked, determining at the security computer whether it is
`safe for the client computer to invoke the original function
`with the input, transmitting an indicator of whether it is safe 20
`for the client computer to invoke the original function with the
`input, from the security computer to the client computer, and
`invoking the original function at the client computer with the
`input, only if the indicator received from the security com(cid:173)
`puter indicates that such invocation is safe.
`There is further provided in accordance with a preferred
`embodiment of the present invention a system for protecting
`a client computer from dynamically generated malicious con(cid:173)
`tent, including a gateway computer, including a gateway
`receiver for receiving content being sent to a client computer 30
`for processing, the content including a call to an original
`function, and the call including an input, a content modifier
`for modifying the received content by replacing the call to the
`original function with a corresponding call to a substitute
`function, the substitute function being operational to send the 35
`input to a security computer for inspection, and a gateway
`transmitter for transmitting the modified content from the
`gateway computer to the client computer, a security com(cid:173)
`puter, including a security receiver for receiving the input
`from the client computer, an input inspector for determining 40
`whether it is safe for the client computer to invoke the original
`function with the input, and a security transmitter for trans(cid:173)
`mitting an indicator of the determining to the client computer,
`and a client computer communicating with the gateway com(cid:173)
`puter and with the security computer, including a client 45
`receiver for receiving the modified content from the gateway
`computer, and for receiving the indicator from the security
`computer, a content processor for processing the modified
`content, and for invoking the original function only if the
`indicator indicates that such invocation is safe; and a client 50
`transmitter for transmitting the input to the security computer
`for inspection, when the substitute function is invoked.
`There is yet further provided in accordance with a preferred
`embodiment of the present invention a computer-readable
`storage medium storing program code for causing at least one 55
`computing device to receive content including a call to an
`original function, and the call including an input, replace the
`call to the original function with a corresponding call to a
`substitute function, the substitute function being operational
`to send the input for inspection, thereby generating modified 60
`content, process the modified content, transmit the input for
`inspection, when the substitute function is invoked while
`processing the modified content, and suspend processing of
`the modified content, determine whether it is safe to invoke
`the original function with the input, transmit an indicator of 65
`whether it is safe for a computer to invoke the original func(cid:173)
`tion with the input, and resume processing of the modified
`
`6
`content after receiving the indicator, and invoke the original
`function with the input only if the indicator indicates that such
`invocation is safe.
`There is additionally provided in accordance with a pre(cid:173)
`ferred embodiment of the present invention a method for
`protecting a client computer from dynamically generated
`malicious content, including receiving content being sent to a
`client computer for processing, the content including a call to
`an original function, and the call including an input, modify(cid:173)
`ing the content, including replacing the call to the original
`function with a corresponding call to a substitute function, the
`substitute function being operational to send the input to a
`security computer for inspection, and transmitting the modi(cid:173)
`fied content to the client computer for processing.
`There is moreover provided in accordance with a preferred
`embodiment of the present invention a system for protecting
`a client computer from dynamically generated malicious con(cid:173)
`tent, including a receiver for receiving content being sent to a
`client computer for processing, the content including a call to
`an original function, and the call including an input, a content
`modifier for modifying the received content by replacing the
`call to the original function with a corresponding call to a
`substitute function, the substitute function being operational
`to send the input to a security computer for inspection, and a
`25 transmitter for transmitting the modified content to the client
`computer.
`There is further provided in accordance with a preferred
`embodiment of the present invention a computer-readable
`storage medium storing program code for causing a comput(cid:173)
`ing device to receive content including a call to an original
`function, and the call including an input, and replace the call
`to the original function with a corresponding call to a substi(cid:173)
`tute function, the substitute function being operational to send
`the input for inspection.
`There is yet further provided in accordance with a preferred
`embodiment of the present invention a method for protecting
`a client computer from dynamically generated malicious con(cid:173)
`tent, including receiving content being sent to a client com(cid:173)
`puter for processing, the content including a call to an original
`function, and the call including an input, modifying the con(cid:173)
`tent, including replacing the call to the original function with
`a corresponding call to a substitute function, the substitute
`function being operational to send the input for inspection,
`transmitting the modified content to the client computer for
`processing, receiving the input from the client computer,
`determining whether it is safe for the client computer to
`invoke the original function with the input, and transmitting
`to the client computer an indicator of whether it is safe for the
`client computer to invoke the original function with the input.
`There is additionally provided in accordance with a pre(cid:173)
`ferred embodiment of the present invention a system for
`protecting a client computer from dynamically generated
`malicious content, including a receiver (i) for receiving con(cid:173)
`tent being sent to a client computer for processing, the content
`including a call to an original function, and the call including
`an input, and (ii) for receiving the input from the client com-
`puter, a content modifier for modifying the received content
`by replacing the call to the original function with a corre(cid:173)
`sponding call to a substitute function, the substitute function
`being operational to send the input for inspection, an input
`inspector for determining whether it is safe for the client
`computer to invoke the original function with the input, and a
`transmitter (i) for transmitting the modified content to the
`client computer, and (ii) for transmitting an indicator of the
`determining to the client computer.
`There is moreover provided in accordance with a preferred
`embodiment of the present invention a computer-readable
`
`

`

`Case 3:17-cv-05659-WHA Document 391-6 Filed 03/14/19 Page 11 of 17
`
`US 8,141,154 B2
`
`7
`storage medium storing program code for causing a comput(cid:173)
`ing device to receive content including a call to an original
`function, and the call including an input, replace the call to the
`original function with a corresponding call to a substitute
`function, the substitute function being operational to send the
`input for inspection, and determine whether it is safe for a
`computer to invoke the original function with the input.
`There is further provided in accord

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket