# Patent

## Title
Method to calculate a risk score of a folder that has been scanned for confidential information

## Abstract

A method for calculating a risk score of a data object may include obtaining a severity level associated with a data object. The severity level may be calculated based on presence of confidential information in the data object. The data object may be a file or a folder. The severity level may be calculated using a data loss prevention policy. The method may further include obtaining metadata associated with the data object. The metadata may comprise at least one of access permission data for the data object and access usage data for the data object. The method may further include calculating a risk score for the data object based on the severity level and the metadata associated with the data object.

## Background
RELATED APPLICATIONS
This application is related to and claims the benefit of U.S. Provisional Patent application Ser. No. 61/423,053, filed Dec. 14, 2010, which is hereby incorporated by reference. This application is further related to and claims the benefit of U.S. Provisional Patent application Ser. No. 61/419,040, filed Dec. 2, 2010, which is hereby incorporated by reference.


FIELD
Embodiments of the invention relate to data loss protection, and more particularly to calculating a risk score of a folder that has been scanned.
BACKGROUND
Data Loss Prevention (DLP) involves computer and information security, where DLP systems identify, monitor, and protect data in use (e.g., endpoint actions), data in motion (e.g., network actions), and data at rest (e.g., data storage). Typically, a DLP system creates fingerprints of confidential information that requires protection, and then uses the fingerprints to detect the presence of confidential information in various files, messages and the like. Confidential information may be stored in a structured form such as a database, a spreadsheet, etc., and may include, for example, customer, employee, patient or pricing data. In addition, confidential information may include unstructured data such as design plans, source code, CAD drawings, financial reports, etc.
Many organizations store large amounts of confidential information in files that are accessible to users within the organization. Since access to this data is essential to the job function of many users within the organization, there are many possibilities for theft or accidental distribution of this confidential information. Theft or benign inadvertent disclosure of confidential information represents a significant business risk in terms of the value of the intellectual property and compliance with corporate policies, as well as the legal liabilities related to government regulatory compliance. However, with a large number of files and users, it is difficult to assess which confidential files have a high risk of distribution and need to be remediated quickly.
SUMMARY
A method and apparatus for calculating a risk score of a data object is described. In an exemplary method of one embodiment, a severity level associated with a data object is obtained. In one embodiment, the severity level is calculated based on presence of confidential information in the data object. The data object may be a file or a folder. The severity level may be calculated using a data loss prevention policy. Metadata associated with the data object is obtained. The metadata may comprise at least one of access permission data for the data object and access usage data for the data object. A risk score is calculated for the data object based on the severity level and the metadata associated with the data object.
In some embodiments, the calculation of the risk score can be adjusted based on one or more configuration parameters. In some embodiments, the configuration parameters can be set by a user.
In some embodiments, the data object is a folder comprising one or more files, and the risk score for the folder comprises a risk score for each of the one or more files. In some embodiments, the access permission data is a permission access control list is associated with a number of users permitted to access the data object. In some embodiments, the access usage data for the data object defines historical data for the data object, the historical data comprising a number of users that have accessed the data object during a predetermined amount of time.
In some embodiments, prior to calculating the risk score for the data object, a configuration parameter, a configuration parameter is obtained defining the metadata used to calculate the risk score. In some embodiments, the risk score is calculated for the data object based on the severity level and the metadata defined by the configuration parameter.
In some embodiments, a weight is assigned to the risk score for the data object, the weight being assigned based on a risk score of one or more other data objects to be included in a risk report. In some embodiments, the risk report is created including the weighted risk score for the data object. In some embodiments, the risk report is displayed in a user interface.
In addition, a computer readable storage medium for calculating a risk score of a data object is described. An exemplary computer readable storage medium provides instructions, which when executed on a processing system causes the processing system to perform a method such as the exemplary methods discussed above.
Further, a system for calculating a risk score of a data object is described. An exemplary system may include a memory and a processor coupled with the memory. In some embodiments of the exemplary system, the processor is to obtain a severity level associated with a data object. The severity level may be calculated based on presence of confidential information in the data object. The data object may be a file or a folder. In one embodiment, the processor is to calculate the severity level based on the content of the data object and a data loss prevention policy. The processor is to obtain metadata associated with the data object. The metadata may comprise at least one of access permission data for the data object and access usage data for the data object. The processor is to calculate a risk score for the data object based on the severity level and the metadata associated with the data object.



BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will be understood more fully from the detailed description given below and from the accompanying drawings of various embodiments of the invention, which, however, should not be taken to limit the invention to the specific embodiments, but are for explanation and understanding only.
FIG. 1 illustrates an exemplary network architecture in which embodiments of the invention may operate.
FIG. 2A is a block diagram of one embodiment of data loss prevention system;
FIG. 2B is a block diagram of one embodiment of a risk calculation system;
FIG. 3 is a flow diagram of one embodiment of a method for calculating a risk score for a data object;
FIG. 4 is a flow diagram of one embodiment of a method for adjusting the calculation of a risk score for a data object based on configuration parameters;
FIG. 5 illustrates an exemplary GUI for presenting a risk report in accordance in accordance with one embodiment of the invention; and
FIG. 6 is a block diagram of an exemplary computer system that may perform one or more of the operations described herein.



