Directed Project - Purdue University Calumet

advertisement
Purdue University Calumet
School o f
T e c h n o l o g y
Database Security Policies and Procedures
and Implementation for the Disaster
Management Communication System
In partial fulfillment of the requirements for the
Degree of Master of Science in Technology
A Directed Project
By
Radostina Georgieva
Committee Member
Approval Signature
Date
Professor Barbara Nicolai, Chair
_______________________________________
____________
Professor Charles Winer
_______________________________________
____________
Dr. Keyuan Jiang
_______________________________________
____________
Database Security Policies and Procedures for DMCS 2
Table of Contents
Abstract/Executive Summary ........................................................................................................ 3
Introduction .................................................................................................................................... 3
Statement of Problem .................................................................................................................... 5
Significance of Problem.................................................................................................................. 5
Statement of Purpose .................................................................................................................... 6
Definitions ...................................................................................................................................... 6
Limitations ...................................................................................................................................... 7
Delimitations .................................................................................................................................. 8
Literature Review ........................................................................................................................... 8
Introduction ................................................................................................................................ 8
Database security challenges and requirements ....................................................................... 9
Conclusion ................................................................................................................................. 24
Procedures .................................................................................................................................... 25
Time Action Plan .......................................................................................................................... 27
Conclusion .................................................................................................................................... 27
References .................................................................................................................................... 29
Appendix A ................................................................................................................................... 36
Introduction .............................................................................................................................. 36
Part I Security Architecture .................................................................................................... 39
Part II Operating System Security Fundamentals ................................................................. 51
Part III Administration of Users ............................................................................................. 63
Part IV Profiles, Passwords, Privileges, and Roles ................................................................ 71
Part V Database Application Security Models ...................................................................... 84
Part VI Virtual Private Database ............................................................................................ 91
Part VII Database Auditing Models ..................................................................................... 103
Part VIII Application and Database Activities Auditing ...................................................... 113
Appendix B.................................................................................................................................. 124
Database Security Policies and Procedures for DMCS 3
Abstract/Executive Summary
Databases have become a major component of many modern organizations. They store
sensitive information, which often is the target of malicious attacks. Attacks have become
more targeted toward certain information or organizations, which has made information
security a problem that needs to be addressed by every organization.
The securing of
information needs to be done in accordance with government regulations. With laws that need
to be obeyed and new security threats being introduced along with technology advancement,
information security becomes a challenge. The Disaster Management Communication System
handles confidential and personal information and therefore becomes a target to information
security attacks. If not secured, the database is vulnerable and accessible to virtually anybody,
which means that clients’ personal information is exposed. This could make the DMCS subject
to penalties and fines.
Data encryption combined with proper user administration (assigning roles and
passwords) and auditing is a good way of protecting information. The advantage of data
encryption is that it protects data while meeting numerous regulations, such as Health
Insurance Portability and Accountability Act, Sarbanes-Oxley Act, and Privacy Act of 1974. SQL
Server 2008 provides built-in data encryption and key management features, which are utilized
for the database security for the Disaster Management Communication System.
Introduction
“Security violations and attacks are increasing globally at an annual average rate of
20%.” (Afyouni, 2005). Today, organizations have more operational functions as well as
Database Security Policies and Procedures for DMCS 4
support functions depending on databases. As databases become the foundation of many
companies functionality and as it becomes more vulnerable to various attacks, database
security becomes an important matter. Databases often contain confidential information such
as customers and employees personal information, which makes securing the database a
crucial part of building a reliable system. It is important that databases be properly secured
while the right information is still available to the right customer or employee.
There are different types and levels of severity for database attacks. The attacks could
be internal, caused by excessive privileges given to customers and employees, or external such
as SQL injection by an attacker. Severity of database attacks depends on how much and what
part of the system has been violated.
The U.S. government has issued regulations regarding database security, which
companies are to follow. There are standard policies and procedures for securing databases.
“All organizations in the public, private, or government sector are therefore required to
establish effective computer security policies and procedures either by law, contract, or just
plain good business practice” (Peltier, 1991). Utilizing the procedures in accordance with the
government regulations is the first step of securing a database. Each database needs to be
periodically audited and the security needs to be updated.
For the Disaster Management Communication System, database security is crucial. The
database contains confidential and personal information. In order for the system to operate
effectively, its database needs to be secured so that data loss and attacks do not occur.
Database Security Policies and Procedures for DMCS 5
Statement of Problem
The Disaster Management Communication System’s database is designed to be
remotely accessed by numerous users, and needs to provide accurate and often confidential
information. The database contains vulnerable information, which if compromised, could
sabotage the system’s operations. The problem is that currently there is no security for the
DMCS and keeping the integrity of the database intact becomes an important task. Internal as
well as external threats need to be taken into consideration when implementing database
security policies and procedures. The Gramm-Leach-Bliley Act (GLBA) requires “all financial
institutions to design, implement, and maintain safeguards to protect customer information,”
(GLB Compliance - Gramm-Leach Bliley Act, 2006).
The Health Insurance Portability and
Accountability Act (HIPAA) requires “safeguards to protect the privacy of personal health
information, and sets limits and conditions on the uses and disclosures that may be made of
such information without patient authorization,” (Health Information Privacy).
These are
compliance requirements that companies need to follow when implementing the security
features.
Significance of Problem
The Disaster Management Communication System is designed to store clients’ personal
information such as social security numbers, and addresses; as well as information about
available resources from the system, such as vouchers, food, and transportation. “With the
constant march toward a paperless business environment, database systems are increasingly
being used to hold more and more sensitive information, so they present an increasingly
Database Security Policies and Procedures for DMCS 6
valuable target” (Litchfield, Anley, Heasman, & Grindlay, 2005). If not secured properly, the
database becomes vulnerable to attacks, which could lead to several implications. The entire
system could become corrupted and/or nonfunctional, data loss can occur, and personal
information could be stolen. Improper database security can be considered violation of laws
and lead to significant financial loss and lawsuit. Building security into the system keeps it
intact and running efficiently, which will benefit the whole community.
Statement of Purpose
This project studies data exploitation, threats, and defense, as well as securing
databases in a SQL Server environment specifically. It discusses SQL Server 2008 best security
practices and how to apply them to the Disaster Management Communication System to
comply with federal regulations. The final product of the project is a Database Security Policy
and Procedure Manual including the installation of the SQL Server 2008 software.
The
Database Security Policy and Procedure Manual provide detailed instructions and
recommendations regarding security features enforced for the server and database of the
Disaster Management Communication System. By installing SQL Server 2008 and enabling
built-in features, many database security issues are addressed and government regulations
met.
Definitions
SQL
Structured Query Language
HIPAA
Health Insurance Portability and Accountability Act
Database Security Policies and Procedures for DMCS 7
SOX
Sarbanes-Oxley Act
ePHI
Electronic Protected Health Information
MSCAPI Microsoft Cryptographic Application Programming Interface
TDE
Transparent Data Encryption
EKM
Extensible Key Management
PKI
Public Key Infrastructure
HSM
Hardware Security Modules
EFT
Electronic Funds Transfer
DDL
Data Definition Language
DML
Data Manipulation Language
OLAP
Online Analytical Processing
WMI
Windows Management Instrumentation
DBMS
Database Management System
Limitations
This study is limited to researching SQL Server, therefore findings and conclusions about
database security risks and threats might be biased towards SQL Server, the environment in
which the Disaster Management Communication System is developed. The results of the
research might not completely represent how frequently these threats occur or what their
consequences are.
Database Security Policies and Procedures for DMCS 8
Delimitations
A delimitation of this study is that it only addresses detailed data security procedures
specific to SQL Server and not any other database platforms. It is focused on the Disaster
Management Communication System project, and implemented according to its specific
requirements, and in compliance with government and HIPAA regulations for web access.
Literature Review
Introduction
Databases are widely used in different types of industries and are responsible for storing
and managing sensitive information. They are what companies rely on for the proper and
effective operation of their business. In order for the databases to be efficient, they need to be
secured. Previously, security management used to rely mostly on intrusion detection, firewall,
and anti-virus software. Today “attacks are more targeted than before” and there is “an
increase in the number of attacks aimed at acquiring specific data or causing damage at specific
organizations” (Louvel, 2004). This is why security management today utilizes risk assessment
tools, which continuously detect security vulnerabilities and allow companies to take
preventive actions. Securing databases is a challenge for companies for several reasons.
Databases need to be secured in a way that sensitive information is only available to authorized
individuals and at the same time information is readily available to users that need it.
Authorization of the personnel to access confidential information could be risky. Internal
threats cannot be predicted or avoided but they need to be taken into consideration when
granting data access permission. Employees should only have access to information needed to
Database Security Policies and Procedures for DMCS 9
complete their job. Exposure of sensitive information should be kept at a minimum. Another
challenge with data security that companies face is the strict government regulations and
standards for protecting data. “Some regulations are focused on protection of specific industry
information, where others are more concerned with proper disclosure of data loss incidents
and general privacy attributes” (Shackleford, 2007).
Database security challenges and requirements
Afyouni (2005) found that the cost of data loss is continuously rising because of various
attacks and improper implementation of database security.
Information integrity,
confidentiality, and availability are the three components of information security.
The
accessibility and integrity of data need to be protected for the proper operability of any
company. Validation and verification controls are used to protect data and to ensure that
information has not been tampered with.
In their book, Fernandez Summers, and Wood (1981) summarized that it is important to
restrict users of database access, providing them with only what is necessary for their job.
Databases have different levels of importance and sensitivity, as well as different ways to be
accessed and used, which need to be controlled and monitored in order to guarantee security.
The following security policies are discussed: security administration policies (centralized or
decentralized control, and ownership versus administration), policies for access-control
specification (maximized sharing, open and closed system, name-dependant access control,
content-dependant access control, context-dependant control, history-dependant control, and
access types), policies for information flow control, and policies for enforcing control.
Database Security Policies and Procedures for DMCS 10
Peltier (1992) found that establishing responsibility levels and control of employees is
the best way to constrain the exposure of data. Security is described as a people problem
rather than a technical problem. One of the major database security problems stems from the
unnecessary access employees have to data. By classifying information in order to limit its
exposure, companies can ensure that controls are enforceable and operational costs are at a
minimum. Employee awareness programs or helping employees understand why data security
and complying with regulations are important is an initial step toward building security. Peltier
(1992) developed security policies and mission statements, created an employee awareness
program, and explained how to monitor employee and company compliance, as well as how to
meet security laws.
Riccardi (2001) discussed reliability and security in database servers. He mentioned that
a secure system is one that generates backups, which along with transaction logs can do a full
recovery of databases even from the most catastrophic failures. Database systems need to be
designed with the possibility of failures in mind and plans for reacting in the case of failure
should be created. Riccardi (2001) listed several kinds of backup strategies: backup and
checkpoints, transaction logs, recovery via reprocessing, recovery via roll forward, recovery via
rollback, recovery from disk corruption, and automatic recovery. In order for a DBMS to be
reliable, it needs to support three types of security: account security for validation of users,
access security for protection of database objects, and operating system security for database
and file protection.
New hardware and applications enter the market daily introducing new threats and
vulnerabilities. Until effective solutions for these new vulnerabilities exist, the vulnerabilities
Database Security Policies and Procedures for DMCS 11
are not published. “This gives users the opportunity to secure and protect their systems”
(netVigilance, 2009). History has shown that an intrusion in a system can go completely
undetected and if it is ever detected, it is often after information has been corrupted.
Cook (Cook, 2009) described how to shorten the backup time in order to provide better
performance of an application. He listed two methods that could be helpful in lessening the
backup period: using backup data compression and backing up database to disk, which is not
used for storing the database itself or transaction log. Storing to the same disk can affect
recoverability in case the disk fails. Cook also explains the three basic backup methods SQL
Server offers: full backup, differential backup, and transaction log backup. When selecting a
backup method, three factors need to be taken into consideration: how large the data is, how
frequently it is changed, and what the nature of the data is. An advantage of SQL Server is that
it allows backups while users are active and while transactions are being processed. Cook
suggests that it is a good practice to perform full backup when the system is lightly loaded
because the backup process requires the use of resources (input/output). SQL Server also
offers the option of backing up individual files or groups of files. The author recommends
frequent testing of the backups using the Restore Verify only command.
Yuhanna (2009) listed guidelines for developing a database security strategy. He found
it was important to understand what the applicable regulatory compliance standards are. The
regulatory requirements are to record all databases and classify them into highly sensitive,
sensitive, and non-sensitive categories; institute common policies for the databases of each
category; incorporate database security within the general security policy of the company; and
practice advanced security measures (encryption, auditing, and monitoring). Yuhanna also
Database Security Policies and Procedures for DMCS 12
provided three pillars he considered important in building a database security strategy: building
a strong foundation with authentication, authorization, and access control (AAA), classification
of databases, and patch management.
Taking preventive measures through encryption,
masking, change management, and establishing intrusion detection with auditing, monitoring,
and vulnerability assessment are key in building a strong database foundation.
Security best practices need to address internal and external threats to database. Risk
could be diminished through the following steps: risk first has to be assessed, identified
vulnerabilities should be addressed as well, and finally real-time monitoring has to be
performed (Sortino, Database Security Standards and Audit Implementation, 2010). According
to IBM’s adaptable security solutions, the steps for achieving a desired state of information
security include definition of controls, discovering and classifying, enforcing controls,
addressing data retention, and lastly monitoring, auditing, and reporting (IBM, 2008).
Natan (2005) listed the basic steps of implementing database security, which include
hardening of the environment, patching the database, audit the database, and defining an
access policy. Hardening of the database environment is also known as locking down, or "hackproofing" the database. By hardening the database environment, vulnerabilities from negligent
configuration options are removed. Natan stated that this process is based on three major
principles: limiting the access to important resources that can be intentionally or
unintentionally misused, disabling functions that are not required for the implementation, and
limiting the privileges of users. Patching is comprised of fixing or updating existing application
or database. Natan revealed that by auditing database access and activity security, issues could
be discovered and therefore quickly resolved. He also found that auditing creates a security
Database Security Policies and Procedures for DMCS 13
layer based on prevention. The author concludes that for an effective implementation of
database security, a security policy should be defined and implemented first.
“Reaching a desired security posture that can meet business and compliance
requirements requires an enterprise-wide approach that directly maps to the business needs of
the organization” (IBM, 2008). For reaching desired information security IBM suggests the
following steps: define controls, discover and classify, enforce controls, address data retention,
and monitor, audit, and report. Defining controls means assessing strength and weaknesses of
the existing security system and comparing it with risk assessment results. Any potential
exposures should be ranked and then security policies created. Discovering and classifying data
involves finding out where data resides and who has access to it, as well as classifying sensitive
data, deciding how it is handled and secured according to compliance requirements. It is
important to enforce access controls to ensure the authenticity of all users accessing data.
Data retention relates to the volume of a company’s data, so that as the volume grows, the
requirements for storage must change to meet specific needs. For stored data to be easily
located inactive and low-value data should be moved to lower-cost storage resources. This will
provide more space for more valuable and used data. The last step of the information security
lifecycle is to monitor, audit, and report on information security activities. Monitoring data
access ensures that controls are in effect.
Kiely (2006) explained that the encryption features SQL Server supports provide multiple
levels of server protection, which is defined as defense in depth. The technical article also
reveals that SQL Server supports a range of encryption algorithms and keys and provides secure
key management options including the option of having the user managing the keys. Kiely
Database Security Policies and Procedures for DMCS 14
affirmed that SQL Server supports a reliable encryption key hierarchy used for securing the keys
that it manages (symmetric keys, asymmetric keys, and certificates).
In his report, Penn (Penn) recommended laptop, desktop, and full disk encryption as an
easy and cost-effective way of security management. However, he mentioned that database
encryption does not defend against SQL injections. The paper explained that in the beginning
of any encryption project, the following questions need to be answered: does data need to be
protected from authorized users, does data need to be protected from external attack, and
does all of the data need to be protected or just a single column? The author declared two
main use cases for data encryption, which determine the architectural options of the
organization. The encryption for media protection is implemented for protection from physical
or virtual theft by encrypting the entire database. Encryption for separation of duties is applied
when a single column needs to be protected. This kind of encryption requires more changes to
the database because it involves protecting data from rightful users. Penn suggested that the
encryption keys should be stored outside the database using third-party key management
products, which means that the keys are managed by a security administrator rather than the
database administrator and promotes the separation of duties. Another recommendation is
that a primary key should never be encrypted.
A study by RSA Security (RSA) conveyed that while firewalls are effective for preventing
attackers from accessing information, they do not eliminate the internal threats, which are the
employees with authorization to access data. For securing data at rest, where firewalls are not
sufficient, data encryption is widely used. It is suggested that when planning a database
encryption strategy, the factors that need to be considered are how encryption works, how
Database Security Policies and Procedures for DMCS 15
data flows in the application, and how database security is a part of the company’s general
security policy. It is also important where the encryption is going to be performed, within or
outside of the database. The security of data depends on several things: what algorithms are
used, how they were implemented, what the key size is, where the keys are stored, and who
has access to them. The study lists the advantages and disadvantages of within database
encryption. Advantages are that applications are not affected by the encryption and data is
encrypted as soon as it is stored in the database. The disadvantages include extra processing
load, encryption keys are often stored within the database, and giving database administrators
access to the encrypted data. The study recommends the use of Hardware Security Module
(HSM), a hardware interoperating with the database, used for storage protection of encryption
keys.
Transparent data encryption (TDE) is used in SQL Server 2008 for encrypting existing SQL
server database without having to change the application tires. TDE is a full database level
encryption that provides protection for the entire database without affecting existing
applications, processes, and database structures. Another built-in encryption feature of SQL
Server 2008 is cell-level encryption, which gives the opportunity for only sensitive database
fields to be secured. SQL Server 2008 provides database administrators with the option of
storing encryption keys and passwords to external hardware devices, or separately from the
data, extensible key management (EKM). “EKM uses the Microsoft Cryptographic API (MSCAPI)
provider for encryption and key generation. Third party vendors also provide enterprise key
management by using Hardware Security Modules or HSM.
These HSM devices store
encryption keys on hardware or software modules that makes a database more secure because
Database Security Policies and Procedures for DMCS 16
the encryption keys do not reside with encryption data” (Pal, 2010).
The EKM can be
implemented after executing the following sp_configure command:
sp_configure ‘show advanced’, 1
GO
RECONFIGURE
GO
sp_configure ‘EKM provider enabled’, 1
GO
RECONFIGURE
GO
Encrypting is considered the most effective technique for securing data, which at the
same time meets many regulations. Even if stolen, encrypted data is useless without the
corresponding decryption key. Protecting and managing keys, which will be discussed later in
the paper, is another challenge companies have to overcome. When encrypting data, there are
four stages of the process: securing data in motion, securing data at rest, providing access
controls, and providing data integrity controls.
Data in motion is most effectively secured by high-speed encryption of network traffic.
“High-speed encryption fully satisfies companies’ security needs for data in motion while
meeting the requirements of multiple security mandates simultaneously” (Madison). Data at
rest resides in laptops and various portable storage devices that could be easily stolen or lost,
therefore full disk encryption is the best method for protecting this kind of data. This method
also meets multiple regulations simultaneously.
Providing access controls, or the
Database Security Policies and Procedures for DMCS 17
authentication of people to access information is based on digital identity.
Credentials
(passwords, biometrics) are attributes of the authenticated individuals, which give them access
to sensitive information. A good practice is the use of multifactor authentication, which
requires more than one credential.
Providing data integrity controls is protecting the
encryption keys, which can also be a challenge. “According to best practices, every time an
organization stores or backs up data it should encrypt the data with a different key. Very
quickly, enterprises have many keys to manage and protect.
The challenge then is not
encrypting the data, but managing and safeguarding what quickly becomes large volumes of
keys, which are subject to theft, loss, or destruction” (Asia S. , 2008).
When securing data, for compliance reasons, the type of data that has to be secured is
important. The main categories of data are private individual data, personal health data,
financial data, military and government data, and sensitive/confidential data. For protecting
sensitive data, companies follow similar steps. First, the organization needs to be assessed and
the rules and requirements applying to it recognized. Data to be encrypted across the company
and going outside the company should be acknowledged as well as the data format. After
locating the data, there are three available options for protecting it. Eradication, or complete
removal of data, is not a viable option because of requirements for storing sensitive data.
Obfuscation requires modification of the format of the stored data, which makes it not easily
readable or accessible. Encryption is the most preferred and best option for data protection.
Finally, a reliable encryption policy that meets organizational requirements should be created.
SQL Server 2008 supports a cryptography hierarchy using symmetric and asymmetric
keys, and digital certificates. “On the server level, there is a service master key and within the
Database Security Policies and Procedures for DMCS 18
scope of a database, there is database master key. The scope of the database master key is on
the entire database objects, certificates, and data in the database. Each database can have a
single master key” (Pal, 2010). A database master key can be created with the following
statement:
USE master;
GO
CREATE MASTER KEY
ENCRYPTION BY PASSWORD = ‘36254h743p13620N4s’;
GO
Companies can deploy two key management approaches.
Each one can be used
separately or they can be both used simultaneously. In the application-based approach, the
keys are stored and managed by the application itself. The library-based approach uses the
backup server for generating and managing the keys. Hardware Security Modules (HSM) are
tools that generate, store, and protect sensitive encryption keys. The advantage of using these
tools is that they offer audit options, they have a solution that is suitable for various
applications and industries, and they comply with many regulations. Two types of Hardware
Security Modules are available: public key infrastructure (PKI) and electronic funds transfer
(EFT). PKI is used for deployment and management of digital identities. A public key, which is
published, is used to encrypt the information before sending it and a private key, kept secret, is
used to decrypt it.
A white paper issued by Imperva (2009) discusses SQL injection. It was found that in
order for the SQL injection to be exploited, detailed error messages are required. A blindfolded
Database Security Policies and Procedures for DMCS 19
SQL injection refers to the techniques that attackers use when no detailed error messages are
provided.
Laws that companies need to comply with are:

Sarbanes-Oxley Act (SOX) - enacted on July 30, 2002 and requires precise
financial reporting and clear audit trials.

Health Insurance Portability and Accountability Act (HIPAA) - enacted on August
21, 1996, requires data security and patient privacy.

Privacy Act of 1974 establishes guidelines for collection, use, and protection of
personal information stored in organizations’ databases.
Regulations exist that require companies to announce any data loss, which might have
consequences for their customers or employees.
Public disclosure is required anytime
unencrypted private data is potentially exposed. “Companies are being required to publicly
disclose breaches that put individual’s private data at risk, be it a customer, employee,
shareholder, partner, or other stakeholder” (Asia S. , 2008). Securing databases requires
protecting information in a way that satisfies specific regulations. Companies that do not
secure their data are subject to government and agencies penalties. If data loss occurs, they
are liable for customer information leaks and face massive financial loss as well as losing their
reputation.
“Database security is too often neglected or poorly managed, leading to an increased
risk of an accidental or malicious data breach” (Oltsik, 2009). The importance of information
security needs to be recognized to meet specific regulations by taking preventive measures.
”Compliance with regulations is believed to reduce some common threats to data security”
Database Security Policies and Procedures for DMCS 20
(Ponemon, 2009). In order to comply with regulations, organizations should follow certain
rules or best practices for protecting data.
Imperva (2008) has published a paper explaining the lifecycle of data security and
compliance.
The first step listed assesses the environment by considering the following
variables: where does sensitive data reside; are the systems configured correctly; are there any
inherent security risks; and ensuring that the activities of internal and external users are
monitored. The second step, according to the article, is setting an automated mechanism for
creating and updating controls and policies. The third step of the data security, compliance
lifecycle is the enforcement of policies, auditing includes separation of duties, ensuring end
user accountability, and providing security at all levels. An auditing system should be able to
implement controls by notifying administrators about any suspicious activities in real time. The
last step is measuring the overall progress through built-it reports, security event analysis.
”SQL Server 2008 provides a strong integrated set of features to effectively manage user
and entity access to ePHI. These features include integration with Microsoft Windows Active
Directory domain authentication and authorization services, expanded Kerberos protocol
support, pre-defined database roles, encryption of authentication credentials over the network,
enforcement of domain password policy (on Windows 2003 servers and later), and more
granular access rules governing security principals, actions and objects…Securing and limiting
access to ePHI is a key objective of the HIPAA Security Rule” (Elliott, Zodrow, & Rozek,
Supporting HIPAA Compliance with Microsoft SQL Server 2008, 2010).
SQL Server 2008 offers features that were not available in previous versions. It uses
policy-based management configuration for more effective management of the database. This
Database Security Policies and Procedures for DMCS 21
allows database administrators to “define standard rules or policies and enforce these rules for
configuring and managing SQL Server databases throughout the enterprise” (Pal, 2010). This
practice helps reduce the exposure of a database to security threats. SQL Server 2008 supports
channel encryption by default using SQL-generated certificates. The database engine uses
Windows group policy for password complexity, password expiration, and account lockout.
These features make the authentication more reliable. In SQL Server 2008 simple or short
passwords cannot be created, it is recommended that passwords are complex. An existing
password policy can be changed after the authentication mode is changed to mixed mode and
the following command is executed:
ALTER LOGIN oldpassword WITH PASSWORD = ‘oldpassword’ UNLOCK, CHECK_POLICY =
OFF, CHECK_EXPIRATION = OFF
SQL Server 2008 changes the way metadata is protected. In previous versions, anyone
with access to the database was able to view metadata information. In the 2008 version, only
the owner of the metadata objects has access to it. By default, users do not have access to
metadata; however, it is possible that users are granted permissions for accessing metadata.
Another improvement in the 2008 version of SQL Server is that it offers new auditing features.
An audit object can be created with the CREATE SERVER AUDIT statement. Audit information
can be logged in a file, Windows application log, and Windows security log. An example of
creating an audit object that logs activity to a file would be:
CREATE SERVER AUDIT TEST_File_Audit1
TO FILE ( FILEPATH=’\SQLSERVPROD_1Audit_LogTest’ );
Database Security Policies and Procedures for DMCS 22
For updating patches to avoid security threats, SQL Server 2008 uses “Windows update
to automatically download SQL Server 2008 patches and install throughout the enterprise to
reduce threats caused by known software vulnerabilities” (Pal, 2010).
According to Analysis Services Overview (Microsoft, Analysis Services Overview, 2007),
Analysis Services is designed to provide outstanding performance and is scalable enough to
support applications with millions of records and thousands of users depending on the version
of SQL Server installed. New, combined tools help improve developer’s productivity which
results in better design and faster implementation. In SQL Server 2008, Analysis Services
provides best practice design alerts, which creates automatic notification of possible design
problems during the development process, which in turn makes the development process
faster. Aside from the real time alerts in the development process, the entire solution design
can be inspected for alerts. Information security is based on the C.I.A. triangle (confidentiality,
integrity, availability). When databases become larger, the information needed by a user can
become hard to find as well. Database size and availability to users is managed by “eliminating
redundant storage, reducing processing costs, eliminating the synchronization requirement
between data marts and removing data consistency and integrity issues caused by storing
multiple copies of the same data” (Microsoft, Analysis Services Overview, 2007). Analysis
Services stores data in a compressed format known as Multidimensional OLAP (MOLAP); in a
relational database, Relational OLAP (ROLAP); or in a mixed form, known as Hybrid OLAP
(HOLAP). Multidimensional OLAP offers a higher-level performance compared to the other two
formats, providing users with fast access to high volume of pre-aggregate data.
Database Security Policies and Procedures for DMCS 23
SQL Server 2008 has its own specific security best practices.
Rules for creating
passwords state that they should be complex and have expiration policies.
Therefore,
passwords should be changed after the first log in. The number of administrators should be
kept minimal and administrator privileges should only be used when needed. A company
should always keep track of who has access to corporate data. Owners of databases need to be
as few as possible, and they need to be distinct. A good practice is to have the Cross-Database
Ownership Chaining option turned off unless multiple databases are being used as a single unit.
Best practices for using schemas require the grouping of similar objects, granting ownership
and permissions for database object protection. The number of owners of schemas should be
minimal and each owner should be distinct. Granting permissions to database object should be
done by implementing the least privilege principle, keeping guest access disabled, managing
permissions through database roles, and keeping access within modules. Information about
databases is stored in catalogs. It is imperative that these catalogs are protected, which
according to SQL Server 2008 security best practices must be secured by default. In order for a
database to be kept secure when practicing remote data execution, remote servers should be
replaced with linked servers and constrained delegation should be used when pass-through
authentication to a linked server is necessary. Execution context best practices suggest the
execution context on modules should be set unambiguously instead of leaving it at default
(EXECUTE AS should be used instead of SETUSER). EXECUTE AS options are caller, owner,
creator, and any user with a valid username. Data encryption in SQL Server 2008 should be
done according to following rules: sensitive and high-value data should be encrypted using
symmetric keys, symmetric keys should be protected using asymmetric keys or certificates, keys
Database Security Policies and Procedures for DMCS 24
should be protected with passwords, and master keys should be removed from the system.
Service master keys, database master keys, and certificates need to be backed up through keyspecific Data Definition Language (DDL) statements. Symmetric and asymmetric keys should be
backed up by taking a backup of the database.
The SQL Server 2008 best practices
requirements for auditing recommend auditing of unsuccessful as well as successful logins
when storing highly sensitive data, using Windows Management Instrumentation (WMI) for
receiving emergency events alert, and using trace events for auditing Data Manipulation
Language (DML). Rules for patching SQL Server suggest enabling automatic updates.
Conclusion
“Security is a crucial part of any mission-critical application” (Beauchemin, SQL Server
2005 Security Best Practicies - Operational and Administrative Tasks, 2007). Implementing
security features for the Disaster Management Communication System based on the SQL Server
2008 policies makes it efficient and reliable. The DMCS is designed to provide communication
means and preparedness plans in case of natural disasters. It should provide access to data
that is often sensitive or personal. In order for the system to work effectively and to be in
compliance with government regulations, information security should is implemented through
“enforcing information integrity and shielding data from being tampered with by unauthorized
persons, being modified accidentally by employees, or losing consistency because of the
incorrect coding of business requirements and rules” (Afyouni, Database Security and Auditing,
2005). Information security should be focused on protecting the confidentiality, integrity, and
availability of data. The database of the Disaster Management Communication System is
secured through encryption according to the SQL Server 2008 guidelines.
Database Security Policies and Procedures for DMCS 25
This research is focused on SQL Server and Windows OS because this is the
environment, in which the system is currently built. The DMCS has been converted from Oracle
to SQL Server, which required a redesign of the system. Testing new platforms such as MySQL
or Access would not be in best interest of the developers.
Procedures
After conducting research about database security, particularly topics related to threats,
best practices, procedures, and agency regulations, the obtained information was used for
preparing the database security manual included in appendix A. The studied procedures were
applied to the Disaster Management Communication System to provide a secure and reliable
environment. After implementing the security features, supported by SQL Server 2008, the
system meets the regulatory requirements of HIPAA, SOX, and the Privacy Act of 1974. By
securing the system and the database, client information is protected from theft and
unintended exposure, especially to unauthorized entities.
The main procedures of implementing security for the Disaster Management
Communication System are as follows:
1.
Researching and producing the Database Security Policies and Procedures
Manual.
2.
Verify the physical security of the server that is going to host the SQL Server
2008.
3.
reasons.
Update Windows operating system for security, performance, and reliability
Database Security Policies and Procedures for DMCS 26
4.
Install SQL Server 2008 remotely through www.logmein.com and implement
security for the system. The installation is documented in detail in appendix B.
5.
Logging in remotely ensures the server is properly running and SQL Server 2008
is working.
Information is classified and divided into levels: confidential, restricted, internal, and
public. Access to these levels of information is granted to users and employees according to
their position and job requirements, applying the least privilege rule.
The operating system was updated with the latest patches. Service packs and system
logging was enabled for process tracking and recovery purposes, also the Activity Monitor in
SQL Server is used for screening processes and actions performed on the server.
Windows Integrated logins are used for providing users with access to the system and
passwords requirements and account lockout policy are established.
Ensuring application security through assigning database roles to users to give them the
right privileges and to limit access. The length of all fields in the .aspx pages were limited to
reduce the possibility of sql injections occurring. Date format is verified using the isdate()
function. Hypertext Transfer Protocol Secure (HTTPS) is used for authorization and secure
transactions.
Automatic audits should be performed to produce reports for the system
integrity evaluation. Audits should track any changes made to the database.
The mentioned security features for the DMCS are adequate and sufficient for the
moment. The security will need to be revised and updated in the future, as new technologies
and respectively new threats become available.
Database Security Policies and Procedures for DMCS 27
Time Action Plan
Task
Research
and manual
production
Verify
physical
security
Duration of Task
Update
Windows OS
Install SQL
Server 2008
Maintenance
Final Review
Week 16
Week 15
Week 14
Week 13
Week 12
Week 11
Week 10
Week 9
Week 8
Week 7
Week 6
Week 5
Week 4
Week 3
Week 2
Week 1
Conclusion
Databases attacks could result in exposure of personal information, significant financial
loss, reputation damage, and legal suits. In order for these consequences to be avoided,
companies should have information security policies and procedures designed in compliance
with government regulations. Database security should meet specific requirements and assure
information protection and availability, which is a challenging task. There are existing manuals
with important steps and guidelines for database security implementation. The SQL Server
2008 software package provides features for generating data encryption and key management.
Encryption of data is recognized to be an effective way of protecting sensitive information while
Database Security Policies and Procedures for DMCS 28
meeting various regulations. The product of this research is the Database Security Policy and
Procedure Manual, which includes a walkthrough of how security should be implemented for
the DMCS.
Database Security Policies and Procedures for DMCS 29
References
Achieving end-to-end information security: five critical steps. (2008, August). Retrieved April 17,
2010, from www.findwhitepapers.com:
http://www.findwhitepapers.com/index.php?option=com_categoryreport&task=thanky
ou&title=6988&pathway=no&rec=1&pei=569860
Afyouni, H. A. (2005). Database Security and Auditing.
Analysis Services Overview. (2007). Retrieved November 15, 2010, from microsoft:
http://www.microsoft.com/sqlserver/2008/en/us/analysis-services.aspx
Asia, S. (2008, October 31). An enterprise strategy for data encryption and key management.
Retrieved September 17, 2010
Banister, D. (n.d.). Regular Expressions Make Pattern Matching And Data Extraction Easier.
Retrieved March 7, 2011, from MSDN Magazine: http://msdn.microsoft.com/enus/magazine/cc163473.aspx#S7
Beauchemin, B. (2007, March). SQL Server 2005 Security Best Practicies - Operational and
Administrative Tasks. Retrieved April 30, 2010, from www.microsoft.com:
http://www.microsoft.com/sqlserver/2005/en/us/white-papers.aspx#sec
Beauchemin, B., Berglund, N., & Sullivan, D. (2005, June 28). SQL Server password policies and
credentials. Retrieved June 06, 2010, from searchsqlserver:
http://searchsqlserver.techtarget.com/news/1102101/SQL-Server-password-policiesand-credentials
Byfield, B. (2005, November 22). Nine principles of security architecture. Retrieved May 20,
2010, from http://www.linux.com/archive/feed/49803
Database Security Policies and Procedures for DMCS 30
Chigrik, A. (2003, August 13). Managing Users Permissions on SQL Server. Retrieved February
17, 2011, from Database Journal:
http://www.databasejournal.com/features/mssql/article.php/2246271/ManagingUsers-Permissions-on-SQL-Server.htm
Cook, R. (2009). SQL Server data backup and recovery best practices. Retrieved May 04, 2010,
from viewer.media.bitpipe.com:
http://viewer.media.bitpipe.com/1184937765_794/1271348110_704/Agilysys_sDataBa
ckup_SO_25137_PocketE-Guide_2_4.13.pdf
Database Security, Virtualization and Cloud Computing. (2010). Retrieved May 04, 2010, from
viewer.bitpipe.com:
http://viewer.bitpipe.com/viewer/viewDocument.do?accessId=12202571
CDW. Disaster Recovery: Plan for the Worst, Expect the Best. Retrieved May 04, 2010, from
media.techtarget.com:
http://media.techtarget.com/Syndication/DATA_CENTER/disasterrecoveryplanforworst.
pdf
Elliott, D., Zodrow, C., & Rozek, P. (2010). Supporting HIPAA Compliance with Microsoft SQL
Server 2008. Retrieved November 13, 2010, from www.jeffersonwells.com:
http://www.jeffersonwells.com/mssql2008hipaa
Elliott, D., Zodrow, C., & Rozek, P. (2010). Supporting HIPAA Compliance with Microsoft SQL
Server 2008. Retrieved November 13, 2010, from www.jeffersonwells.com:
http://www.jeffersonwells.com/mssql2008hipaa
Database Security Policies and Procedures for DMCS 31
Fogie, S. (2004, January 01). Security Reference Guide. Retrieved May 25, 2010, from informIT:
http://www.informit.com/guides/content.aspx?g=security&seqNum=17
GLB Compliance - Gramm-Leach Bliley Act. (2006). Retrieved March 31, 2011, from safetysend:
https://www.safetysend.com/NetMail/vir/GLB-Compliance.htm
Health Information Privacy. Retrieved March 31, 2011, from hhs:
http://www.hhs.gov/ocr/privacy/hipaa/administrative/privacyrule/index.html
Huey, P. (2007, July). 7 Auditing Database Activity. Retrieved July 07, 2010, from
http://www.filibeto.org/sun/lib/nonsun/oracle/11.1.0.6.0/B28359_01/server.111/b283
37/tdpsg_auditing.htm#BCGJJBAA
IBM. (2008, August). Achieving end-to-end information security: five critical steps. Retrieved
April 17, 2010, from www.findwhitepapers.com:
http://www.findwhitepapers.com/index.php?option=com_categoryreport&task=thanky
ou&title=6988&pathway=no&rec=1&pei=569860
Imperva Data Security and Compliance Lifecycle. (2008). Retrieved May 04, 2010, from
www.imperva.com: http://www.imperva.com/docs/WP_Regulatory_Compliance.pdf
Kiely, D. (2006, December). Protect Sensitive Data Using Encryption in SQL Server 2005.
Retrieved May 04, 2010, from download.microsoft.com:
download.microsoft.com/download/4/7/a/47a548b9.../sqlencryption.doc
Litchfield, D., Anley, C., Heasman, J., & Grindlay, B. (2005). The Database Hacker's Handbook:
Defending Database Servers. Wiley.
Louvel, S. (2004, October). Customer Data Security: Bulletproofing the Boundaries. Retrieved
April 27, 2010, from www.financial-insights.com: http://www.financial-insights.com/
Database Security Policies and Procedures for DMCS 32
Madison. 4 Steps to Data Security Compliance. Retrieved April 27, 2010, from
www.findwhitepapers.com:
http://www.findwhitepapers.com/index.php?option=com_categoryreport&task=thanky
ou&title=1865&pathway=no&rec=1&pei=569860
Melomed, E. (2006, February 01). Configuring the Analysis Services Query Log. Retrieved
February 17, 2011, from Microsoft: http://technet.microsoft.com/enus/library/cc917676.aspx
Microsoft. (2007). Analysis Services Overview. Retrieved November 15, 2010, from microsoft:
http://www.microsoft.com/sqlserver/2008/en/us/analysis-services.aspx
Microsoft. (2005, August 22). IIS 6.0 Operations Guide. Retrieved February 16, 2011, from
Microsoft TechNet: http://technet.microsoft.com/en-us/library/cc785089(WS.10).aspx
Microsoft. Integrated Windows Authentication. Retrieved February 17, 2011, from Microsoft :
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/523a
e943-5e6a-4200-9103-9808baa00157.mspx?mfr=true
Natan, R. B. (2005, May 02). Essential Steps to Implementing Database Security and Auditing.
Retrieved May 04, 2010, from viewer.bitpipe.com:
http://viewer.bitpipe.com/viewer/viewDocument.do?accessId=12202599
Oltsik, J. (2009, October). Databases at Risk. Retrieved February 20, 2010, from
www.findwhitepapers.com:
http://www.findwhitepapers.com/index.php?option=com_categoryreport&task=thanky
ou&title=7469&pathway=no&rec=1&pei=569860
Database Security Policies and Procedures for DMCS 33
Page, R. (2007, February 20). SQL Server Security Cribsheet. Retrieved June 05, 2010, from
simple-talk: http://www.simple-talk.com/sql/database-administration/sql-serversecurity-cribsheet/
Pal, T. (2010, August 27). Top 10 SQL Server 2008 Security Features. Retrieved November 13,
2010, from Database Journal:
http://www.databasejournal.com/features/mssql/article.php/3899866/Top-10-SQLServer-2008-Security-Features.htm
Penn, J. Expert Analyst Reviews the Ins and Outs of Database Encryption. Retrieved May 04,
2010, from viewer.media.bitpipe.com:
http://viewer.media.bitpipe.com/1109190685_978/1266351390_649/sSecUKdbEncrypt
ion.pdf
Ponemon, L. (2009, November 30). The State of Privacy & Data Security Compliance. Retrieved
April 17, 2010, from secure.sophos.com:
https://secure.sophos.com/sophos/docs/eng/papers/sophos-state-of-privacy-datasecurity-compliance-wpna.pdf
Proactively Reduce Risk and Improve IT Security in Physical and Virtual Environments. (n.d.).
Retrieved April 18, 2010, from www.findwhitepapers.com:
http://www.findwhitepapers.com/index.php?option=com_categoryreport&task=thanky
ou&title=2532&pathway=no&rec=1&pei=569860
Redman, M. (2008, November). SQL Server Best Practices – Implementation of Database Object
Schemas. Retrieved June 03, 2010, from msdn: http://msdn.microsoft.com/enus/library/dd283095(SQL.100).aspx
Database Security Policies and Procedures for DMCS 34
Riccardi, G. (2001). Principles of Database Systems with Internet and Java Applications. Addison
Wesley.
RSA. Securing Data at Rest: Developing a Database Encryption Strategy. Retrieved May 04,
2010, from www.rsa.com:
http://www.rsa.com/products/bsafe/whitepapers/DDES_WP_0702.pdf
Securing data at rest. Retrieved April 27, 2010, from whitepapers.bx.businessweek.com:
http://whitepapers.bx.businessweek.com/index.php?option=com_categoryreport&task
=thankyou&title=3114&pathway=no&rec=1&pei=5698
Shackleford, D. (2007, November). Regulations and Standards: Where Encryption Applies.
Retrieved April 27, 2010, from www.sans.org:
http://www.sans.org/reading_room/analysts_program/encryption_Nov07.pdf
Sortino, J. Database Security Standards and Audit Implementation. Retrieved May 04, 2010,
from www.isaca-oregon.org/: http://www.isacaoregon.org/docs/Database%20Security%20Standards%20and%20Audit%20Implimentati
on%20AppSecInc.pdf
Sortino, J. (2010, June 25). Database Security Standards and Audit Implementation. Retrieved
May 04, 2010, from www.isaca-oregon.org/: http://www.isacaoregon.org/docs/Database%20Security%20Standards%20and%20Audit%20Implimentati
on%20AppSecInc.pdf
Thales. Database Security for Microsoft SQL Server 2008 . (2009). Retrieved November 13, 2010,
from asiapeak:
Database Security Policies and Procedures for DMCS 35
http://www.asiapeak.com/download/Microsoft_SQL_Database_Security_With_Thales_
HSMs.pdf
The Anatomy of an Insider: Bad Guys Don’t Always Wear Black . (2009). Retrieved May 04,
2010, from www.imperva.com:
http://www.imperva.com/docs/WP_Anatomy_of_an_Insider.pdf
Thomas, J., & Catanzano, J. (2005, November). SAP with Microsoft SQL Server 2005: Best
Practices for High Availability, Maximum Performance, and Scalability. Retrieved May
04, 2010, from www.microsoft.com:
http://www.microsoft.com/sqlserver/2005/en/us/white-papers.aspx
Yuhanna, N. (2009, September 28). Your Enterprise Database Security Strategy 2010. Retrieved
May 04, 2010, from media.techtarget.com:
http://media.techtarget.com/Syndication/SECURITY/EnterpriseDatabaseSecurityStrateg
yb.pdf
Database Security Policies and Procedures for DMCS 36
Appendix A
Introduction
Disaster Management Communication System requires information security that is
going to maintain it reliable and available while meeting various government regulations. The
Health Insurance Portability and Accountability Act (HIPAA) offers federal protection for
personal health information own by medical service providers and it gives patients rights
related to that information. HIPAA Privacy Rule controls the disclosure and use of Protected
Health Information (PHI), which is essentially individual’s health status, health care provision,
and payment for health care. For the Disaster Management Communication System to comply
with the HIPAA Privacy Rule it needs to:

