Patent Document

CROSS-REFERENCE TO RELATED APPLICATIONS  
       [0001]     This application is a continuation-in-part of Application No. 11/258,256, filed 25 Oct. 2005, entitled “Automatic Management of Storage Access Control”, which claims the benefit of Provisional Application No. 60/688,486, filed Jun. 7, 2005, both of which are herein incorporated by reference. 
     
    
     BACKGROUND OF THE INVENTION  
       [0002]     1. Field of the Invention  
         [0003]     This invention relates to computer security. More particularly, this invention relates to the automatic detection of atypical data access behavior in organizations having a diversity of file access control models.  
         [0004]     2. Description of the Related Art  
         [0005]     Data security policies typically determine who has access to an organization&#39;s stored data on various computer systems. These policies cannot be static. Users from within the organization, e.g., employees, partners, contractors, can pose a threat as severe as threats from outside the organization. Thus, as the structure and personnel makeup of the organization change, the security policy should be adjusted from time to time. Yet, information technology (IT) departments lack effective tools to manage user access rights and to ensure that needed information is conveniently available, while still protecting the organization&#39;s sensitive data.  
         [0006]     Current techniques available to IT personnel include review and maintenance of access control lists, in conjunction with administration of user names, passwords, and the extension of such techniques to include biometrics, encryption, and limitation of access to a single sign-on. Such techniques are inefficient, often inaccurate, and become impractical in the context of large, complex organizations whose structure and personnel are constantly changing.  
         [0007]     Aids to security are available for enterprises using particular operating systems or environments. These are often based on role-based access control, a technique that has been the subject of considerable interest for the last several years by governmental organizations, and has more recently been adopted in commercial enterprises. A typical proposal for role-based access controls in a multi-user SQL database is found in the document  Secure Access Control in a Multi - user Geodatabase , Sahadeb De et al., available on the Internet at the URL “http://www10.giscafe.com”.  
         [0008]     Nevertheless, access control technologies have not been optimally implemented in enterprises that utilize diverse access control models. The state of the art today is such that there is no easy way for system administrators to know who is accessing what in such environments. As a result, in many organizations an unacceptably high proportion of users have incorrect access privileges. The related problems of redundant access rights and orphan accounts of personnel who have left the organization have also not been fully solved. Hence, there is a need for an automatic method for controlling user file permissions in order to improve data security, prevent fraud, and improve company productivity. Furthermore, misuse of data access, even by authorized users, is a concern of those charge with maintaining system security.  
       SUMMARY OF THE INVENTION  
       [0009]     According to disclosed embodiments of the invention, methods and systems are provided for evaluating user data access activities within the scope of an automatically developed data security model in networked organizations having diverse access control models and file server protocols. Access to storage elements within the organizational network is continually monitored and analyzed in order to identify deviant access behavior by users who have been pre-classified into groups having defined data access privileges. As the organizational structure changes, these groups are adaptively changed both in composition and in data access rights.  
         [0010]     An embodiment of the invention provides a method for controlling data storage access in an organization has users of a file system, the file system has storage elements, which is carried out by recording accesses of the users to the storage elements and deriving respective access profiles from the recorded accesses, and biclustering the users and the storage elements to define corresponding user clusters and data clusters. The access profiles of the users in the user clusters are mutually similar and define a respective normal access behavior for each of the user clusters. The method is further carried out by detecting a suspicious access to the storage elements of one of the data clusters by one user in one of the user clusters that is inconsistent with the normal access behavior to the one data cluster by other users in the one user cluster. Responsively to detection of the suspicious access, an alert is issued indicating that the one user has exhibited atypical access behavior.  
         [0011]     In an aspect of the method, a suspicious access is detected by determining that the other users of the one user cluster have not accessed any of the storage elements of the one data cluster.  
         [0012]     According to a further aspect of the method, detection of a suspicious access comprises determining from the recorded accesses whether a predetermined number of members of the one of the user clusters performed the suspicious access.  
         [0013]     According to one aspect of the method the step of biclustering is performed iteratively. The access profiles and the respective normal access behavior for each of the user clusters are redetermined at each iteration.  
         [0014]     Other embodiments of the invention provide computer software product and apparatus for carrying out the method. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0015]     For a better understanding of the present invention, reference is made to the detailed description of the invention, by way of example, which is to be read in conjunction with the following drawings, wherein like elements are given like reference numerals, and wherein:  
         [0016]      FIG. 1  is a block diagram of a data processing system, wherein data access control policies are automatically defined and managed in accordance with a disclosed embodiment of the invention;  
         [0017]      FIG. 2  is a block diagram illustrating a probe engine in the system shown in  FIG. 1  in accordance with a disclosed embodiment of the invention;  
         [0018]      FIG. 3  is a block diagram illustrating another version of a probe engine in the system shown in  FIG. 1  in accordance with a disclosed embodiment of the invention;  
         [0019]      FIG. 4  is a flow chart describing a method of user clustering in accordance with a disclosed embodiment of the invention;  
         [0020]      FIG. 5  is a flow chart describing a method for storage element clustering in accordance with a disclosed embodiment of the invention;  
         [0021]      FIG. 6A  and  FIG. 6B , referred to collectively herein as  FIG. 6 , are a flow chart illustrating a method of semi-automatic file access control in accordance with a disclosed embodiment of the invention;  
         [0022]      FIG. 7  is a fragmentary view of a user group data matrix, which is constructed in accordance with a disclosed embodiment of the invention; and  
         [0023]      FIG. 8  is a flow chart of a method for identifying atypical user data access activity in accordance with a disclosed embodiment of the invention. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0024]     In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent to one skilled in the art, however, that the present invention may be practiced without these specific details. In other instances, well-known circuits, control logic, and the details of computer program instructions for conventional algorithms and processes have not been shown in detail in order not to obscure the present invention unnecessarily.  
         [0025]     Software programming code, which embodies aspects of the present invention, is typically maintained in permanent storage, such as a computer readable medium. In a client/server environment, such software programming code may be stored on a client or a server. The software programming code may be embodied on any of a variety of known media for use with a data processing system, such as a diskette, or hard drive, or CD-ROM. The code may be distributed on such media, or may be distributed to users from the memory or storage of one computer system over a network of some type to other computer systems for use by users of such other systems.  
         [0000]     System Overview.  
         [0026]     Turning now to the drawings, reference is initially made to  FIG. 1 , which is a block diagram of a data processing system  10 , wherein data access control policies are managed in accordance with a disclosed embodiment of the invention. The system  10  may be implemented as a general purpose computer or a plurality of computers linked together in a network, for example the Internet. Using the facilities of the system  10 , data access control policies can be automatically established using the methods disclosed in commonly assigned application Ser. No. 11/258,256, entitled “Automatic Management of Storage Access Control”, which is herein incorporated by reference.  
         [0027]     Organization-wide data storage accessible by the system  10  is represented by an organizational file system  12 . The organizational file system  12  may comprise one or more co-located storage units, or may be a geographically distributed data storage system, as is known in the art. There is no requirement that individual storage units of the organizational file system  12  have the same capabilities.  
         [0028]     The organizational file system  12  may be accessed by any number of users  14  using a graphical user interface application  16  (GUI), which relates to other elements of the system  10  via an application programming interface  18  (API). The users  14  are typically members of the organization, but may also include outsiders, such as customers. The graphical user interface application  16  is the interface of the management system, through which the users  14  can receive the results of their actual usage analysis, as determined an analysis engine  20 . In some embodiments sufficiently qualified users, e.g., administrative personnel, can view their current status, and can view changes recommended by the system. Such users may be authorized to accept or reject recommended changes. Prior to selecting any recommended changes, qualified users have the ability to view the effect of recommended changes on the system. System administrators can then select or confirm the permission set that proves most suitable.  
         [0029]     A probe engine  22  is designed to collect access information from the organizational file system  12  in an ongoing manner, filter out duplicate or redundant information units and store the resulting information stream in a database  24 . The probe engine  22  is also utilized to collect the organization&#39;s current file security policy, the current structure of the organizational file system  12 , and information about the users  14 . The probe engine  22  can be implemented in various environments and architectures.  
         [0030]     The analysis engine  20  is a specialized module that is at the heart of the system&#39;s ability to control storage access. For purposes of defining normal activity profiles and detecting atypical or exceptional data access activity by the users  14 , the front end for the analysis engine  20  is a data collector  26 , which efficiently records the storage access activities in the database  24 . The output of the analysis engine  20  can be further manipulated using an interactive administrative interface  28  that enables system administrators to perform queries on the collected data. Using the administrative interface  28 , the administrators may modify and activate a new or revised policy. In some embodiments, the analysis engine  20  may automatically propose and revise the organization&#39;s security policy.  
         [0031]     Related to the analysis engine  20  is a commit module  30 , which verifies a proposed security policy, using data collected prior to its implementation. The commit module  30  references an access control list  32  (ACL). Activities of the commit module  30  are described in further details hereinbelow.  
         [0000]     Probe Engine.  
         [0032]     Probe engines are tailored to particular operating systems and environments. The following are described by way of example and not of limitation.  
         [0000]     Win-Probe Architecture.  
         [0033]     Reference is now made to  FIG. 2 , which is a block diagram illustrating one embodiment of the probe engine  22  ( FIG. 1 ) in accordance with a disclosed embodiment of the invention. This embodiment, termed herein the “Win-Probe module,” acts as a probe for the Microsoft Windows® platform. It is responsible for operating system level monitoring on local file systems, which are components of the organizational file system  12  ( FIG. 1 ). Typically, there is one Win-Probe module that services all Windows computers in the organization. The Win-Probe module operates in parallel with probe engines adapted to other operating systems. Alternatively, a complex organization may require more than one Win-Probe module in order to assure efficient operation. The Win-Probe module has a file system filter  34  (SIDFILE) that employs a kernel-mode filter driver  36  for intercepting activity of a local file system  38  and for logging it alongside security information regarding the activity intercepted. A service  40  (SIDFILE_SERVICE) interacts with the filter driver  36  and polls for new log entries. The log entries are filtered by the service  40 , The service  40  is responsible for compiling statistics from the filtered log entries, and forwarding both the raw log entries and their statistics to the database  24  ( FIG. 1 ) for further processing. The filter  34  is transparent to the operating system, and its overhead is limited to extraction of associated security attributes per input/output (I/O) operation and logging. Communication between the filter driver  36  and the service  40  is accomplished using operating system mechanisms such as device I/O Control, and predefined control codes, e.g., “collect statistics”.  
         [0000]     Network Attached Storage Probe Architecture.  
         [0034]     Reference is now made to  FIG. 3 , which is a block diagram illustrating another embodiment of the probe engine  22  ( FIG. 1 ), which is adapted to networked devices in accordance with a disclosed embodiment of the invention. A network attached storage (NAS) probe  42  is responsible for collecting access data from a NAS storage device  44 . In some embodiments, one NAS probe may serve an entire organization. Alternatively, a plurality of NAS probes may be provided. The probe  42  interacts with the NAS device  44  using a dedicated, typically vendor-specific protocol. The protocol causes the NAS device  44  to send a notification  46  on a requested file access operation originating from a user  48  to the probe  42 . The probe  42  either enables the requests to be satisfied by the NAS device  44 , or denies access to the NAS device  44 , according to a current governing policy. A log entry  50  is made by the probe  42 , documenting an enabled request, and the request is passed to the NAS device  44  for conventional processing, in accordance with its own operating system. Denied requests are logged, in order to assist in tracking abnormal user behavior, as described in further detail below. The user  48  receives a reply  52  to its request, either in the form of a denial of access, or an indication of the result of the requested file operation by the NAS device  44 . In either case, there is minimal performance impact. Since the NAS device  44  has its own proprietary operating system, all driver-related issues, e.g., extraction of system identifiers (SID&#39;s), user identifiers (UID&#39;s), and the type of file access requested, are handled on the NAS device  44  and simply logged by the probe  42 .  
         [0000]     Analysis Engine.  
         [0035]     As noted above, the analysis engine  20  ( FIG. 1 ) is at the heart of the system  10 . The statistics on actual accesses of the users  14 , including every member of an organization to each of the data storage elements in the organizational file system  12 , reported by the probe engine  22 , are used to perform a simultaneous automatic bi-clustering of the users and the data storage elements. The bi-clustering is done in such a manner that users who are members of the same user cluster share a similar data access profile, and data storage elements (files or directories) that are members of the same data cluster are accessed mostly by users having similar access profiles. The clusters provide a global picture of the organizational structure. The analysis engine  20  can also develop from the clustering results a local measure of similarity among users and a local measure of similarity among the data elements that belong to the same cluster. Moreover, the clustering process reliably predicts future data storage access by organization members. It can be assumed, with a high level of confidence, that if one of the users  14  has not accessed a certain file or storage element, and similar users have not accessed similar files, then that one user will not need access rights to the corresponding storage element in the near future. The analysis engine  20  thus provides IT administrators a clear global picture of information usage patterns and can offer detailed recommendations for security policy optimization. At the same time, administrators are alerted to anomalous user behavior. Typically, the alert is generated as part of an exception report by the analysis engine  20  via the administrative interface  28 , either immediately or on a predetermined schedule. In some configurations, the alert could take the form of a system message directed to the terminal of the system administrator or designated security personnel. The analysis engine  20  can also automatically build a complete forensic trail of any suspicious activities. The result is a dramatically greater ability to ensure compliance with access and privacy policies, and to assure appropriate information usage without imposing additional administrative burdens on IT personnel.  
         [0000]     Bi-Clustering Algorithm.  
         [0036]     The following clustering algorithms are used in the current embodiment. However, the invention is not limited to the particular algorithms described hereinbelow. It will be apparent to those skilled in the art that other clustering algorithms can be applied to the data obtained by the probe engine  22  ( FIG. 1 ) in order to obtain comparable results.  
         [0037]     Assume we have a joint distribution of two discrete random variables, X and Y, denoted by p(x,y)=p(X=x,Y=y). In our case, X stands for the set of users in the organization, and Y is the set of file directories accessed by the members of the organization. The value p(x,y) is the normalized number of times that user x approached the data storage element y during an enrollment phase. Based on the collected data, organized in a contiguity table of the p(x,y), we want to discover the essential underlying structure of the two sets and the mutual relations between them. More precisely, we want to cluster the random variables X and Y into disjoint sets of similar elements. A clustering of the random variable X is a partitioning of the elements of X into disjoint clusters denoted by X′ and in a similar manner denoting a partition of Y by Y′.  
         [0038]     Assuming that the number of clusters is predefined (as part of the system configuration parameters), we want to find clusterings X′ and Y′ such that the mutual information I(X′;Y′) between the user clusters and the data clusters is maximized. In other words, the system utilizes the mutual information criterion as a cost function to assess the quality of various clustering structures.  
         [0039]     The mutual information is defined in the following way:  
               I   ⁡     (     X   ;   Y     )       =     -       ∑     x   ,   y       ⁢       p   ⁡     (       X   =   x     ,     Y   =   y       )       ⁢   log   ⁢           ⁢       p   ⁡     (       X   =   x     ,     Y   =   y       )       .                   (   1   )             
 
         [0040]     The mutual information encapsulates the amount of uncertainty in one of the random variables that is revealed when the other random variable is observed. We also define two related concepts that are used below. Let P=(P(1), . . . , P(n)) and Q=(Q(1), . . . , Q(n)) be two discrete probability distributions. The relative entropy (Kullback-Leibler divergence) between the distributions P, Q is:  
               KL   ⁡     (     P   ||   Q     )       =       ∑   i     ⁢       P   ⁡     (   ⅈ   )       ⁢           ⁢       log   ⁡     (       P   ⁡     (   ⅈ   )       /     Q   ⁡     (   ⅈ   )         )       .                 (   2   )             
 
         [0041]     The Jensen-Shannon divergence between the distributions P, Q according to a mixture coefficient c is: 
 
 JS ( P,Q )= cKL ( P∥cP +(1− c ) Q )+(1 −c ) KL ( Q∥cP +(1 −c ) Q )  (3). 
 
         [0042]     The next step is to utilize the mutual information criterion to find the optimal biclustering. Different strategies are used for the user set X and the data set Y. In the case of user set X, there is no current structure that it is necessary to maintain. However, in some embodiments it may be desirable to retain an organizational user structure. In contrast, the data file system is based on a tree structure, which we do want to maintain, as it is likely to reflect an operational similarity between nearby directories in the tree. Therefore, storage element clustering is accomplished by essentially pruning the tree. The process is described in further detail hereinbelow.  
         [0000]     User Clustering.  
         [0043]     Reference is now made to  FIG. 4 , which is a flow chart describing a method of user clustering in accordance with a disclosed embodiment of the invention. The method begins with a random solution and then sequentially improves the result in a monotonic manner.  
         [0044]     At initial step  54  a random partitioning of the user list into a predetermined number of clusters is chosen as a starting point. This partitioning will be used in a current set of cycles as described below. For each user x, the probability distribution p(y|x) stands for the normalized data access activity of the user x, i.e., p(y|x) is the number of times the user x accessed data element y normalized by the entire number of data activities performed by x in the enrollment period. For each randomly constructed cluster C, we define p(y|C) to be the average of the conditional probability distributions p(y|x) related with the users that are members of the cluster C.  
         [0045]     Next, at step  56  one of the clusters established in initial step  54  is selected randomly.  
         [0046]     Next, at step  58  one of the users is selected. Step  58  is performed iteratively, and the users are evaluated cyclically. However, the order of evaluation in a cycle is not critical.  
         [0047]     Next, at step  60  the current user x is tentatively moved from its current cluster to the cluster selected in step  56  to form a tentative new clustering of the users.  
         [0048]     Control now proceeds to decision step  62 , where it is determined whether the global mutual information I(X;Y) of the new clustering is larger than that of the current clustering. We define a distance between a user x and a cluster C that is composed from c users, in the following way:  
                     d   ⁡     (     x   ,   C     )       =       ⁢       (     c   +   1     )     ⁢     JS   ⁡     (       p   ⁡     (     y   |   x     )       ,     p   ⁡     (     y   |   C     )         )                     =       ⁢       KL   ⁡     (       p   ⁡     (     y   |   x     )       ||       (       p   ⁡     (     y   |   x     )       +     c   ⁢           ⁢     p   ⁡     (     y   |   C     )           )     /     (     c   +   1     )         )       +                       ⁢     c   *     KL   ⁡     (       p   ⁡     (     y   |   c     )       ||       (       p   ⁡     (     y   |   x     )       +     c   ⁢           ⁢     p   ⁡     (     y   |   C     )           )     /     (     c   +   1     )         )         )     .                 (   4   )             
 
         [0049]     Each user x is merged into the cluster C, which minimizes the distance d(x,C). The conditional access probability p(y|C) is modified according to the statistics of the new member x. It can be verified that minimizing the distance d(x,C) is equivalent to maximizing the mutual information between the clusters and the data activities.  
         [0050]     If the determination at decision step  62  is affirmative, then control proceeds to step  64 . The current user x remains in the cluster that was selected in step  56 , and the tentative new clustering established in step  60  is confirmed.  
         [0051]     If the determination at decision step  62  is negative, then control proceeds to step  66 . The current user x is returned to the cluster from which it was selected, and the tentative new clustering established in step  60  is rejected.  
         [0052]     In either case, control now proceeds to decision step  68 , where it is determined whether more users remain to be evaluated in the current cycle. If the determination at decision step  68  is affirmative, then control returns to step  58 .  
         [0053]     If the determination at decision step  68  is negative, then control proceeds to decision step  70 , where it is determined whether the last cycle yielded any improvement in mutual information.  
         [0054]     If the determination at decision step  70  is affirmative, then an optimum clustering may not yet have been achieved. At step  72 , the user list is reset to begin another cycle in the current set of cycles. Control returns to step  56 , and the new cycle begins by choosing a new cluster, using the same random partitioning established in initial step  54 .  
         [0055]     If the determination at decision step  70  is negative, then control proceeds to step  74 . The best clustering achieved in the current set of cycles is memorized.  
         [0056]     Control now proceeds to decision step  76 , where it is determined whether a termination criterion has been met. The termination criterion may be completion of a predetermined number of iterations of initial step  54 . Alternatively, a performance indicator can be used as a termination criterion.  
         [0057]     If the determination at decision step  76  is negative, then control returns to initial step  54 , and the method is repeated, choosing a new starting point.  
         [0058]     If the determination at decision step  76  is affirmative, then control proceeds to final step  78 . The best result obtained in the clusterings memorized in iterations of step  74  is reported as a final clustering that maximizes the mutual information between the user clusters and the data clusters.  
         [0000]     Data Element Clustering.  
         [0059]     Reference is now made to  FIG. 5 , which is a flow chart describing a method for storage element clustering in accordance with a disclosed embodiment of the invention. This is an agglomerative method based on merging clusters that are represented by sibling elements in the data file tree. It is assumed that user clustering as described above with reference to  FIG. 4  has been performed. In an initial phase, there is merger between sibling directories or parent-offspring directories that cannot be distinguished in terms of user access events. This stage results in a directory tree that has been pruned into a tractable number of elements. In the next phase, all leaves of the current pruned tree are visited, and there is further merger between two sibling or parents-offspring directories such that a minimal reduction in the mutual information between the user clusters and the data clusters results. The process iterates until a termination criterion is satisfied, e.g., when a predetermined number of clusters is obtained or when the current mutual information is decreased below a predetermined threshold. The method is now presented in greater detail.  
         [0060]     Initial step  80  begins a traversal of the directories of the file tree. In selecting candidates for clustering, parent-offspring directories and sibling directories and clusters thereof are considered, and are referred to collectively as “neighbors”. The traversal order is not critical, so long as all data elements are visited and all mutual neighbors are evaluated. Many known algorithms for tree traversal may be employed. Two neighbors are selected.  
         [0061]     Control now proceeds to decision step  82 , where it is determined whether the current candidates are indistinguishable, or nearly indistinguishable according to predetermined criteria of similarity, in terms of user access events.  
         [0062]     If the determination at decision step  82  is affirmative, then control proceeds to step  84 . The candidates are merged together to form a new data cluster. This data cluster is treated as a single storage element or neighbor in subsequent iterations of initial step  80 .  
         [0063]     After performing step  84 , or if the determination at decision step  82  is negative, control proceeds to decision step  86 , where it is determined whether traversal of the data file tree is complete. If the determination at decision step  86  is affirmative, then control returns to initial step  80  to begin another iteration.  
         [0064]     If the determination at decision step  86  is negative, then one phase of the method is complete, resulting in a pruned directory tree. In general, the directories and clusters of directories in the pruned tree constitute a tractable number of elements.  
         [0065]     Control now proceeds to step  88 , which begins another phase of the method, wherein the pruned tree is traversed again, with additional merging of candidates in a manner that leads to a minimal reduction in the mutual information I(X;Y). The mutual information I(X;Y) between the user clusters resulting from the method described with reference to  FIG. 4  and the data clusters of the current pruned tree is memorized.  
         [0066]     Next, at step  90 , two candidates are selected. As noted above, these candidates can be clusters, directories, or combinations thereof, so long as the candidates have a sibling or parent-child relationship.  
         [0067]     Next, at step  92  the current candidates are tentatively merged to form a new clustering of the users and data elements. The mutual information I′(X;Y) of the tentative arrangement is determined.  
         [0068]     Control now proceeds to decision step  94 , where it is determined if the reduction in mutual information I′(X;Y)−I(X;Y) caused by the tentative clustering is less than the reduction of mutual information caused by the best previous tentative clustering. This determination will always be affirmative on the first iteration of decision step  94 .  
         [0069]     If the determination at decision step  94  is affirmative, then control proceeds to step  96 . The current tentative clustering is memorized, and set as a high water mark. It is the best new clustering thus far available.  
         [0070]     After performing step  96 , or if the determination at decision step  94  is negative, control proceeds to decision step  98 , where it is determined if more candidates remain to be evaluated in the tree. If the determination at decision step  98  is affirmative, then control returns to step  90 .  
         [0071]     If the determination at decision step  98  is negative, then control proceeds to decision step  100 , where it is determined if a termination criterion has been met. This criterion can be the establishment of a predetermined number of new clusters. Alternatively, the method may terminate when the current best reduction in mutual information is less than a predetermined threshold.  
         [0072]     If the determination at decision step  100  is negative, then the method is repeated, using the mutual information of the current best clustering as a starting point. Control returns to step  88 , where a new value of the mutual information I(X;Y) is set.  
         [0073]     If the determination at decision step  100  is affirmative, then control proceeds to final step  102 . The clustering last stored at step  96  is reported as an optimum data element clustering.  
         [0074]     At the end of the clustering algorithm, both the users and the data storage elements are arranged in disjoint clusters. A hierarchical tree structure is maintained among the data storage elements, while the users are distributed among a user space without having a hierarchical arrangement. A robust similarity measure between users in the organization can then be extracted. It is said that users behave similarly if they belong to the same user cluster, which indicates that the two users are accessing similar portions of the data-storage systems. Two directories or other storage elements are considered similar if they belong to the same data cluster.  
         [0000]     Storage Access Control.  
         [0075]     The clustering obtained using the method described above with reference to  FIG. 5  can be used to automatically eliminate unnecessary access permissions, and to identify atypical data access activity by particular users. For example, permission for a user x to access a storage element y is eliminated if the user x has not accessed the element y (nor elements similar to y) during an enrollment period. It is predicted that the user x will not need to access the element y in the near future. The prediction is based on the access profile of similar members of the organization. It can be assumed that if no users with a similar access profile to the element y, who are thus in the same cluster as the user x, have accessed the element y, nor accessed storage elements similar to the element y, then the user x will not access the element y in the near future. Therefore, in order to increase the level of organizational data security, access permission can be canceled for the user x with respect to the element y. Review of the users is conducted iteratively at predetermined time intervals, and the access policy updated accordingly.  
         [0000]     Semi-Automatic Clustering.  
         [0076]     In the previous section a description was provided of how the user-data clustering approach can be utilized to define an access control policy that reflects the actual structure of the organization. Recorded data activities are only one of the sources of information that can be extracted to define the optimal data access control policy. In order to propose a new or updated data access policy, the current user-data group structure and the current data security policy should also be taken into consideration. Another major source of knowledge about the organization is the current (manually set) access control list  32  ( FIG. 1 ). The ACL can be viewed as a set of pairs, where each pair consists of a group of users and a group of data elements that can be accessed by the user group. Even though the current ACL may contain many errors, it is reasonable to assume that it is still highly correlated with the desired control policy. The procedure presented below can use the unsupervised clustering procedure discussed above to modify the current ACL and thereby obtain an improved policy. The organizational structure learned from the recorded user access data is then used to eliminate unnecessary data access permissions. The algorithm is based on the current ACL, and operates separately for each user-data group in the following manner: for each user we check whether access to one of the data elements defined in the pair was recorded. If not, we check whether a similar user accessed the data element during the enrollment period. Here similarity has the same meaning as given above. If no such user was found, it can be concluded that the particular user will not need to access the data element in the near future. If this is also the case for the data elements appearing in the data group, we eliminate the user from the access control pair. A second phase of the process is applied to eliminate data elements from the access control pair, as explained below.  
         [0077]     Reference is now made to  FIG. 6 , which is a flow. chart illustrating a method of partially supervised file access control in accordance with a disclosed embodiment of the invention. The steps of the method are shown in an exemplary sequence in  FIG. 6  for clarity of presentation. However, it will be evident to those skilled in the art that many of them can be performed in parallel, asynchronously, or in different orders.  
         [0078]     The method begins at initial step  104 . The bi-clustering methods described above with reference to  FIG. 4  and  FIG. 5  are performed and applied.  
         [0079]     Next, at step  106  an access control unit is selected from the ACL. This unit is a pair, composed of a group of users and a group of directories.  
         [0080]     Next, at step  108  a user is chosen from the users of the current access control unit.  
         [0081]     Next, at step  110  a data element is chosen from the current access control unit.  
         [0082]     Control now proceeds to decision step  112 , where it is determined if the current user has accessed the current data element.  
         [0083]     If the determination at decision step  112  is affirmative, then no modification of the ACL need be made with respect to the current user. Control proceeds to step  114 , which is described below.  
         [0084]     If the determination at decision step  112  is negative, then users determined (in the clustering procedure performed in initial step  104 ) to be similar to the current user are evaluated. Control proceeds to step  116 . A similar user is selected.  
         [0085]     Control now proceeds to decision step  118 , where it is determined if the current similar user has accessed the current data element.  
         [0086]     If the determination at decision step  118  is affirmative, then, based on similarity of access needs between the current user and the current similar user, no modification of the ACL need be made with respect to the current user. Control proceeds to step  114 .  
         [0087]     If the determination at decision step  118  is negative, then at decision step  120  it is determined if there are more similar users to be considered.  
         [0088]     If the determination at decision step  120  is affirmative, then control returns to step  116 .  
         [0089]     If the determination at decision step  120  is negative, then at step  122  the current user is removed from the current access control unit.  
         [0090]     Next, at decision step  124  it is determined if more users in the current access control unit remain to be evaluated. If the determination at decision step  124  is affirmative, then control returns to step  108   
         [0091]     If the determination at decision step  124  is negative, then, at decision step  126  it is determined if more access control units remain to be evaluated. If the determination at decision step  126  is affirmative, then control returns to step  106  to begin a new iteration.  
         [0092]     If the determination at decision step  126  is negative, then control proceeds to final step  128 . The storage access control can now incorporate the ACL list as modified.  
         [0093]     Step  114 , referenced above, begins a phase of the algorithm, which concerns the status of the current data element in the current access control unit. This phase is performed only if neither the current user nor any similar user has accessed the current data element. The purpose of the following steps is to investigate whether data elements that are considered to be similar to the current data element (according to the clustering procedure performed in initial step  104 ) have been accessed by any of the users in the current access control unit. If not, then the current data element is removed from the current access control unit. Once this action is accomplished, no member of the current user group can thereafter access the current data element. A similar data element is selected from the clustering performed in initial step  104 .  
         [0094]     Next, at step  130  a user is again selected from the current access control unit. It is intended that all users in the current access control unit be subject to evaluation in iterations of step  130 .  
         [0095]     Control now proceeds to decision step  132 , where it is determined if the current user has accessed the current similar data element. If the determination at decision step  132  is affirmative, then there is no need to remove the current data element from its access control unit. Control proceeds to decision step  124 , which has been described above.  
         [0096]     If the determination at decision step  132  is negative, then at decision step  134  it is determined if there are more users in the current access control unit. If the determination at step  134  is affirmative, then control returns to step  130 .  
         [0097]     If the determination at step  134  is negative, then at decision step  136  it is determined if there are more similar data elements to be tested against the users in the current access control unit.  
         [0098]     If the determination at decision step  136  is affirmative, then control returns to step  114 .  
         [0099]     If the determination at decision step  136  is negative, then all users of the current access control unit have been tested for access against all data elements that are similar to the current data element (chosen in the last iteration of step  110 ). No access has been found. At step  137  the current data element is now eliminated from the current access control unit.  
         [0100]     Control now proceeds to decision step  138 , where it is determined if there are more data elements in the current access control unit. If the determination at decision step  138  is affirmative, then control returns to step  110  to begin a new iteration, using a different data element from the current access control unit.  
         [0101]     If the determination at decision step  138  is negative, then control proceeds to decision step  124 , which has been described above.  
         [0000]     Virtual Commit for Verifying a Proposed Policy.  
         [0102]     Referring again to  FIG. 1 , the clustering procedures described above are applied to the storage access activities collected during an enrollment or training period for the system. These procedures may be repeated from time to time, for example, following mergers and acquisitions in the underlying organization. It is desirable to assure that a proposed or tentative new or updated access control policy is valid in terms of user activity occurring following the enrollment period. Data collected after the enrollment period are used to verify the validity of the tentative policy prior to its institution. This function is carried out by the commit module  30 , which records user access activities and detects violations of the tentative policy. If the user activities would not violate the tentative policy, then it is approved as a definitive storage access control policy. Otherwise it is rejected or returned for further evaluation or revision. The commit module  30  thus provides a cross-validation mechanism to check the quality of a proposed storage access control policy before its actual implementation.  
         [0000]     Tracking Abnormal Behavior.  
         [0103]     Another major aspect of the data analysis performed on the recorded data is detection and tracking of atypical behavior. The commit module  30  is adapted to perform this function following the implementation of a storage access control. Abnormal behavior may be identified if a user acts inconsistently with other users belonging to the same user cluster.  
         [0104]     Reference is now made to  FIG. 7 , which is a fragmentary representation of an exemplary user group—data matrix  140 , which is constructed in accordance with a disclosed embodiment of the invention. The matrix is developed by performing the unsupervised biclustering procedure described above. Representative user groups  142 ,  144  are shown. Although in this example, each user group has three users, such groups do not necessarily have the same number of users. Assume that the user groups  142 ,  144  are members of different, but somewhat related research projects related to the organization&#39;s business activities. Three data groups  146 ,  148 ,  150  are shown. The data groups  146 ,  148  contain data primarily relating to the activities of the user groups  144 ,  142 , respectively. The data group  150  contains personnel files. Each matrix cell represents the intersection of a respective user group and data group. In a matrix cell each user is assigned a string of binary digits, whose length corresponds to the number of data elements in the respective data group. For example, the data group  146  has four data elements. In a cell  152 , users U 1 A, U 1 B and U 1 C of user group  142  are associated with respective strings, each string comprising four binary digits, and each binary digit corresponding to one of the four data elements of the data group  146 . In the strings, “1” and “0” indicate that the user did and did not access the corresponding data element, respectively. Many of the cells in the matrix  140  have been left blank for clarity of presentation.  
         [0105]     It is assumed that as a result of the activities during the enrollment phase described above, the user groups  142 ,  144  have each been granted access rights to each of the data groups  146 ,  148 ,  150 .  
         [0106]     In the cell  152 , all three binary strings are populated exclusively by “0” entries, meaning that no data elements of the data group  146  were accessed by any member of the user group  142  during a current monitoring interval. Based on the foregoing discussion, this would generally result in consideration of withdrawal of privileges of the user group  142  to access the data group  146 .  
         [0107]     A cell  154  displays accesses of the user group  142  to the data group  148 , which has four data elements. As the data group  148  corresponds to the operational activities of the user group  142 , as would be expected, there is a preponderance of “1” entries in its three strings.  
         [0108]     The data group  150 , containing personnel files, has five data elements. Thus each of the strings in the right column of the matrix (headed by “D 3 ”) has five binary digits, although only entries for a cell  156  are shown.  
         [0109]     The cell  156  corresponds to activities of the user group  144  with respect to the personnel information in the data group  150 . A string  158  and a string  160  correspond respectively to the activities of users U 2 A and U 2 C. Both are populated with “0” entries, indicating that neither user has accessed file elements in data group  150 . A string  162  represents the activities of user U 2 B, who has accessed  3  of the 5 data elements in data group  150 . As explained in the discussion below, this is considered as atypical data access behavior. It should be noted, that were it not for the accesses of the user U 2 B illustrated by the string  162 , it would have been proposed to withdraw the privileges of the user group  144  to the data group  150 , in accordance with the foregoing discussion.  
         [0110]     Reference is now made to  FIG. 8 , which is a flow chart illustrating a method for identifying atypical user data access activity in accordance with a disclosed embodiment of the invention. At initial step  164  the unsupervised bi-clustering procedure described above is performed. Then, in a current monitoring interval, which need not be the same as the interval in the enrollment phase, data accesses are arranged in a matrix of user groups and data elements, e.g., the matrix  140  ( FIG. 7 ). While the arrangement of the matrix  140  is convenient for conceptual clarity of presentation, it is only necessary to record data accesses and link them to particular users and user groups. Many other data structures known in the art can be used to this end. The steps disclosed below can also be optimized or changed in their order to best suit a particular implementation. Indeed, many of them can be performed concurrently.  
         [0111]     On completion of initial step  164 , at step  166  a user group is selected.  
         [0112]     Next, at step  168  a data group is selected.  
         [0113]     Control now proceeds to decision step  170 , where it is determined if any element of the current data group has been accessed by any member of the current user group. As noted above in the discussion of  FIG. 7 , this step can be performed by evaluation of a binary sequence stored in a matrix.  
         [0114]     If the determination at decision step  170  is negative, then control proceeds to step  172 . As explained above, access privileges may be withdrawn from user groups who no longer require them. The current data group is now marked for consideration of removal of access privileges by the current user group. Control then proceeds to decision step  174 , which is described below.  
         [0115]     If the determination at decision step  170  is affirmative, then control proceeds to decision step  176 , where it is determined if more than a predetermined number N of members of the current user group accessed the current data element. If the current data element were frequently accessed by more than N members of the current user group, then it would not be inferred that access by any particular user is atypical behavior. Normally the predetermined number N is set at one. However, if collaborative malicious behavior is suspected, the predetermined number could be set at two, three, or even higher, recognizing that as the number N increases, more false positive reports of suspicious behavior are likely to be generated.  
         [0116]     If the determination at decision step  176  is negative, then control proceeds to step  177 . It is concluded that the access to the current data element is atypical.  
         [0117]     After performing step  177 , or if the determination at decision step  176  is affirmative, then control proceeds to decision step  174 , where it is determined if more data groups need to be evaluated for the current user group.  
         [0118]     If the determination at decision step  174  is affirmative, then control returns to step  168  to begin another iteration using a new data group.  
         [0119]     If the determination at decision step  174  is negative, then control proceeds to decision step  178 , where it is determined if there are more user groups to evaluate.  
         [0120]     If the determination at decision step  178  is affirmative, then control returns to step  166  to begin another iteration with a new user group.  
         [0121]     If the determination at decision step  178  is affirmative, then control proceeds to final step  180 . The matrix has been fully evaluated and the procedure ends.  
         [0122]     The method may be repeated by continually monitoring data access by users, and performing the steps beginning at step  166  either at preset intervals, or following a predetermined numbers of data accesses, using the results of the last automatic biclustering procedure. Alternatively, the procedure can be repeated beginning at initial step  164 . As explained above, it is desirable to repeat the automatic biclustering in order to adapt user privilege control to the changing needs and structure of the organization.  
         [0123]     It will be appreciated by persons skilled in the art that the present invention is not limited to what has been particularly shown and described hereinabove. Rather, the scope of the present invention includes both combinations and sub-combinations of the various features described hereinabove, as well as variations and modifications thereof that are not in the prior art, which would occur to persons skilled in the art upon reading the foregoing description.

Technology Category: 4