DETAILED DESCRIPTION
A method and apparatus for calculating a risk score of a data object are described. In one embodiment, the data object is a folder containing one or more files. In one embodiment, a severity level associated with a data object is obtained. In one embodiment, the severity level is calculated based on presence of confidential information in the data object. Metadata associated with the data object is obtained. The metadata may include a permission access control list and/or access information for the data object. A risk score is calculated for the data object based on the severity level and the metadata associated with the data object.
Embodiments of the present invention provide a risk calculation system that adjusts the calculation of the risk score based on one or more configuration parameters. In some embodiments, the configuration parameters can be set by a user. The configuration parameters can adjust the metadata that is used to calculate the risk score. As a result, the user can customize the risk score to reflect the importance of the metadata used to calculate the risk score.
In the following description, numerous details are set forth. It will be apparent, however, to one of ordinary skill in the art having the benefit of this disclosure, that embodiments of the present invention may be practiced without these specific details.
FIG. 1 is a block diagram of an exemplary network architecture 100, in which embodiments of the present invention may operate. The network architecture 100 may include a data permission and access system 104, a data loss prevention system 112, a risk calculation system 120, and one or more user devices 128 coupled via a network 102 (e.g., public network such as the Internet or private network such as a local area network (LAN)). The user devices 128 may include personal computers, laptops, PDAs, mobile phones, network appliances, etc.
The data permission and access system 104, the data loss prevention system 112, and the risk calculation system 120 may reside on the same or different machines (e.g., a server computer system, a gateway, a personal computer, etc.). They may run on one Local Area Network (LAN) and may be incorporated into the same physical or logical system, or different physical or logical systems.
Alternatively, data permission and access system 104, the data loss prevention system 112, and the risk calculation system 120, and user devices 128 may reside on different LANs that may be coupled together via the Internet but separated by firewalls, routers, and/or other network devices. In yet another configuration, the data loss prevention system 112 may reside on a server, or different servers, coupled to other devices via a public network (e.g., the Internet) or a private network (e.g., LAN). It should be noted that various other network configurations can be used including, for example, hosted configurations, distributed configurations, centralized configurations, etc.
The network architecture 100 further includes data stores 126 coupled to the network 102. The data stores 126 may represent a single or multiple data structures (databases, repositories, files, etc.) residing on one or more mass storage devices, such as magnetic or optical storage based disks, tapes, or hard drives. The data stores 126 may store any kind of data pertaining to the operation of an organization including emails, shared workspaces, etc. The data stores 126 can be centralized data repositories that may contain confidential documents and therefore need to be protected by data loss prevention system 112. The data stores 126 may be, for example, part of a network-attached storage (NAS) system or a storage area network (SAN) system.
The data loss prevention system 112 protects confidential information maintained by an organization. Confidential information may be stored in a structured form such as a database, a spreadsheet, etc., and may include, for example, customer, employee, patient or pricing data. In addition, confidential information may include unstructured data such as design plans, source code, CAD drawings, financial reports, human resources reports, customer or patient reports, pricing documentation, corporate mergers and acquisitions documentation, government (e.g. Securities and Exchange Commission) filings, and any other confidential information that requires restricted user access. The data loss prevention system 112 protects confidential information using DLP policies 116. A DLP policy includes rules for scanning content to detect the presence of confidential information. The content to be scanned may be stored in centralized data repositories such as data stores 126 that may potentially contain documents with confidential information. In addition, the content to be scanned may include documents associated with a client device such as user devices 128. Documents associated with a user device 128 may include documents stored locally on user device 128 and network-based documents stored for user device 128 (e.g., as part of NAS or SAN system). A document can be a file, a message, a web request or any other data item that is stored on a storage medium and is accessible using a name or any other identifier.
Data loss prevention system 112 may also instruct scan agents 132 located on one or more of the user devices 128 to scan documents stored locally for confidential information. Data loss prevention system 112 may do this according to one or more of the DLP policies 130.
When monitoring content for the presence of confidential information, the data loss prevention system 112 may use fingerprints of the source data to facilitate more efficient searching of the content. Fingerprints may include hashes of source data, encrypted source data, or any other signatures uniquely identifying the source data. The data loss prevention system 112 may distribute fingerprints to scan agents 132, and scan agents 132 may use fingerprints when scanning documents for confidential information in accordance with one or more DLP policies 130. Data object scanner 114 in the data loss prevention system 112 may use fingerprints when scanning documents for confidential information in accordance with one or more DLP policies 116.
A policy may include a set of rules that specify what confidential information (e.g., confidential data stored in a secure repository or a secure database) needs to be present in the content being scanned in order to trigger a policy violation. In addition, policies may specify when particular content should be scanned, which content (e.g., files accessible to employees of an organization or email messages stored on a mail server of the organization) should be scanned, etc. Further, policies may specify which actions should be taken when the documents being scanned contain confidential information. For example, the policy may require that access to the content be blocked, reported, etc. Data loss prevention system 112 creates DLP policies 116 (e.g., based on user input or based on relevant regulations) and distributes relevant DLP policies to various entities. For example, DLP policies 130 pertaining to scanning content stored on user devices 128 are distributed to user devices 128. DLP policies 116 pertain to scanning content stored in centralized data stores 126.
An organization may maintain multiple data stores 126 and may store a large number of documents in each data store 126. The stored documents may be frequently modified by different employees of the organization and new documents may be often added to the data stores 126. Hence, DLP policies 116 may request that data stores 126 be scanned frequently to prevent loss of confidential information.
In one embodiment, a DLP policy violation in a scanned document triggers an incident. Once an incident is triggered, the document is assigned a severity level by data object scanner 114 of the DLP system 112. In some embodiments, the higher the severity level, the greater the business risk of losing the document or having the contents of the document be exposed to unauthorized users. In one embodiment, the severity level can be assigned by determining the importance of the rule in the DLP policy 116 violated by the document. The importance of the rule may be specified by a user. In an alternate embodiment, the severity level can be determined based on the number of DLP policies violated by the document. In some embodiments, each incident triggered by a DLP violation can be assigned a severity level. In some embodiments, the severity level for a document can be an aggregation of the severity levels for each incident related to the document (e.g., sum of all severity levels, product of all severity levels, etc.). In some embodiments, the severity level can be determined by the sensitivity or confidentiality of the content in the document. In some embodiments, the severity level for an incident can be determined by the context in which the incident happened (e.g., specific protocols, users, groups of people, devices involved, etc.). The severity level for the document can be stored in severity levels store 118. In one embodiment, the severity level is a numerical value with a predetermined range (e.g., 1 through 4). In one embodiment, the predetermined range for the severity level can be configured by a user of the data loss prevention system 112. In some embodiments, when an incident is triggered, a number of incidents associated with the document can be incremented and stored with the severity level. In some embodiments, when an incident is triggered, a determination can be made of whether a hazard is associated with the incident. A hazard refers to combination of a document and a policy violated by the document. If a hazard is not associated with the incident, a new hazard can be created for the combination of the document and the policy violated by the document. In some embodiments, there may be only one hazard for a document and policy violation combination.
Data permission and access system 104 contains data monitor 106. Data monitor 106 can monitor documents stored in centralized data repositories such as data stores 126 or documents associated with a client device such as user devices 128. In one embodiment, data monitor 106 can monitor the documents for accesses of the documents. In one embodiment, if a document is accessed, e.g., by a user or by an application, data monitor 106 can store information associated with the access in storage, such as number of accesses store 108. In one embodiment, the information associated with the access in storage can include the number of users who have accessed the document or its content over a predetermined amount of time (e.g., 7 days). In an alternate embodiment, the information associated with the access in storage can include the number of accesses for the document or its content over a predetermined amount of time (e.g., 7 days). In one embodiment, the predetermined amount of time can be configurable by a user. In one embodiment, when a document is accessed, data monitor 106 can cause a number of accesses to be incremented for the document.
In one embodiment, data monitor 106 can monitor changes in a permission access control list (ACL) associated with each of the documents. A permission ACL can define the permissions for the document. For example, the permission ACL for a document can define the number of users who are permitted to access the document or its contents. In one embodiment, data monitor 106 can store the permission ACL in permission ACLs store 110.
Risk calculation system 120 can calculate a risk score for a folder that has been scanned by data loss prevention system 112. The folder can contain one or more files. The terms documents and files are used interchangeably herein, and can include any stored data items, including messages, message attachments, requests, and files. In one embodiment, the risk score can be calculated for each of the files in the folder, and then aggregated together to calculate a risk score for the folder. In an alternate embodiment, the risk score can be calculated for each hazard in the folder, and then aggregated together to calculate a risk score for the folder. For each file or hazard in the folder, risk calculation system 120 can obtain the severity level associated with the file or hazard. If the risk calculation system 120 obtains the severity level associated with the hazard, risk calculation system 120 may first determine a file associated with the hazard. In one embodiment, risk calculation system 120 may obtain the severity level for a file from severity levels store 118 maintained by data loss prevention system 112. Data loss prevention system can access severity levels store 118 to obtain the severity level for the file, and can provide the obtained severity level to risk calculation system 120. In certain embodiments, additional data (metadata) can be obtained for each file by risk calculation system 120. In one such embodiment, the additional data may be the permission ACL for each file. In this embodiment, risk calculation system 120 may obtain the permission ACL from data permission and access system 104. Data permission and access system 104 can access permission ACLs store 110 to obtain the permission ACL for the file, and can provide the obtained permission ACL to risk calculation system 120, which then determines how many users are allowed access to the file. In another such embodiment, the additional data may be the number of accesses for each file. In this embodiment, risk calculation system 120 may obtain the number of accesses from data permission and access system 104. Data permission and access system 104 can access number of accesses store 108 to obtain the number of accesses for the file, and can provide the obtained number of accesses to risk calculation system 120. In yet another such embodiment, the additional data may be both the number of users in the access control list and number of accesses for each file. Using the severity levels and the additional data, a risk score can be calculated for each file. The risk score for the folder is calculated by aggregating the risk scores for the files. In one embodiment, the risk score for each file and the risk score for the folder is stored in risk scores store 122.
In one embodiment, a risk report is created using the risk score for a folder. In one embodiment, the risk report can be displayed in a graphical user interface (GUI) viewable by a user. The risk report may be stored in risk reports store 124.
FIG. 2A is a block diagram of one embodiment of a data loss prevention system 200. The data loss prevention system 200 may include data object identifier 202, data object scanner 204, severity level calculator 206, policies store 208, and severity levels store 210. The components of the data loss prevention system may represent modules that can be combined together or separated into further modules, according to some embodiments.
The data object identifier 202 may identify data objects, or documents, that are to be scanned for confidential information. In some embodiments, the data objects to be scanned may be part of a centralized data repository and are to be scanned over a network. In some embodiments, data object identifier 202 may receive a request to scan the data objects from a risk calculation system in accordance with one or more DLP policies. In other embodiments, data object identifier 202 may receive a request to scan the data objects from a controller in accordance with one or more DLP policies. The data objects to be scanned may be one or more directories of documents, part of a directory of documents, etc.
Data object scanner 204 may scan data objects that data object identifier 202 has identified to be scanned. In some embodiments, data object identifier 202 can scan the data objects for confidential information using fingerprints of data objects that have been classified as containing confidential information. In one embodiment, data object scanner 204 may scan the data objects in accordance with at least one DLP policy. Data object scanner 204 may retrieve the DLP policy from policies store 208.
Severity level calculator 206 calculates the severity level of a data object on which an incident is trigged. An incident may be triggered for a data object when a scan of the data object determines that the data object violates a DLP policy. In some embodiments, the severity level assigned to the data object may be based on the sensitivity or confidentiality of the content in the data object. In some embodiments, the higher the severity, the greater the business risk of losing the data object or having the contents of the data object be exposed to unauthorized users. In one embodiment, the severity level can be assigned by determining the importance of the rule in the DLP policy violated by the data object. In an alternate embodiment, the severity level can be determined based on the number of DLP policies violated by the data object. In another alternate embodiment, the severity level can be assigned by determining a number of incidents (policy violations) for the data object and normalizing the value to a predetermined range (e.g., 1-4). For example, if a data object has a high number of incidents associated with it (e.g., 20), a higher severity level (e.g., 4) may be assigned to a data object. In another example, if a data object has a low number of incidents associated with it (e.g., 2), a lower severity level (e.g., 1) may be assigned to the data object. The severity level of a data object can be stored in severity levels store 210.
FIG. 2B is a block diagram of one embodiment of a risk calculation system 250. The risk calculation system 250 may include data object identifier 252, parameter identifier 254, severity level obtainer 256, access information obtainer 258, permission ACL obtainer 260, risk score calculator 262, risk report creator 264, risk scores store 266, and risk reports store 268. The components of the risk calculation system may represent modules that can be combined together or separated into further modules, according to some embodiments.
The data object identifier 252 may identify data objects that require calculation of a risk score. In some embodiments, a calculation of the risk score is performed at predefined times for a folder. In some embodiments, a calculation of the risk score is performed when a file in a folder is modified. In some embodiments, a calculation of the risk score is performed when a file in a folder triggers an incident. In some embodiments, a user requests a risk score for a data object that is a folder. The data object identifier 252 may identify one or more files or hazards in the folder. If data object identifier 252 identifies hazards in the folder, data object identifier 252 may identify a file associated with each hazard. In some embodiments, the data object may be part of a centralized data repository and the risk score is to be calculated over a network.
Parameter identifier 254 may identify one or more configuration parameters to use in the calculation of the risk score for the data object. In some embodiments, a user can set the values of the configuration parameters. In some embodiments, the configuration parameters can include coefficients for the calculation of the risk score. In some embodiments, the configuration parameters can determine which data values may be used in the calculation of the risk score. In some embodiments, the configuration parameters can determine the operation used to calculate the risk score. In some embodiments, none or some of the configuration parameters may be set by a user. In these embodiments, a default set of configuration parameters can be used when calculating the risk score.
Severity level obtainer 256 obtains the severity level associated with a data object on which the risk score calculation is to be performed. In some embodiments, the severity level can be obtained from a data loss prevention system. In some embodiments, the number of incidents for a data object can be obtained along with the severity level for the data object. An incident may be triggered for a data object because a scan of the data object determines that the data object violates a DLP policy. In some embodiments, the severity level assigned to the data object may be based on the sensitivity or confidentiality of the content in the data object. In some embodiments, the higher the severity, the greater the business risk of losing the data object or having the contents of the data object be exposed to unauthorized users. In one embodiment, the severity level can be assigned by determining the importance of the rule in the DLP policy violated by the data object. In an alternate embodiment, the severity level can be determined based on the number of DLP policies violated by the data object. In another alternate embodiment, the severity level can be assigned by determining a number of incidents for the data object and normalizing the value to a predetermined range (e.g., 1-4).
Access information obtainer 258 obtains the access information associated with a data object on which a risk score is to be calculated. In some embodiments, the access information can be obtained from a data permission and access system. In some embodiments, the access information for a data object can represent a number of times that the data object or its content has been accessed by one or more users during a predetermined period of time. In one embodiment, the predetermined period of time can be configurable by a user.
Permission ACL obtainer 260 can obtain the permission ACL associated with a data object on which a risk score is to be calculated. In some embodiments, the permission ACL information can be obtained from a data permission and access system. In some embodiments, the permission ACL for a data object specifies a number of users who are permitted to access the document or its contents.
Risk score calculator 262 can calculate a risk score for a data object identified by data object identifier 252. In one embodiment, if the data object is a folder, risk score calculator 262 can calculate a risk score for each file in the folder, and may aggregate the risk scores of the files to calculate a risk score for the folder. In an alternate embodiment, risk score calculator 262 can calculate a risk score for each hazard in the folder, and then aggregated together to calculate a risk score for the folder. In some embodiments, risk score calculator 262 can calculate the risk score based only on the severity level associated with the data object obtained from severity level obtainer 256. In some embodiments, risk score calculator 262 can calculate the risk score based on the severity level associated with the data object and additional data. In one such embodiment, the additional data may be the permission ACL for the data object obtained from permission ACL obtainer 260. In another such embodiment, the additional data may be the number of accesses for the data object obtained from access information obtainer 258. In yet another such embodiment, the additional data may be both the permission ACL for the data object and number of accesses for the data object. Using the severity level for the data object and the additional data for the data object, a risk score can be calculated for the data object. In some embodiments, the calculation of the risk score can be adjusted by risk score calculator 262 based on the configuration parameters identified by parameter identifier 254. In some embodiments, the risk score may be calculated by summing the severity level and the additional data. In other embodiments, the risk score may be calculated by multiplying the severity level and the additional data. In some embodiments, coefficients are used for the components (e.g., severity level, ACL, number of accesses) involved in the risk score calculation. The risk score of a data object can be stored in risk scores store 266. If the data object is a folder, the risk score of each file in the folder can be stored in risk scores store 266, in addition to the risk score for the folder being stored in risk scores store 266.
Risk report creator 264 can create a risk report using the risk score for a data object. In some embodiments, the risk report can include the risk score for folders selected by a user without including the risk score for files within the folder. In some embodiments, the risk report can include the risk score for a folder and additional data, such as the number of incidents associated with files in the folder or the DLP policies which have the highest number of incidents or violations in the folder. In some embodiments, the risk report can include the owners of the files in the folder which caused violations. In some embodiments, the risk report is displayed in a graphical user interface (GUI) viewable by a user. The risk report may be stored in risk reports store 268.
FIG. 3 is a flow diagram of one embodiment of a method 300 for calculating a risk score for a data object. The method 300 is performed by processing logic that may comprise hardware (circuitry, dedicated logic, etc.), software (such as is run on a general purpose computer system or a dedicated machine), or a combination of both. In one embodiment, the method 300 is performed by risk calculation system 120 of FIG. 1 or risk calculation system 250 of FIG. 2B.
Referring to FIG. 3, processing logic begins by identifying a data object on which to perform the risk score calculation at step 310. In some embodiments, the data object can be identified in a request received from a user. In some embodiments, the data object can be identified in a request received at predefined times for the data object. In some embodiments, the data object can be identified in a request received when the data object is created or modified. In some embodiments, the data object can be identified in a request received when the data object triggers an incident. In some embodiments, the data object can be a folder. If the data object is a folder, the files or hazards in the folder can be identified, and a risk score can be calculated for each of the files or hazards in the folder. If hazards are identified in the folder, a file associated with each hazard may be identified. The data object on which to perform the risk calculation may be associated with a user device or reside in a centralized data repository.
At step 320, processing logic obtains configuration parameters. In some embodiments, a user can configure the configuration parameters. In some embodiments, the configuration parameters can include coefficients for the risk score calculation. For example, if a risk score calculation uses a severity level and access information to calculate the risk score, a user may set a coefficient for the severity level value to 1, and the coefficient for the access information to 0.5. In this example, the risk score calculation would be adjusted such that the full value of the severity level and only half of the value of the access information was used to calculate the risk score.
In some embodiments, the configuration parameters can determine which data is used in the calculation of the risk score. For example, the configuration parameters may be set such that only a severity level and a permission ACL of a data object are used to calculate the risk score. In another example, the configuration parameters may be set such that a severity level, an access information, and a permission ACL are used to calculate the risk score for a data object.
In some embodiments, the configuration parameters can determine the operation used to calculate the risk score. For example, the configuration parameters may be set such that the risk score is calculated using a summation of values. In another example, the configuration parameters maybe set such that the risk score is calculated using a multiplication of values.
In some embodiments, none or some of the configuration parameters are set. In these embodiments, default configuration parameters are used. For example, the default set of configuration parameters can be that the risk score is calculated using a coefficient of 1.0 for all data values, using the data values for the severity level, the access information, and the permission ACL, and summing the data values. In certain embodiments, step 320 is optional and is not performed. In certain embodiments, if step 320 is omitted, method 300 proceeds to step 330 after step 310 is performed.
At step 330, a severity level is obtained for a data object. In some embodiments, the severity level can be obtained from a data loss prevention system. In some embodiments, the number of incidents for a data object is obtained along with the severity level for the data object. In certain embodiments, step 330 is optional and is not performed. In certain embodiments, if step 330 is omitted, method 300 proceeds to step 340 after step 320 is performed.
At step 340, access information is obtained for a data object. In some embodiments, the access information can be obtained from a data permission and access system. In some embodiments, the access information for a data object can represent a number of times that the data object or its content has been accessed by one or more users during a predetermined amount of time. In some embodiments, the access information for a data object can represent a number of users who have accessed the document or its content over a predetermined amount of time. In one embodiment, the predetermined amount of time is configurable by a user. In certain embodiments, step 340 is optional and is not performed. In certain embodiments, if step 340 is omitted, method 300 proceeds to step 350 after step 330 is performed.
At step 350, a permission ACL associated with a data object is obtained. In some embodiments, the permission ACL information can be obtained from a data permission and access system. In some embodiments, the permission ACL for a data object can specify a number of users who are permitted to access the document or its contents. In certain embodiments, step 350 is optional and is not performed. In certain embodiments, if step 350 is omitted, method 300 proceeds to step 360 after step 340 is performed.
At step 360, a risk score is calculated for the data object. In some embodiments, the calculation of the risk score for the data object may be adjusted based on the configuration parameters obtained at step 320. The adjustment of calculating a risk score based on configuration parameters is described below in conjunction with FIG. 4. In some embodiments, using the severity level for the data object and the additional data for the data object, a risk score can be calculated for the data object. In some embodiments, the risk score may be calculated by performing a calculation on the severity level and the additional data. In other embodiments, the risk score may be calculated by performing a calculation on a component of risk due to the severity level and a component of risk due to the additional data. In these embodiments, the component of risk due to the severity level may be assigned based on the number of incidents associated with the data object and the severity level of each of the incidents. In these embodiments, the component of risk due to the number of accesses may be assigned based on the number of users accessing the data object over a predetermined time period (e.g., past 7 days, past 10 days, etc.). In these embodiments, the component of risk due to the permission ACL may be the number of unique users allowed access in the permission ACL. In some embodiments, the risk score may be calculated by summing the severity level and the additional data. For example, the risk score may be calculated as:

