throbber
(19) United States
`(12) Patent Application Publication (10) Pub. No.: US 2003/0023774 A1
`Gladstone et al.
`(43) Pub. Date:
`Jan. 30, 2003
`
`US 2003OO23774A1
`
`(54) STATEFUL REFERENCE MONITOR
`
`(76) Inventors: Philip J. S. Gladstone, Framingham,
`MA (US); Jeffrey A. Kraemer,
`Wellesley, MA (US)
`
`Correspondence Address:
`WOLF GREENFIELD & SACKS, PC
`FEDERAL RESERVE PLAZA
`600 ATLANTIC AVENUE
`BOSTON, MA 02210-2211 (US)
`(21) Appl. No.:
`10/071,328
`(22) Filed:
`Feb. 8, 2002
`
`Related U.S. Application Data
`(60) Provisional application No. 60/298,590, filed on Jun.
`14, 2001.
`Publication Classification
`(51) Int. Cl. ................................................... G06F 9/00
`(52) U.S. Cl. .............................................................. 709/328
`(57)
`ABSTRACT
`
`A Stateful Reference Monitor can be loaded into an existing
`commercial operating System, and then can regulate acceSS
`to many different types of resources. The reference monitor
`maintains an updateable Storage area whose contents can be
`used to affect access decisions, and access decisions can be
`based on arbitrary properties of the request.
`
`---, m-
`
`a---
`
`... -----97 ---
`
`w-
`
`a
`
`Ox VSee Y
`Console
`
`Altca-17on SP4Ce
`
`- - -
`
`---------- -
`
`- -
`
`... --2D----
`
`-
`
`. .
`
`.
`
`.
`
`.
`
`.
`
`... - - - - - - - - - - - - -r-e-r- -
`
`3...- --d3 ----. - - -
`
`-W- W -
`
`W - - -
`
`
`
`Juniper Ex. 1007-p. 1
`Juniper v Finjan
`
`

`

`Patent Application Publication Jan. 30, 2003 Sheet 1 of 3
`
`US 2003/0023774 A1
`
`7
`
`
`
`state Full peregence 1-10
`r1 on Ted (Q
`
`G.
`
`Juniper Ex. 1007-p. 2
`Juniper v Finjan
`
`

`

`Patent Application Publication Jan. 30, 2003 Sheet 2 of 3
`
`US 2003/0023774 A1
`
`- - - - - - - - - - - - - -
`
`----------97 -
`
`
`
`Altca17on spAge
`
`- -
`
`USee
`Console TT
`
`Juniper Ex. 1007-p. 3
`Juniper v Finjan
`
`

`

`Patent Application Publication Jan. 30, 2003 Sheet 3 of 3
`
`US 2003/0023774 A1
`
`
`
`-ie,
`
`Juniper Ex. 1007-p. 4
`Juniper v Finjan
`
`

`

