CST221: Database Systems (II) - WCU Computer Science
Download
Report
Transcript CST221: Database Systems (II) - WCU Computer Science
CST221: Database Systems
Dr. Zhen Jiang
Computer Science Department
West Chester University
West Chester, PA 19383
Outline
Overview
◦ Non-relational DB system
◦ NonSQL DB system
Injection
Inference
◦ Role access control (UML)
◦ Perturbation
Design
◦ Models
◦ Encryption
Database System Overview
Integration
Administration
Security &
encryption
Privacy & inference
Transaction &
injection
Sketching & hashing
Application
Programming
Interface (API)
integration
Traditional Database
The relation of key vs. non-key
The relation between key and foreign key
◦ Intra-table relation
◦ Inter-table relation
E-R diagram
◦ http://www.cs.wcupa.edu/~zjiang/ER.pdf
◦ Any regularity?
Arbitrary & Abrupt
◦ Ambiguity
Sample of such ambiguity in normalization process
caused by the lack of background
Non-Relational Database
Data does not relate in the true sense
◦ e.g., Mongo, which handles document stores
or other content and/or metadata stores
NonSQL Database
A more clear structure
e.g., Kobo, Playtika (mobile service)
Distributed database system
No need and not possible for a “join” operator
Fast third-party data aggregation
Fast caching for application objects
Globally distributed data repository
E-commerce and internet burstness
Game (data intensive applications)
Ad targeting (social networks)
Injection
Direct DB injection
◦ http://www.youtube.com/watch?v=v6bphRHH
4sM
Indirect DB injection
◦ http://www.irongeek.com/i.php?page=videos/
webgoat-sql-injection
You need a tool
for the trace of
transactions
interrupt each
transaction as you
debug and trace the
record of each
transaction
•
•
•
Internet is not safe
https://www.youtube.com/watch?v=SJgYdTc
kMBY
Even worse ( 2
min)https://www.youtube.com/watch?v=hcSs
s9BHPFo
Information Assurance (in product lifecycle)
• Definition (3 min)
https://www.youtube.com/watch?v=Wde_38_xNc
• Our solution, e.g., (5
min)https://www.youtube.com/watch?v=97Tnjr72
IoQ
Authorization
◦ Restrict access to data and restrict the actions that
people may take (when they access data).
Encryption
◦ Scramble data so that the data cannot be read.
Authentication
◦ Password check
◦ Key protection, not to protect everything!
◦ https://www.youtube.com/watch?v=3QnD2c4Xovk
Role based access control
Inference (aggregation)
Basically, inference occurs when users are
able to piece together (aggregate)
information to determine a fact that
should be protected.
Role cheating
Flight ID
Cargo Hold
Contents
Classification
1254
A
Boots
Unclassified
1254
B
Atomic bomb
Top secret
1254
C
Butter
Unclassified
General Jones (who has a top security
clearance) requests information and
would see all three.
Civilian Smith (who has no security
clearance) requests the data and would
see the following data:
Flight ID
Cargo Hold
Contents
Classification
1254
A
Boots
Unclassified
1254
C
Butter
Unclassified
When Smith sees that nothing is scheduled
for hold B on flight 1254, he might attempt
to insert the record, and his insertion will
fail due to the unique constraint on cargo
space availability.
He has all the data he needs to infer that
there is a secret shipment on flight.
He could then cross-reference the flight
information table to find out the source and
destination of the secret shipment and
various other information.
Poly-instantiation: allows different records
(hold B) to exist in the same table.
Overbooking!
Other causes such as:
◦ Count of highly preferred customers
◦ Average salary
Problem is difficult
◦ Information?
Content: what is critical?
◦ Path?
Hold A-C, Hold B? Total space? Probing!
Existing solutions
◦ Limit access
Role access control
Too many restriction could seriously hinder the
functionality
22
23
◦ Perturbation
Alter the data so that individual details are
accurate but overall generalization are
inaccurate.
Include dummy data in the results returned by
the query unauthorized.
Protect sensitive data, but also achieve
preservation of the properties of the dataset.
Sketching with a probability of p.
With probability p to use the original data
With probability (1-p) to use a replacement
Preservation
Given each query f in the original table T with n
rows, build a re-constructible query f’ in the
revised table T’ (with n rows), so that the result
difference can be controlled in a limited range
with a probability of p.
In other words, the expected number of rows
that get perturbation is n(1-p). For a domain
∆C, n(1-p)k rows will be expected to lie within
the available value range (k ∆C), k[1, 0].
Among total nr rows observed from T’ in the value
range (k ∆C), subtracting the n(1-p)k rows, we have
the estimation for the number of unperturbed rows.
Scaled up by 1/p, we get the total number of original
rows (n0), as only a p fraction of rows were retained.
Security and Privacy
f’ = n0/n
[n-n0, n0]A = [n-nr, nr]
a=Pr(row T) vs. b=Pr(row in perturbed table T’)
Privacy breach, security threshold
>a/b
b b’ (sketch does not help to distinguish the cases)
Server Storage (with a) vs. Client retaining (with b)
OO Design for DB Systems
Injection, inference
◦ RBAC (role based access control)
◦ Use case
http://www.cs.wcupa.edu/~zjiang/intro_uc.ppt
◦ Class design is needed for better maintaining the data
ownership
http://www.cs.wcupa.edu/~zjiang/DB_OO_design.htm
Non-relational DB
◦ Activity pattern – prediction of future relation, e.g.,
credit card security
NonSQL DB
◦ Relations in structure for the use.
Models
Database role based
Application role based
Application function based
Application role and function based
Application table based
28
Model Based on Database Roles
Application authenticates application
users: maintain all users in a table
Each user is assigned a role; roles have
privileges assigned to them
A proxy user is needed to activate
assigned roles; all roles are assigned to the
proxy user
Model and privileges are database
dependent
29
30
Implementation in SQL Server:
◦ Use application roles:
Special roles you that are activated at the time of
authorization
Require a password and cannot contain members
◦ Connect a user to the application role:
overrules user’s privileges
31
Implementation in SQL Server (continued):
◦
◦
◦
◦
Connect to database as the proxy user
Validate the user name and password
Retrieve the application role name
Activate the application role
Great article on app roles:
◦ SQL Server Security: Pros and Cons of Application Roles
By Brian Kelley
◦ http://www.sqlservercentral.com/articles/Security/sqlserve
rsecurityprosandconsofapplicationroles/1116/
32
Model Based on Application Roles
Application roles are mapped to real
business roles
Application authenticates users
Each user is assigned to an application
role; application roles are provided with
application privileges (read and write)
33
34
Implementation in SQL Server
◦ Create a database user
◦ Connect the application to the database using
this user
◦ Create stored procedures to perform all
database operations
35
Model Based on Application Functions
Application authenticates users
Application is divided into functions
Considerations:
◦
◦
◦
◦
Isolates application security from database
Passwords must be securely encrypted
Must use a real database user
Granular privileges require more effort during
implementation
36
37
Model Based on Application Roles
and Functions
Combination of models
Application authenticates users
Application is divided into functions
Highly flexible model
38
39
Model Based on Application Tables
Depends on the application to
authenticate users
Application provides privileges to the
user based on tables; not on a role or a
function
User is assigned access privilege to each
table owned by the application owner
40
Privileges:
◦
◦
◦
◦
◦
◦
0 -no access
1 –read only
2 – read and add
3 –read, add, and modify
4 – read, add, modify, and delete
5 – read, add, modify, delete, and admin
41
42
Implementation in SQL Server:
◦ Grant authorization on application functions
to the end user
◦ Alter authorization table from the security
model based on database roles; incorporate
the table and access columns required to
support model
43
Data Encryption
Passwords should be kept confidential
and preferably encrypted
Passwords should be compared
encrypted:
◦ Never decrypt the data
◦ Hash the passwords and compare the hashes
44