Release PHI within thirty days of individual’s request, or when required by law;

Whenever PHI is requested by other organizations, DMCS must first obtain the
individual’s consent and disclose as little information as possible;

When an individual requests correction of PHI, DMCS needs to make sure that the
requested changes are reasonable, and if PHI is found to be incorrect it needs to be
adjusted;

DMCS needs to make communications with individuals confidential;

DMCS must inform individuals whenever their PHI is used;

Documentation of PHI disclosures need to be made;
Database Security Policies and Procedures for DMCS 37
Available SQL Server 2008 security features for meeting HIPAA technical safeguards
Hipaa 45 cfr §164 .312
§164.312(a)(1) Access Control Standard
§164.312(a)(2)(i) Unique User Identification
Specification – Required
§164.312(a)(2)(ii) Emergency Access
Procedure Specification – Required
§ 164.312(a)(2)(iii) Automatic Logoff
Specification – Addressable
§ 164.312(a)(2)(i) Encryption and Decryption
Specification – Addressable
§ 164.312(d) Person or Entity Authentication
Standard
§ 164.312(b) Audit Controls Standard
§ 164.312(c)(1) Integrity Standard
SQL Server 2008 Features
Windows/Active Directory & SQL Server
Authentication and Authorization
Windows/Active Directory & SQL Server
Authentication
Emergency Access Policy, Procedures and
Pre-Staged Accounts; SQL Server Audit
Windows/Active Directory Group Policy
Enforcement
EKM; Cell-level Encryption
Windows and SQL Server Authentication;
Domain Password Policy Enforcement;
Transport Layer Security (TLS\SSL)
SQL Server Audit; Policy-Based Management
Database and Application Development
Standards and Guidelines;
Constraints, Triggers and Referential Integrity;
Database Performance Collection;
Database Backup
§ 164.312(e)(1) Transmission Security
Standard
§ 164.312(e)(2)(i) Integrity Controls
Specification – Addressable
§ 164.312(e)(2)(ii) Encryption Specification –
Addressable
Transport Layer Security (TLS\SSL)
Sarbanes-Oxley Act (SOX) requires that certain financial risks be addressed, precise
financial reporting, and clear audit trials.
To comply with SOX, Disaster Management
Communication System needs to recognize what components of the system play crucial parts in
the financial reporting process. These components include databases, networks, and operating
systems. Regular assessments need to be performed to verify that the processed information is
Database Security Policies and Procedures for DMCS 38
complete and accurate. Security and privacy of data can be confirmed through the following
assessments:

Authentication – processes performed by the system to provide authentication of
users.

Authorization – processes that guarantee the system is accessed only by approved
users.

Validity – processes that ensure only valid data is being processed.

Identification – processes that verify all users are uniquely identified.

Completeness – processes that ensure all records are processed from beginning to
completion.
Available SQL Server 2008 security features for meeting SOX technical safeguards
SOX requirements
Section 302 Corporate Responsibility for
Financial Reports
Section 404 Management Assessment of
Internal Controls
Section 409 Real Time Issuer Disclosures
Section 902 Attempts and Conspiracies to
Commit Fraudulent Offenses
SQL Server 2008 Features
Report Builder
SQL Server Authentication and Authorization;
Report Builder
Activity Monitor; SQL Server Audit
SQL Server Authentication and Authorization
The Privacy Act of 1974 establishes guidelines for collection, use, and protection of
personal information stored in organizations’ databases. According to the Privacy Act, it is
illegal to disclose personal information without the written consent of the individual. The
Database Security Policies and Procedures for DMCS 39
Privacy Act allows individuals to access their records. In order for the Disaster Management
Communication System to meet the requirements of the Privacy Act it must:

Allow individuals to access their personal information.

Allow individuals to request corrections to their information.
An important legislation that the Disaster Management Communication System needs
to conform to requires reporting to the government of any security breaches. When these
breaches are of significant magnitude, they have to be announced to the public as well. The
government has introduced this legislation with the hope that companies will increase their
security standards to avoid financial and reputation loss. In the case of security violation when
clients’ personal information has been exposed, DMCS has to report the incident to the
government and the public.
Part I Security Architecture
Information systems are an integral part of modern businesses, and in order for them to
be effective and reliable, they need to be equipped with security features. They need to
protect data entry as well as the produced information. The three basic factors information
security is based on are confidentiality, integrity, and availability (the C.I.A. triangle). Security
architecture is closely related with the C.I.A. triangle and its implementation in companies. The
components of security architecture vary from physical equipment to logical security tools.
The purpose of information security architecture is to protect logical and physical assets
through ensuring that confidentiality, integrity, and availability of data are not breached.
Confidentiality refers to the prevention of unauthorized individuals from accessing confidential
Database Security Policies and Procedures for DMCS 40
information; confidential information is protected through classification of information, which
makes it available to authorized individuals only. Information needs to be properly classified in
levels according to the type of business and government agencies, and each level needs to have
specific security measures. Most often information is classified according to the degree of
confidentiality necessary to protect the information.
Integrity requires that data at all levels throughout the system is consistent and
accurate, and have not been intentionally or accidentally tampered with. Data integrity is
considered to be violated when at least one of the following is present: invalid data, redundant
data, inconsistent data, data anomalies, data read inconsistency, or data nonoccurrence.
Availability of an information system is the notion that the system should be accessible
to authorized individuals, and the system determines what the individuals are allowed to do
with the accessed information. The availability of an information system can be affected by the
following factors: external attacks and lack of system protection, a system failure without a
disaster recovery strategy available, extremely restrictive security policies and procedures, or
improper authentication of customers.
Adhering to the C.I.A. triangle is important for the Disaster Management
Communication System (DMCS) in order to keep it secure and reliable for its clients and
employees. Confidentiality of information makes clients and employees feel confident that
their personal information will not be exposed to any unauthorized entities. For the system to
run flawlessly its data needs to be consistent, accurate and the data integrity needs to be
protected. Because DMCS is accessed by multiple users simultaneously, the concurrency of the
database is increased which in turn can cause problems when data is being changed. In SQL
Database Security Policies and Procedures for DMCS 41
Server, locks are used to protect the data and control how numerous users access and alter
shared data without conflicting with each other. Major concurrency problem is the loss of
updates resulting in invalid data and unexpected query results. Locking prevents multiple users
from making changes to the data at the same time. Exclusive (X) locks are used for INSERT,
UPDATE, and DELETE operations and by preventing access to a resource by concurrent
processes exclusive locks ensure that multiple changes are not made to the same resource at
one time. When exclusive locks are used, data modification statements combine modification
and read operations. Read operations are performed to acquire data before performing the
modification operations. Lastly, in order for the Disaster Management Communication System
to be completely effective, it should be available and ready for utilization by any authorized
user at any time.
Information security architecture protects logical and physical assets by ensuring that
the C.I.A. triangle is intact. Figure 1-1 illustrates the C.I.A. triangle.
Figure 1-1: Information security C.I.A. triangle
The C.I.A. triangle can be kept intact by utilizing the following components: policies and
procedures, security personnel and administrators, detection equipment, security programs,
Database Security Policies and Procedures for DMCS 42
monitoring equipment, monitoring applications, and auditing procedures and tools. Security
architecture needs to enforce security features at all levels of the database. It is essential that
all security access points are recognized and addressed in the security implementation in order
for important data to be protected. At all security access points database security must be
implemented, enforced, and audited to prevent unauthorized actions. Database security access
points include people, applications, network, operating system, database management system,
data files, and data. Figure 1-2 illustrates database security access points. The implementation
of the security features for the access points needs to start from people and follow the order
listed above. The reason is that the people component covers the largest area, respectively
covering the number of individuals accessing the database (managers, users, administrators,
developers, visitors) and representing the greatest possibility of risk. When security access
points are not protected, a security gap exists. Security gaps open vulnerabilities to the system.
These vulnerabilities need to be closely monitored because they are potential threats for the
system. Threats are security risks that often become a system breach, leading to violation of
data integrity.
Database Security Policies and Procedures for DMCS 43
Figure 1-2: Database security access points
The build of efficient information security architecture requires the following:

understanding the nature of threats

setting up safeguards that adequately prevent loss, theft, destruction,
corruption, tampering, copying, deletion, modification of data and information

response to incidents in a way that reduces their impact

assessing the damage, identifying the source of breach, and correcting it

recover as quickly as possible, evaluating the breach, reviewing and updating
information security safeguards
Security architecture prevents security breaches, minimizes their effect them when they
occur, and helps systems recover from intrusions. Each organization has its own unique
business context, risk analysis, mitigation, and security policies but there are nine basic
principles of security architecture that apply to most of them.
1. Set up a security policy for the system.
Database Security Policies and Procedures for DMCS 44
You need to know what is on your system in details so you know what needs to
be secured. This requires removing existing programs that conflict with the
security policy, and removing the default choices when installing programs.
Instead, rules that are more precise should be set up to control access to and use
of data.
2. Actions should be able to be verified.
Verifying an action means to make sure that it is carried out because of a certain
block of source code and unexpected actions are not taking place. This provides
transparency to the system so it is clear what exactly is being done, and what
files are downloaded.
3. Utilize the least privilege policy.
This principle suggests that every user, process, and program should be given
only the access of system resources that are necessary. Responsibilities and
privileges should be assigned and in case users need greater access, they should
be allowed to have it for as little as possible. “Least privilege is one of the
reasons why, ideally, users should be added to groups only as necessary, rather
than being automatically added to a number of common ones,” (Byfield, 2005).
4. Practice defense in depth.
Security should be enforced on different levels in order to provide a safer
environment. Although firewalls are often sufficient security precautions of
systems, when the firewall is breached the whole system is at risk. This is why
Database Security Policies and Procedures for DMCS 45
security at different levels, or in depth defense, is important for protecting the
entire system.
5. Auditing the system
Monitoring and recording system changes are imperative for keeping the system
secure.
Keeping track of these changes can tell us when the system is
compromised. Changes can be recognized by the system’s own tools or by
intrusion detection systems.
6. Build the security to contain intrusions.
The benefit of designing a system security to contain intrusions is that it limits
the access of hackers to the system; and when an intrusion occurs, it minimizes
the consequences for the system. Another advantage of containment is that it
makes it safe to run an untested program in isolation.
7. The more defenses the better.
Similar to defense in depth, this principle suggests that the more defenses the
system has, the more protected it is. Since users are the component of the
system that presents the highest level of risk, it is important that they are
familiar with the basic security practices. They need to follow these practices
constantly.
8. Secure systems as a preventive measure.
Securing a system after an attack has already occurred will protect it from future
attacks but it is not going to erase the consequences of previous ones. After a
Database Security Policies and Procedures for DMCS 46
system has been attacked, the steps that need to be taken to make it secure are
reinstall the basic input/output system (BIOS); reformat the hard drive; restore
files from a backup taken before the system was breached.
While these
processes are running, the system is not available. To avoid the lengthy process
of restoring the system, it is a good practice to implement all security principles
from the beginning.
9. Practice full disclosure.
Announcing to users when your system has been attacked is a requirement of
the Security breach notification law. This gives users the opportunity to take
their own precautions, for example logging off the system until the vulnerability
has been handled.
Applying the principles of security architecture and balancing them to meet users’
requirements and needs, while making sure agency regulations are followed, is a challenging
task. Having proactive security architecture not only minimizes the risk of attacks but it also
makes recovery from eventual attacks easier.
Disaster Management Communication System Requirements
Confidentiality provides assurance that information is shared only among authorized
individuals or organizations. Violation of information confidentiality can occur when data is
handled by unauthorized users. The classification of the information should determine its level
of confidentiality and the appropriate safeguards. Authorized users within the DMCS are
Database Security Policies and Procedures for DMCS 47
individuals (employees, clients) who have been granted access to its information and resources.
Assigning passwords and setting server permissions can help prevent unauthorized users from
accessing the system.
In order to provide the appropriate degree of information confidentiality for the DMCS,
information needs to be separated and classified as follows:

Restricted – client personal information, such as social security numbers, medical
records

Confidential – client general information including names, address, telephone
number, date of birth

Internal – information used within the system such as telephone numbers,
schedules, maps.

Public – published phone numbers, addresses, and other general information.
Information classified as restricted should be available only to certain employees whose
jobs require it and following the least privilege practice. Access to this type of information can
be granted in exceptional cases. An access control list with the names of all employees having
access to restricted information should be maintained.
Confidential information should be available to employees who require it for their job
functions and to other authorized nonemployees with a nondisclosure agreement. Access to
this type of information can also be granted on a need-to-know basis and an access list should
be kept.
Database Security Policies and Procedures for DMCS 48
Internal information is made available to all employees and some nonemployees
(customers, suppliers, volunteers).
Public information is available to the public with no
restrictions.
Data integrity can be compromised because of physical hardware defects, hardware
design errors, system (software) design errors, and data communications and transfer. For
defense against hardware, software, or communication systems failures, the DMCS need to be
supplied with an uninterruptible power source (UPS) and offline data backup program. Safety
measures that significantly reduce the chances of data integrity breaches and need to be
applied to the DMCS are as follows:

On a regular basis, back up data and other software resources, as well as store
current copies at a secure off-site location.

Back up data at intervals determined by the length of the recovery progress.

Avoid using any software not originating from a trusted source.

Enable auto-save features in system software and utilities.

Use up-to-date virus protection software.

Implement and maintain auditing/detection tools for detecting and reporting
changes to mission critical system files.

Always have a properly maintained UPS and power-conditioning equipment.
Applying the nine basic principles of security architecture to the DMCS to prevent
security breaches and minimize the consequences when a breach occurs.
Database Security Policies and Procedures for DMCS 49
1. Security policy adequate for the information on the system needs to be set up,
that means taking into consideration the fact that restricted information is being
stored which needs to be properly protected by assigning strong access
passwords to authorized users only. Access and modification of data should be
limited and monitored.
2. To verify that all actions are a result of a planned or intentionally executed
source code, logs need to be kept for keeping track of all transactions within the
system.
3. Applying the least privilege policy to the DMCS would grant access to
confidential information only to authorized users, which minimizes the risk of
data integrity breaches.
4. For the DMCS, defense in depth should encompass physical security,
authentication and password security, logging, auditing, firewalls, antivirus
software. All of these components need to be up-to-date in order to provide
effective security for the system.
5. The system needs to be audited on a regular basis to detect any changes and
eventual breaches. SQL Server 2008 provides a built-in auditing feature that
stores all audit logs. With this feature, the system tracks who has accessed, or
has made an attempt to access the data, which can help detecting unauthorized
access.
Database Security Policies and Procedures for DMCS 50
6. Containing the intrusion means that if the attack is not major, for example denial
of service, the system does not require to be shut down. Instead, the intrusion
should be prevented from spreading. When the attack is compromising security
of the system, it needs to be quickly shut down.
7. All employees and clients of the DMCS, who have access to the system, need to
be familiarized with the established security practices and follow them strictly.
8. In the case of a security breach, the DMCS needs to have its files restored from a
backup made prior to the attack, the basic input/output system (BIOS) needs to
be reinstalled, and the hard drive needs to be reformatted.
9. Whenever a system attack occurs, it needs to be disclosed to the public. The
DMCS stores customers information and therefore is required by law to inform
them of any possible threats to their accounts. System administrators should be
responsible for the announcement of any system attacks.
Figure 1-3 represents a breakdown of the database security access points for the DMCS
that require the implementation of individual security features.
Database Security Policies and Procedures for DMCS 51
SA, developers, data entry employees, clients, suppliers, volunteers
Data collection and reporting screens
Method of connection to the reporting screens
Microsoft Windows Server 2003
SQL Server 2008
Files storing information about clients, transactions, products, orders, disaster specifics
Information processes and/or stored in the system
Database Security
008
Figure 1-3: Database security access points for the DMCS
Part II Operating System Security Fundamentals
The operating system controls the resources of the computer such as memory, devices,
and processing time. Therefore, operating system security is important for the protection of
the database and integrity of stored data. A compromised operating system security opens
possibilities for attacks on the database because databases reside on technology managed by
operating systems. One of the purposes of an operating system is to provide functionality for
enforcing security measures such as authorization and authentication, user administration,
password policies, and e-mail security. The components of an operating system (services, files,
and memory), serve as access points to the database, which means they have to be configured
properly and secured to prevent security threats. Figure 2-1 represents the layers of an
operating system.
Database Security Policies and Procedures for DMCS 52
Figure 2-1: Operating system security environment
The operating system is the middle level of a computer system; it connects the
computer hardware with the computer software, making it possible for a variety of tasks and
problems to be solved. Without the operating system, the computer hardware is not usable.
The operating system provides users with an interface that makes the hardware usable through
various applications and tools. Some of the functions of the operating system are managing
computer resources, enforcing security measures, controlling activities flow, multitasking,
multisharing, and managing user actions and accounts.

Managing computer resources, such as memory, input and output devices, the
central processing unit, and disk storage

Enforcing security measures through built-in features and tools

Controlling flow of activities by keeping track of what actions take place in the
system; providing timestamps

Multitasking – executing multiple tasks simultaneously

Multisharing – providing the opportunity for multiple users to use the hardware
at the same time
Database Security Policies and Procedures for DMCS 53