`US 2003/0023774 A1
`
`Jan. 30, 2003
`
`STATEFUL REFERENCE MONITOR
`
`CROSS-REFERENCE TO RELATED
`APPLICATION
`0001. The present application claims domestic priority
`under 35 U.S.C. S119(e) to copending U.S. provisional
`patent application serial No. 60/298,590 filed Jun. 14, 2001.
`
`BACKGROUND OF THE INVENTION
`0002 The present invention related generally to software
`that controls an operating policy of a computer System. For
`example, access to various System resources, Such as files
`and network connections may be So controlled.
`0.003 Modern computer systems are controlled by two
`levels of Software: an operating System and application
`Software. The operating System maintains a separation in the
`memory of the computer between the operating System, said
`to execute in operating System Space, and the applications,
`Said to execute in applications Space.
`0004. Applications are the Software that provides solu
`tions to business problem, Such as processing e-mail mes
`Sages. Applications perform their work by communicating
`requests for access to resources Such as network connections
`or files Stored on a Storage medium to the operating System,
`which then fills these requests.
`0005. It may be desired to control any one or more of a
`wide variety of operating policies. One common Scenario is
`to control acceSS to Various System resources, as mentioned
`above, for purposes of Securing a System against deliberate
`and malicious attack or for purposes of ensuring correct and
`non-interfering operation of various processes. For purposes
`of illustration, access control for Security purposes is dis
`cussed. However, the skilled artist will understand that the
`discussion has wider implications, as explicitly pointed out
`and as implied in the following discussion.
`0006 Referring to the example of security systems,
`access is conventionally controlled by one or more real-time
`processes, while policy is independently established with the
`assistance of one or more non-real-time processes. In the
`context of this description, a real-time process is one whose
`action is Sufficiently immediate as to imperceptibly affect the
`Speed at which transactions with which the real-time proceSS
`is connected are processed. A non-real-time process is one
`that processes transactions at a Speed Substantially slower
`than the instantaneous rate at which transactions naturally
`OCC.
`0007 Real-time access control processes and data struc
`tures include, but are not limited to reference monitors,
`access control lists, permissions flags, access tokens and
`proceSS ID checking.
`0008. A reference monitor is a component of a computer
`System that determines whether an access by one compo
`nent, for example a user process, of another component, for
`example, a file is permitted.
`0009 AS used hereinafter, dynamic state is a collection of
`information, that is collected in real-time, indicative of a
`condition of a machine or proceSS as a result of a particular
`Sequence of events leading to the condition. A StateleSS
`System or component is one, which does not collect Such
`data.
`
`0010 Conventional reference monitors, herein referred
`to as Stateless reference monitors, are found in the kernels of
`various Operating Systems, including, for example,
`MicroSoft(R) WindowsTM 2000 OR UNIX. They are used to
`determine whether a particular access to a file or other
`resource is permitted.
`0011 Conventional operating systems contain embedded
`StateleSS reference monitors to control access to resources.
`User processes are started and identified to users on the basis
`of the user Supplying certain identity tokens. In most cases
`the access decision is made based on the identity of the user
`whose local program or process makes the request and one
`or more Static permissions flags or an acceSS control list
`asSociated with the resource. For examples, See Unix or
`Windows 2000. The contents of static permissions flags and
`acceSS control lists do not include information representing
`the current State of the System, but rather include informa
`tion that produces identical results regardless of the State of
`the System.
`0012 Most conventional reference monitors deals with a
`Single resource type (such as files or network connections).
`Some, such as eTrust Access Control v.5.1 from Computer
`ASSociates, protect multiple resource types.
`0013 Some operating systems give finer control by asso
`ciating individual permissions with each user, and then
`checking those permissions against the Static access control
`list of the resource. This is an improvement, but typically
`there are only a limited number of permission flags. Secu
`rity-Enhanced Linux is an example of Such an operating
`System.
`0014. There are operating systems that are even finer
`grained, and allow individual users to offer a Set of tokens,
`and if any match those found in the acceSS control list, then
`acceSS is granted.
`0015 There are operating environments that can include
`the origin of the requesting program in their acceSS control
`decision. For example, see Dan Wallach and Edward Felton,
`“Understanding Java Stack Inspection”, IEEE Proceedings
`of Security & Privacy, May 1998.
`conventionally
`0016 Non-real-time
`processes are
`employed to collect date and analyze past events in order to
`establish or modify effective policies, for example Security
`policies. Typical, conventional non-real-time processes
`include intrusion detection Systems, for example.
`0017. One type of intrusion detection system is an
`autonomous agent that polls, monitors and/or periodically
`mines log files for data indicative of an intrusion. A draw
`back of Such non-real-time Systems is that intrusions are
`only detected “after the fact.” The intruder leaves an audit
`trail of actions recorded in log files and elsewhere for which
`the only reasonable explanation is an intrusion. However, by
`the time Such a non-real-time intrusion detection System
`identifies an intrusion, the intruder is long gone and damage
`done.
`0018 For examples, see Peter G. Neumann and Phillip A.
`Porras, “Experience with EMERALD to Date”, 1st USENIX
`Workshop on Intrusion Detection and Network Monitoring,
`April 1999; Eugene Spafford et al. “Intrusion detection using
`autonomous agents' Computer Networks 34 (2000); and
`Steven R. Snapp et al., “DIDS (Distributed Intrusion Detec
`
`Juniper Ex. 1007-p. 5
`Juniper v Finjan
`
`

