Abstract:
A method of security gateway policy definition to quickly infer a new policy based on event data extracted and analyzed using business logic and workflow from a gateway event log or behavior log. The method includes reading the components of a log record, translating the components into acceptable policy attributes, creating a new policy based on those attributes, and presenting the new policy to a system administrator for editing and approval.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims the benefit of U.S. Provisional Application No. 60/986,856, filed Nov. 9, 2007, entitled “System And Method For Inferring Access Policies From Access Event Records”, the contents of which are hereby incorporated by reference. 
     
    
     FIELD OF THE INVENTION 
       [0002]    This invention relates to computer system security and, more particularly, to a system and method for policy creation using access event records. 
       BACKGROUND OF THE INVENTION 
       [0003]    A secured computer network uses one or more security gateways to limit user access to protected network resources located behind the gateways. System administrators typically manage those gateways through a central gateway administration console. 
       SUMMARY OF THE INVENTION 
       [0004]    The present invention is embodied as a method of reading a record in an event log or a behavior log and automatically inferring a gateway policy based on the record. The method may include reading components of the log record, translating pertinent components into policy attributes, creating a new policy based on those attributes, and presenting the new policy to a system administrator for approval. The system administrator may edit the policy if desired. Approved policies may be stored in the directory server where the security gateways may read and may act on the policies. 
         [0005]    The present invention is also embodied as a system for inferring a gateway policy based on a log record. The system may include an audit for retrieving at least one respective log record; a policy inference logic module for automatically creating a policy based on the retrieved log record and predetermined policy attributes; and a policy module for presenting the created policy for approval and for communicating the approved policy. 
         [0006]    When inferring a policy from a log record the method may read appropriate log components such as IP addresses, may look them up in local servers to retrieve descriptive names appropriate for policy attributes, then may present the descriptive names in the inferred policy. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0007]    The invention is best understood from the following detailed description when read in connection with the accompanying drawings. According to common practice, various features/elements of the drawings may not be drawn to scale. Common numerical references represent like features/elements. The following figures are included in the drawings: 
           [0008]      FIG. 1  is a schematic diagram illustrating an exemplary network with a security gateway administration in accordance with various exemplary embodiments of the invention; 
           [0009]      FIG. 2  is a block diagram illustrating a services table used with the security gateway administration of  FIG. 1  to store descriptive service names associated with port numbers; 
           [0010]      FIG. 3  is a block diagram illustrating an IANA table used with the security gateway administration of  FIG. 1  to store descriptive service names associated with port numbers; 
           [0011]      FIG. 4  is a block diagram illustrating a host application table used with the security gateway administration of  FIG. 1  to store descriptive application names associated with IP addresses, port numbers and protocols; 
           [0012]      FIG. 5  is a flow chart illustrating attributes used to generate exemplary inferred policies in accordance with various exemplary embodiments of the invention; 
           [0013]      FIGS. 6A and 6B  are flow charts illustrating a method of generating an inferred policy in accordance with an exemplary embodiment of the invention; and 
           [0014]      FIG. 7  is a flow chart illustrating a method of finding and displaying descriptive names within an entry log in accordance with another embodiment of the invention. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0015]    Although the invention is illustrated and described herein with reference to specific embodiments, the invention is not intended to be limited to the details shown. Rather, various modifications may be made in the details within the scope and range of equivalents of the claims and without departing from the invention. 
         [0016]    The gateways may report access activity that includes successful and unsuccessful user attempts to use protected network resources. Each gateway may report such activities as event logs that include a record of each access attempt. 
         [0017]    The gateways may send the event logs to a centralized log server that parses the event logs and archives event information in a database or table (e.g., a relational database). The log server may use the event logs to generate (infer) behavior logs in the database. The behavior logs may include a summary of resource usage patterns from the event logs. 
         [0018]    A system administrator (SA) may use an administration console to specify access through each managed gateway. That is, the administration console may maintain a set of policies that define access rules for protected network resources behind (protected by) the managed gateways. Each policy may specify: (1) an entity allowed or denied access (such as a user or a user group); (2) a requested resource (a web server, for example); (3) the gateway through which access occurs; (4) the authentication type, and the effective dates and times for the policy, among others. A policy&#39;s scope may cover a single entity, a set of entities, or all entities. 
         [0019]    The SA may create each policy that the gateways enforce. SA may define each policy attribute to create adaptive access rules. The SA may create liberal policies when the gateways are first installed inline along the data path and when network resources are first protected by the gateways. The SA may create needs-based and role-based policies after the system is in-place by examining the reports generated through the administration console. These reports may be based on logs maintained by a log server. The SA may note when desired access is denied and when undesired access is granted. The SA may refine policies to adjust access appropriately. The administration console may store each policy on a directory server such that the gateways may read the policies and enforce them. 
         [0020]    Creating policies based on log entries may require considerable time and effort. The SA may examine one or more logs, analyze each entry for access problems, correlate scattered events, and—if the SA finds problems—he may manually create one or more policies using the administration console to put them into effect. 
         [0021]    Policy creation may be complicated because event logs typically display raw and temporal event data using distinguished names that are not always easily readable by the SA. An event log may define a protected network resource, for example, by listing its IP address and port number (e.g., a distinguished name), while the SA understands (recognizes) the protected resource by a descriptive name such as “engineering web server” that the SA defined in the system and uses when working with that resource. The SA may, for example, look up the IP address/port number to cross reference the descriptive name. Such a task is complicated, especially if there are numerous protected network resources in the secure network. 
         [0022]      FIG. 1  is a schematic diagram illustrating an exemplary network with a security gateway administration in accordance with various exemplary embodiments of the invention. 
         [0023]    In  FIG. 1 , security gateway administration may include security gateway  15 , directory server  65 , log server  30 , database server  35 , administration computer  45  and gateway administrations console  50 . Portions of the security gateway administration may exchange data over their network connections. 
         [0024]    In  FIG. 1 , user  5  may be connected via network  10  to security gateway  15 . The gateway  15  stands between user  5  and other outside entities that may desire to connect to network elements  25 ,  30 ,  35 ,  45  and  65  located on protected network  20 . The gateway  15  may monitor data flow between entities outside protected network  20  and elements  25 ,  30 ,  35 ,  45  and  65  within the protected network. The gateway  15  may determine which entities, such as user  5 , may or may not access protected network resources  25 . 
         [0025]      FIG. 2  is a block diagram illustrating a services table used with the security gateway administration of  FIG. 1  to store descriptive service names associated with port numbers. 
         [0026]    Policies may determine rules of access. Policies may be stored in directory server  65  where gateway  15  may read them. Although a single security gateway is shown, it is contemplated that multiple gateways may protect (limit) access to one or more protected networks. 
         [0027]    The security gateway  15  may send to log server  30  records of successful and unsuccessful access attempts to access protected network  20 . The log server may store a gateway&#39;s records in an event log. The log server  30  may use one or more event logs to summarize resource usage and store the summary in one or more behavior logs. The log server  30  may store the event logs and/or the behavior logs in a database server  35  where other network entities may access the event and/or behavior logs. 
         [0028]    Although separate servers are shown for the directory, log and database servers, it is contemplated that some or all of these servers may be combined. 
         [0029]    One or more SAs  40  may manage security gateway  15  through gateway administration console  50 . The gateway administration console may include a program that runs on administration computer  45 , which may be any computer for which the SA has access to directory server  65  and database server  35 . 
         [0030]    The gateway administration console  50  may include a plurality of plug-ins that handle different functions of gateway management. An ID audit plug-in  55  may retrieve event and behavior logs from database server  35  so SA  40  may view them. An ID policy plug-in  60  may store policies in directory server  65 , may read policies from directory server  65 , and may allow the SA to create, edit, and/or manage policies. 
         [0031]    In certain exemplary embodiments, policy inference logic  70  may be included in gateway administration console  50 . Policy inference logic may work with ID audit plug-in  55  and ID policy plug-in  60  to create new policies by inferring policy attributes from the event and behavior log records. The policy inference logic may automatically look up entries in the directory server  65  to find (cross-reference) descriptive and distinguished names for values in particular log records. 
         [0032]      FIG. 2  is a block diagram illustrating a services table used with the security gateway administration of  FIG. 1  to store descriptive service names associated with port numbers. 
         [0033]    Services table  110  may store a set of entries  120 . Each entry  120  may associate port number  130  with a descriptive service name  140  of a service offered, for example, within protected network resources ( 25 ). 
         [0034]    Services table  110  may be stored in directory server  65  which is accessible by gateway administration console  50 . One or more SA  40  may create and may maintain services table  110 , manually and/or through automated processes, and may assign descriptive service names  140  that assist SAs  40  to recognize the resources corresponding to particular port numbers  130 . As one example, port  777  may be described by the service name “Debugging Service.” 
         [0035]      FIG. 3  is a block diagram illustrating an IANA table used with the security gateway administration of  FIG. 1  to store descriptive service names associated with port numbers. 
         [0036]    An IANA (Internet Assigned Numbers Authority) table  210  may store a set of entries  220 . Each entry  220  may associate a port number  130  with a descriptive service name  140  of a service offered within, for example, protected network resources  25 . 
         [0037]    The IANA table  210  may be stored internally in memory where it is accessible by gateway administration console  50 . The port numbers  130  and associated descriptive service names  140  refer generally to those defined by the Internet Assigned Numbers Authority. For example, port number  80  may be associated with an HTTP service. 
         [0038]      FIG. 4  is a block diagram illustrating a host application table used with the security gateway administration of  FIG. 1  to store descriptive application names associated with IP addresses, port numbers, and protocols. 
         [0039]    Host application table  310  may store a set of entries  320 . Each entry  320  may associate an IP address, port number, and protocol  330  with a descriptive application name  340  of an application that may supply services within, for example, protected network resources  25 . 
         [0040]    The host application table  310  may be stored in database server  35  which is accessible by gateway administration console  50 . One or more SAs  40  may create and maintain host application table  310 , assigning descriptive application names  340  that assist SAs  40  to understand (recognize) which particular applications are defined by, for example, which respective IP addresses, port numbers, and protocols  330  and the operation served by the particular applications. As one example, the IP address 196.25.1.214, port number  80 , and protocol HTTP may be described by the service name “Engineering Wiki Server.” 
         [0041]    Although services table  110 , IANA table  210  and host application table  310  are shown separately, these tables may be combined in any matter so long as the information in these tables is viewable by the SAs during policy creation. 
         [0042]    Although services table  110 , IANA table  210  and host application table  310  are disclosed as being stored on directory server  65 , they may be stored on any number of different network resources as long as those network resources are secure and accessible (viewable) by the SAs. 
         [0043]      FIG. 5  is a flow chart illustrating attributes used to generate exemplary inferred policies in accordance with various exemplary embodiments of the invention. 
         [0044]    Now referring to  FIG. 5 , a plurality of attributes may be used to generate an inferred policy. In certain exemplary embodiments, these attributes may include one or more of: (1) global default policy attributes; (2) template policy attributes; (3) inferred policy attributes and/or (4) final policy attributes. SA  40  may use event information, log information and/or behavioral log information to infer new policies. Global default policy attributes  405  may have values that are assigned in gateway administration console  50  and may be stored where they are accessible to console  50 . In certain exemplary embodiments, these attribute values may be used to set attributes for a new policy whenever SA  40  causes a policy to be inferred from a log entry. 
         [0045]    Global default policy attributes may include the following attributes: (1) policy name  410  that may provide a unique identifying name for the policy and may be typically set to empty so SA  40  may enter a value when the inferred policy is initially presented; (2) action type  415  that may define how the policy&#39;s rules are applied; (3) authorization date and time  420  that may specify when the policy is placed into effect; (4) comments  425  that are optional text for describing the policy; (5) log type  430  that may specify a type of log used to infer the policy; (6) authentication type  435  that may define a type of authentication used for access; (7) commencement date and time  440  that may define when the policy takes effect; (8) expiration date and time  445  that may define when the policy expires and no longer has any effect; and (9) authorizer  450  that may be a name of the person (a supervisor or manager, for example) who instituted creation of the policy. 
         [0046]    The action type may not be specified by default. The SA  40  may specify a value for action type of, for example, “accept,” “deny,” or “reject” when inferring a new policy from a log entry. Authorization date and time may be set by default to be the current date and time when the policy is inferred. Comments may be set by default to empty so that SA  40  may fill them in as desired. Log type may be set by default, for example, to accounting or otherwise may be set to use event or behavioral logs. 
         [0047]    Authentication type may be set by default to any type of authorized type of authentication, for example, smartcard, writing sample, password and/or biometric authentication. Commencement date and time may be, for example, set by default to the current date and time or manually set to a predetermined date and time. Expiration date and time may be set by default to the current date and time or manually set to a predetermined date and time. Authorizer  450  may be set by default to the name of SA  40  currently logged into gateway administration console  50 . 
         [0048]    Template policy attributes  455  may have values that are stored in a policy template. Each SA  40  may use gateway administration console  50  and may have a policy template individually assigned that includes policy attribute values that the respective SA  40  desires when creating or editing the policy template. The policy template may be stored where it is accessible by gateway administration console  50 . 
         [0049]    Template policy attribute  455  values, if present, may override values for attributes of the same name set by global default policy attributes  405 . The security gateway administration may search for the policy template having the template policy attributes for the SA  40  logged onto gateway administration console  50  or requesting the policy. If a policy template is found, it may use any attribute values in the policy template to override attribute values of the same name from the global policy attributes  405  for the new policy. 
         [0050]    Template policy attributes  455  may include the following attributes previously described: log type  430 , authentication type  435 , commencement date and time  440 , expiration date and time  445 , and authorizer  450 . They may also include gateway  460 , which is the descriptive name of the gateway through which an access request may be authorized. 
         [0051]    Inferred policy attributes  465  may have attribute values that may be determined after a new policy is assigned values for global default policy attributes  405  and template policy attributes  455 . The currently selected log entry may be used to determine these attribute values. 
         [0052]    Inferred policy attributes  465  may include the following attributes: (1) authentication type  435 ; (2) gateway  460 ; (3) source  470  that may include the IP address and/or the descriptive name of the network location from which the access request may be authorized; (4) user  475  that may include the distinguished name of the user requesting the resource; (5) domain  480  that may include the name of the domain from which the access request may be authorized; (6) authentication server  485  that includes the name of the server that authenticated the user making the access request; (7) destination  490  that includes the IP address and/or the descriptive name of the requested protected network service; (8) service  493  that may include the descriptive name of the service provided by the requested network resource. 
         [0053]    Values for the authentication type and/or gateway, if present in the current log entry, may be used to override previously assigned values from global default policy attributes  405  and/or template policy attributes  455 . The descriptive names of the gateway, source and/or destination attributes, if they exist, may be retrieved from directory server  65  and the distinguished names of the user may be verified through directory server  65 . The descriptive name of the service attribute, if one exists, may come from either services table  110  or IANA table  210 . 
         [0054]    The final policy attributes  496  may be a combination of the attributes defined by global default policy attributes  405 , the template policy attributes and inferred policy attributes  465 . In certain exemplary embodiments, their values may include global default policy attribute values overridden by any defined template policy attribute values and augmented and overridden by any inferred policy attribute values, respectively. In other exemplary embodiments, one or more of the policy attributes  405 ,  455  and/or  465  may be eliminated and the remaining attributes may be used to generate final policy attributes  496 . 
         [0055]      FIGS. 6A and 6B  are flow charts illustrating a method of generating an inferred policy in accordance with an exemplary embodiment of the invention. 
         [0056]    Now referring to  FIGS. 6A and 6B , at step  503 , SA  40  may request to view events (e.g., filtered events) or behavior logs in gateway administration console  50 . At step  506 , ID audit plug-in component  55  of console  50  may retrieve the requested logs from log server  30 . 
         [0057]    At step  509 , policy inference logic  70  of console  50  may read the values of fields in each log record and may contact directory server  65  to locate descriptive names for respective values if the descriptive names exist. The policy inference logic  70  may search for descriptive names for certain fields. These fields may include source, destination, service, and gateway fields. The policy inference logic  70  may also look up a descriptive application name for the requested resource in the log record. The policy inference logic may present the log record to the SA  40  for viewing. The log records may automatically display the descriptive names where they are available and may be updated with the descriptive names. 
         [0058]    At step  512 , SA  40  may choose a log record and may request to infer a policy from the particular log record. The SA may choose the policy type, for example, an accept policy, a deny policy, or a reject policy. At step  515 , policy inference logic  70  may respond by creating a new policy record in ID policy plug-in  60 . The new policy may be populated with a set of attributes set by global default policy attributes  405  and having values based on global default attribute values. 
         [0059]    At step  518 , policy inference logic  70  may search for a policy template that is associated with the respective SA  40  requesting the inferred policy. At step  521 , it is determined whether a template policy attribute  455  exists for SA  40 . If so, at step  524 , policy inference logic  70  may read template policy attribute values from the particular SA&#39;s template policy attributes  455  and may add those values as new attributes to the new policy. If the template policy attribute values correspond to attributes that are already defined in the new policy from global default policy attributes  405 , the template policy attribute values may override the global default policy attribute values. 
         [0060]    At step  527 , if the particular SA&#39;s template policy attributes have been applied or if a template policy attribute does not exist for the particular SA  40 , policy inference logic  70  may select a log record and may read the selected log record to retrieve information about a source of the request in the selected log record. The information may include the source IP address and, if it exists, an associated descriptive name for the source. The policy inference logic  70  may add the IP address and, optionally, the descriptive name as attributes to the new policy. 
         [0061]    At step  530 , policy inference logic  70  may read the selected log record to retrieve the user name of the entity who requested access, for example, as the user name to be authorized by the new policy. At step  533 , policy inference logic  70  may contact directory server  65  to validate the user name and ensure that the user account exists. At step  536 , if the user exists and the user name is valid, policy inference logic  70  may add the distinguished name (e.g., a reference to an entity in the directory server for the user) as an attribute to the new policy. At step  539 , if the user does not exist or the user name is not validated by directory server  65 , policy inference logic  70  may set the policy&#39;s user name attribute to undefined (e.g., none). It is noted that SA  40  may then provide the user name attribute at step  569 , if the user name attribute is set to undefined. 
         [0062]    At step  542 , policy inference logic  70  may read the selected log record to retrieve the destination IP address and (if it exists) an associated descriptive service name and may add them as attributes to the new policy. 
         [0063]    At step  545 , policy inference logic  70  may read the log record (an event or a behavioral record, among others) to determine a gateway that reported the log record and, at step  548 , may determine whether the gateway is specified in the reported log record. At step  551 , if the gateway is specified in the log record, policy inference logic  70  may contact directory server  65  to search for a corresponding descriptive name for the gateway and may add a gateway specifier and the descriptive gateway name as attributes to the new policy. At step  554 , if the gateway is not specified in the log record, policy inference logic  70  may set the new policy&#39;s gateway attribute, for example, to all gateways or may specify a specific gateway or a set of gateways based on other information in the log record (e.g., a predetermined gateway or predetermined gateways between the source and destination addresses). 
         [0064]    At step  557 , policy inference logic  70  may read the selected log record to retrieve the authentication type and may set the new policy&#39;s authentication type attribute to the value retrieved from the log record. The new policy may have an authentication type value that is previously set by template policy attributes  455  or global default policy attributes  405 . The log record value may override either of these values. 
         [0065]    At step  560 , the policy inference logic  70  may read the selected log record to retrieve domain and authentication server information and may set the new policy&#39;s domain and authentication server attribute values using that information. 
         [0066]    At step  563 , ID policy plug-in  60  may present to SA  40  the new policy with each attribute value automatically pre-populated, including, for example, the inferred attribute values. At step  566 , SA  40  may determine whether to edit the new policy. At step  569 , if SA  40  desires to edit the new policy, policy attribute values may be changed by SA intervention as desired. For example, SA  40  may control policy inference logic  70  to retrieve from directory server  65  some or all of the groups and organizational units of which the user is a member using an automatically generated search filter. SA  40  may choose any one of the returned values, or may choose a different user, group, or organizational unit to infer a new policy. At step  572 , SA  40  may approve the new policy without editing or once edited to his/her satisfaction. 
         [0067]    At step  575 , ID policy plug-in  60  may store the approved policy in directory server  65  where each of the protected network&#39;s  20  gateways  15  may read the new policy and may act on it. 
         [0068]      FIG. 7  is a flow chart illustrating a method of finding and displaying descriptive names within an entry log in accordance with another embodiment of the invention. 
         [0069]    Referring now to  FIG. 7 , at step  605 , an event log may be retrieved. At step  610 , the source IP address in the log record may be read, then, at step  615 , directory server  65  may be contacted to determine if a corresponding descriptive name for the source exists. If the descriptive name does not exist, an indication that no descriptive source name exists may be added to the log record. At step  620 , if the descriptive name exists, the descriptive source name may be added to the log record. 
         [0070]    At step  625 , the destination IP address in the log record may be read, and, at step  630 , directory server  65  may be contacted to determine if a corresponding descriptive name for the destination exists. If the descriptive name does not exist, an indication of no descriptive destination name exists may be added to the log record. At step  635 , if the descriptive destination name exists, the descriptive destination name may be added to the log record for storage with the log record and/or for display to the SA  40  during policy generation. 
         [0071]    At step  640 , the destination port number in the log record may be read, then the services table  110  may be checked, at step  645 , to determine whether a descriptive service name that corresponds to the port number exist. 
         [0072]    At step  650 , if the descriptive service name does not exist in services table  110 , IANA table  210  may be checked, at step  655 , to determine if a descriptive service name that corresponds to the port number exists. At step  660 , if the descriptive service name exists in either the services or IANA tables  110  or  210 , the descriptive service name may be added to the log record for storage with the log record and/or for display to the SA  40  during policy generation. If the descriptive service name does not exist in services table  110  or the IANA table  210 , the descriptive service name is not added to the log record. 
         [0073]    At step  665 , the destination IP address, port number, and protocol in the log record may be read and the host application table  310  may be checked, at step  670 , to determine whether a descriptive application name matches the destination IP address, port number, and protocol listed in the log record. At step  675 , if the descriptive application name is listed, the descriptive application name may be added to the log record for storage with the log record and/or for display to the SA  40  during policy generation. If the descriptive application name does not exist in host application table  310 , the descriptive application name is not added to the log record. 
         [0074]    At step  680 , if there is another record in the log to process, the process may return to step  610  to repeat name finding for subsequent records. If the end of the log is reached (e.g., there are no other log record components to process), at step  685 , the event or behavioral log may be presented (displayed) for SA  40 , who may read the event log with embedded descriptive names. 
         [0075]    Although various embodiments of the present invention have been described in terms of creating policies in a network environment, it is not limited thereto. The methods may be carried out, for example, between any number of computers maintaining secure transaction between or among themselves. 
         [0076]    The terms log records as used herein is intended to refer to a broad class of transaction type records used for recording secure transactions between processing resources. These records may be transaction, event, summary and/or behavioral log records, among others. 
         [0077]    Although several portions of the system are described as plug-ins, it is contemplated that these portions may be standalone software applications or may be a combination of hardware and software. 
         [0078]    As described herein, for example, the invention may be embodied in software (e.g., a plug-in or standalone software), in a machine (e.g., a computer system, a microprocessor based appliance, etc.) that includes software in memory, or in a tangible computer storage carrier configured to carry out the policy creation scheme (e.g., in a self contained silicon device, a solid state memory, an optical disc, a magnetic disc, etc.). 
         [0079]    Although the invention is illustrated and described herein with reference to specific embodiments, the invention is not intended to be limited to the details shown. Rather, various modifications may be made in the details within the scope and range equivalents of the claims and without departing from the invention.