Managing user actions and accounts – controlling users’ actions on the system;
setting up permissions and access controls for users
The security of the operating system depends on the three components mentioned in
figure 2-1. The more secure these components are the more secure the operating system will
be. These components need to be properly configured to ensure a secure environment for the
system. The services component is essentially the functions of the operating system, which
users use to access the operating system and to be able to perform any tasks. Because these
services help for the authentication of users and manage password policies and user
administration, they need to be properly secured, or they become vulnerabilities and possibly
security threats. File transfer and file sharing also represent a common threat to the security of
the system. Because files are data carriers, they need to be adequately secured to prevent the
possibility of data loss or privacy violation. The granting of read, write, and execute privileges
to users, needs to be thoughtfully performed. In Windows, the operating system in which the
Disaster Management Communication System is built, file permissions can be changed in the
following way: right-click on a file; click on Properties, then click on the Security tab. This
window allows us to grant (Allow) or revoke (Deny) privileges to users.
Database Security Policies and Procedures for DMCS 54
Allow/deny privileges to users
Best practices for transferring files suggest:
1. When possible, use the Secure FTP utility instead of the normal FTP utility.
2. Create two directories for FTP – the first one with write permission only for
uploading files and the second with read permission only for downloading files.
3. Create unique accounts for FTP that do not have access to any directories or file
outside the upload and download directories.
4. Turn on logging to scan FTP logs for suspicious or unusual activities.
5. Grant FTP privileges only to authorized users.
Memory, as a component of the operating system, can also be an access point for
security violations. Through malfunction of poorly written programs, the content of memory
can be harmed and data integrity violated. In the event of data being damaged by a certain
program, that program should not be used any more, or it should be patched.
Database Security Policies and Procedures for DMCS 55
An essential feature of the operating system is that it provides authentication of users,
which “is a process that verifies the identity of the user to permit access to the operating
system. A weak authentication method exposes the system to security risks and threats,”
(Afyouni, Database Security and Auditing, 2005, p. 45). There are two types of authentication
methods available: physical and digital. The physical authentication method allows or denies
physical access to the company premises. This is most often done with magnetic cards and card
readers. When a higher level of security is required, biometric or biomagnetic technologies are
used for authentication of employees (fingerprint scans, voice recognition, and signature
recognition). The digital authentication method uses digital devices or software for verifying
employees’ identity. Some of the devices used in this kind of authentication are digital
certificates, digital cards, lightweight directory access protocol (LDAP), remote authentication
dial-in user services (RADIUS), secure remote password (SRP).
After the authentication process, or the user has been recognized and granted access to
the system, the purpose of the authorization process is to control users’ actions according to
their privileges and rights.
User administration is a feature of the operating system that allows administrators to
create user accounts, set password policies, and grant privileges to users. User administration
has to be properly implemented to avoid security risks and threats. Best practices for user
administration that are applied for the DMCS include:
1. Use a consistent naming method that includes a combination of first and last
name of the user.
Database Security Policies and Procedures for DMCS 56
2. Do not use default passwords and force users to change their password at the
first logon, as well as inform users how to select a strong password, according to
the company’s password policy (explained in detail later in the paper).
3. All passwords need to be encrypted and saved in a well-secured file.
4. When a machine is compromised, change all passwords for all accounts.
5. Lock accounts of users when their employment is ended, and accounts that are
not used for a certain period.
6. Grant privileges to machines only to users that need it.
7. When connecting remotely, use Secure Shell (ssh) for telneting, Secure Copy
(scp) for file copying, and Secure FTP for file transfer.
8. When a system is compromised, isolate it from other systems to avoid intrusion.
9. Practice random auditing procedures daily.
The system administrator along with the security manager is responsible for creating a
password policy that fits within the company’s mission and is enforced at all levels of the
organization. Best practices for password policies suggest:
1. Password aging – determines how many days one password can be in effect
before it has to be changed, usually three months.
2. Password reuse – determines how many times one password can be reused;
after how many days it can be reused whether it can be reused at all.
3. Password history – how many passwords should be kept in record for one
account
4. Password encryption – encryption and storage of passwords
Database Security Policies and Procedures for DMCS 57
5. Password storage – where passwords are stored and protected
6. Password complexity – determines the minimum length and combination of
lowercase and uppercase letters, digits, and symbols. The password should not
include first or last name of the user, their city, spouses’, children’s, or pets’
names, telephone number, license number.
7. Logon retries – limit the number of unsuccessful logons before an account is
locked, usually three.
8. Password protection – employees should be educated on how to protect their
passwords and the danger of revealing them.
If a password needs to be
recorded, it should be encrypted so only its owner can access it.
9. Single sign-on – allows using numerous servers after having logged in to one.
This should not be performed in projects with critical missions, and in
government or financial institutions.
User administration and password policies are only a part of securing an operating
system. The major steps in the security for the different operating systems are essentially the
same. What distinguish operating systems are the different features and options they provide,
such as security enforcement, account management, and activities control.
For a safe
environment to be built, the following rules need to be followed:

Install the latest system patches. Windows needs to be updated to install the
latest patches, which can be done by selecting Windows Update from the Start
menu. Automatic updates should be enabled for the operating system, and for
Database Security Policies and Procedures for DMCS 58
any other applications that allow it: Start Control Panel  System 
Automatic Updates Keep my computer up to date option should be selected.

Verify user account security. All guest accounts should be disabled if possible.
All accounts need to have passwords that meet the requirements of the
password policy.
Most users should have Limited account type, and
administrative privileges should be limited.

Remove all unnecessary applications and network services.
including file sharing should be disabled by default.
Some services
Disabling of Network
Dynamic Data Exchange is performed by Start button Settings Control Panel
Administrative Tools Services change Startup type to Disabled instead of
Manual/Automatic.

Windows Simple File Sharing should not be used because it shares files
anonymously without any security of a user account. To disable it: Start button
 Control Panel Folder Options View  Advanced Settings unselect Use
Simple File Sharing  Apply.

Install necessary applications and network services. Anti-virus software should
be installed on each machine.
Enable system logging for troubleshooting,
recovery, and activities tracking. Windows has logging disabled by default, but it
can be enabled by Start  Settings  Control Panel  Administrative Policy 
Local Security Settings  Local Policies  Audit Policy.
Database Security Policies and Procedures for DMCS 59

Install and use Security Self-Test. This is a good practice applied to ensure that
the system meets security standards. This test checks the security state and
what types of software have been installed.
Windows operating system is not an exception, and along with other operating systems
has its weaknesses, but “with proper maintenance and configuration, a Windows OS can be
made relatively secure,” (Fogie, 2004). Weaknesses include uneducated users, commercial
system, poor auditing, size/complexity, insecure installation.
Securing an operating system requires careful administration from installation to
auditing and patching.
Operating system security implementation needs to follow some
guidelines adequate for the type of organization in order to provide secure environment and
prevent security breaches.
Disaster Management Communication System Requirements
To keep the system secure, all of its layers should be properly secured. The memory
layer, being an access point for security violations is a vulnerable part of the system. Potential
memory violations or damages for the DMCS can originate from poorly designed programs,
particularly screens through which data is entered and stored. When the screens are designed,
the location where data is being sent and stored needs to be carefully determined to prevent it
from being lost or unintentionally disclosed.
For the DMCS, the operating system is used for user authentication.
Physical
authentication methods control the access of users to the server, computers, and portable
devices used on disaster sites for accessing the system. The access to the server location is
Database Security Policies and Procedures for DMCS 60
restricted and granted only to personnel responsible for maintenance and system
administrators. A list of individuals with access to the server should be kept. Computers and
portable devices are easily misplaced or stolen, which requires another level of physical
authentication. For this reason, security tokens need to be provided for individuals allowed to
access the system. For the DMCS, synchronous dynamic password tokens should be used as
they offer a high level of security by generating new and unique passwords at a certain time
interval, which only the holder of the token knows. Digital authentication for the DMCS should
utilize secure remote passwords (SRP), which are used to prove the identity of a user to the
server. SRP requires that the user provide a password, which the server needs to recognize in
order to allow access to the system. This type of digital authentication is reliable and does not
require the use of third party authentication protocols.
The password policy for the DMCS is enforced at all levels of the system and it is created
according to the following requirements:

prompt users to change their passwords every three months

do not allow password reuse

keep the latest four passwords for each account

instruct users not to share their passwords and how to store them

passwords should include at least one character of each of the following:
uppercase letters, lowercase letters, digits, and/or symbols

passwords should not include user’s first or last name, account, address

an account is locked after the third unsuccessful logon
Database Security Policies and Procedures for DMCS 61
The following screenshots demonstrate some of the steps that were taken to make the
DMCS a safe environment.
Updating the OS
Updating the operating system and installing the latest patches to keep it up to date and
properly secured. Having the latest security features installed helps keeping the system
protected against new types of threats.
Disabling file sharing
Database Security Policies and Procedures for DMCS 62
File sharing should be disabled by default to prevent anonymous file sharing that is
performed without the security of a user account.
Enabling logging
System logging in Windows needs to be enabled to make troubleshooting, recovery and
activities tracking active.
For the DMCS to be secure and reliable, the operating system needs to be made
as secure as possible. All employees, and if possible users, need to be familiar with the
system’s security policy to minimize the risk of opening security vulnerabilities. Audit of the
system should be performed regularly to confirm that it is running effectively and there are no
unplanned processes or actions taking place.
The DMCS is built on IIS (Internet Information Services), which connects the databases
with the ASP.NET pages to create the user interface of the system. IIS provides a reliable and
secure platform and offers a scalable Web Infrastructure. This Web Infrastructure is useful for
adding or removing servers in order to increase or decrease available capacity to meet demand
Database Security Policies and Procedures for DMCS 63
without interfering with the availability of the application, and therefore contributing to the
overall security of the system.
Error messages generated from the IIS are used by
administrators for easier troubleshooting. The error messages contain detailed information
about a request, what has potentially caused the error, as well as suggestions about possible
fixes. For security reasons, to minimize the risk of exposure and attacks, when IIS is installed
the only feature that is enabled is request handling for static Web pages. All other necessary
features (ASP.NET, scripting) need to be turned on from the IIS Manager under Enabling and
Disabling Dynamic Content in IIS 6.0, or the IIS returns a 404 (page not found) error. “IIS 6.0
includes a variety of Security in ISS 6.0 features and technologies to help ensure the integrity of
your Web and FTP site content, as well as the data transmitted though your sites” (Microsoft,
IIS 6.0 Operations Guide, 2005). Security features that are associated with IIS and implemented
for the DMCS include authentication, access control, encryption, and auditing.
Administrators of DMCS should utilize the request filtering module of IIS to implement
acceptance policies for the server and therefore increase the security. Another feature of IIS,
which administrators need to employ, is the URL scan, which scans all incoming requests to the
server and stops the potentially harmful ones from reaching applications.
Part III Administration of Users
Administration of users involves creating user accounts, granting privileges, deleting and
modifying accounts. These procedures are an important aspect of database security and need
to be implemented in compliance with the organization’s policies and overall security
regulations. For the Disaster Management Communication System administration of users
Database Security Policies and Procedures for DMCS 64
needs to include documentation that can be used as a source of procedure guidelines so that
administration is consistent in time. In addition, in a case of a security breach, documentation
serves as a path, which can take a database administrator through the system and discover
where the breach occurred and what caused it.
User administration documentation incorporates the following elements:

Administration policies – a list explaining in detail policies for managing new
and terminated employees, managers, system and database administrators,
database managers, operating managers, and human resources

Security procedures – describes the process of executing administrative tasks
according to the requirements of the given organization

Procedure implementation scripts/programs – records of all scripts/programs
used in the executing of the administrative tasks, including a user’s manual
and operational manual

Predefined roles description – a description of all roles and their
responsibilities, as well as relationship between the roles

Administration staff and management – in depth description of manager and
administrator positions; and an organizational chart
When creating user accounts to maintain a secure and dependable system,
documentation guidelines and security policies should be followed. There are two types of
logins – Windows Integrated login, and SQL Server login. The Windows Integrated login
provides users with access to the system without prompting for username and password. It
uses the security features of Windows by encrypting and sending the user’s information
Database Security Policies and Procedures for DMCS 65
through the browser for authentication. If the authentication of the user fails, then the
browser prompts the user for Windows account and password. The Windows Integrated login
type is more secure and preferred option. A Windows Integrated login can be created in SQL
Server Management Studio by taking the following steps:
1. Open Object Explorer and expand the server in which you need to create the
new login
2. Right-click on Security folder, go to New, and click on Login
3. On the General page, fill out the Login name box
4. Select Windows Authentication
5. Select Database and Language
6. Click OK
After the logins are created, database users can be created. Database users are linked
with the login IDs to make it possible for users to access the database. “You cannot log in to a
SQL Server database without first supplying a valid login ID and password,” (Afyouni, Database
Security and Auditing, 2005, p. 69).
SQL Server has two default logins: system administrator (SA) login and builtin/administrator login. The SA login cannot be deleted or modified and it has access to every
database or object. In contrast, the built-in/administrator login, which is an optional login, can
be removed and its permissions can be modified.
Removing a user account should be done after acquiring a written request approved by
the manager of the account holder. A good practice is to always make a backup of an account
before removing it in order to save objects from the database that are associated with that
Database Security Policies and Procedures for DMCS 66
account. This gives the database administrator the opportunity to use or to refer to the work of
an already terminated employee, whose account has been removed. To remove a Windows
Integrated login, highlight the login that needs to be removed and click on Delete in the Action
menu. An alternative way for keeping a removed user’s objects is by user schema separation.
When using user schema separation, objects do not belong to the user directly; they belong to
a schema, which in turn belongs to the user. When an object belongs to a user, no one else can
ever own that object even after the user has been removed. The only way to access user
created objects is with the SA account, as this has the highest level of access, which can be used
to repermission user created objects.
What makes schemas different is that “schema
ownership is transferrable,” (Redman, 2008). The use of schemas can be beneficial in several
ways: it allows better access control, and levels of access for the database administrator.
Objects can be transferred from one schema to another, multiple users can share the same
schema, and most importantly, users can be removed without losing the objects they own.
When objects are created, they are created and stored within a schema. For example, creating
a table called MyTable within MySchema schema requires the following code:
create table MySchema.MyTable (col1, int, col2 int)
User accounts in the Disaster Management Communication System can be also modified
or locked and passwords or storage quota can be changed. These changes can be done after a
written approval providing arguments about the changes is present. Using Enterprise Manager,
an already existing account can be modified in the following way:

Click on Security and then click on Logins.

Choose the login to be modified.
Database Security Policies and Procedures for DMCS 67

Click on Properties on the Action menu and make the changes.
Users can access and manipulate a database while logged onto a different database
through database links, which essentially are connections between databases. Figure 3-1
illustrates database link architecture connecting DB1 with DB2.
Figure 3-1: Database link architecture
With database links, the user is only authenticated in the database he/she is initially
logged onto and the second database does not require authentication.
The administration of users is not an easy task and needs to meet the terms of database
best practices and security regulations. Best practices that apply to SQL Server and are
recommended by Microsoft, database administrators, and security professionals suggest:

Follow the company’s policies and procedures for creating, modifying,
and removing database users

Replace default passwords with strong passwords and do not save them
in a file that is not encrypted or safe

Do not share user accounts, particularly DBA accounts

Document and create logs for changes and removals of user accounts

Do not remove accounts, even if outdated; as an alternative disable
connection privileges for different applications
Database Security Policies and Procedures for DMCS 68

Use different logins and passwords for different applications and give
access permissions to users only as required

Make user administration best practices and company policies and
procedures available to users, administrators, and developers

Keep up with database technology and database security, considering
potential new vulnerabilities which may increase database security risks