`

`US 2003/0023774 A1
`
`Jan. 30, 2003
`
`tion System)-Motivation, Architecture, and An Early Pro
`totype', Proceedings of the 14th National Computer Secu
`rity Conference, October 1991.
`0019. The analysis performed by intrusion detection sys
`tems. Such as have been described or referred to above is
`useful for developing policies to be enforced by real-time
`components, Such as also described above. For example,
`there are reference monitors who can follow more complex
`rules based on patterns mined by an intrusion detector from
`past behavior, but they cannot update their State on each
`controlled request. For example, See Debra AnderSon et al.,
`“Next-generation Intrusion Detection Expert System
`(NIDES) A Summary”, SRI International, May 1995.
`0020. The rise of network computing, with the attendant
`dangers of remote hackers, renders the access control deci
`Sion more difficult. Most Systems base their access control
`decisions on the identity of the local requesting program
`which is tied to a particular user, as noted above, and not on
`the presumably unknown identity of the remote hacker.
`0021 Moreover, conventional systems constructed of
`obvious combinations of the foregoing do not detect or
`control access based on pattern of behavior that croSS the
`lines between diverse users, processes, acceSS types, etc.
`Conventional Systems constructed of obvious combinations
`of the foregoing do not adjust policies dynamically, in
`real-time, in response to newly experienced threats.
`0022 Conventional systems suffer from a lack of
`dynamic State inherent to Stateless reference monitors, and
`that they are not very resilient in the face of local application
`programming errors through which a remote attacker can
`Subvert a trusted local program. Application programming
`errors, i.e., bugs, will always continue to exist as the
`programmerS are fallible and the testing cannot reasonably
`anticipate all manner of malicious attackS.
`0023. When conventional reference monitors are used,
`once an attacker has managed to Subvert a local application,
`the attacker typically has all the rights and privileges of that
`application. In the case of an e-commerce Server, this may
`include the ability to look at transaction histories and the
`asSociated credit card information.
`0024 Finally, as already discussed above, conventional
`Systems cannot detect and react to attacks in which diverse
`parts of the attack are performed by Seemingly normal
`operations of diverse programs or processes, that only form
`the attack when taken in combination.
`
`SUMMARY OF THE INVENTION
`0.025 The present invention provides an improved sys
`tem, method and Software product for controlling an oper
`ating policy of a computer System, Such as a Security policy.
`According to one aspect of an embodiment of the invention,
`a real-time reference monitor Software produce comprises,
`on a machine-readable medium, a Sequence of instructions
`defining a storage area where real-time State information is
`Stored and from which the State information is restored; a
`plurality of rules defining allowable activity based on a
`pattern of activity; and plural interceptors identifying and
`governing the activity based on an application of the rules to
`the activity. The Software product may include a process,
`which correlates the State information acroSS different ones
`of the plural interceptorS. At least one of the plural inter
`
`ceptors can be a pre-existing element of a conventional
`computer operating System. The proceSS which correlates
`the State information can include a rule which defines
`permissible resource references in View of activity identified
`by the interceptorS resource reference and the State infor
`mation; and a rule interpreter which applies the rule to the
`activity identified and the state information. The rule can be
`modified without restarting the real-time reference monitor.
`The plural reference interceptors can correspond to more
`than one resource type and wherein the Storage area is a
`Single Storage area. The Storage area contents can be pre
`served when the rules are modified. The Software product
`can further include an application program interface that can
`Send messages to application programs on the same System.
`The Software product can also further include an application
`program interface that can Send messages to application
`programs on other Systems. The plural reference interceptors
`can monitor two or more of file access, registry access,
`network access, object access, System call access, keyboard
`access, external inputs and user input. According to another
`aspect of an embodiment of the invention, a computer
`implemented reference monitor includes a monitoring pro
`ceSS, executing on a computer, which detects plural defined
`events and generate event messages, a Storage device, on the
`computer, in which is Stored information related to the event
`messages generated by the monitoring process, and a rule
`interpreting process, executing on the computer, which
`responds to characteristics of an event message the infor
`mation Stored in the Storage device and a Set of rules by
`modifying operation of the computer. The Set of rules can be
`modified in response to the information stored in the storage
`device. The set of rules can be modified and wherein
`information Stored in the Storage device is preserved when
`the set of rules is modified. Finally, an external event
`message generating proceSS can execute on another com
`puter and can communicate event messages to the rule
`interpreting process.
`0026. According to yet another aspect of an embodiment
`of the invention, a method of implementing a processing
`policy on a computer includes detecting first and Second
`events, each having one of a plurality of defined event types;
`generating first and Second event messages, each containing
`information about a corresponding one of the first and
`Second events, Storing the information about the first event;
`and enforcing the policy responsive to the Stored informa
`tion about the first event and the information about the
`Second event. The method may further include applying one
`of a set of rules to the stored information about the first event
`and the information about the Second event to determine the
`nature of enforcing the policy. The method may yet further
`include executing an operating System on the computer;
`changing the Set of rules without restarting the operating
`System and without losing the Stored information. Finally,
`the method may include changing the Set of rules without
`interrupting the detecting, generating, Storing and enforcing.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`0027. In the drawings, in which like reference designa
`tions indicate like elements:
`0028 FIG. 1 is a functional block diagram of a software
`System embodying aspect of the invention;
`0029 FIG. 2 is a detailed functional block diagram of the
`Software system of FIG. 1;
`
`Juniper Ex. 1007-p. 6
`Juniper v Finjan
`
`

`

