Database Security Control Measures Systems, 5 Ed., Pearson, 2007, Chapter 23
Database Security Control Measures Systems, 5 Ed., Pearson, 2007, Chapter 23
1
Access Protection, User Accounts, and Database Audits (Cont 1)
log file (audit file) to examine all accesses and operations applied to the
database during a certain time period.
2
Discretionary Access Control Based on Granting and Revoking
Privileges (Cont 1)
3
Mandatory Access Control (Cont 1)
R(A1,C1,A2,C2,..,An,Cn,TC)
A user with security clearance S would see the same relation shown in
Figure 23.2(a), since all tuple classifications are less than or equal to S.
4
Mandatory Access Control (Cont 2)
5
Mandatory Access Control (Cont 3)
UPDATE EMPLOYEE
SET JobPerformance=’Excellent’
WHERE Name=’Smith’
Since the view provided to users with security clearance C (see Figure
23.2(b)) permits such an update, the system should not reject it; otherwise,
the user could infer that some non-null value exists for the JobPerformance
attribute of ‘Smith’ rather than the null value that appears. This is an
example of inferring information through what is known as a covert channel,
which should not be permitted in highly secure systems. However, the user
should not be allowed to overwrite the existing value of JobPerformance at
the higher classification level. The solution is to create a poly-instantiation
for the ’Smith’ tuple at the lower classification level C, as shown in Figure
23.2(d). This is necessary since the new tuple cannot be filtered from the
existing tuple at classification S.
The basic update operations INSERT, DELETE, UPDATE must be modified
to handle this and similar situations, but we do not consider these issues
here.
6
Role-Based Access Control (RBAC)
RBAC emerged in 1990s as a proven technology for managing and
enforcing security in large-scale enterprise-wide systems. Its basic notion is
that permissions are associated with roles, and users are assigned to
appropriate roles. Roles can be created using the CREATE ROLE and
DESTROY ROLE commands. The GRANT and REVOKE commands
discussed previously can then be used to assign and revoke privileges from
roles.
Figure 1 is taken from [Osborn S., Sandhu R., Munawer Q., Configuring
role-based access control to enforce mandatory and discretionary access
control policies. – ACM Transactions on Information and System
Security, Vol. 3, No. 2, May 2000, 85-106,
http://cmpe.emu.edu.tr/chefranov/cmpe552-06/Lecture
%20Notes/OsbornACMTISS00.pdf ]
7
Role-Based Access Control (Cont 1)
8
Role-Based Access Control (Cont 2)
(x )( xx )
(x, y , z )( xy yz xz )
(x, y )( x y xy yx)
Another important consideration in RBAC systems is the possible temporal
constraints that may exist on roles, such as the time and duration of role
activations, and triggering of a role by an activation of another role. Using
an RBAC model is a highly desirable goal for addressing the key security
requirements of Web-based applications. Roles can be assigned to workflow
tasks so that a user with any of the roles related to a task may be authorized
to execute it and may play a certain role for certain duration only.
9
Introduction to Statistical Database Security (Cont 2)
Now suppose that we are interested in finding the salary of Jane Smith, and
we know that she has a Ph.D. degree and that she lives in the city of Bellaire,
Texas. We issue the statistical query Q1 with the following condition:
(Last_degree=’Ph.D.’ and Sex=’F’ and City=’Bellaire’ and State=’Texas’)
If we get a result of 1 for this query, we can issue Q2 with the same
condition and find the salary of Jane Smith. Even if the result of Q1on the
preceding condition is not 1 but is a small number – say 1 or 2 – we can
issue statistical queries using functions MIN, MAX, and AVG to identify the
possible range of values for the salary of Jane Smith.
The possibility of inferring individual information from statistical queries is
reduced if no statistical queries are permitted whenever the number of tuples
in the population specified by the selection condition falls below some
threshold. Another technique is to prohibit sequences of queries that refer
repeatedly to the same population of tuples. It is also possible to introduce
slight inaccuracies or noise into the results of statistical queries deliberately,
to make it difficult to deduce individual information from the results. Some
approaches to statistical database security are shown on the following figure
from Adam and Wortmann:
10
Introduction to Statistical Database Security (Cont 3)
Flow Control
Flow control regulates the distribution or flow of information among
accessible objects. A flow between object X and object Y occurs when a
program reads values from X and writes values into Y. Flow controls check
that information contained in some objects does not flow explicitly or
implicitly into less protected objects. Thus, a user cannot get indirectly in Y
what he or she cannot get directly in X. Active flow control began in the
early 1970s. Most flow controls employ some concept of security class; the
transfer of information from a sender to receiver is allowed only if the
receiver’s security class is at least as privileged as the sender’s.
11
Flow Control (Cont 1)
12
Covert Channels in Networks (Cont 1)
In Figure 6, packets may arrive not in the original order that results in
swapping of bits.
Covert channels using IPv4 are discussed below.
13
Covert Channels in Networks (Cont 2)
Version = 4
Internet Header Length – Length of header in 32-bit words. The minimum
value is five, for a minimum header length of 20 octets
Type of Service – Provides guidance to end system IP modules and to
routers along the packet’s path, in terms of packet’s relative priority
Total Length – Total IP packet length, in octets
Identification – A sequence number that, together with the source address,
destination address, and user protocol, is intended to identify a packet
uniquely. Thus, the identifier should be unique for the packet’s source
address, destination address, and user protocol for the time during which the
packet will remain in the internet.
Flags – Only two of the bits are currently defined. When a packet is
fragmented, the More bit indicates whether this is the last fragment in the
original packet. The Don’t Fragment bit prohibits fragmentation when set.
Fragment Offset – Indicates where in the original packet this fragment
belongs, measured in 64-bit units. This implies that fragments other than the
last must contain a data field that is a multiple of 64 bits in length.
Time to Live – Specifies how long, in seconds, a packet is allowed to
remain in the internet. Every router that processes a packet must decrease it
by at least one, so the TTL is somewhat similar a hop count
Protocol – Indicates the higher level protocol, which is to receive the data
field at the destination; thus, this field identifies the type of the next header
in the packet after the IP header.
14
Covert Channels in Networks (Cont 3)
15
Covert Channels in a Computer
16
Covert Channels in Databases
17
Covert Channels in Databases (Cont 1)
18
Audit
We follow [Hassan A. Afyouni, Database security and auditing,
Thomson, 2006, Chapter 7]
The auditing practice that is most often publicized is the review of an
organization’s documents such as the financial statements to make sure that
every change to the account is recorded and is accurate. An audit also
assures that all company transactions comply with government regulations
and laws. Most importantly, an audit can be conducted as a review of the
enforcement of security policies and procedures. All audits take place in an
auditing environment (database auditing environment), which includes:
Objectives – An audit without a set of objectives is useless. Objectives
usually are set by the organization, industry standards, or government
regulations and laws
Procedures – To conduct an audit, step-by-step instructions and tasks
must be documented ahead of time.
People – Every auditing environment must have an auditor, even in
the case of automatic audit. Other people involved in the audit are
employees, managers, and anyone being audited
Audit entities – This include people, document, processes, systems,
activities, or any operations that are being audited
Database – Database activities, data changes, data accuracy, data files,
and operating system
Security measures are inseparable from auditing.
Auditing Process
The Auditing process (AP) ensures that the system is working and complies
with the policies, standards, regulations, or laws set by the organization,
industry, or government. It differs from Quality assurance (QA) and
Performance monitoring (PM). The QA process is active during the
development phase of the product and before implementation of the system.
It is aimed to assure that product is working correctly. The PM process is
active when the product is commissioned into production and is aimed to
monitor response time. The AP is active after product is commissioned into
production but is aimed on verification that the product or system complies
with policies, laws, and standards.
19
Auditing Process (Cont 1)
Auditing Objectives
Here are the top ten database auditing objectives:
Data integrity
Application users and roles – Ensure that user are assigned roles that
correspond to their responsibilities and duties
Data confidentiality – Identify who can read data and what data can be
read
Access control – Ensure that the application records time and duration
when a user logs onto the database or application
Data changes – Create an audit trail of all data changes
Data structure changes – Ensure that the database logs all data
structure changes
Database or application availability – Record the number of
occurrences and duration of application or database shutdowns
(unavailability) and all startup times. Also, record all reasons for any
unavailability
Change control – Ensure that a change control mechanism is
incorporated to track necessary and planned changes to the database
or application
Physical access – Record the physical access to the application or the
database where the software and hardware resides
Auditing reports – Ensure that reports are generated on demand or
automatically, showing all auditable activities
20
Audit Classification
Internal – is conducted by a staff member of the company being audited
External – is conducted by a party outside the company that is being audited
Automatic – is prompted and performed automatically
Manual – is performed completely by humans
Hybrid – is a combination of automatic and manual audits
Audit Types
Financial, Security, Compliance (checks compliance with standards),
Operational (verifies that an operation is working according to the policies
of the company), Investigative (performed in response to an event, request,
threat, or incident to verify the integrity of the system), Product (to ensure
that the product complies with the industry standards), Preventive (to
identify problems before they occur).
21
Side effects
Frequent audits can cause the following:
Performance problems due to preoccupation with the audit instead of
the normal work activities
Generation of many reports and documents that may not be easily or
quickly disseminated
Disruption to the operations of the audited entity
Consumption of resources, and added costs from downtime
Friction between operators and auditor
From a database perspective, could degrade the performance of the
system; might also generate a massive number of logs, reports, and
data that require a system purge
22
Auditing Models
23
Auditing Models (Cont 1)
24
Auditing Models (Cont 2)
25
Auditing Models (Cont 3)
26