risk score=severity level+number of accesses+permission ACL.

In some embodiments, the risk score may be calculated by summing the component of risk due to the severity level and the component of risk due to the additional data. For example, the risk score may be calculated as:

risk score=R(S)+R(H)+R(P),

where R(S) is the component of risk due to the number and severity of incidents, R(H) is the component of risk due to the number of accesses, and R(P) is the component of risk due to the permission ACL.

In other embodiments, the risk score may be calculated by multiplying the severity level and the additional data. For example, the risk score may be calculated as:

risk score=severity level*(number of accesses+permission ACL).

In some embodiments, the risk score may be calculated by multiplying the component of risk due to the severity level with the component of risk due to the additional data. For example, the risk score may be calculated as:

risk score=R(S)*(R(H)+R(P)).

At step 370, a determination is made of whether there are additional data objects that require a calculation of a risk score. The determination can be positive if the risk score is to be calculated for a folder, and there are additional files in the folder that require a calculation of a risk score. The determination can be negative if the risk score has been calculated for a single data object. If the data object is a folder, the determination can be negative if each file in the folder has a calculated risk score. If there are additional data objects that require a calculation of a risk score, the method 300 proceeds to step 320 to identify the next data object on which to perform the calculation. If there are no additional data objects, the method 300 proceeds to step 380.
At step 380, a risk report is created using the risk score for a data object. In some embodiments, the risk report can include the risk score for the data object(s) obtained at step 310. In some embodiments, the risk report can normalize the risk scores for the data objects included in the risk report. For example, the highest risk score included in the risk report can be set to a value of 100, and the other risk scores are normalized to a scale of 1-100 based on a comparison with the highest risk score. In some embodiments, if the data object is a folder, the risk report can include the risk score for the folder without including the risk score for files within the folder. In some embodiments, if the data object is a folder, the risk report can include the risk score for the folder and additional data, such as the number of incidents associated with files in the folder or the DLP policies which have the highest number of incidents or violations in the folder. In some embodiments, the risk report can include the owner of the data object which caused an incident. In some embodiments, the risk report is displayed in a GUI viewable by a user.
FIG. 4 is a flow diagram of one embodiment of a method 400 for adjusting the calculation of a risk score for a data object based on configuration parameters. The method 400 is performed by processing logic that may comprise hardware (circuitry, dedicated logic, etc.), software (such as is run on a general purpose computer system or a dedicated machine), or a combination of both. In one embodiment, the method 400 is performed by risk calculation system 120 of FIG. 1 or risk score calculator 262 of FIG. 2.
Referring to FIG. 4, processing logic begins at step 410 to determine if a permission ACL parameter is on (e.g., value of 1) in configuration parameters for the risk score calculation. If the permission ACL parameter is on, processing logic proceeds to step 420. If the permission ACL parameter is off (e.g., value of 0), processing logic proceeds to step 430.
At step 420, the permission ACL for the data object is included in the risk score calculation because the permission ACL parameter was on. For example, the risk score calculation may be:

risk score=severity level+permission ACL; or risk score=severity level*permission ACL.

At step 430, a determination is made of whether the access parameter is on (e.g., value of 1) in configuration parameters for the risk score calculation. If the access parameter is on, processing logic proceeds to step 440. If the access parameter is off (.e.g., value of 0), processing logic proceeds to step 450.
At step 440, the access for the data object is included in the risk score calculation because the access parameter was on. For example, the risk score calculation may be:

risk score=severity level+number of accesses; or risk score=severity level*number of accesses.

In another example, if the access parameter was determined to be set at step 430, the risk score calculation may be:

risk score=severity level+permission ACL+number of accesses; or

risk score=severity level*permission ACL*number of accesses.

At step 450, a determination is made of whether the configuration parameters include a coefficient parameter for the risk score calculation. If a coefficient parameter is included, processing logic proceeds to step 460. If a coefficient parameter is not included, processing logic proceeds to step 470.
At step 460, one or more coefficients of values used for the data object in calculating the risk score are adjusted. For example, if the risk score calculation includes data object values for severity level, permission ACL, and access information, and the configuration parameters include a coefficient for severity level equal to 1.0 and a coefficient for access equal to 0.5, the risk score may be calculated as:

risk score=(1.0*severity level)+(0.5*number of accesses)+permission ACL.

