throbber
111111111111111111111111111111111111111111111111111111111111111111111111111
`US007058822B2
`
`c12) United States Patent
`Edery et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,058,822 B2
`Jun.6,2006
`
`(54) MALICIOUS MOBILE CODE RUNTIME
`MONITORING SYSTEM AND METHODS
`
`(75)
`
`Inventors: Yigal Mordechai Edery, Pardesia (IL);
`Nimrod Itzhak Vered, Goosh
`Tel-Mond (IL); David R. Kroll, San
`Jose, CA (US)
`
`(73) Assignee: Finjan Software, Ltd., South Netanya
`(IL)
`
`( *) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 1013 days.
`
`(21) Appl. No.: 09/861,229
`
`(22) Filed:
`
`May 17, 2001
`
`(65)
`
`Prior Publication Data
`
`US 2002/0013910 Al
`
`Jan. 31, 2002
`
`Related U.S. Application Data
`
`(63)
`
`Continuation-in-part of application No. 09/551,302,
`filed on Apr. 18, 2000, now Pat. No. 6,480,962, which
`is a continuation-in-part of application No. 09/539,
`667, filed on Mar. 30, 2000, now Pat. No. 6,804,780.
`
`(60)
`
`Provisional application No. 60/205,591, filed on May
`17, 2000.
`
`(51)
`
`(52)
`(58)
`
`Int. Cl.
`(2006.01)
`G06F 11130
`U.S. Cl. ...................................................... 713/200
`Field of Classification Search ................ 713/176,
`713/175,200,201,150, 168; 701/223,229;
`717/120, 124, 126, 127, 130, 131, 134, 135;
`709/223-229
`See application file for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,077,677 A
`
`12/1991 Murphy eta!.
`
`5,359,659 A
`5,361,359 A
`5,485,409 A
`
`10/1994 Rosenthal
`1111994 Tajalli et al.
`111996 Gupta et a!.
`
`(Continued)
`
`OTHER PUBLICATIONS
`
`Zhong et a!, "Security in the large: is Java's sandbox
`scalable?", Oct. 1998, Seventh IEEE Symposium on Reli(cid:173)
`able Distributed Systems, pp 1-6.*
`
`(Continued)
`
`Primary Examiner--Christopher Revak
`(74)Attorney, Agent, or Firm-Squire, Sanders & Dempsey,
`L.L.P.
`
`(57)
`
`ABSTRACT
`
`Protection systems and methods provide for protecting one
`or more personal computers ("PCs") and/or other intermit(cid:173)
`tently or persistently network accessible devices or pro(cid:173)
`cesses from undesirable or otherwise malicious operations
`of Java™ applets, ActiveX™ controls, JavaScript™ scripts,
`Visual Basic scripts, add-ins, downloaded/uploaded pro(cid:173)
`grams or other "Downloadables" or "mobile code" in whole
`or part. A protection engine embodiment provides, within a
`server, firewall or other suitable "re-communicator," for
`monitoring information received by the communicator,
`determining whether received information does or is likely
`to include executable code, and if so, causes mobile protec(cid:173)
`tion code (MPC) to be transferred to and rendered operable
`within a destination device of the received information,
`more suitably by forming a protection agent including the
`MPC, protection policies and a detected-Downloadable. An
`MPC embodiment further provides, within a Downloadable(cid:173)
`destination, for initiating the Downloadable, enabling mali(cid:173)
`cious Downloadable operation attempts to be received by
`the MPC, and causing (predetermined) corresponding opera(cid:173)
`tions to be executed in response to the attempts, more
`suitably in conjunction with protection policies.
`
`35 Claims, 10 Drawing Sheets
`
`400
`
`~
`
`------------------------------------------------------------------------------1
`
`408
`
`r------..,
`Becurll)'l_
`:
`I
`:Authentication
`
`~iJ"":'_ :~,
`
`....
`
`1:
`
`Not ExeGUtable
`
`{NXEQ)
`
`L _J-:-Pouf!L -I
`~ Au~::~:on ~ -~
`I
`Analyzer
`1
`'
`L ______ l
`~
`
`! 401
`
`User, policy, interfacing
`or other infonnation
`
`BLUE COAT SYSTEMS - Exhibit 1016 Page 1
`
`