Make sure that procedures are consistent with the company’s policies
and procedures
Creating, modifying, and removing of database users, as an integral part of database
security, needs to be consistent with the overall security strategy of a company. Giving
privileges and access rights to users should be done only as needed and as a further security
measure, direct access to database tables should be blocked. Data should be accessed through
stored procedures and views. All service packs and security patches for SQL Server and the
Windows server it is running on should be regularly updated.
Disaster Management Communication System Requirements
Windows Integrated logins should be used for the DMCS to provide users with access to
the system. With this type of logins, “The current Windows user information on the client is
used for Integrated Windows authentication” (Microsoft, Integrated Windows Authentication).
Database Security Policies and Procedures for DMCS 69
Creating a new Windows Integrated Login
Users of the DMCS need to have permissions on the SQL Server granted to them in
order to be able to access and manipulate the database. “Permissions can be granted to a user
or role to allow that user or role to perform operations such as selection, insertion, or
modification of data rows” (Chigrik, 2003). In SQL Server, permissions can be granted, denied,
and revoked from a user or a role. According to the role users have in the system, they can be
granted one of three types of permissions: object permissions, statement permissions, or
implied permissions. Database developers of the DMCS are granted object (select, insert,
delete, update, execute, dri commands) and statement (backup database, backup log, create
database, create default, create function, create procedure, create rule, create table, create
view commands) permissions in order to have optimal use of and input to the database.
For the DMCS, the SA account should not be given to users and its password should be
changed as this account has the highest level of security clearance.
Database Security Policies and Procedures for DMCS 70
Another security measure that should be applied to the DMCS is logging all queries ran
on the server, a function provided by the Analysis Services in SQL Server. This will provide
information such as name of the user who ran the query, the time the query began, duration of
query execution, ID of database used in the query. “SQL Server Analysis Services uses query
logs to log statistical information about queries” (Melomed, 2006).
Analysis Services in SQL Server
In order to keep the system functional and consistent despite the frequent change of
users, user schema separation should be used. This would make it possible for new users
entering into the project to continue working on already existing objects without having to start
from zero. Another action that should be taken to ease the work of DMCS users is using
database links to connect the relational and the warehouse databases in the DMCS. This will
allow users to work on both databases without having to constantly log in and out.
Administration of users in the DMCS follows the best practices, applicable to SQL Server
explained above, whenever user accounts are created, removed, or modified.
Default
Database Security Policies and Procedures for DMCS 71
passwords should be changed and when new ones are created, they need to meet the
requirements of the system, explained in Part IV of the manual. Access to applications should
be granted only to users that need it and all changes and deletions of user accounts in the
system need to be documented for future reference. Each user needs to have an individual
account, this way the SA can follow user activities.
Administrators of the DMCS should make use of the Activity Monitor in SQL Server. This
tool provides information about processes in progress and their effect on the server. With the
help of Activity Monitor, administrators can follow and control users’ actions and tasks.
Activity Monitor in SQL Server
Part IV Profiles, Passwords, Privileges, and Roles
User administration and security are fundamental parts of data security. Well-organized
user administration that is based on proven practices and is consistent with the organization’s
overall strategy creates an additional layer of security. The four elements that form user
administration are profiles, passwords, privileges, and roles. Each one of these elements needs
Database Security Policies and Procedures for DMCS 72
to be built upon best practices to provide a strong defense against unauthorized access and
potential security attacks.
Profiles are used for defining and restricting what and to what extend users can do with
system resources.
The functions of profiles, such as connection control and resource
utilization, in SQL Server are managed at the application level: “Query and connection timeouts in a SQL server-based application are handled at the application level within OLEDB,”
(Afyouni, Database Security and Auditing, 2005, p. 93).
Passwords of user accounts need to be designed according to policies that reduce the
probability of hackers breaking them. Breaking a user account password jeopardizes the
database, the network, and the entire the system. Password policies are meant to set rules for
password production that are going to make them stronger and harder to be broken. Aspects
that password policies address are password complexity, password aging, password usage, and
password storage. Password complexity determines what passwords should contain (digits,
symbols) and how long they should be. The length most companies require is eight characters.
Password aging designates the period of time during which a password can be used before it
expires and has to be changed. Usage of passwords determines how many times a certain
password can be used. Password storage is a system for encrypting and storing user account
passwords. In Microsoft SQL Server 2008 the password policy is built into the server. SQL
Server 2008 can validate a password during authentication or during password set and reset by
executing the NetValidatePasswordPolicy() function.
There are five techniques of
authentication in SQL Server 2008 and are supported by Windows (basic, digest, NTLM,
Kerberos, and Integrated authentication). Basic authentication transmits the login credentials
Database Security Policies and Procedures for DMCS 73
in clear text that is base-64 encoded. The credentials need to match a Windows login in order
for SQL Server to authorize access to the database. Digest authentication does not involve
transmission of credentials across the network; instead they must match a valid Windows
domain account. Using Windows security and having it implement password policies means
that once a user is logged onto a Windows server he/she does not have to provide his/her
password again to access different applications. “It is based on an "access token" which
contains the user's unique security ID or sid, which is then used by the client to gain access to
network resources such as SQL Server without having to supply login credentials again,” (Page,
2007). Both NTLM and Kerberos do not send user account passwords across the network,
which is how attackers are stopped from breaking into the system.
NTLM is based on
challenge/response methodology, meaning that when a user access a resource, the server
sends a request for identity proof and if the user responds correctly, he/she is authenticated to
the server. Figure 4-1 represents the process of a NTLM authentication method.
Figure 4-1: NTLM authentication
What makes Kerberos different and more secure from NTLM is that “a secret key,
known only to the server and client and unique to the session, is used to encrypt the handshake
data,” (Afyouni, Database Security and Auditing, 2005, p. 98). This requires the server to
Database Security Policies and Procedures for DMCS 74
authenticate the user as well as the user to authenticate the server, which is done with the help
of a secret key produced form a Key Distribution Center (KDC). Figure 4-2 illustrates the KDC.
Figure 4-2: KDC produces a key and issues a session ticket to client
Windows integrated authentication is the preferred method of authentication because
it supports encryption whereas SQL Server logons save user names and passwords in
connection strings and are sent across the network in clear text. “With Windows Server 2003
or later, the policy will be implemented via an OS-level call, Net ValidatePasswordPolicy, so that
the administrator can use the same policy for both Windows integrated and SQL Server logins,”
(Beauchemin, Berglund, & Sullivan, SQL Server password policies and credentials, 2005).
Setting the password policies in SQL Server using Windows logons requires the following steps:
1. Click Start menu  All Programs  Administrative Tools.
2. Double-click on Local Security Policy.
3. Expand Account Policies
4. Click on Password Policies (here we have six policy parameters that we can
enforce: enforce password history, maximum password age, minimum password
age, minimum password length, password must meet complexity requirements,
and store passwords using reversible encryption).
Database Security Policies and Procedures for DMCS 75
5. Click on Account Lockout Policy on left. The options here are account lockout
duration, account lockout threshold, and reset account lockout counter after.
These options specify how many invalid logons are allowed before the account is
locked which makes it unusable, as well as how long an account should be
locked.
Privileges are used to grant or permit access to data as well as to permit or deny
operations on databases. In SQL Server, there are four levels of permissions: system/server
level, database level, table (object) level, and column level. Although permissions are on
different levels of the database hierarchy, having higher-level permissions does not grant
lower-level access. Permissions for each level must be granted individually. At the server level,
network endpoints can be secured to control the communication channels into and out of the
server. Server level privileges depend on fixed server roles. Users who are members of the
sysadmin fixed server role have no restrictions and can perform any function in the system.
Serveradmin members have some limitations to their actions on the server level; they can
perform the following functions: add members to the serveradmin role; execute DBCC
FREEPROCCACHE command; execute SP_CONFIGURE system-stored procedure; execute
SP_FULLTEXT_SERVICE system-stored procedure; execute SP_TABLEOPTION system-stored
procedure; execute RECONFIGURE command; and server shut down.
Members of the
setupadmin role can add members to the setupadmin role; add, drop, and configure linked
servers; and mark a stored procedure as a start-up procedure. Securityadmin role members
can execute the CREATE DATABASE PERMISSIONS statement; read error logs; change
passwords; and manage logons (add, remove, remove links). Processadmin members can
Database Security Policies and Procedures for DMCS 76
manage processes running in the SQL Server (add members to the processadmin role;
terminate a process by executing KILL command). Members of the dbcreator fixed server role
can create, alter, and drop databases, as well as add members to the dbcreator role. Diskadmin
members can manage the disk files for the server and database by adding members to the
diskadmin role; executing DISK_INIT command; executing SP_ADDUMPDEVICE system-stored
procedure; and executing SP_DROPDEVICE system-stored procedure.
Members of the
bulkadmin role can execute bulk insert operations (add members to the bulkadmin role;
execute BULK INSERT DML statement).
At the database level, every object that is created can be secured. Database privileges
allow users to operate at the database level and privileges are granted to users in two ways.
Users can be granted with specific permissions individually, or they can be added to fixed
database roles. The fixed database roles come with set permissions. Db_owner members can
perform any functions within the database and have no limitations. Db_accessadmin role
members can add and remove users from the database only through system-stored
procedures; they cannot execute any statements. Db_securityadmin members can change
permissions, object ownership, roles, and role membership; they can execute system-stored
procedures to manage ownership and membership and GRANT, DENY, and REVOKE statements.
Members of the db_ddladmin fixed database role can execute all DDL statements excluding
GRANT, DENY, and REVOKE.
Db_backupoerator members can execute CHECKPOINT, and
BACKUP statements as well as DBCC statements addressing backup.
Db_datareader role
members can execute SELECT and READTEXT statements on tables in the database. Members
of db_datawriter role can respectively execute INSERT, UPDATE, DELETE, and UPDATETEXT
Database Security Policies and Procedures for DMCS 77
statements. Members of db_denydatareader are denied SELECT and READTEXT permissions on
all of the database tables.
Db_denydatawriter members are denied INSERT, UPDATE,
UPDATETEXT, and DELETE permissions on all tables.
Aside from the permissions that come with fixed database roles, other privileges, such
as create table, create view, create procedure, create function, create default, create rule,
backup database, and backup log can be granted. In Enterprise Manager, these permissions
can be granted by following these steps:
1. Open Enterprise Manager and expand server hosting the database in which
permissions are going to be granted.
2. Open Properties dialog box.
3. Click on Permissions and put checkmarks in the desired user or role permission
columns.
4. Click OK.
Granting/denying permissions
Database Security Policies and Procedures for DMCS 78
Permissions can be revoked by following the above steps with the difference that
instead of placing checkmarks, they need to be removed. To deny permissions, follow the same
steps used for granting and revoking permissions.
Privileges for accessing database objects individually can be granted. Table/object
privileges are GRANT, REVOKE, and DENY. These permissions can be granted by taking the
following steps from the User or the Object:
1. Open Enterprise Manager.
2. If granting from the User, expand the database in which the user and the object
reside and select the desired user. If granting from the Object, expand the
database in which the object and the user reside and select the desired object.
3. Open Properties dialog box and click on Permissions.
4. Place checkmarks on the desired object/user.
5. Click OK.
6. Click OK gain
Revoking and denying permissions can be done by repeating the steps for granting
permissions and removing the checkmarks.
“Microsoft SQL Server also gives you the ability to specify object permissions on
individual columns,” (Afyouni, Database Security and Auditing, 2005, p. 124). This makes it
possible for selected fields of database tables, not the whole table, to be hidden from some
users while available to others. Column-level privileges are granted and revoked by following
the steps for granting/revoking object-level privileges. This feature is useful for the Disaster
Database Security Policies and Procedures for DMCS 79
Management Communication System, having in mind the nature of information contained in
the database and the number and position of users accessing the database.
Roles are used for an easier organization and administration of privileges. Instead of
assigning privileges to users, they are assigned to roles, which in turn are assigned to users.
First, a role must be created, then privileges are assigned to it, and then that role is assigned to
selected users. Three types of roles can be created in SQL Server: fixed server, fixed database,
and user defined. User defined role are divided into two categories: standard and application.
Standard roles have members and can be granted or denied permissions. Application roles do
not have members and need to have passwords; they are activated by applications and are
used to verify authorization for these applications. In order to secure a database application
through application roles, the following steps need to be taken: crate the application role;
assign permissions to the role; create a connection to the sever; and activate the application
role. Only members of sysadmin, db_owner, and db_securityadmin can create user-defined
roles by following the steps:
1. Open Enterprise Manager and expand the desired database
2. Click on Roles tab
3. Click on New Database Role from the Action menu
4. In the Name box, type the name of the role
5. Click OK
Database Security Policies and Procedures for DMCS 80
Creating a new application role called db_audit
Securing a system requires protecting it from external as well as internal attacks. “The
security threat of an attack from someone within the company is higher than the threat from
someone outside,” (Afyouni, Database Security and Auditing, 2005, p. 137). With this said, user
administration and the development of its aspects (profiles, passwords, privileges, and roles)
need to follow the suggested best practices:

Always store passwords encrypted as opposed to in plain text

Change passwords frequently

Ensure that passwords are eight characters or longer

Create passwords that are complex enough to prevent hackers from breaking
them (including special characters, length, account lockout, reuse)

Never write down, share, type in an e-mail, or give passwords over the phone

Avoid granting privileges directly to users, instead use roles

Always report the compromise or loss of a password

Always report violations to roles, privileges, profiles, or passwords
Database Security Policies and Procedures for DMCS 81