`US 2003/0023774 A1
`
`Jan. 30, 2003
`
`0030 FIG. 3 is a functional block diagram of a hardware
`system on which the software system of FIGS. 1 and 2 can
`execute; and
`0.031
`FIG. 4 is a functional block diagram of the storage
`system component of the system of FIG. 3.
`
`DETAILED DESCRIPTION
`0.032 The invention will be better understood upon read
`ing the following detailed description of various aspects of
`embodiments thereof.
`0.033 Aspects of an embodiment of the invention are now
`illustrated in connection with FIG. 1. The exemplary
`embodiment is in the computer System Security field, but the
`invention can readily be embodied in systems in other fields
`of endeavor, as will be evident to the skilled artisan.
`0034). In computers, one important aspect of System Secu
`rity is monitoring System events 100, e.g. access requests to
`a resource, and controlling the effect of those events, e.g.
`blocking or allowing the requested access to a resource. In
`order to monitor events, interceptors 101 are inserted in the
`control or communication paths 102 traversed by those
`events. For example, if an event monitored is a network
`access request, the interceptor 101 is inserted in the oper
`ating System at a point where the network access request is
`communicated from one portion of the operating System to
`another. The interceptor 101 generates an event message 103
`for each event 100 intercepted. Event messages 103 are
`communicated to a stateful reference monitor 104, which
`returns a policy message 105 to the interceptor 101. The
`policy message 105 may be an action for the interceptor 101
`to take, Such as allowing an acceSS request event 100 to
`continue along the control or communication path 102 to
`have its intended effect, or not allowing the event 100 to pass
`along path 102. External event messages 106, generated by
`other, unspecified event monitors can also be processed by
`the stateful reference monitor 104. The stateful reference
`monitor 104 also communicates with a user console 107 and
`log files 108.
`0035) The stateful reference monitor 104 of FIG. 1 is
`now explained in further detail, in connection with FIG. 2.
`An exemplary reference monitor 104 is designed to run as
`part of the operating System, as a driver. The exemplary
`reference monitor 104 is referred to herein as a stateful
`reference monitor because it retains and relies on changing
`System State information in implementing decision policies,
`as explained below. The stateful reference 104 monitor
`communicates with other parts of the operating System and
`with applications through communication channels. One
`channel 201 carries event messages 103 and policy mes
`sages 105, as discussed above. The other channel 202 carries
`external event messages 106, as well as other messages to
`and from application Space 203, including but not limited to
`messages to and from the user console 107 and logs 108.
`0.036 Communication channel 201 transfers messages
`into and out of the stateful reference monitor 104 through a
`rule application programming interface (API) 203. Commu
`nication channel 202 transferS messages into and out of the
`stateful reference monitor 104 through a user API 204.
`0037. Within the stateful reference monitor 104, mes
`Sages of all kinds, but particularly event messages 103 and
`external event messages 106 are routed and directed by an
`
`event router 205, between the rule API 203, the user API 2.04
`and other components of the stateful reference monitor 104.
`The event router 205 is the communication center of the
`Stateful reference monitor 104, directing and controlling all
`internal communication.
`0038. The primary operational logic of the stateful ref
`erence monitor 104 is contained in the rule interpreter 206,
`which also makes use of the contents of a state database 207
`and of compiled rule byte-code 208. The rule interpreter 206
`can be a Small, Straightforward piece of logic that can be
`made extremely bug-proof by design. The state database 207
`is Simply a repository of dynamic State information, and thus
`also easily bug-proofed. The state database 207 may reside
`at least in part in a persistent memory or Storage location So
`that it Survives an operating System reboot.
`0039. The compiled rule byte-code 208 represents the
`operational policies to be enforced and against which activi
`ties and State in the System are checked. AS Such, much of
`the complexity of the System can reside in the byte-code
`208. Although the byte-code 208 also should yield to design
`techniques that reduce or eliminate bugs, it is worth noting
`that bugs in the byte-code 208 cannot cause the operating
`System to crash, but can merely result in improper policy
`decisions. Thus, a more robust System results from the
`partitioning of the rules into the byte-code 208 and the
`interpretive logic into the rules interpreter 206.
`0040 State information can be, but is not limited to,
`information that a certain event occurred within a certain
`time of the present time. Suppose a prohibited combination
`of events is denoted X-Y-Z. That is, Event X, Event Y and
`Event Z. must occur within a certain timeframe to produce a
`bad result. Then, if the state database 207 holds information
`X-Y, a rule in byte-code 208 will prohibit Z. But, another
`rule in byte-code 208 will cause event X and/or event Y to
`be purged from state database 207 after a suitable time.
`Events X, Y and Z. need not be associated with the same user
`or process, or may be So associated, depending upon the type
`of behavior to be controlled. Finally, the stateful reference
`monitor 104 includes mappable memory 209, to aid with
`communication between the stateful reference monitor 104
`and applications in application Space 203 or accessible
`through a network 210. Mappable memory 209 is simply a
`portion of system memory addressable by both the stateful
`reference monitor 104 and other applications, Such that data
`transfer may be easily accomplished by writing to and
`reading from a predetermined location, without requiring
`Special communication apparatus, mechanisms or protocols.
`0041
`Interceptors 101, like the stateful reference monitor
`104, are also implemented in the exemplary embodiment as
`drivers loaded with, but independent of, the operating Sys
`tem kernel. Interceptors 101 interact with the operating
`System at a very low level, by intercepting various types of
`operating System requests, etc., referred to herein as events,
`for example requests for access to operating System
`resources Such as a file or network connection. When an
`interceptor 101 intercepts an event, it generates an event
`message 103, as discussed above. Each intercepted event is
`treated by the stateful reference monitor 104 as a request for
`an interpretation of the event in light of the rules represented
`by the rules byte-code 208 and the contents of the state
`database 207. The result of the stateful reference monitor
`104 applying the rules contained in the byte-code 208 to the
`
`Juniper Ex. 1007-p. 7
`Juniper v Finjan
`
`

`

