This document discusses database security and outlines several recommendations. It recommends that each database user be assigned a unique account and role with least privileges to perform their job functions. Passwords must be protected and changed from defaults. Administrative accounts should only be used for database administration and not shared between multiple administrators. Access to sensitive database information should be restricted and network connections encrypted.
This document discusses database security and outlines several recommendations. It recommends that each database user be assigned a unique account and role with least privileges to perform their job functions. Passwords must be protected and changed from defaults. Administrative accounts should only be used for database administration and not shared between multiple administrators. Access to sensitive database information should be restricted and network connections encrypted.
This document discusses database security and outlines several recommendations. It recommends that each database user be assigned a unique account and role with least privileges to perform their job functions. Passwords must be protected and changed from defaults. Administrative accounts should only be used for database administration and not shared between multiple administrators. Access to sensitive database information should be restricted and network connections encrypted.
This document discusses database security and outlines several recommendations. It recommends that each database user be assigned a unique account and role with least privileges to perform their job functions. Passwords must be protected and changed from defaults. Administrative accounts should only be used for database administration and not shared between multiple administrators. Access to sensitive database information should be restricted and network connections encrypted.
Database security Gagiu Andrei Std. at Faculty of Mathematics and Computer Science University of Craiova, ROMANIA Email: gm_ady@yahoo.com Abstract In this article we will talk about database security, authenti- cation, account controls, ways to strengthen the passwords and manage them. An important aspect of database security is the administrative management, more exactly, administrative accounts which we will cover in this article. Remote administration, a very powerful method for se- curing a database from dierent locations, it is also described. Keywords database security, remote administration, open database connectivity, java database connectivity 1 Introduction DOD directives require unique identication for each system user. A user is either an individual or an executing process/service that accesses a computer resource. Actions performed by a user within the database will be traceable to an individual database account. DOD policy requires that permissions and priv- ileges granted to individuals within an automated information system follow the concept of least privilege. Authorized database accounts will be granted access only to the resources needed to accomplish the mission. Authorized database accounts will have roles assigned that contain the minimum privileges necessary to perform each of their job functions. All database accounts will be protected by a certicate, password, or other approved authentication method. The use of shared database accounts (accounts where multiple users are allowed to log on directly to the same account) denies individual accountability. If there is an absolute requirement for logging directly into a shared account, such as Oracles SYS account, the IAO will obtain justication and documentation from the ven- dor that states the necessity. Software OS installation and maintenance accounts do not require justication; however, access to and use of these accounts should be protected and logged. 2 Gagiu Andrei 1.1 Authentication Where possible, databases are encouraged to use Public Key Infrastructure (PKI) as the method of authentication in accordance with the DODI 8520.2, Public Key Infrastructure (PKI) and Public Key (PK) Enabling, 1 April 2004. Databases supporting web services must comply with appropriate policies as specied in the DISA Web Server STIG. Otherwise, use of PKI for authen- tication will be considered and a business case analysis will be submitted to the DOD component Chief Information Ocer (CIO) for review and approval. Where justied, use of PKI for authentication is not required. Where use of PKI authentication is not available, the authentication method specied in the database security evaluation under Common Criteria (CC) or the Department of Defenses (DOD) Trusted Computer Security Evaluation Criteria (TCSEC) is preferred. For Oracle on Windows platforms and MS SQL Server, Windows authentication is preferred or required; for Oracle on UNIX platforms, Oracle authentication is preferred. Informix was evaluated using OS authentication and Sybase with database authentication. IBMs DB2 has not been evaluated by either criterion and accepts only OS authentication. 2 Password Guidelines Passwords must be protected from being accessed by unauthorized users. When an account is created for a user, that user will be given a temporary password. The administrator will brief the user on DOD password policy (DODI 8500.2 and Chairman of the Joint Chiefs of Sta (CJCSM) 6510.01C) and implementa- tion of password protection. All passwords will be stored in an encrypted format. The database account name and password will not be visible to the host or client operating system. Where available, database account logons will be limited to three failed logons before they become locked. This requirement reduces the ability for password cracking programs to be used successfully. The DBA will set the duration of the lock time to a specic length as approved by the IAO for the application or site or require a manual reset. The duration should be set appropriately for the environment, keeping in mind that the longer the duration, the more protected the accounts will be from password cracking programs. De- fault passwords for the database accounts created during installation of DBMS software, DBMS optional software, or other Commercial-O-The-Shelf (COTS) database software will be changed immediately after installation. 3 Certicate Guidelines Certicates used for authentication must be used in accordance with DODI 8520.2, Public Key Infrastructure (PKI) and Public Key (PK) Enabling, 1 April 2004. Database security 3 4 Administrative Database Accounts DBA accounts are accounts designed and intended for use to administer the database storage architecture, grant privileges, and provide oversight manage- ment to all database objects within the database and, in some cases, to start, stop, and congure the database process. These privileged accounts should be used only for administration of the database and should not be used for ap- plication development, application testing, or application use. DBA accounts will only be used when performing administrative tasks. All database admin- istration accounts will be password protected at all times. Default installation passwords will not remain on DBA database accounts. Shared and/or default DBA database accounts will not be used. Each DBA will use an individually as- signed DBA-privileged database account for DBA activities. Operating system accounts granted DBA privileges within the database by means of assignment to an OS-dened group must be individually assigned. DBA database accounts will not be used for non-DBA activities. Instead, less-privileged database accounts will be used for non-DBA activities. 5 Database Object Access Each database application user database account will be granted object access to the appropriate database objects through application specic roles. These roles will be based on the function being performed. Object privileges will not be assigned directly to individual application user database accounts. Object privileges will not be granted to PUBLIC (a DBMS dened mandatory all-user role) except those explicitly required by the DBMS vendor. Access to DBA views and tables, which contain access to all data dictionary object information, will be restricted to DBAs or batch processing accounts that have been documented with the IAO. 6 Database Roles A database role allows database privileges to be dened and assigned by appli- cation function. Individually required privileges and other database roles may be granted to a single database role thus allowing required privileges to be simul- taneously granted to and revoked from database accounts. An example of such roles would be DBA roles, application administrator roles, and specic appli- cation user roles for nancial applications, sales support applications, inventory applications, etc. All application user roles will be granted the most limited set of privileges that allows the user to accomplish the specic job function required of their position. No roles will be granted to PUBLIC. No permissions will be granted directly to application user database accounts with the following excep- tions: accounts created and maintained by default during the installation and main- tenance of the database system; 4 Gagiu Andrei a single application user database account on a database with only one such account. 6.1 DBA Role The DBA role contains all database system privileges. System privileges include privileges to congure the database, enable the creation, modication, and dele- tion of database objects, maintain database accounts, and privileges that provide the ability to grant and revoke permissions to these objects. The DBA role also includes exclusive access to database views and tables that house privileged in- formation about the database and database structure. In other words, the DBA has full access to the databases data dictionary. The DBA role will only be granted to authorized DBAs. DBAs will be authorized by the IAO. In a produc- tion environment, the assignment of the DBA role will be restricted to authorized DBA accounts. In a development environment, the DBA role will be restricted to DBA accounts and authorized application developer accounts. 7 Protection of Database Identication Parameters Database parameters such as instance identiers, network addresses, and database host names may aid unauthorized users in nding and accessing databases. This information should never be published publicly such as via mail- ing lists or newsgroups and should be protected from unauthorized access where possible. Database information for specic databases will be restricted to au- thorized database users of that particular database and not disseminated to all users in the network or environment. 8 Network Connections to the Database When a database connection is requested via the network to a database server, the client will provide an individual account name and authentication credentials to access the database. The database account name and any password transmis- sion from a client to a database server over a network will be encrypted. 9 Remote Administrative Database Access Remote connections to the database by administrative users to perform ad- ministrative functions including database account password resets and account management will be encrypted. Without encryption, such activity performed during these connections could provide information useful to gain unauthorized access to the database. Database security 5 10 Open Database Connectivity (ODBC) ODBC, an application programming interface (API), provides another method besides native database methods to connect to a database and issue stan- dard SQL commands. Many popular COTS applications provide connectivity to databases using ODBC drivers. These applications may be easily congured to access the database by a savvy user who can provide authentication infor- mation directly to the database. These types of connections emphasize the im- portance of dening database object access authorizations within the database itself and not solely within the application. ODBC tracing, a function used for debugging applications and connections, will be disabled or tightly controlled. This will prevent sensitive data from being stored in trace les on disk during debugging activities. Where its use is not justied, the ODBC tracing executable will be deleted from the system to ensure the function is unavailable. The re- moval of the executable may require periodic review as some upgrades or other application installations may re-install it. User account privileges dened at the DBMS level are the only privileges guaranteed in eect via ODBC connections. Database account passwords will not be stored in unencrypted format within ODBC connection denitions or data set names (DSN). 11 Java Database Connectivity (JDBC) JDBC, another application programming interface (API), provides a method for connection to a database from a Java application. JDBC drivers may connect to a database by bridging to ODBC drivers or by using the database native SQL API such as Oracles Net (Net8) or Microsofts DB library. JDBC connec- tion information, specically database account passwords, will not be stored in unencrypted format. 12 Web Server or Middle-Tier Connections to Databases The availability requirements for the application served by the database and the sensitivity of the data being served determine the appropriate network architec- ture for web or middle-tier connections to DBMSs. Systems requiring greater assurance for availability (MAC I and MAC II) should have the DBMS located on a host server separate from the serving web or middle-tier server. This helps limit any security events to the compromised system. Encryption requirements for data transmitted between these systems is dependent on the sensitivity of the data being transmitted, the sensitivity level assigned to the network being traversed, and any dierences in need-to-know between the data and the users on the network. Login credentials to the DBMS and web/middle-tier servers will always be encrypted. Sensitive data traversing a public network will always be encrypted. All encryption will use FIPS 140-2 validated cryptography. A simple conguration to provide the required level of protection is shown in the gure be- low. This conguration shows the DBMS servers located on a dedicated screened 6 Gagiu Andrei subnet separate from the web/middle-tier server screened subnet. Connections by external users are restricted to web/middle-tier servers, but internal users on the private network may access the DBMS directly or via the web/middle-tier server. Access to DBMSs on the screened subnet is restricted to specic web/middle-tier servers and the users or servers on the private network. Other architectures or methods of separation may be used. This diagram depicts only one method to accomplish recommended security. Please consult the DISA Enclave STIG and DISA Network Infrastructure STIG for detailed networking requirements. Con- nection pooling between web or middle-tier servers and databases that support individual identication and authentication of database users should be used if available. Currently, Oracle databases support this by means of the Oracle Call Interface (OCI). Figure 1. Network Architecture to Support External Users 13 Database Session Inactivity Time Out Inactive database sessions are typically construed as an indication of unattended interactive account connections. While workstation and OS policy already re- quire terminal lock requirements to protect unattended workstations from unau- thorized access, an idle database session still uses database and host system re- sources and may lead to denial of service or session hijacking. Where available, database session inactivity time outs will be set to a system-wide (in this case, a database-wide) inactivity time out of 15 minutes with allowances for specic, authorized accounts being allowed a maximum inactivity of 60 minutes. Specic accounts requiring inactivity timeouts greater than 60 minutes will be justied and documented with the IAO. 14 Database Replication A distinct database account and password for the replication administrator and replication system database accounts will be used to secure replication proce- Database security 7 dures and facilities. The database account password will be encrypted when transmitted over a network. Access to replication procedures and facilities will be restricted to authorized DBAs and designated replication accounts. Repli- cation data may be stored temporarily in specic OS locations for retrieval by database replication partners. This data must be securely stored and access to it restricted to authorized replication components. This protection is controlled by OS le and directory permissions as well as database security controls. The struc- ture and conguration of the replication architecture for the database should be clearly documented and include approval for dissemination of data as required. 15 Database Links Databases may be congured to share data across remote database systems. Such linked databases may be part of federated or distributed database architec- tures. Authentication between linked databases may rely upon the credentials of the requesting database session or upon a statically dened username and password. Generally, it is best to use a current users network based security credentials provided by means of a directory service to authenticate to the re- mote system, as this is the only way to maintain a clear auditable identity across all systems. When distributed databases are required to share or transmit data through database links via network connections, the database initiating the link will use the credentials of the current database session to connect to the remote database. Database link access will be restricted to authorized users when pos- sible. Applications will not create or use public database links unless justied and documented with the IAO with the exception of replication database links as required. It is possible to create a private database link and establish a public synonym to the database link. This protects the details about the database link, while providing the same capabilities as a public link. To protect sensitive pro- duction database data, database links will not be dened between production and development databases. This restriction helps to prevent sensitive data from being access or downloaded for review by developers on a remote database. 16 Conclusion Security in general is a very important aspect in the IT world, from that idea we what that ensure and consolidate the security of every kind of data. Databases represent a priority when we come to that. Huge amount of data is stored in a database making it susceptible to a large amount of attacks, from this comes the need to ensure and maintain the security of a database. References 1. D. Knox, "Eective Oracle Database 10g Security by Design", Oracle Press, U.S.A, 2004 8 Gagiu Andrei 2. M. Gertz, S. Jajodia, "Handbook of database security: applications and trends", Springer, 2008 3. R. B. Natan, "Implementing database security and auditing", Elsevier Digital Press, Oxford, 2005 4. S. Castano, "Database security", ACM Press, 1995