In some embodiments, if a coefficient parameter is set, but the corresponding value is not set to be used in the calculation (e.g., a coefficient parameter of 1.0 is set for access, but the access value is not set to be included in the risk score), the coefficient parameter may not be used.

At step 470, a determination is made of whether there are any additional configuration parameters set for the risk score calculation. If additional configuration parameters are set for the risk score calculation, the method 400 proceeds to step 480. If there are no additional configuration parameters set for the risk score calculation, the method 400 ends.
At step 480, the risk score calculation is adjusted based on the additional parameter. In one embodiment, the additional parameter may be a type of operation to use in calculating the risk score. In some embodiments, the additional parameter may include more than one type of operation to use in calculating the risk score. In some embodiments, the operation to be used in calculating the risk score may be a sum of data values associated with the data object. In some embodiments, the operation to be used in calculating the risk score may be a product of data values associated with the data object. The risk score calculation can be adjusted to use the type of operation specified by the additional parameter to calculate the risk score. For example, if the type of operation is set to a summation, the risk score calculation may be:

risk score=severity level+permission ACL.

In another example, if a first type of operation is set to a summation and a second type of operation is set to a product, the risk score calculation may be:

risk score=severity level+permission ACL*number of accesses.

FIG. 5 illustrates an exemplary GUI for presenting a risk report, in accordance with one embodiment of the invention. In this example, GUI 500 presents a risk score 510 for a folder 520 selected by a user. In some embodiments, the risk report may also include additional data for a folder 520. One or more DLP policies 530 violated in the folder 520 may be listed. A number of files 540 violating the DLP policies 530 within the folder 520 may also be included in the risk report. A number of incidents 550 associated with a file in folder 520 may be included in the risk report. Owners 560 owning a large number of confidential files may be included in the risk report. An access trend 570 may be included in the risk report showing the number of confidential files 580 across a time period (e.g., every month for 12 months).
FIG. 6 illustrates a diagrammatic representation of a machine in the exemplary form of a computer system 600 within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed. In alternative embodiments, the machine may be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, or the Internet. The machine may operate in the capacity of a server or a client machine in client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
The exemplary computer system 600 includes a processing device (processor) 602, a main memory 604 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM), etc.), a static memory 606 (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage device 618, which communicate with each other via a bus 630.
Processor 602 represents one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. More particularly, the processor 602 may be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets or processors implementing a combination of instruction sets. The processor 602 may also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. The processor 602 is configured to execute the processing logic 626 for performing the operations and steps discussed herein.
The computer system 600 may further include a network interface device 622. The computer system 600 also may include a video display unit 610 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device 612 (e.g., a keyboard), a cursor control device 614 (e.g., a mouse), and a signal generation device 620 (e.g., a speaker).
The data storage device 618 may include a computer-readable medium 624 on which is stored one or more sets of instructions (e.g., software 626) embodying any one or more of the methodologies or functions described herein. The software 626 may also reside, completely or at least partially, within the main memory 604 and/or within the processor 602 during execution thereof by the computer system 600, the main memory 604 and the processor 602 also constituting computer-readable media. The software 626 may further be transmitted or received over a network 616 via the network interface device 622.
While the computer-readable medium 624 is shown in an exemplary embodiment to be a single medium, the term “computer-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “computer-readable medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention. The term “computer-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical media, and magnetic media.
In the above description, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present invention. Some portions of the description are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as “identifying”, “applying”, “refraining”, “scanning”, “updating” or the like, refer to the actions and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
Embodiments of the present invention also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. As discussed above, such a computer program may be stored in a computer readable medium.
The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein.
It is to be understood that the above description is intended to be illustrative, and not restrictive. Many other embodiments will be apparent to those of skill in the art upon reading and understanding the above description. The scope of the invention should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.

## Claims

1. A method comprising:
obtaining, by a computer system, a severity level associated with a data object, wherein the severity level is calculated based on presence of confidential information in the data object, the data object being a file or a folder, the severity level being calculated using a data loss prevention policy in response to a violation of the data loss prevention policy;
obtaining, by the computer system, metadata associated with the data object based on a configuration parameter, the metadata comprising at least one of access permission data for the data object and access usage data for the data object, wherein the configuration parameter defines the metadata to obtain to calculate a risk score; and
calculating, by the computer system, the risk score for the data object based on the severity level and the metadata associated with the data object.

2. The method of claim 1, wherein if the data object is a folder comprising one or more files, the risk score for the folder comprises a risk score for each of the one or more files.

3. The method of claim 1, wherein the access permission data is a permission access control list associated with a number of users permitted to access the data object.

4. The method of claim 1, wherein the access usage data for the data object defines historical data for the data object, the historical data comprising a number of users that have accessed the data object during a predetermined amount of time.

5. The method of claim 1, further comprising:
assigning a weight to the risk score for the data object, wherein the weight is assigned based on a risk score of one or more other data objects to be included in a risk report;
creating the risk report including the weighted risk score for the data object; and
displaying the risk report in a user interface.

6. A non-transitory computer readable storage medium that provides instructions, which when executed on a computer system cause the computer system to perform operations comprising:
obtaining a severity level associated with a data object, wherein the severity level is calculated based on presence of confidential information in the data object, the data object being a file or a folder, the severity level being calculated using a data loss prevention policy in response to a violation of the data loss prevention policy;
obtaining metadata associated with the data object based on a configuration parameter, the metadata comprising at least one of access permission data for the data object and access usage data for the data object, wherein the configuration parameter defines the metadata to obtain to calculate a risk score; and
calculating the risk score for the data object based on the severity level and the metadata associated with the data object.

7. The non-transitory computer readable storage medium of claim 6, wherein if the data object is a folder comprising one or more files the risk score for the folder comprises a risk score for each of the one or more files.

8. The non-transitory computer readable storage medium of claim 6, wherein the access permission data is a permission access control list is associated with a number of users permitted to access the data object.

9. The non-transitory computer readable storage medium of claim 6, wherein the access usage data for the data object defines historical data for the data object, the historical data comprising a number of users that have accessed the data object during a predetermined amount of time.

10. The non-transitory computer readable storage medium of claim 6, the operations further comprising:
assigning a weight to the risk score for the data object, wherein the weight is assigned based on a risk score of one or more other data objects to be included in a risk report;
creating the risk report including the weighted risk score for the data object; and
displaying the risk report in a user interface.

11. A system, comprising:
a memory; and
a processor coupled with the memory to
obtain a severity level associated with a data object, wherein the severity level is calculated based on presence of confidential information in the data object, the data object being a file or a folder, the severity level being calculated using a data loss prevention policy in response to a violation of the data loss prevention policy;
obtain metadata associated with the data object based on a configuration parameter, the metadata comprising at least one of access permission data for the data object and access usage data for the data object, wherein the configuration parameter defines the metadata to obtain to calculate a risk score; and
calculate the risk score for the data object based on the severity level and the metadata associated with the data object.

12. The system of claim 11, wherein the processor is further to:
assign a weight to the risk score for the data object, wherein the weight is assigned based on a risk score of one or more other data objects to be included in a risk report;
create the risk report including the weighted risk score for the data object; and
display the risk report in a user interface.