`
`US 7,058,822 B2
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`5,485,575 A
`5,572,643 A
`5,606,668 A
`5,623,600 A
`5,638,446 A
`5,692,047 A
`5,692,124 A
`5,720,033 A
`5,724,425 A
`5,740,248 A
`5,761,421 A
`5,765,205 A
`5,784,459 A
`5,796,952 A
`5,805,829 A
`5,832,208 A
`5,850,559 A
`5,859,966 A
`5,864,683 A
`5,892,904 A
`5,951,698 A
`5,956,481 A
`5,974,549 A
`5,978,484 A
`5,983,348 A
`6,092,194 A
`6,154,844 A
`6,167,520 A
`6,425,058 B1
`6,434,668 B1
`6,434,669 B1
`6,480,962 Bl
`6,519,679 B1
`6,732,179 B1*
`
`111996 Chess et al.
`1111996 Judson
`2/1997 Shwed
`4/1997 Ji eta!.
`6/1997 Rubin
`1111997 McManis
`1111997 Holden eta!.
`2/1998 Deo
`3/1998 Chang eta!.
`4/1998 Fieres et al.
`6/1998 van Hoff et a!.
`6/1998 Breslau et a!.
`7/1998 Devarakonda et al.
`8/1998 Davis eta!.
`9/1998 Cohen eta!.
`1111998 Chen eta!.
`12/1998 Angelo eta!.
`111999 Hayman et a!.
`111999 Boebert et al.
`4/1999 Atkinson et a!.
`9/1999 Chen eta!.
`9/1999 Walsh et al.
`10/1999 Golan
`1111999 Apperson et al.
`1111999 Ji
`7/2000 Touboul
`1112000 Touboul et al.
`12/2000 Touboul
`7/2002 Arimilli et a!.
`8/2002 Arimilli et a!.
`8/2002 Arimilli et a!.
`1112002 Touboul
`2/2003 Devireddy et al.
`5/2004 Brown et a!. ............... 709/229
`
`OTHER PUBLICATIONS
`
`Rubin et a!, "Mobile code security" Dec. 1998, IEEE
`Internet, pp 30-34. *
`Schmid et a!, "Protecting data from malicious software",
`2002, Proceeding of the 18th Annual Computer Security
`Applications Conference, pp 1-10. *
`Corradi et a!, "A flexible access control service for Java
`mobile code", 2000, IEEE, pp 356-365.*
`Jim K. Omura, "Novel Applications of Cryptography in
`Digital Communications", IEEE Communications Maga(cid:173)
`zine, May, 1990; pp. 21-29.
`Okamoto, E. et a!., "ID-Based Authentication System For
`Computer Virus Detection", IEEE/IEE Electronic Library
`online, Electronics Letters, vol. 26, Issue 15, ISSN 0013-
`5194, Jul. 19, 1990, Abstract and pp. 1169-1170. URL:http://
`iel.ihs.com:SO/cgi-bin/iel_cgl?se ...
`2ehts%26ViewTemplate%3ddocview%5fb%2ehts.
`
`IBM AntiVirus User's Guide Version 2.4, International
`Business Machines Corporation, Nov. 15, 1995, p. 6-7.
`Norvin Leach eta!, "IE 3.0 Applets Will Earn Certification",
`PC Week vol. 13, No. 29, Jul. 22, 1996, 2 pages.
`"Finjan Software Releases SurfinBoard, Industry's First
`JAVA Security Product For the World Wide Web", Article
`published on the Internet by Finjan Software Ltd., Jul. 29,
`1996, 1 page.
`"Powerful PC Security for the New World of Java™ and
`Downloadables, Surfin Shield™" Article published on the
`Internet by Finjan Software Ltd., 1996, 2 Pages.
`Microsoft® Authenticode Technology, "Ensuring Account(cid:173)
`ability and Authenticity for Software Components on the
`Internet", Microsoft Corporation, Oct. 1996, including
`Abstract, Contents, Introduction and pp. 1-10.
`"Finjan Announces a Personal Java™ Firewall For Web
`Browsers-the SunfinShield™ 1.6 (formerly known as
`SurfinBoard)", Press Release of Finjan Releases
`SurfinShield 1.6, Oct. 21, 1996, 2 pages.
`Company Profile "Finjan-Safe Surfing, The Java Security
`Solutions Provider" Article published on the Internet by
`Finjan Software Ltd., Oct. 31, 1996, 3 pages.
`"Finjan Announces Major Power Boost and New Features
`for SurfinShield™ 2.0" Las Vegas Convention Center/Pa(cid:173)
`vilion 5 P5551, Nov. 18, 1996, 3 pages.
`"Java Security: Issues & Solutions" Articles published on
`the Internet by Finjan Software Ltd., 1996, 8 pages.
`"Products" Articles published on the Internet, 7 pages.
`Mark LaDue, "Online Business Consultant: Java Security:
`Whose Business Is It?'' Article published on the Internet,
`Home Page Press, Inc. 1996, 4 pages.
`Ron Moritz, "Why We Shouldn't Fear Java." Java Report,
`Feb., 1997, pp. 51-56.
`Web Page Article "Frequently Asked Questions About
`Authenticode", Microsoft Corporation, last updated Feb. 17,
`1997, Printed Dec. 23, 1998. URL: http://www.microsoft.
`com/workshop/ security/ authcode/ signfag.as p#9, pp. 1-13.
`Zhang, X.N., "Secure Code Distrubtion", IEEE/IEE Elec(cid:173)
`tronic Library online, Computer, vol. 30, Issue 6, Jun., 1997,
`pp.: 76-79.
`Khare, Rohit, "Microsoft Authenticode Analyzed", Jul. 22,
`1996, 2 pages. URL: http://www.xent.com/FoRK-archive/
`summer96/0338.html.
`"Release Notes for the Microsoft ActiveX Development
`Kit", Aug. 13, 1996, 11 pages URL: http://activex.adsp.or.
`jp/inetsdk/readme.txt.
`"Microsoft ActiveX Software Development Kit", Aug. 12,
`1996, 6 pages. URL: http://activex.adsp.or.jp/inetsdk/help.
`overview.htm.
`
`* cited by examiner
`
`BLUE COAT SYSTEMS - Exhibit 1016 Page 2
`
`

`
`U.S. Patent
`
`Jun.6,2006
`
`Sheet 1 of 10
`
`US 7,058,822 B2
`
`100
`~
`
`Redundancy Support
`
`Subsystem-1
`(Sandbox Protected)
`
`Subsystem-N
`(Unprotected)
`
`Subsystem-M
`(Protected)
`
`104a
`~
`
`ISP-Server
`
`Server
`
`Protection Engine
`(PE)
`
`r--
`:
`I MPC,D
`!
`i ~
`145a
`~_j ___ --]
`
`142a
`
`145
`
`l
`
`FIG. la
`
`104b
`~
`
`Corporate Server
`
`143
`
`FIG. lb
`
`FIG. lc
`
`BLUE COAT SYSTEMS - Exhibit 1016 Page 3
`
`

`
`200
`
`~
`
`(202
`
`(203
`
`( 204
`
`Processor( s)
`
`Input Device( s)
`
`Output Device( s)
`
`206
`
`Computer Readable
`Storage Medium
`
`~~ 05
`Computer Readable
`Storage Medium Reader
`
`201\
`
`( 207
`
`Communications
`Interface
`
`Storage
`
`FIG. 2
`
`r 2os
`
`r2o9
`
`Working Memory
`
`I Operating System r 291
`
`292
`I Other Programsr
`
`e .
`00 .
`
`~
`~
`~
`
`~ = ~
`
`2'
`:=
`
`~Cl\
`N
`0
`0
`Cl\
`
`('D
`('D
`
`rFJ =(cid:173)
`.....
`N
`0 .....
`....
`0
`
`d
`rJl
`
`00
`Oo
`N
`
`-....l = u.
`N = N
`
`BLUE COAT SYSTEMS - Exhibit 1016 Page 4
`
`

`
`300
`~
`
`331--,
`
`Not
`Executable
`
`341~-:
`
`343~
`342~-PoL-1
`~ t_ _________ ,
`(
`~-------·-----
`340
`\
`
`y
`303
`
`)
`
`301
`
`Server
`
`302
`
`Firewall
`
`'\,
`\
`'
`'
`'
`'
`
`I
`I
`I
`I
`1
`
`1,,
`/
`'
`'
`'
`
`'
`I
`I
`I
`I
`
`.
`r ___ j ____ t __ _
`~
`'
`
`(PE)
`
`Protection
`Engine (PE)
`
`310
`
`FIG. 3
`
`e .
`00 .
`
`~
`~
`~
`
`~ = ~
`
`2'
`:=
`
`~Cl\
`N
`0
`0
`Cl\
`
`rFJ =(cid:173)
`.....
`
`('D
`('D
`
`(.H
`
`0 .....
`....
`0
`
`Received
`Information
`
`(Non-Executable/
`Executable Info)
`
`320
`
`d
`rJl
`
`00
`Oo
`N
`
`-....l = u.
`N = N
`
`BLUE COAT SYSTEMS - Exhibit 1016 Page 5
`
`

`
`I r- - - -
`408
`- - ..,
`~ I
`Security/
`:
`: Authentication ~--
`t_/fl
`-------------------------------------------l
`1
`1
`Policies
`402 !
`481
`!
`AI
`_f I!_ _
`_
`L _.J.
`I
`Policy/
`~ Authentication
`I
`~---
`Reader-
`I
`I
`Analyzer
`L ______ l
`
`___ I
`1
`
`I
`I
`
`1
`
`482
`
`-
`
`-
`
`Detection Engine
`
`421
`
`400
`
`~
`
`:
`
`-------------------------------------
`
`I
`I
`:
`:
`:
`:
`:
`:
`:
`:
`
`I
`I
`I
`I
`I
`I
`I
`I
`
`I t
`
`Not Executable
`(NXEQ)
`
`340 341 342 343
`
`Transfer
`Engine
`
`-
`--
`
`Linking
`Engine
`
`406
`
`4ts I
`
`,
`
`!
`
`431
`~
`
`404
`
`' '
`'
`'
`
`~e
`
`Protected Package Engine
`
`FIG. 4
`
`401
`
`~
`
`I Information
`Monitor
`
`NXEQ
`
`XEQ
`
`U Buffer 1,..
`yJ
`
`407
`
`User, policy, interfacing
`or other information
`
`e .
`00 .
`
`~
`~
`~
`
`~ = ~
`
`2'
`:=
`
`~Cl\
`N
`0
`0
`Cl\
`
`rFJ =-('D
`.....
`
`('D
`
`.j;o.
`
`0 .....
`....
`0
`
`d
`rJl
`
`00
`Oo
`N
`
`-....l = u.
`N = N
`
`BLUE COAT SYSTEMS - Exhibit 1016 Page 6
`
`

`
`421
`
`~
`
`1
`
`506
`r-----
`\t'.. i
`l-------1 Content ~-
`- I. ~
`\1 \J
`1 Detector L_
`I Control I
`I I -
`- __ !....__ ......__
`._ ___ I
`
`1 Binary 1·~~ m 1 ~ Detector I~ 505
`
`I Pattern I
`551
`I 1 Detector ~
`552
`I
`1 ~ ~
`~~.'::'':_e:__~ 553
`:
`
`To Tra_ns
`Eng me
`
`0 Agent
`Generator
`To Linking
`Engine
`
`Executable File Parameters
`
`Executable Code Parameters
`
`Pattern Parameters
`
`611
`612
`613
`621
`
`601
`
`602
`
`FIG. 5
`
`FIG. 6a
`
`I Mnl Pnl Xn I
`
`405
`
`~
`
`FIG. 6b
`
`e .
`00 .
`
`~
`~
`~
`
`~ = ~
`
`2'
`:=
`
`~Cl\
`N
`0
`0
`Cl\
`
`('D
`('D
`
`rFJ =(cid:173)
`.....
`Ul
`0 .....
`....
`0
`
`d
`rJl
`
`00
`Oo
`N
`
`-....l = u.
`N = N
`
`BLUE COAT SYSTEMS - Exhibit 1016 Page 7
`
`

`
`U.S. Patent
`
`Jun.6,2006
`
`Sheet 6 of 10
`
`US 7,058,822 B2
`
`700
`~
`
`701
`
`702
`
`MwnoiY Space-N
`
`MemoiY Spaees-P1 and P2
`
`146
`
`342
`
`FIG. 7a
`
`704
`
`703
`
`341
`~
`
`Package Exttac:lor
`Executablelnstaler
`Sandbox Engine IMIIIJler
`Reaource Accas Dlverter
`Resource Acc:ell Analyzer
`Polley Enforcer
`MPC De-lnttaller
`
`FIG. 8
`
`FIG. 7b
`
`801
`802
`803
`804
`805
`806
`
`BLUE COAT SYSTEMS - Exhibit 1016 Page 8
`
`

`
`U.S. Patent
`
`Jun.6,2006
`
`Sheet 7 of 10
`
`US 7,058,822 B2
`
`Monitor re-communicator (e.g. server)
`operation
`
`Receive information having a protected
`information destination
`(a "potential-Downloadable")
`
`903
`
`~ -------------------------------------------------------------------'
`,
`Determine source trustworthiness
`L--------------------------------- ---------------------------------j
`
`r-v
`
`90 5
`
`No
`
`Determine whether the potential(cid:173)
`Downloadable includes executable code
`
`915
`
`No
`
`913
`
`909
`i----------------------
`-------------------------.
`~ Prevent current delivery
`,
`
`: Notify Client(s), Administrator i
`
`9 ~~~~~~~~~~~~~~~~~~~~~~~l~~~~~~~~~~~~~~~~~~~~~~~~:
`l ______________________ l __________________________ :
`Qj 0_).------~._. - - - - - ,
`
`Cause potential-Downloadable
`to be delivered to the
`information-destination
`
`Form a protection agent corresp to mobile
`protection code, potential-Downloadable
`(now a detected-Downloadable) + any
`protection policies
`
`Cause the protection agent to be delivered
`to the information-Destination
`
`919
`
`921
`
`End
`
`FIG. 9
`
`BLUE COAT SYSTEMS - Exhibit 1016 Page 9
`
`

`
`913
`~
`
`Start
`
`919
`~
`
`Start
`
`Determine whether the potential(cid:173)
`Downloadable indicates an executable
`file type
`
`Determine whether the file contents
`include binary information or code patterns
`
`If steps1001 and 1003 indicate that the
`potential-Downloadable more likely
`includes executable code,
`consider the potential-Downloadable a
`detected-Downloadable
`
`1001
`
`1003
`
`1005
`
`Retrieve protection parameters and form
`mobile protection code according to the
`parameters
`
`1011
`
`Retrieve protection parameters and form
`protection policies according to the
`parameters
`
`Couple the mobile protection code,
`protection policies and received(cid:173)
`information to form a protection agent (e.g.
`MPC first, policies second, and Rl third)
`
`1015
`
`End
`
`FIG. lOA
`
`End
`
`FIG. lOB
`
`e .
`00 .
`
`~
`~
`~
`
`~ = ~
`
`2'
`:=
`
`~Cl\
`N
`0
`0
`Cl\
`
`rFJ =-('D
`.....
`
`('D
`
`QO
`
`0 .....
`....
`0
`
`d
`rJl
`
`00
`Oo
`N
`
`-....l = u.
`N = N
`
`BLUE COAT SYSTEMS - Exhibit 1016 Page 10
`
`

`
`U.S. Patent
`
`Jun.6,2006
`
`Sheet 9 of 10
`
`US 7,058,822 B2
`
`Start
`
`Install mobile protection code elements
`and policies within a destination device
`
`'
`
`Load the downloadble without actually
`initiating it
`
`1101
`
`1102
`
`Form an access interceptor for intercepting
`downloadable destination device access
`attempts within the destination device
`
`1103
`
`Initiate the Downloadable within the
`destination device
`
`Determine policies in accordance with the
`access attempt
`
`Execute the policies (including causing an
`allowable response expected by the
`Donwloadable to be returned to the
`Downloadable)
`
`End
`
`FIG. 11
`
`BLUE COAT SYSTEMS - Exhibit 1016 Page 11
`
`

`
`U.S. Patent
`
`Jun.6,2006
`
`Sheet 10 of 10
`
`US 7,058,822 B2
`
`1103
`~
`
`Start
`
`1201
`
`1203
`
`Install the Downloadable
`
`Modify the Downloadable API to divert
`malicious access requests to the mobile
`protection code
`
`J
`
`c~En~d )
`
`FIG. 12a
`
`1109
`~
`
`Start
`
`Receive a Downloadable access request
`via the modified API
`
`Query stored policies to determine a policy
`corresponding to the Downloadable
`access request
`
`1211
`
`1213
`
`End
`
`FIG. 12b
`
`BLUE COAT SYSTEMS - Exhibit 1016 Page 12
`
`

`
`US 7,058,822 B2
`
`1
`MALICIOUS MOBILE CODE RUNTIME
`MONITORING SYSTEM AND METHODS
`
`PRIORITY REFERENCE TO RELATED
`APPLICATIONS
`
`2
`content and operational analysis, and modification of the
`Downloadable component; Shuang further fails to detect or
`protect against additional program code included within a
`tested Downloadable. U.S. Pat. No. 5,974,549 to Golan
`teaches a protection system that further focuses only on
`protecting against ActiveX controls and not other distribut(cid:173)
`able components, let alone other Downloadable types. U.S.
`Pat. No. 6,167,520 to Touboul enables more accurate pro(cid:173)
`tection than Shuang or Golan, but lacks the greater flexibility
`10 and efficiency taught herein, as do Shuang and Golan.
`Accordingly, there remains a need for efficient, accurate
`and flexible protection of computers and other network
`connectable devices from malicious Downloadables.
`
`SUMMARY OF THE INVENTION
`
`This application claims benefit of and hereby incorporates
`by reference provisional application Ser. No. 60/205,591,
`entitled "Computer Network Malicious Code Run-time
`Monitoring," filed on May 17, 2000 by inventors Nimrod
`Itzhak Vered, et a!. This application is also a Continuation(cid:173)
`In-Part of and hereby incorporates by reference patent
`application Ser. No. 09/539,667, now U.S. Pat. No. 6,804,
`780, entitled "System and Method for Protecting a Com(cid:173)
`puter and a Network From Hostile Downloadables" filed on 15
`Mar. 30, 2000 by inventor Shlomo Touboul. This application
`is also a Continuation-In-Part of and hereby incorporates by
`reference patent application Ser. No. 09/551,302, now U.S.
`Pat. No. 6,480,962, entitled "System and Method for Pro(cid:173)
`tecting a Client During Runtime From Hostile Download- 20
`abies", filed on Apr. 18, 2000 by inventor Shlomo Touboul.
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`This invention relates generally to computer networks,
`and more particularly provides a system and methods for
`protecting network-connectable devices from undesirable
`downloadable operation.
`2. Description of the Background Art
`Advances in networking technology continue to impact an
`increasing number and diversity of users. The Internet, for
`example, already provides to expert, intermediate and even
`novice users
`the
`informational, product and service
`resources of over 100,000 interconnected networks owned
`by governments, universities, nonprofit groups, companies,
`etc. Unfortunately, particularly the Internet and other public
`networks have also become a major source of potentially
`system-fatal or otherwise damaging computer code com(cid:173)
`monly referred to as "viruses."
`Efforts to forestall viruses from attacking networked
`computers have thus far met with only limited success at
`best. Typically, a virus protection program designed to
`identify and remove or protect against the initiating of
`known viruses is installed on a network firewall or individu(cid:173)
`ally networked computer. The program is then inevitably
`surmounted by some new virus that often causes damage to
`one or more computers. The damage is then assessed and, if
`isolated, the new virus is analyzed. A corresponding new
`virus protection program (or update thereof) is then devel- 50
`oped and installed to combat the new virus, and the new
`program operates successfully until yet another new virus
`appears-and so on. Of course, damage has already typi(cid:173)
`cally been incurred.
`To make matters worse, certain classes of viruses are not 55
`well recognized or understood, let alone protected against. It
`is observed by this inventor, for example, that Downloadable
`information comprising program code can include distrib(cid:173)
`utable components (e.g. Java™ applets and JavaScript
`scripts, ActiveX™ controls, Visual Basic, add-ins and/or 60
`others). It can also include, for example, application pro(cid:173)
`grams, Trojan horses, multiple compressed programs such as
`zip or meta files, among others. U.S. Pat. No. 5,983,348 to
`Shuang, however, teaches a protection system for protecting
`against only distributable components including "Java 65
`applets or ActiveX controls", and further does so using
`resource intensive and high bandwidth static Downloadable
`
`The present invention provides protection systems and
`methods capable of protecting a personal computer ("PC")
`or other persistently or even intermittently network acces(cid:173)
`sible devices or processes from harmful, undesirable, sus(cid:173)
`picious or other "malicious" operations that might otherwise
`be effectuated by remotely operable code. While enabling
`the capabilities of prior systems, the present invention is not
`nearly so limited, resource intensive or inflexible, and yet
`25 enables more reliable protection. For example, remotely
`operable code that is protectable against can include down(cid:173)
`loadable application programs, Trojan horses and program
`code groupings, as well as software "components", such as
`Java™ applets, ActiveX™ controls, JavaScript™/Visual
`30 Basic scripts, add-ins, etc., among others. Protection can
`also be provided in a distributed interactively, automatically
`or mixed configurable manner using protected client, server
`or other parameters, redirection, local/remote logging, etc.,
`and other server/client based protection measures can also
`35 be separately and/or interoperably utilized, among other
`examples.
`In one aspect, embodiments of the invention provide for
`determining, within one or more network "servers" (e.g.
`fireballs, resources, gateways, email relays or other devices/
`40 processes that are capable of receiving-and-transferring a
`Downloadable) whether received
`information includes
`executable code (and is a "Downloadable"). Embodiments
`also provide for delivering static, configurable and/or exten(cid:173)
`sible remotely operable protection policies to a Download-
`45 able-destination, more typically as a sandboxed package
`including the mobile protection code, downloadable policies
`and one or more received Downloadables. Further client(cid:173)
`based or remote protection code/policies can also be utilized
`in a distributed manner. Embodiments also provide for
`causing the mobile protection code to be executed within a
`Downloadable-destination in a manner that enables various
`Downloadable operations to be detected, intercepted or
`further responded to via protection operations. Additional
`server/information-destination device security or other pro(cid:173)
`tection is also enabled, among still further aspects.
`A protection engine according to an embodiment of the
`invention is operable within one or more network servers,
`firewalls or other network connectable information re-com(cid:173)
`municating devices (as are referred to herein summarily one
`or more "servers" or "re-communicators"). The protection
`engine includes an information monitor for monitoring
`information received by the server, and a code detection
`engine for determining whether the received information
`includes executable code. The protection engine also
`includes a packaging engine for causing a sandboxed pack(cid:173)
`age, typically including mobile protection code and down-
`loadable protection policies to be sent to a Downloadable-
`
`BLUE COAT SYSTEMS - Exhibit 1016 Page 13
`
`

`
`US 7,058,822 B2
`
`4
`The method also includes determining, by the MPC, a
`resource access attempt by the Downloadable, and initiating,
`by the MPC, one or more predetermined operations corre(cid:173)
`sponding to the attempt. (Predetermined operations can, for
`example, comprise initiating user, administrator, client, net(cid:173)
`work or protection system determinable operations, includ(cid:173)
`ing but not limited to modifYing the Downloadable opera(cid:173)
`tion, extricating the Downloadable, notifYing a user/another,
`maintaining a local/remote log, causing one or more MPCs/
`10 policies to be downloaded, etc.)
`Advantageously, systems and methods according to
`embodiments of the invention enable potentially damaging,
`undesirable or otherwise malicious operations by even
`unknown mobile code to be detected, prevented, modified
`15 and/or otherwise protected against without modifying the
`mobile code. Such protection is further enabled in a mauner
`that is capable of minimizing server and client resource
`requirements, does not require pre-installation of security
`code within a Downloadable-destination, and provides for
`20 client specific or generic and readily updateable security
`measures
`to be flexibly and efficiently
`implemented.
`Embodiments further provide for thwarting efforts to bypass
`security measures (e.g. by "hiding" undesirable operation
`causing information within apparently inert or otherwise
`25 "friendly" downloadable information) and/or dividing or
`combining security measures for even greater flexibility
`and/or efficiency.
`Embodiments also provide for determining protection
`policies that can be downloaded and/or ascertained from
`30 other security information (e.g. browser settings, adminis(cid:173)
`trative policies, user input, uploaded information, etc.).
`Different actions in response to different Downloadable
`operations, clients, users and/or other criteria are also
`enabled, and embodiments provide for implementing other
`35 security measures, such as verifYing a downloadable source,
`certification, authentication, etc. Appropriate action can also
`be accomplished automatically (e.g. programmatically) and/
`or in conjunction with alerting one or more users/adminis(cid:173)
`trators, utilizing user input, etc. Embodiments further enable
`40 desirable Downloadable operations to remain substantially
`unaffected, among other aspects.
`
`3
`destination in conjunction with the received information, if
`the received information is determined to be a Download(cid:173)
`able.
`A sandboxed package according to an embodiment of the
`invention is receivable by and operable with a remote
`Downloadable-destination. The
`sandboxed
`package
`includes mobile protection code ("MPC") for causing one or
`more predetermined malicious operations or operation com(cid:173)
`binations of a Downloadable to be monitored or otherwise
`intercepted. The sandboxed package also includes protection
`policies (operable alone or in conjunction with further
`Downloadable-destination stored or received policies/
`MPCs) for causing one or more predetermined operations to
`be performed if one or more undesirable operations of the
`Downloadable is/are intercepted. The sandboxed package
`can also include a corresponding Downloadable and can
`provide for initiating the Downloadable in a protective
`"sandbox". The MPC/policies can further include a com(cid:173)
`municator for enabling further MPC/policy information or
`"modules" to be utilized and/or for event logging or other
`purposes.
`A sandbox protection system according to an embodiment
`of the invention comprises an installer for enabling a
`received MPC to be executed within a Downloadable(cid:173)
`destination (device/process) and further causing a Down(cid:173)
`loadable application program, distributable component or
`other received downloadable code to be received and
`installed within the Downloadable-destination. The protec(cid:173)
`tion system also includes a diverter for monitoring one or
`more operation attempts of the Downloadable, an operation
`analyzer for determining one or more responses to the
`attempts, and a security enforcer for effectuating responses
`to the monitored operations. The protection system can
`further include one or more security policies according to
`which one or more protection system elements are operable
`automatically (e.g. programmatically) or in conjunction with
`user intervention (e.g. as enabled by the security enforcer).
`The security policies can also be configurable/extensible in
`accordance with further downloadable and/or Download(cid:173)
`able-destination information.
`A method according to an embodiment of the invention
`includes receiving downloadable information, determining
`whether the downloadable information includes executable
`code, and causing a mobile protection code and security
`policies to be communicated to a network client in conjunc- 45
`tion with security policies and the downloadable information
`if the downloadable information is determined to include
`executable code. The determining can further provide mul(cid:173)
`tiple tests for detecting, alone or together, whether the
`downloadable information includes executable code.
`A further method according to an embodiment of the
`invention includes forming a sandboxed package that
`includes mobile protection code ("MPC"), protection poli(cid:173)
`cies, and a received, detected-Downloadable, and causing
`the sandboxed package to be communicated to and installed 55
`by a receiving device or process ("user device") for respond(cid:173)
`ing to one or more malicious operation attempts by the
`detected-Downloadable from within the user device. The
`MPC/policies can further include a base "module" and a
`"communicator" for enabling further up/downloading of one 60
`or more further "modules" or other information (e.g. events,
`user/user device information, etc.).
`Another method according to an embodiment of the
`invention includes installing, within a user device, received
`mobile protection code ("MPC") and protection policies in 65
`conjunction with the user device receiving a downloadable
`application program, component or other Downloadable(s).
`
`50
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. la is a block diagram illustrating a network system
`in accordance with an embodiment of the present invention;
`FIG. lb is a block diagram illustrating a network sub(cid:173)
`system example in accordance with an embodiment of the
`invention;
`FIG. lc is a block diagram illustrating a further network
`subsystem example in accordance with an embodiment of
`the invention;
`FIG. 2 is a block diagram illustrating a computer system
`in accordance with an embodiment of the invention;
`FIG. 3 is a flow diagram broadly illustrating a protection
`system host according to an embodiment of the invention;
`FIG. 4 is a block diagram illustrating a protection engine
`according to an embodiment of the invention;
`FIG. 5 is a block diagram illustrating a content inspection
`engine according to an embodiment of the invention;
`FIG. 6a is a block diagram illustrating protection engine
`parameters according to an embodiment of the invention;
`FIG. 6b is a flow diagram illustrating a linking engine use
`in conjunction with ordinary, compressed and distributable
`sandbox package utilization, according to an embodiment of
`the invention;
`
`BLUE COAT SYSTEMS - Exhibit 1016 Page 14
`
`

`
`5
`FIG. 7a is a flow diagram illustrating a sandbox protection
`system operating within a destination system, according to
`an embodiment of the invention;
`FIG. 7b is a block diagram illustrating memory allocation
`usable in conjunction with the protection system of FIG. 7a,
`according to an embodiment of the invention;
`FIG. 8 is a block diagram illustrating a mobile protection
`code according to an embodiment of the invention;
`FIG. 9 is a flowchart illustrating a server based protection
`method according to an embodiment of the invention;
`FIG. lOa is a flowchart illustrating method for determin(cid:173)
`ing if a potential-Downloadable includes or is likely to
`include executable code, according to an embodiment of the
`invention;
`FIG. lOb is a flowchart illustrating a method for forming 15
`a protection agent, according to an embodiment of the
`invention;
`FIG. 11 is a flowchart illustrating a method for protecting
`a Downloadable destination according to an embodiment of
`the invention;
`FIG. 12a is a flowchart illustrating a method for forming
`a Downloadable access interceptor according to an embodi(cid:173)
`ment of the invention; and
`FIG. 12b is a flowchart illustrating a method for imple(cid:173)
`menting mobile protection policies according to an embodi- 25
`ment of the invention.
`
`DETAILED DESCRIPTION
`
`In providing malicious mobile code runtime monitoring
`systems and methods, embodiments of the invention enable
`actually or potentially undesirable operations of even
`unknown malicious code to be efficiently and flexibly
`avoided. Embodiments provide, within one or more "serv(cid:173)
`ers" (e.g. firewalls, resources, gateways, email relays or
`other information re-communicating devices), for receiving
`downloadable-information and detecting whether the down(cid:173)
`loadable-information includes one or more instances of
`executable code (e.g. as with a Trojan horse, zip/meta file
`etc.). Embodiments also provide for separately or interop- 40
`erably conducting additional security measures within the
`server, within a Downloadable-destination of a detected(cid:173)
`Downloadable, or both.
`Embodiments further provide for causing mobile protec(cid:173)
`tion code ("MPC") and downloadable protection policies to
`be communicated to, installed and executed within one or
`more received information destinations in conjunction with
`a detected-Downloadable. Embodiments also provide,
`within an information-destination, for detecting malicious
`operations of the detected-Downloadable and causing
`responses thereto in accordance with the protection policies
`(which can correspond to one or more user, Downloadable,
`source, destination, or other parameters), or further down(cid:173)
`loaded or downloadable-destination based policies (which
`can also be configurable or extensible). (Note that the term
`"or", as used herein, is generally

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