Using events to identify a user and enforce policies
Enforcing a policy is described. A mapping between an IP address of a device and a user identity is identified, at least in part by correlating event information. A policy is applied to the device based at least in part on the user identity. One example of an event is an access to a mail server, such as an access to a Microsoft Exchange server.
Latest Palo Alto Networks, Inc. Patents:
- Prevention of container escape-based attacks of a host system
- Auto generating build time policies from run time policies for shift left security
- Context-based security in mobile networks using an API and a data store
- Private cloud control
- Detecting behavioral change of IoT devices using novelty detection based behavior traffic modeling
Devices such as firewalls are sometimes used to prevent users, such as employees of a company, from accessing resources to which they are not authorized. As an example, access to a specific website or to a class of websites may be prohibited for all users. Access can also be granted in a more granular level, such as by permitting some users or groups of users to access a resource, while prohibiting access for other users/groups. Unfortunately, enforcing granular polices can be difficult, particularly as the number and variety of types of devices present in an enterprise network continue to increase.
Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings.
The invention can be implemented in numerous ways, including as a process; an apparatus; a system; a composition of matter; a computer program product embodied on a computer readable storage medium; and/or a processor, such as a processor configured to execute instructions stored on and/or provided by a memory coupled to the processor. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. In general, the order of the steps of disclosed processes may be altered within the scope of the invention. Unless stated otherwise, a component such as a processor or a memory described as being configured to perform a task may be implemented as a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task. As used herein, the term ‘processor’ refers to one or more devices, circuits, and/or processing cores configured to process data, such as computer program instructions.
A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. The invention is described in connection with such embodiments, but the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for the purpose of example and the invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the invention is not unnecessarily obscured.
Communications between client devices 104-110 and resources outside of network 122 (e.g., external site 126 reachable via external network 124) pass through data appliance 102. Such communications may take place using any appropriate communication protocol, such as Hypertext Transfer Protocol (HTTP), Secure Sockets Layer (SSL), and File Transfer Protocol (FTP). In the example shown in
Also included in network 122 is a directory service provider 120 (also referred to as a domain controller), which makes use of the Lightweight Directory Access Protocol (LDAP) or other appropriate protocols. One example of a directory service provider 120 is a Microsoft Active Directory server. Other types of systems can also be used instead of directory service provider 120, such as a Kerberos-based system, and the techniques described herein adapted accordingly. Directory service provider 120 is configured to manage user identity and credential information.
Data appliance 102 uses information stored by directory service provider 120 to enforce various policies. Such policies may apply to particular devices (e.g., device 104), particular users (e.g., “Alice Jones”, denoted in directory service provider 120 as the object Alice.Jones), and/or groups (e.g., “laptop devices,” “employees in the Marketing Department,” and “director-level employees,” each of which can also be represented in directory service provider 120 as an applicable object or set of objects). As one example, a policy may specify that device 104 is permitted to send print jobs to printer 128 while device 106 may not. As another example, a policy may specify that employees in the engineering department are permitted to access external site 126, while other employees are not.
Each morning when Alice arrives at ACME Corporation and logs into her computer 104, credential information is exchanged between client 104 and directory service provider 120. Data appliance 102 is made aware of the fact that Alice has successfully logged into device 104, and is able to apply appropriate policies to Alice's communications, whether they are rules pertaining specifically to device 104, to Alice (e.g., the Alice.Jones object stored by directory service provider 120), or to a group of which Alice's object is a member (e.g., the Marketing Department). Throughout the day, Alice's computer communicates with mail server 118—a Microsoft Exchange server in the example shown in FIG. 1—to send and retrieve email messages, calendar information, and other information, as applicable.
Bob also has identity/credential information maintained by directory service provider 120. For example, included in directory service provider 120 is an object for Bob.Smith. However, as neither of Bob's computers 106 and 108 run a Microsoft-based operating system, they do not exchange credential information with directory service provider 120 when Bob logs into them. As with Alice's computer 104 however, computer 106 periodically communicates with mail server 118 to retrieve email for Bob and to send any mail authored by Bob. Bob does not use computer 108 to access Microsoft Exchange server 118.
Included in network 122 is an 802.11 wireless access point (130). Alice has configured her personal tablet 110 to make use of the access point to communicate with external sites 126 and 132. Alice has also configured her personal tablet 110 to fetch email from Microsoft Exchange server 118. As with Bob's computers 106 and 108, Alice's tablet 110 does not communicate with directory service provider 120.
Microsoft Exchange server 118 is configured to keep, in log 134, event information such as the IP address, email address, and/or other credential information of ACME employees that access the Microsoft Exchange server to retrieve and send email. As will be described in more detail below, applicable portions of the contents of log 134 can be correlated with the contents of directory service provider 120. The results of the correlation are provided to data appliance 102 and allow it to enforce user policies against devices, such as devices 106-110, even though those devices do not directly communicate with directory service provider 120.
In some embodiments, log data 134 and data from directory service provider 120 are collected and correlated by an agent application 116, which is in communication with appliance 102. The agent can be implemented in a variety of ways, such as in a device that is separate from appliance 102 (as shown in
The log data shown in
Additional elements can be included in the process shown in
As one example, suppose device 108 is not used by Bob to check his corporate email (e.g., because he uses device 106 for that purpose). Bob does use computer 108 to access an enterprise instant messaging service (provided by instant messaging server 602) to communicate with other employees. Instant messaging server 602 requires its users to log in using credential information, such as a first and last name, or a corporate email address. Instant messaging server 602 also keeps event logs that include information, such as the date and time users access the instant messaging server, the credential information they supply, and whether or not access attempts are successful. In various embodiments, agent 116 is configured to retrieve the log information that is stored by instant messaging server 602 and correlate it with information stored by directory service provider 120.
The correlated information can be provided to data appliance 102 and used to enforce policies, such as policy 208, shown in
Another set of policies that can be enforced is shown in
As one example, suppose device 108 is not used by Bob to check his corporate email (e.g., because he uses device 106 for that purpose). Bob does use computer 108 to access a collaborative website (an enterprise Wiki 702) to collaborate with other employees on documentation. Wiki 702 requires its users to log in using credential information, such as a first and last name, or a corporate email address. Wiki 702 also keeps event logs that include information, such as the date and time users access the Wiki, the credential information they supply, and whether or not access attempts are successful. In various embodiments, agent 116 is configured to retrieve the log information that is stored by Wiki 702 and correlate it with information stored by directory service provider 120. The correlated information can be provided to data appliance 102 and used to enforce policies, such as policy 208, shown in
Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed embodiments are illustrative and not restrictive.
Claims
1. A system, comprising:
- a processor configured to: receive log data generated in response to a first user-provided device authenticating to an electronic mail server on a first network, wherein the generated log data includes at least a username portion of an email address of the user, wherein the first user-provided device is not authenticating to a directory service provider accessible via the first network, and wherein the first user-provided device has not authenticated to the directory service provider; receive, from the first user-provided device, a request for a first resource that is external to the first network, wherein the first user-provided device has an IP address; determine an identity of the user of the first user-provided device based at least in part on correlating at least a portion of the received log data, including the username portion of the email address, and identity information associated with the user and stored in the directory service provider; determine a mapping between the IP address of the first device and the identity of the first user-provided device; and apply a policy with respect to the request for the first resource based at least in part on the identity of the user of the first user-provided device; and
- a memory coupled to the processor and configured to provide the processor with instructions.
2. The system of claim 1 wherein the identity information associated with the user comprises a user object maintained by the directory service provider.
3. The system of claim 1 wherein the processor is further configured to receive directory information.
4. The system of claim 3 wherein the processor is configured to receive the directory information from the directory service provider.
5. The system of claim 1 wherein the first device runs an operating system that is provided by a first entity and wherein the log data is received from a server running an operating system that is provided by a second entity that is different from the first entity.
6. The system of claim 1 wherein determining the identity of the user includes identifying a user object in the directory service provider without requiring the first device to log into the directory service provider.
7. The system of claim 1 wherein the user identity includes a username.
8. The system of claim 1 wherein the user identity includes a group.
9. The system of claim 1 wherein the processor is further configured to receive timeout information associated with the mapping.
10. A method, comprising:
- receiving log data generated in response to a first user-provided device authenticating to an electronic mail server on a first network, wherein the generated log data includes at least a username portion of an email address of the user, wherein the first user-provided device is not authenticating to a directory service provider accessible via the first network, and wherein the first user-provided device has not authenticated to the directory service provider;
- receiving, from the first user-provided device, a request for a first resource that is external to the first network, wherein the first user-provided device has an IP address;
- determining an identity of the user of the first user-provided device based at least in part on correlating at least a portion of the received log data, including the username portion of the email address, and identity information associated with the user and stored in the directory service provider;
- determining a mapping between the IP address of the first device and the identity of the first user-provided device; and
- applying a policy with respect to the request for the first resource based at least in part on the identity of the user of the first user-provided device.
11. The method of claim 10 further comprising receiving directory information from the directory service provider.
12. The method of claim 10 wherein the identity information associated with the user comprises a user object maintained by the directory service provider and wherein determining the identity of the user includes identifying the user object in the directory service provider without requiring the first device to log into the directory service provider.
13. A computer program product embodied in a non-transitory computer readable storage medium and comprising computer instructions for:
- receiving log data generated in response to a first user-provided device authenticating to an electronic mail server on a first network, wherein the generated log data includes at least a username portion of an email address of the user, wherein the first user-provided device is not authenticating to a directory service provider accessible via the first network, and wherein the first user-provided device has not authenticated to the directory service provider;
- receiving, from the first user-provided device, a request for a first resource that is external to the first network, wherein the first user-provided device has an IP address;
- determining an identity of the user of the first user-provided device based at least in part on correlating at least a portion of the received log data, including the username portion of the email address, and identity information associated with the user and stored in the directory service provider;
- determining a mapping between the IP address of the first device and the identity of the first user-provided device; and
- applying a policy with respect to the request for the first resource based at least in part on the identity of the user of the first user-provided device.
14. The method of claim 10 wherein the identity information associated with the user comprises a user object maintained by the directory service provider.
15. The method of claim 10 wherein the first device runs an operating system that is provided by a first entity and wherein the log data is received from a server running an operating system that is provided by a second entity that is different from the first entity.
16. The method of claim 10 wherein determining the identity of the user includes identifying a user object in the directory service provider without requiring the first device to log into the directory service provider.
17. The method of claim 10 wherein the user identity includes a username.
18. The method of claim 10 wherein the user identity includes a group.
19. The method of claim 10 further comprising receiving timeout information associated with the mapping.
20. The computer program product of claim 13 further comprising computer instructions for receiving timeout information associated with the mapping.
6088801 | July 11, 2000 | Grecsek |
6751634 | June 15, 2004 | Judd |
6941465 | September 6, 2005 | Palekar et al. |
6944668 | September 13, 2005 | Broquist et al. |
7240015 | July 3, 2007 | Karmouch et al. |
7263353 | August 28, 2007 | Forsberg et al. |
7269853 | September 11, 2007 | Dunn |
7281137 | October 9, 2007 | Vitikainen |
7324999 | January 29, 2008 | Judd |
7360237 | April 15, 2008 | Engle et al. |
7395341 | July 1, 2008 | Nicodemus et al. |
7428746 | September 23, 2008 | Engle et al. |
7428753 | September 23, 2008 | Engle et al. |
7475419 | January 6, 2009 | Basu et al. |
7555550 | June 30, 2009 | Schunemann |
7669226 | February 23, 2010 | Bhide et al. |
7818440 | October 19, 2010 | Givoly |
7856652 | December 21, 2010 | Hieda |
7962513 | June 14, 2011 | Boles et al. |
8000299 | August 16, 2011 | Lee |
8260907 | September 4, 2012 | O'Sullivan |
8296820 | October 23, 2012 | Kao et al. |
8312507 | November 13, 2012 | Chen et al. |
8423631 | April 16, 2013 | Mower et al. |
8516539 | August 20, 2013 | Kumar et al. |
8677447 | March 18, 2014 | Zuk et al. |
20010019559 | September 6, 2001 | Handler et al. |
20030126613 | July 3, 2003 | McGuire |
20030177389 | September 18, 2003 | Albert et al. |
20050132060 | June 16, 2005 | Mo et al. |
20060075092 | April 6, 2006 | Kidokoro |
20060095570 | May 4, 2006 | O'Sullivan |
20060212583 | September 21, 2006 | Beadle et al. |
20060277185 | December 7, 2006 | Sato et al. |
20060288003 | December 21, 2006 | Desai et al. |
20070004393 | January 4, 2007 | Forsberg et al. |
20070073519 | March 29, 2007 | Long |
20070226775 | September 27, 2007 | Andreasen et al. |
20080060064 | March 6, 2008 | Wynn et al. |
20080109870 | May 8, 2008 | Sherlock et al. |
20090012760 | January 8, 2009 | Schunemann |
20090192970 | July 30, 2009 | O'Sullivan et al. |
20090193498 | July 30, 2009 | Agarwal et al. |
20090327503 | December 31, 2009 | Hochmuth et al. |
20100071042 | March 18, 2010 | Hochmuth et al. |
20100235880 | September 16, 2010 | Chen et al. |
20100287599 | November 11, 2010 | He et al. |
20100325717 | December 23, 2010 | Goel et al. |
20110264531 | October 27, 2011 | Bhatia et al. |
20120017085 | January 19, 2012 | Carter et al. |
20120078903 | March 29, 2012 | Bergstein et al. |
20120271953 | October 25, 2012 | Gulley et al. |
20130124563 | May 16, 2013 | Cavelie et al. |
Type: Grant
Filed: May 23, 2011
Date of Patent: Nov 3, 2015
Assignee: Palo Alto Networks, Inc. (Santa Clara, CA)
Inventors: Michael Jacobsen (Mountain View, CA), Song Wang (Palo Alto, CA), Wilson Xu (San Jose, CA)
Primary Examiner: Christopher Revak
Assistant Examiner: Jason C Chiang
Application Number: 13/113,939
International Classification: H04L 29/06 (20060101); G06F 21/30 (20130101);