ABSTRACT: Security for object-oriented databases follows the traditional lines of discretionary access control, mandatory access control, and multilevel secure database systems. Security and integrity can be implemented in the object-oriented database model. We propose extensions to the basic data model to incorporate security and integrity. Our secrecy/integrity mechanism is based on the idea access control in function granularity is one of the features of many object-oriented databases. In those systems, the users are granted rights to invoke composed functions instead of rights to invoke primitive operations. Although primitive operations are invoked inside composed functions, the users can invoke them only through the granted functions. This achieves access control in abstract operation level. Access control utilizing encapsulated functions, however, easily causes many "security flaws" through which malicious users can bypass the encapsulation and can abuse the primitive operations inside the functions. In this paper, we develop a technique to statically detect such security flaws. First, we design a framework to describe security requirements that should be satisfied. Then, we develop an algorithm that syntactically analyzes program code of the functions and determines whether given security requirements are satisfied or not. This algorithm is sound, that is, whenever there is a security flaw, it detects it.
Keywords: Access Control, Security Models, Secure Database, Database Security, Integrity, Data Model.
Access control mechanisms of current relational database management systems are based on discretionary policies governing the accesses of a subject to data based on the subject's identity and authorization rules. Common administration policies include centralized administration, by which only some privileged subjects may grant and revoke authorizations, and ownership administration. Ownership-based administration is often provided with features for administration delegation, allowing the owner of a data object to assign other subjects the right to grant and revoke authorizations. More sophisticated administration mechanisms can be devised such as joint administration, by which several subjects are jointly responsible for authorization administration. A number of extensions have been proposed with the goal of enriching the expressive power of the authorization these database models are more complex than the relational models.
User access to a database is either an action to get some information from the database, or an action to give some information to the database in order to make it reflected by the database state. Access control is to impose restrictions on those actions in order to meet the requirements concerned with security. In many theoretical researches on security analysis, those two types of access are represented by read and write operations for simplicity. The basis of this simplification is the fact that any information flow between the users and the database originates in those operations. In practice, however, it is often the case that security requirements cannot be expressed in terms of such simple operations. We can impose these kinds of restrictions by defining appropriate functions and by authorizing users to invoke those functions instead of authorizing them to directly execute read or write operations. Those functions read the data but return a processed data through some computation, or they write the data following the required procedure. Although primitive read or write operations are invoked inside those functions, the users can invoke them only indirectly. In other words, the functions encapsulate those primitives into some procedures. The access control in the abstract operation level by using encapsulated functions (or "methods" in the object-oriented terminology) is one of important features of many object-oriented database systems. For example, suppose a stock company has a database about all stockbrokers of the company. …