Use Windows Integrated security for securing SQL Server
Disaster Management Communication System Requirements
Windows integrated authentication should be used in the DMCS for granting users with
access to the system because it encrypts user names and passwords before sending them
across the network and therefore provides optimal protection and reliability.
User passwords should be at least eight characters long, containing a combination of
numerical and alphabetical characters. Accounts should be locked after the third unsuccessful
logon attempt and left locked for thirty minutes. Passwords should be stored encrypted at all
times. Users should be encouraged not to share passwords and not to provide them over the
phone, e-mail, and never to keep them written down especially in their offices. Users should be
obligated to inform administrators whenever their passwords are stolen or lost.
Password policies for the DMCS
Database Security Policies and Procedures for DMCS 82
Account lockout policies for the DMCS
For maintaining and working with the DMCS, the following types of fixed database roles
should are utilized and all employees and users of the system are added to the appropriate
type. Privileges should be granted to users through roles and not individually.
Database Role
Db_owner
Users and privileges
Database creators; giving them the ability to
build databases, create, alter, and drop objects.
Db_securityadmin
Database administrator; enabling them to
manage roles and permissions
Db_datareader
Analysts; allowing them to view table contents
Db_datawriter
Data entry employees; allowing them to add and
update information
Db_denydatareader
Clients; preventing them from accessing
confidential information
Da_denydatawriter
Clients, analysts; preventing them from altering
data in order to keep its integrity intact
Database Security Policies and Procedures for DMCS 83
Database creators need to be assigned to the db_owner role in order for them to
develop new databases and work with existing ones while having the necessary permissions
(create, alter, and drop). Database administrators should have privileges associated with the
db_securityadmin (grant, deny, revoke) role for them to set up and manage roles and
permissions. Analysts should be assigned to the db_datareader role, which allows them to
execute SELECT and READTEXT statements against tables in the database in order to obtain the
necessary information. db_datawriter privileges are required by data entry employees in order
to be able to execute INSERT, UPDATE, DELETE, and UPDATETEXT statements to update the
database. All clients need to be members of the db_denydatareader role, which will prevent
them from executing SELECT statements on the database and view confidential information. To
avoid unwanted and random changes to the database, both, clients and analysts need to be
assigned to the db_ denydatawriter role that will not allow them to alter or delete any objects
in the database.
User permissions in the DMCS need to be changed whenever employees’ position and
duties change. For example, a former data entry employee who only had write permissions
becomes a system administrator. The new position requires that the same employee be
granted new permissions to control the server and databases. Object permissions on individual
columns should be implemented for the DMCS, this SQL Server option would come in use when
a certain column from a table (such as social security number) needs to be available to
employees but not clients.
confidentiality.
Keeping that information hidden from clients protects its
Database Security Policies and Procedures for DMCS 84
Part V Database Application Security Models
Database application security models include security modes and various types of
applications that are used for securing data and protect access at the table level. For security
to be effective, all application users need to have their own database account and their own set
of assigned privileges.
The two main security models used are Access Matrix Model and Access Modes Model.
Table 5-1 illustrates the way in which the access matrix model represents privileges. Examples
of objects include tables, views, and procedures. Subjects represent users, roles, privileges, or
modules. The intersection of rows and columns in the table correspond to the access the
subject has on the object.
Subject
1
Subject
2
Object 1
Object 2
Object 3
read/write
write
admin
read
read
NONE
Table 5-1: Access matrix security model
Access modes model is divided in two modes – static and dynamic. Table 5-2 illustrates
the static access mode and Table 5-3 illustrates the dynamic access mode. The level, in this
case one through four, represents the degree of access. Subjects have access to their own level
of access and all lower levels.
Database Security Policies and Procedures for DMCS 85
Access
Mode
use
read
update
create
delete
Level
Description
1
2
3
4
4
Use an object without modifying it.
Read the contents of an object.
Modify the contents of an object.
Add instances to an object.
Remove instances of an object.
Table 5-2: Static access modes
Access
Mode
Level
grant
1
revoke
delegate
abrogate
1
2
2
Description
Grant any static access mode to any other
subject.
Revoke a granted static access mode from a
subject.
Grant the grant privilege to other subjects.
Grant the revoke privilege to other subjects.
Table 5-3: Dynamic access modes
Applications, programs that perform specific functions, help us determine where to
enforce data security. “Data security enforcement is required where data resides in the
database,” (Afyouni, Database Security and Auditing, 2005, p. 144). Some of the application
types are client/server applications, web applications, and data warehouse applications.
Client/server applications’ components are user interface, business logic, and data
access. An application can include any one or a combination of these components, which lay
between the client and the server. Client/server applications function in the following way: a
user sends a request to the server using the user interface component (screens, codes, and
reports), next the server responds by sending an answer to the request. In this type of
application, the code and the data reside in one physical and logical place. In a client/server
Database Security Policies and Procedures for DMCS 86
application, the security module is embedded in the data access module, which retrieves and
manipulates data.
Web applications are a type of a client/server application with the difference that it uses
the Web, a HTTP protocol, to connect to the server. The components of a web application are
web browser, web server, application server, business logic, and database server. Another
difference between the client/server and the web applications is that all components of the
client/server application reside in one server and the components of the web application are
most often on different machines.
This kind of architecture is projected to improve
performance.
Data warehouse applications include various types of data from different databases that
are used for supporting decision-making of executive management. One database server
contains all application data, which when extracted is transformed into a warehouse model.
The data warehouse is after that accessed by online analytical processing (OLAP) and is used for
producing reports.
Security models and their different types of applications combine to form an application
security model. Types of application security models are database role based, application role
based, application function based, application role and function based, and application table
based. Database role based security model requires that all end users are assigned database
roles that give them privileges for accessing application tables. The roles determine what
privileges the users have. A proxy user can only activate the assigned roles. Tables used in this
type of security model are application_users, which stores end users and their encrypted
passwords and application_user_roles, which contains all roles and their privileges. In SQL
Database Security Policies and Procedures for DMCS 87
Server, application roles are created in the database and then activated at the time of
authorization. By default, the application roles are inactive and can be activated by any user by
executing the SP_SETAPPROLE system-stored procedure. After a user activates an application
role, he/she is working in the security context of that role. An application role can be created
using Enterprise Manager by following these steps:

Open Enterprise Manager.

Expand the desired database, right click in the right pane, and select New
Database Role.

Type a name in the name box.

Under Database role type, select Application Role.

Enter a password and clock OK.
Security models based on application roles is another method for organizing and
managing user privileges. Application roles are specific to business roles. An application role is
assigned to users giving them application privileges to read/write certain modules from the
application. This type of security model does not allow any changes to roles for security
reasons. In SQL Server, a database user executes stored procedures and performs all database
operations. Tables used in a security model based on application roles are application_users,
used for storing and maintaining all users and their encrypted passwords, and
application_roles, used for storing all roles defined by the application and the privileges
associated with them.
Application function based security model divides the application into functions, which
perform certain tasks. Tables used in this type of security model are application_users that
Database Security Policies and Procedures for DMCS 88
stores users and their encrypted passwords, application_function used for storing all logical
functions of the application, application_function_privileges containing all function privileges,
and application_user_functions storing all end users and their application function privileges.
Security model based on application roles and functions combines the role and the
function security models. The application is divided into functions and roles are assigned to
them. This security model offers the greatest flexibility for application security implementation.
The tables used are application_users used for storing all users and their encrypted passwords.
Application_user_roles store roles assigned to users and application_roles contain roles defined
by application. Application_functions are used for storing logical functions of the application.
Application_role_functions
store
functions
and
privileges
assigned
to
each
role.
Application_function_privileges are used for storing all privileges associated with each function.
Application table based security model is the only model that grants privileges based on
tables. In SQL Server, the end user needs authorization on application functions, which is done
in the database.
application_users
Tables included in the security model based on application tables are
storing
all
users
along
with
their
encrypted
passwords,
application_user_tables used for storing tables that are assigned to users, application_tables
containing all tables belonging to be application, and application_table_privileges that stores all
privileges that specify access to a specific table.
The feature that all of the described security models have in common is that they all
depend on the application to authenticate users by using a table that contains all end users and
their encrypted passwords.
Database Security Policies and Procedures for DMCS 89
Disaster Management Communication System Requirements
For the DMCS, database role based application security would be the most appropriate
model because it suggests that all users have database roles assigned, giving them privileges to
read, write, or read/write application tables. Users would be able to utilize any privileges
assigned to their role. This would give the right amount of privileges to each user according to
their job. All users are assigned specific database roles, limiting access to certain pages and
tables to administrators only. Every page of the application can be assigned a security level by
specifying what role is required for accessing the page. This security feature of the .aspx pages
can be implemented to allow access to Adm_Missing.aspx web page to administrators only:
<system.web>
<location path="Adm_Missing.aspx" >
<system.web>
<authorization >
<allow roles="Administrators"/>
</authorization>
</system.web>
</location>
</system.web>
When creating the .aspx pages, all fields should have limited number of characters
allowed, in order to decrease the vulnerability of the application and the possibility of sql
injections. The following figure shows the MaxLength for a certain textbox is limited to a
certain number.
Database Security Policies and Procedures for DMCS 90
In the DMCS, regular expressions are used for validating the fields and for text analysis.
“Combining regular expressions with SQL provides many alternative means of processing data.
Using these functions can reduce the amount of time required to add functionality to your
database as well as make the system more maintainable,” (Banister). Verifying date format for
the system is done using the isdate() function. This function checks the format and data type of
the entered information and returns one when the entered information is valid and zero when
invalid.
Example of a valid entree:
Database Security Policies and Procedures for DMCS 91
select isdate(‘7/22/2005’)
returns: 1
Examples of invalid entrees:
1) select isdate(‘12/4/2005’)
returns: 0
2) select isdate(‘17/11/2005’)
returns: 0
For authorization and securing the transactions that take place in the system, Hypertext
Transfer Protocol Secure (HTTPS) is used. When HTTPS is used, information is being encrypted
with a digital certificate before it is sent across the network, instead of sending it in plain text.
This is a necessary step for the DMCS, when handling confidential information.
Part VI Virtual Private Database
In today’s business world, different companies share the same vendor’s database. All
companies have unique needs and requirements for the database. For that database to be
efficient and meet these requirements, it has to be adjusted for each company. Privacy and
security for each company individually need to be taken into consideration. When more than
one entity uses the same database, it is important that data belonging to a certain entity is
visible and available only to that particular entity. This is handled by virtual private databases
(VPD), which utilize row-level and column-level security. “VPD controls data access at the row
or column level,” (Afyouni, Database Security and Auditing, 2005, p. 177). Access to the shared
Database Security Policies and Procedures for DMCS 92
database schema is restricted to only data belonging to a given entity. That data is saved in
tables from the shared database. Each entity can only view and modify their own data and
access to other entities’ data is denied. The two main reasons for using VPD are that the
security requirements of a security policy demand that data access be restricted at the row or
column level and that the same database is used by numerous unrelated entities. Figure 6-1
illustrates VPD.
Figure 6-1: Virtual private database
In SQL Server VPDs are not supported therefore row and column access is implemented
by using the VIEW database object. VIEWS are used to restrict access and manipulation if data
residing in the database tables, VIEWS can hide row and columns from users. For more detail
of row-based security, a combination of application table-based security model and application
function-based model can be implemented. Access levels used are 0 – no access; 1 – select; 2 –
select, insert; 3 – select, insert, update; 4 – select, insert, update, delete, and 5 – administrator
access. For this purpose, a new column needs to be added to each table to capture the access
level of a certain row.
Requirements for the Disaster Management Communication System
Database Security Policies and Procedures for DMCS 93
The Disaster Management Communication System is used as an example to explain how
implementation of VPD is done by referencing the following steps:

Alter the CLIENT table to include ACCESS CONTOL column:
use disaster_management
alter table client
add access_level integer
go

Create APPLICATION USERS table, setting the default access level at 0, or no
access:
create table app_user_access
(username varchar(120) not null primary key,
access_level tinyint not null default 0)
go
Database Security Policies and Procedures for DMCS 94
Creating app_user_access table

Create stored procedures that return data and revoke privileges on tables:
create procedure Client_sel
as
select client_ID, first_name, last_name, street, city, state, zip, phone,
from client
where access_level > 0
and access_level <= (select isnull(access_level, 0)
from app_user_access where username = user)
go
Database Security Policies and Procedures for DMCS 95
Creating client_sel stored procedure

Apply privileges to users:
grant execute on Client_sel to tom
grant execute on Client_sel to mary
go

Create stored procedures to allow insert, update, and delete functions:
create proc Client_del (@id int)
as
declare @level tinyint;
Database Security Policies and Procedures for DMCS 96
select @level = (select is null(access_level, 0)
from app_user_access where username = user);
if @level >= 4 begin
delete from client where client_id = @id and access_level >= @level;
end
go
Creating the client_del stored procedure

Apply privileges to user:
Database Security Policies and Procedures for DMCS 97
grant execute on Client_del to tom
grant execute on Client_del to mary
go
For the implementation of column-level security in SQL Server, two new tables need to
be created. The first table (app_tables) stores a list of all tables and the second table
(app_columns) stores a list of each column within each table as well as the access level for each
column.

Create app_tables table:
use disaster_management
create table app_tables
(table_id int not null primary key,
table_name varchar(120) not null)
go
Database Security Policies and Procedures for DMCS 98
Creating the app_tables for the DMCS

Create app_columns table:
use disaster_management
create table app_columns
(column_id int not null primary key,
table_id int not null references app_tables(table_id),
column_name varchar(120) not null,
access_level tinyint not null default 0)
Database Security Policies and Procedures for DMCS 99
go
Creating the app_colmns table for the DMCS

Implementing column-level security by granting column privileges to a user,
in this case allowing Mary to update the client_status column from the Client
table:
grant update on client(client_status) to mary
To verify that access to each column is being controlled, access to tables should be
performed with stored procedures. VPD strengthens the application security because the
access policy is attached to the table and there is no way to go around it. For the Disaster
Database Security Policies and Procedures for DMCS 100
Management Communication System VPD can be helpful for restricting warehouse employees
from accessing client personal information for example, because this information does not
belong to them and it is irrelevant to their job.
The use of virtual private data allows the same database to be used by multiple entities
without the risk of one entity viewing or manipulating data belonging to another entity. All
entities are entitled to access only their own data, which is accomplished by implementing rowand column-level security.
The following screens show the roles, access, and permissions that the SA of the DMCS
has on the server.
Database Security Policies and Procedures for DMCS 101
After opening the SQL Server Management Studio, in the Object Explorer expand the
Security folder. Under Logins, click on SA.
The SA has public and sysadmin roles on the server.
Database Security Policies and Procedures for DMCS 102
The SA has access to the master, model, msdb, and tempdb databases and is a member
of the public role for the disaster_managenet database.
Database Security Policies and Procedures for DMCS 103
The SA is granted the permission to connect to the database engine.
Part VII Database Auditing Models
For database security to be complete and effective, database auditing needs to be an
inseparable part of it. Database auditing is a process that ensures that security measures are
applied and working properly according to government regulations and the company’s policy.
It examines documents, processes, data, and activities and validates them according to specific
requirements. “No matter what security measures you put in place, you must plan ahead with
Database Security Policies and Procedures for DMCS 104
an auditing procedure to understand if your security measures are working or not,” (Afyouni,
Database Security and Auditing, 2005, p. 217). In order to avoid violations, it is always a good
practice to consider database auditing as the last step of database security. The auditing
process needs to be applied to each person, document, and system in order to be effective and
complete.
Database auditing requirements suggest that the audit process should be selective,
comprehensive, and non-invasive. Selective audit means that details only for a specific entity,
which requires auditing, are obtained. Selective audit can be performed based on database,
tables, users, access type, or success/failure. Comprehensive audit captures the entire scenario
of auditable information. This requires the collection of data from different environments, such
as the web and the application server, as well as multiple data access/update types (insert,
delete, update, and select). The audit needs to monitor and capture the state of data before
and after modifications. It needs to record a copy of all data that has been accessed and the
number of row that have been accessed.
Non-invasive database audit entails that the
performance of the system is not affected by the auditing process.
The components of database auditing are people, objectives, procedures, audited
entities, and database. Each one of the components needs to be included in the auditing
process to ensure completeness and efficiency of the process. The auditing process begins
after the system is implemented and is in production to confirm that it complies with policies,
laws, and standards. The first step of the process is to recognize what the objectives are as well
as plan a procedure for executing the process. Second, according to the objectives review,
verify, and validate the system. If any deviation from the objectives is discovered, they should
Database Security Policies and Procedures for DMCS 105
be documented. The final step is to document the results of the audit and according to these
results to recommend any changes that should be done to the system.
Establishing objectives on what the audited entity is measured against should be a part
of the development process of an entity. The reasons for establishing and documenting
objectives are complying, informing, planning, and executing. Database audit inspects all of the
following: data integrity, data confidentiality, data changes, data structure changes, application
users and roles, , access control, change control, physical access, database or application
availability, and auditing reports.
There are different audit classifications, specific to every industry and business. Internal
audit is performed by a member of the company that is being audited. The goal of this kind of
audit is to make sure that all objectives are met because of a planned audit, in the case of an
internal incident to investigate the system, and to investigate a problem by request from an
external entity. An internal audit assesses risk exposures of the organization related to

reliability and integrity of financial and operational information

effectiveness and efficiency of operations

safeguarding of assets