`US 2003/0023774 A1
`
`Jan. 30, 2003
`
`event message 103 and the contents of the state database 207
`is a policy message 105, which is sent to the interceptor 101.
`The interceptor 101 then implements the contents of the
`policy message 105, for example blocking or allowing a
`CSOCC CCCSS.
`0.042
`Interceptors 101 can take other forms, as well.
`They may simply be APIs allowing the stateful reference
`monitor 104 to observe Some aspect of operating System
`behavior and to modify that behavior accordingly. For
`example, with Suitable modification, an interceptor 101 can
`detect an operating System performance characteristic and
`tune a related parameter, in response.
`0.043
`Interceptors 101 need be inserted only in paths
`affecting resources important to the purpose for which the
`stateful reference monitor 104 is intended. In a security
`application, Such resources may include but are not limited
`to, one or more of Windows Registry acceSS requests,
`network acceSS request, windowS/System/32 directory
`access requests and Outlook personal address books acceSS
`requests. InterceptorS 101 can also extract inputs from other
`Sources, Such as a virus Scanner log file.
`0044 AS indicated above, access to user-level applica
`tions or to the stateful reference monitor 104 through
`user-level applications is given through the application
`Space 203. A graphical user interface (GUI) running on a
`user console 107 may give the user access to the Stateful
`reference monitor 104, for example to monitor performance,
`to View logs and to adjust operational parameters and
`policies. The GUI accessed through the user console 107
`may be a conventional browser, for example, or may be a
`proprietary Software program designed for the purpose. A
`database or file System holding operational logs, error logs
`and the like 108, is also accessible through application Space
`203. The use of logs and the specific types of logs used will
`be defined by the skilled artisan based upon Specific indi
`vidual requirements. Network connections 210 are also
`accessed by the stateful reference monitor 104 through
`application space 203. These network connections 210 are
`those over which external event messages 106 arrive.
`0.045 Now, the detailed operation of the stateful refer
`ence monitor 104 is described. Operations may be divided
`into two classes, normal operations and boot-time opera
`tions.
`0046. During normal operations, an event is intercepted
`by an interceptor 101, and an event message 103 transmitted
`to the stateful reference monitor 104. Events which are
`normally passed on to other parts of the operating System,
`Such as file access requests and network connection requests
`are temporarily held up by the interceptor 101, so that they
`do not have their ordinary, immediate effect, while the
`stateful reference monitor 104 makes a decision based on the
`processing policy then in effect as to whether to block or
`allow the event to be transmitted.
`0047 Event messages 103 from the interceptors 101 are
`received in the stateful reference monitor 104 by the rule
`API 203. The rule API 203 is a simple interface for receiving
`and transmitting messages to interceptorS 101, which may
`be specially written for compatibility with the stateful ref
`erence monitor 104 or may be a packaged component of the
`operating System or may be provided by any party as an
`add-on component. The rule API 203 simply passes event
`
`messages 103 on to the event router 205. As will be seen
`below, the rule API 203 also passes messages out from the
`event router 205 to the interceptors 101, when required.
`0048. The event router 205 is the communication nerve
`center of the stateful reference monitor 104. Any type of
`message that must be moved from one component to another
`component of the stateful reference monitor 104 is trans
`ferred by the event router 205. Other than moving messages
`as directed, the event router 205 need not perform any other
`processing of messages, although the skilled artisan may
`incorporate other processing in the event router 205 as
`required by a particular application.
`0049. The event router 205 queues messages for the
`receiving components of the stateful reference monitor 104
`according to priority. In the case of event messages 103,
`priority may be based on event type, for example. Thus, a
`network access event that may be time Sensitive may be
`processed ahead of a file access event that has no Such time
`Sensitivity.
`0050 Events are identified in the event messages 103 to
`the application which produced the event, rather than the
`user, as is customary in conventional Systems, which allows
`policies to be set and executed orthogonal to the user
`community. This is in contrast to those conventional Sys
`tems, in which processing policies Such as Security and
`acceSS control policies operate on the basis of the user
`generating an event, and the rights and privileges attributed
`to that user.
`0051 Queued events are picked up in priority order by
`the rule interpreter 206 for processing. First, the rule inter
`preter 206 determines whether the event described by the
`event message is of a type designated as part of the dynamic
`state information to be stored in the state database 207. If so,
`then information about the event is stored in the state
`database 207. The information stored, may include some or
`all of, but not necessarily limited to, time of the event, type
`of event, application generating the event, user owning the
`application and the like.
`0052 Next, the type of the event determines which
`segment of the compiled rules byte-code 208 will be
`addressed by the rule interpreter 206. Within the segment of
`the compiled rules byte-code 208, the rule interpreter 206
`executes a Switch function based on the opcode.
`0053 Within a segment, a sequence of rules is executed
`by following this pseudo-code Sequence:
`
`While (done)
`{ get next instruction
`switch (Opcode)
`{ case 1: Action 1
`case 2: Action 2
`case 3: Action 3
`
`0054) A significant performance improvement may be
`obtained by optimizing the argument of the foregoing
`“switch (Opcode)” statement. Switch statements are most
`efficient when the expected cases are consecutive integers
`beginning with 1. Therefore, in order to manage the values
`
`Juniper Ex. 1007-p. 8
`Juniper v Finjan
`
`

`

`US 2003/0023774 A1
`
`Jan. 30, 2003
`
`of opcodes that must be handled by the Switch function in
`the rule interpreter 206, the opcodes are translated by the
`following pseudo-code before the byte-code is first used:
`
`While (more byte-code instructions)
`{ get next instruction
`switch (opcode)
`{ case realOpcode 1: replace opcode by integer = 1;
`case realOpcode 2: replace opcode by integer = 2;
`
`Boot-time operation is similar to normal operation,
`0.055
`except that different rules may be followed, especially in
`Security applications, in order to specialize policies for what
`could be a particularly Vulnerable process. Moreover, Spe
`cialized boot-time rules can be extremely simple and tightly
`written because the boot-time operating System environment
`is highly controlled.
`0056. In order to provide different sets of rules at different
`times, the compiled rule byte-code 208 is stored in a data
`Structure that permits Selection between an active rule Set
`and inactive rule Sets by use of a Software Switch, as is
`known in the art. Thus, the System is assured to be running
`only one Set of rules at a time, not a mixture of rules.
`Moreover, when rules are loaded, various processes, Such as
`rule checks can be performed. This arrangement is particu
`larly advantageous for having different Sets of rules opera
`tive during boot-time than other times. The rules need not all
`be stored and loaded at boot up, thus Saving Space and time.
`Boot-time rules can be stored in and loaded from the
`Windows-based system. Later, the rules for use when boot
`up is done can be loaded from a network resource or from
`a file. In general, rules byte-code 208 is a downloadable
`program and rules interpreter 206 is a virtual machine. Thus,
`the rules can be changed at any time without Shutting down
`or restarting the operating System. In an alternate arrange
`ment, the compiled rule byte-code 208 can be stored in a
`fixed location that can be overwritten easily without shutting
`down the stateful reference monitor 104 or rebooting the
`operating System.
`0057 AS indicated above, various types of patterns of
`events can be programmed into the rules byte-code 208, for
`detection and action. A simple combination, X-Y-Z, was
`given as an example, earlier. However, the rules can also
`identify as a prohibited pattern, any pattern not seen before.
`This type of rule is useful in an environment where the
`System can first be "profiled, i.e., operated in a State
`collection mode, wherein normal combinations and patterns
`of activity are stored in state database 207. Such a system is
`Subsequently placed into a “lockdown” mode, wherein both
`pre-programmed patterns and unusual patterns are detected
`and acted upon. This type of profiling is preferably done in
`the environment in which the System will be operated, So as
`to capture the true range of behavior. Rules can also be
`tightened or relaxed dynamically through user manipulation
`of the bye-code 208 through a suitable program interface at
`the user console 107.
`0.058. In addition to policy messages 105 and communi
`cation with the user console 107, the stateful reference
`monitor can generate a variety of levels of warning and
`
`alarm, at least Some of which permit the user to Select
`whether to allow a questionable action or not. This feature
`is generally useful, but has particular use in a System, which
`was profiled as, described above. Once in lockdown, there
`may still be unseen, but nominally Safe, behaviors that the
`user can pass judgment on. The Stateful reference monitor
`104 alerts the user as to the condition and can record the
`behavior as permissible or not depending on the rules
`defined in byte-code 208.
`0059 An embodiment of the invention is now described
`in connection with Securing computer Systems against mali
`cious users and Software.
`0060 Security

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