compliance with laws, regulations, and contracts
External audit is always a planned and scheduled audit, and is conducted by someone
outside the audited entity, and usually hired by the government. The purpose of the external
audit is to investigate operational or financial state of a company by request from the
government or because of suspicious activities and to verify that all objectives are met.
Database system audits are most often automatic. The external audit provides an independent
Database Security Policies and Procedures for DMCS 106
opinion on the organization’s status in a chronological report. An automatic audit is conducted
completely by machines and produces reports and logs, which are later used by administrators
to verify the integrity of the system and discover any suspicious activities. Some systems utilize
artificial intelligence to read these reports and take preventive or corrective actions
accordingly. An audit conducted only by humans is a manual audit. Data for the audit is
collected through interviews, from documents and observation. Finally, an audit that combines
manual and automatic audits is called a hybrid audit, which is the most often used one.
Different types of audit are conducted according to the business being audited.
Financial audit verifies that all financial transactions are registered and comply with the law. A
security audit checks the security of a system to make sure it is at an appropriate level.
Compliance audit verifies compliance with government regulations, industry standards, and
partner/client policies. The operational audit ensures that operations are working according to
the company’s policies.
An investigative audit verifies the integrity of a system and is
conducted by request or as a response to an incident within the company. Product audit
guarantees that the product meets the standards in the industry by checking how it was
produced.
A preventive audit identifies any possible problems by making sure business
operations are performed according to specifications.
Using SQL Server Audit is one way to implement auditing. With the built-in features,
auditing can be done at the database level or at the instance level. Another benefit of the builtin features is that various activities can be audited, such as data modeling language and data
definition language. The activities of the database administrator can also be audited by an
outside entity. The built-in auditing feature of SQL Server allows for select, insert, update,
Database Security Policies and Procedures for DMCS 107
delete, and execute statements for individual users to be recorded. Another option for auditing
is to build a mechanism for auditing. There are different auditing models, which have the same
process of activities. The main idea of these methods is to check whether the user, action, and
the object from a given action are registered in auditing repository. Figure 7-1 illustrates a
flowchart of data auditing.
Figure 7-1: Data auditing flowchart
If a user, action, or the object from a given action is found to be registered, then the
following information is documented: state of the object before the action as well as the time
Database Security Policies and Procedures for DMCS 108
of the action, full description of the action that was performed, and the name of the user who
performed the action. Simple Auditing Model 1 keeps chronological record of audited entities,
such as users, tables, and columns, along with the actions (DML transaction or logon/logoff
time) performed by or on these entities. Model 1 registers all audited entities in the audit
model repository. That information is stored in a control column and is used by the auditing
process to determine if the user, action, and object need to be audited.
Figure 7-2: Data model of a repository for simple auditing model 1
Simple Auditing Model 2, which is similar to Model 1, only stores the column value
changes and not the action performed on the data. In this way, the amount of data being
stored in the database is decreased.
Database Security Policies and Procedures for DMCS 109
Figure 7-3: Data model of a repository for simple auditing model 2
Advanced Auditing Model offers a user interface, which makes it more flexible and easy
to use. As opposed to Simple Auditing Model 2, this model stores all entities that can be
audited – users, actions, tables, and columns. Auditing all the entities is a feature provided by
this model, which system built-in feature do not often support. The Advanced Auditing Method
would be the best choice for the Disaster Management Communication System because of the
details and completeness it offers by keeping a record of all auditable entities.
Database Security Policies and Procedures for DMCS 110
Figure 7-4: Data model of the repository for an advances auditing model
Historical Data Model is a model normally used in financial applications. It stores the
entire row from a table when a DML transaction is performed. The stored state of the row is
from before the change or deletion.
Figure 7-5: Data model of a repository for a historical auditing model
Database Security Policies and Procedures for DMCS 111
Auditing Application Actions Model stores certain operations and actions that may need
to be audited.
Figure 7-6: Data model of a repository for auditing application actions
Database auditing can be beneficial to any organization for several reasons:

it enforces company policies and government regulations and laws

lowers the possibility of security violations, identifies security gaps and
vulnerabilities

observes and evaluates operations of the audited entity

provides a sense of state of security and confidence in the audited entities identifies
and removes doubts

makes the audited company more accountable

develops controls which can be used for purposes other than auditing
Auditing does have many benefits but when conducted more frequently than necessary
it could have some negative aspects, such as problems in performance because of
preoccupation with the audit, production of too many reports, interruptions of the regular
operations, and consumption of resources including cost from unavailability of the system.
Database Security Policies and Procedures for DMCS 112
Requirements for the Disaster Management Communication System
Objectives of the auditing process for the DMCS are complying, informing, planning, and
executing. The audit needs to indentify regulations, laws, and standards of the industry and the
government, which must be obeyed. All parties involved in the audit need to be aware of these
regulations, laws, and standards. All auditing procedures should be planned and documented.
The auditing entity needs to be evaluated and reviewed.
Several possible problems can occur for the DMCS during an audit. First, auditors may
not always have full access to the system because of unawareness of user names or restriction
on certain files. Second, when conducting an audit with computers there may be compatibility
problems. When computers are used for auditing, there is a possibility of files being damaged.
Lastly, when audit is conducted manually, auditors have to enter data into computers, which
increase the time span of the auditing process.
The Disaster Management Communication System would benefit the most from the
automatic audit, which should be performed periodically to produce reports for system
integrity evaluation.
For the DMCS, an auditing model that provides a detailed report should be
implemented. All auditable entities, such as users, actions, columns, and tables should be
inspected and a record should be kept for keeping the system secure and in compliance. The
audit process should also help administrators be aware of how the system is performing and be
prepared for proactive or corrective actions.
Database Security Policies and Procedures for DMCS 113
Part VIII Application and Database Activities Auditing
Database auditing in SQL Server is implemented through triggers. There are two
methods for auditing data manipulation language (DML). The first one, DML changes, is usually
used by companies with sensitive data. Figure 8-1 illustrates the DML changes auditing
architecture. This method records all column values before or after the DML statement is
applied to the table. This audit can be executed on two different levels- row level and column
level. The row-level auditing records all values from all columns in a table and the column-level
auditing only records values prior to the modification. This type of auditing would be
appropriate for the Disaster Management Communication System considering the nature of its
data.
Figure 8-1: DML changes auditing architecture
The second method for auditing DML, DML action, tracks all activities performed on a
table and records actions before the DML statement is applied to the table. Figure 8-2 presents
the DML action auditing architecture.
Database Security Policies and Procedures for DMCS 114
Figure 8-2: DML action auditing architecture
Whenever a DML statement is executed, trigger mechanisms (stored procedures) are
automatically activated. The purpose of the triggers is to capture what statements are being
executed according to criteria specified in the trigger condition. In SQL Server, triggers are
created using the CREATE TRIGGER DDL statement:
create trigger audit_client
on {client}
[with encryption]
{
{{for | after | instead of} {[insert] [,] [update] [,] [delete]}
as
[{if update (address)
[{and | or} update (client_status)]
sql_statement
}
}
Database Security Policies and Procedures for DMCS 115
Trigger conditions are used to set criteria based on which the trigger executes.
UPDATE() and COLUMN_UPDATED() are the two methods used for determining what columns
are being updated. We can use UPDATE(column) in an IF statement to check whether the
specified column is being updated or inserted into. If the column is being modified the
statement returns TRUE. With COLUMNs_UPDATED() in an IF statement we can determine
which columns are being modified.
When using triggers we have to create two logical tables to capture data. DELETED
table stores values from before the DML update or delete statements were applied, while the
INSERTED table stores the values, which are result of the DML update or insert statements.
There are certain statements that are not allowed in triggers, such as alter database, create
database, disk init, disk resize, drop database, load database, load log, reconfigure, restore
database, and restore log.
When a company needs to keep track of modified or deleted rows, the historical model
is used. For this auditing to be implemented, a history table needs to be created:
use disaster_management
create table client_history
(history_id not null primary key,
client_id int,
first_name varchar(20),
last_name varchar(20),
street varchar(20),
city varchar(20),
Database Security Policies and Procedures for DMCS 116
state varchar(2),
zip int,
phone int)
go
After creating the HISTORY table, which saves values in a state they were before
modification or deletion, we can create a trigger on the Client table in order to insert the
original values into the HISTORY table:
create trigger Audit_client
on client
for update, delete
as
insert into client_history (client_id, first_name, last_name, street, city,
state, zip, phone)
select * from deleted;
go
The application actions model audits changes to data as well as actions performed
within the application. A table needs to be created to store all the changes.
Database activities can be selectively audited and trails of these activities can be created
and kept for further reference. In addition to DML statement auditing, DDL (data definition
language - create, alter, drop commands) statements and database events can be audited as
well. The auditing is performed through triggers. “Triggers would track data changes, grant
Database Security Policies and Procedures for DMCS 117
privileges, and create database objects,” (Afyouni, Database Security and Auditing, 2005, p.
300).
SQL Server 2008 includes the Profiler tool that provides a user interface for auditing
events, such as:

End user events – SQL commands, login/logout, enabling of application roles

DBA events – DDL statements, configuration

Security events – grant/revoke/deny, login user/role add/remove/configure

Utility events – backup/restore/bulk insert/bcp/dbcc commands

Server events – shutdown, pause, start

Audit events – add audit, modify audit, stop audit
The Profiler also provides the opportunity to adjust the audit for each event individually.
We can inspect for any of the following:

Date and time of the event

User initiating the event

Type of event

Success or failure of the event

Origin of the event

Name of object being accessed

Text of the SQL statement
The profiler can be used for auditing only for queries that run while the profiler is
running. It can track how many queries are being executed, how much time they take, and
Database Security Policies and Procedures for DMCS 118
which database is executing which query. Profiler can perform an audit on the user level or an
audit by query type. The disadvantage of using the SQL Server Profiler is that it can affect query
performance.
Audit needs to be enabled in SQL Server before any security audit activity can be
performed. Security events can be audited on success, failure, or both. To enable audit in
Enterprise Manager:
1. In Enterprise Manager, expand the desired SQL Server group
2. Right-click on the desired server
3. Click on Properties
4. On the security tab select the desired security level
To start a new audit trace, open Profiler from the Tools menu in Enterprise Manager and
click on New from the File menu. For the new trace, the following should be provided on the
General tab:

A name for the new trace

The server which is going to be audited

The base template

Where audit data should be saved (a file or database table)

A stop time unless the trace needs to run indefinitely
The events that are going to be audited in the trace, as well as their category, are
specified on the Events tab. For auditing DDL statements, again on the Events tab, from the
Objects category select Object: Created and Object: Deleted. This will audit every CREATE and
Database Security Policies and Procedures for DMCS 119
DROP statements. Operations performed on the database can be audited by selecting events
from the Database category on the Events tab. SQL Server can audit database errors by
selecting the events from the Errors and Warnings category on the Events tab of the Trace
Properties window.
Auditing is the final part of database security and ensures that the system is working the
way it is supposed to; and that government regulations and company policies are observed. A
drawback of auditing is the impact it has on performance. Auditing can be resource and time
consuming and it needs to be performed only when needed and with a reasonable number of
audited objects, or the process could have a serious impact on the system performance. It is
suggested that audited information is kept manageable in order to “minimize performance
impact on the execution of audited statements and the size of the audit trail, making it easier to
analyze and understand,” (Huey, 2007). This means that we should weigh every reason for
auditing and then choose an appropriate auditing strategy that is going to audit the minimum
but sufficient number of entities and is not going to be overload for the system. Another
guideline for auditing is to audit suspicious database activities. This might require auditing a
broader area (more users, objects) at first because we do not always know where to focus.
Second, the audit trail should be protected “so that audit information cannot be added,
changed, or deleted without being audited,” (Huey, 2007).
Requirements for the Disaster Management Communication System
For auditing changes to data and actions performed within the application, the
application actions model should be used. A table called service_request, which is to store
changes, needs to be created as follows:
Database Security Policies and Procedures for DMCS 120
use disaster_management
create table service_request
(service_id int not null primary key,
client_id int not null,
request_date datetime,
deadline datetime)
go
The next step of implementing the application actions model is to create the audit
tables:
create table app_audit_actions
(action_id int not null primary key,
action_des varchar(255))
go
create table app_data_dictionary
(class_id int not null primary key,
class_desc varchar(128))
go
create table app_audit_trial
(audit_trial_id int not null primary key,
class_id int not null references app_data_dictionaty (class_id),
Database Security Policies and Procedures for DMCS 121
action_id int not null references app_audit_actions (action_id),
object_id int not null,
reason varchar(255) not null,
CTL_UPD_DTTM datetime not null default getdate(),
CTL_UPD_USER varchar(128) not null default user)
go
Auditing database activities is critical for the DMCS. It needs to track and record any
changes made to the database. For example, table change events, such as drop table and alter
table can be tracked using the following approach:
create trigger tr_tableChange
on disaster_management
for drop table, alter table
as
begin
print ‘dropping table not allowed’
end
Application and database activities audits help system administrators keep track of the
actions performed within the system and monitor for any unauthorized processes being
executed that can potentially harm the integrity of the database. Audits for the DMCS should
be performed regularly in order for the system to remain intact and secure.
Database Security Policies and Procedures for DMCS 122
References
Afyouni, H. A. (2005). Database Security and Auditing.
Beauchemin, B., Berglund, N., & Sullivan, D. (2005, June 28). SQL Server password policies and
credentials. Retrieved June 06, 2010, from searchsqlserver:
http://searchsqlserver.techtarget.com/news/1102101/SQL-Server-password-policiesand-credentials
Buecker, A., Andres, P., Paisley, S., Reed, B., dos Reis, R. A., & Srihari, P. (2008, July). Enterprise
Security Architecture using IBM ISS Security Solutions. Retrieved May 20, 2010, from
http://www.redbooks.ibm.com/redbooks/pdfs/sg247581.pdf
Byfield, B. (2005, November 22). Nine principles of security architecture. Retrieved May 20,
2010, from http://www.linux.com/archive/feed/49803
Fogie, S. (2004, January 01). Security Reference Guide. Retrieved May 25, 2010, from informIT:
http://www.informit.com/guides/content.aspx?g=security&seqNum=17
How to: Create a SQL Server Login. (n.d.). Retrieved June 02, 2010, from msdn:
http://msdn.microsoft.com/en-us/library/aa337562.aspx
Huey, P. (2007, July). 7 Auditing Database Activity. Retrieved July 07, 2010, from
http://www.filibeto.org/sun/lib/nonsun/oracle/11.1.0.6.0/B28359_01/server.111/b283
37/tdpsg_auditing.htm#BCGJJBAA
Page, R. (2007, February 20). SQL Server Security Cribsheet. Retrieved June 05, 2010, from
simple-talk: http://www.simple-talk.com/sql/database-administration/sql-serversecurity-cribsheet/
Peterson, G. (2007). Security Architecture Blueprint. Retrieved May 21, 2010, from
http://arctecgroup.net/pdf/ArctecSecurityArchitectureBlueprint.pdf
Database Security Policies and Procedures for DMCS 123
Redman, M. (2008, November). SQL Server Best Practices – Implementation of Database Object
Schemas. Retrieved June 03, 2010, from msdn: http://msdn.microsoft.com/enus/library/dd283095(SQL.100).aspx
Secure Computing: Best Practices for Windows XP. (2009, March 10). Retrieved May 25, 2010,
from Stanford University:
http://www.stanford.edu/group/security/securecomputing/xp.html
Microsoft. Security Overview for Database Administrators. (2008, July). Retrieved November 8,
2010, from Microsoft: http://www.microsoft.com/sqlserver/2008/en/us/wp-sql-2008security.aspx
The Interactive Security Manual. (n.d.). Retrieved May 20, 2010, from http://www.securitymanual.com/
Thomas, J., & Catanzano, J. (2005, November). SAP with Microsoft SQL Server 2005: Best
Practices for High Availability, Maximum Performance, and Scalability. Retrieved May
04, 2010, from www.microsoft.com:
http://www.microsoft.com/sqlserver/2005/en/us/white-papers.aspx
Oracle. Virtual Private Database. Retrieved June 18, 2010, from Oracle:
http://www.oracle.com/technology/deploy/security/database-security/virtual-privatedatabase/index.html
Database Security Policies and Procedures for DMCS 124
Appendix B
Installation of SQL Server 2008
19
SQL Server 2008 running.
Download