Chapter 5: Database Security

Similar documents
COMPUTER NETWORK SECURITY

ACS-3921/ Computer Security And Privacy. Chapter 5 Database and Data Centre Security

CS419 Spring Computer Security. Vinod Ganapathy Lecture 15. Chapter 5: Database security

Introduction To Security and Privacy Einführung in die IT-Sicherheit I

Computer Security: Principles and Practice

CSE 565 Computer Security Fall 2018

W e b A p p l i c a t i o n S e c u r i t y : T h e D e v i l i s i n t h e D e t a i l s

Chapter 9: Database Security: An Introduction. Nguyen Thi Ai Thao

I n p u t. This time. Security. Software. sanitization ); drop table slides. Continuing with. Getting insane with. New attacks and countermeasures:

Access Control. Protects against accidental and malicious threats by

Secure Programming Lecture 8++: SQL Injection

This slide shows the OWASP Top 10 Web Application Security Risks of 2017, which is a list of the currently most dangerous web vulnerabilities in

Access Control. Access control: ensures that all direct accesses to object are authorized a scheme for mapping users to allowed actions

Integrity and Security

Solutions Business Manager Web Application Security Assessment

CSCE 548 Building Secure Software SQL Injection Attack

Introduction The SELECT statement: basics Nested queries Set operators Update commands Table management

Sample Question Paper

WEB SECURITY: SQL INJECTION

Detecting Insider Attacks on Databases using Blockchains

Application and Data Security with F5 BIG-IP ASM and Oracle Database Firewall

Networks and security Data bases

CHAPTER 8 CONCLUSION AND FUTURE ENHANCEMENTS

CIS 4360 Secure Computer Systems XSS

Database Systems Concepts *

Data about data is database Select correct option: True False Partially True None of the Above

Detecting SQLIA using execution plans

Engineering Your Software For Attack

Provide you with a quick introduction to web application security Increase you awareness and knowledge of security in general Show you that any

SQL Injection Attack & Its Prevention

Course Outline and Objectives: Database Programming with SQL

Automated SQL Ownage Techniques. OWASP October 30 th, The OWASP Foundation

Web Gate Keeper: Detecting Encroachment in Multi-tier Web Application

Denial of Service (DoS)

SQL Injection Attack: Detection in a Web Application Environment

ANALYSIS OF VARIOUS LEVELS OF PENETRATION BY SQL INJECTION TECHNIQUE THROUGH DVWA

Web basics: HTTP cookies

Application vulnerabilities and defences

Essay Question: Explain 4 different means by which constrains are represented in the Conceptual Data Model (CDM).

Preventing Injection Vulnerabilities through Context-Sensitive String Evaluation (CSSE)

Question No: 2 Which identifier is used to describe the application or process that submitted a log message?

How is state managed in HTTP sessions. Web basics: HTTP cookies. Hidden fields (2) The principle. Disadvantage of this approach

SQL Injection Attacks and Defense

LAB 3 Notes. Codd proposed the relational model in 70 Main advantage of Relational Model : Simple representation (relationstables(row,

Configuring User Defined Patterns

Chapter 6: Integrity and Security.! Domain Constraints! Referential Integrity! Assertions! Triggers! Security! Authorization! Authorization in SQL

SECURE CODING PART 1 MAGDA LILIA CHELLY ENTREPRENEUR CISO ADVISOR CYBERFEMINIST PEERLYST BRAND AMBASSADOR TOP 50 CYBER CYBER

Injection attacks use specially crafted inputs to subvert the intended operation of applications.

Security Philosophy. Humans have difficulty understanding risk

D B M G. SQL language: basics. Managing tables. Creating a table Modifying table structure Deleting a table The data dictionary Data integrity

NET 311 INFORMATION SECURITY

OWASP Top 10 The Ten Most Critical Web Application Security Risks

Chapter 4. Basic SQL. Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Computer Security 3e. Dieter Gollmann. Chapter 18: 1

Slides by: Ms. Shree Jaswal

CS352 Lecture: Integrity and Security Constraints revised 9/8/06

Webapps Vulnerability Report

MULTILEVEL POLICY BASED SECURITY IN DISTRIBUTED DATABASE

Relational Data Structure and Concepts. Structured Query Language (Part 1) The Entity Integrity Rules. Relational Data Structure and Concepts

Copyright

DB Creation with SQL DDL

SQL Injection. EECS Introduction to Database Management Systems

Define information security Define security as process, not point product.

Database Security Overview. Murat Kantarcioglu

CS 356 Operating System Security. Fall 2013

Web basics: HTTP cookies

Post-Class Quiz: Access Control Domain

90% of data breaches are caused by software vulnerabilities.

Tautology based Advanced SQL Injection Technique A Peril to Web Application

Advanced Web Technology 10) XSS, CSRF and SQL Injection

Real Application Security Administration

Mastering Transact-SQL An Overview of SQL Server 2000 p. 3 SQL Server's Networked Architecture p. 4 SQL Server's Basic Components p.

Today Learning outcomes LO2

Specialized Security Services, Inc. REDUCE RISK WITH CONFIDENCE. s3security.com

NetDefend Firewall UTM Services

CT13 DATABASE MANAGEMENT SYSTEMS DEC 2015

SAP Security. BIZEC APP/11 Version 2.0 BIZEC TEC/11 Version 2.0

An Oracle White Paper September Security and the Oracle Database Cloud Service

INNOV-09 How to Keep Hackers Out of your Web Application

Defense-in-Depth Against Malicious Software. Speaker name Title Group Microsoft Corporation


90% 191 Security Best Practices. Blades. 52 Regulatory Requirements. Compliance Report PCI DSS 2.0. related to this regulation

The Top 6 WAF Essentials to Achieve Application Security Efficacy

Is Browsing Safe? Web Browser Security. Subverting the Browser. Browser Security Model. XSS / Script Injection. 1. XSS / Script Injection

COSC 304 Introduction to Database Systems. Views and Security. Dr. Ramon Lawrence University of British Columbia Okanagan

ERT Threat Alert New Risks Revealed by Mirai Botnet November 2, 2016

Overview of Information Security

Database Security Lecture 10

Visualizing Access Control Policies in Databases. Jared Chandler. Comp 116 Fall 2015

SQL Injection Attacks: Detection in a Web Application Environment

Kishin Fatnani. Founder & Director K-Secure. Workshop : Application Security: Latest Trends by Cert-In, 30 th Jan, 2009

ISO/IEC Common Criteria. Threat Categories

Threat Modeling. Bart De Win Secure Application Development Course, Credits to

SOLUTION BRIEF CA API MANAGEMENT. Enable and Protect Your Web Applications From OWASP Top Ten With CA API Management

Instructor: Jinze Liu. Fall 2008

Ebook : Overview of application development. All code from the application series books listed at:

The Relational Model. Outline. Why Study the Relational Model? Faloutsos SCS object-relational model

Technology White Paper of SQL Injection Attacks and Prevention

n Learn about the Security+ exam n Learn basic terminology and the basic approaches n Implement security configuration parameters on network

Oracle Database 10g: Introduction to SQL

Transcription:

i Chapter 5: Comp Sci 3600

Outline i 1 2 i 3 4 5

Outline i 1 2 i 3 4 5

What is a i Structured collection of data stored for use by one or more applications Contains the relationships between data items and groups of data items Can sometimes contain sensitive data that needs to be secured Query language provides a uniform interface to the database management system () Suite of programs for constructing and maintaining the database Offers ad hoc query facilities to multiple users and applications

Management System i utilities DDL processor description tables Authorization tables User applications DDL = data definition language DML = data manipulation language User queries DML and query language processor Transaction File manager manager Physical database Concurrent access tables Figure 5.1 Architecture

Outline i 1 2 i 3 4 5

Relational s i Table of data consisting of rows and columns Each column holds a particular type of data Each row contains a specific value for each column Ideally has one column where all values are unique, forming an identifier/key for that row Enables the creation of multiple tables linked together by a unique identifier that is present in all tables Use a relational query language to access the database Allows the user to request data that fit a given set of criteria

Multi-table with Unifying Primary Key i CALLER ID TABLE PhoneNumber Has service? (Y/N) BILLING HISTORY TABLE PhoneNumber Date Transaction type Transaction amount PRIMARY TABLE PhoneNumber Last name First name address ADDITIONAL SUBSCRIBER TABLE PhoneNumber List of subscribers CURRENT BILL TABLE PhoneNumber Current date Previous balance Current charges Date of last payment Amount of last payment Figure 5.2 Example Relational Model. A relational database uses multiple tables related to one another by a designated key; in this case the key is the PhoneNumber field.

Relational Elements i Primary key Uniquely identifies a row Consists of one or more column names Foreign key Links one table to attributes in another View/virtual table Result of a query that returns selected rows and columns from one or more tables

Relational i Records Attributes A 1 A j A M 1 x 11 x 1j x 1M i x i1 x ij x im N x N1 x Nj x NM Figure 5.3 Abstract Model of a Relational

View on a i Did Dname Dacctno Ename Did Salarycode Eid Ephone 4 human resources 528221 Robin 15 23 2345 6127092485 8 education 202035 Neil 13 12 5088 6127092246 9 accounts 709257 Jasmine 4 26 7712 6127099348 13 public relations 755827 Cody 15 22 9664 6127093148 15 services 223945 Holly 8 23 3054 6127092729 primary key Department Table Robin Smith foreign key (a) Two tables in a relational database Dname Ename Eid Ephone human resources Jasmine 7712 6127099348 education Holly 3054 6127092729 education Robin 2976 6127091945 accounts Smith 4490 6127099380 public relations Neil 5088 6127092246 services Robin 2345 6127092485 services Cody 9664 6127093148 (b) A view derived from the database Employee Table 8 24 2976 6127091945 9 21 4490 6127099380 primary key Figure 5.4 Relational Example

Outline i 1 2 i 3 4 5

Structured Query Language () i Standardized language to define schema, manipulate, and query data in a relational database Several similar versions of ANSI/ISO standard All follow the same basic syntax and semantics statements can be used to: Create tables Insert and delete data in tables Create views Retrieve data with query statements

Table Creation i CREATE TABLE department ( Did INTEGER PRIMARY KEY, Dname CHAR ( 3 0 ), Dacctno CHAR ( 6 ) )

Table Creation i CREATE TABLE employee ( Ename CHAR ( 3 0 ), Did INTEGER, S a l a r y C o d e INTEGER, E i d INTEGER PRIMARY KEY, Ephone CHAR ( 1 0 ), FOREIGN KEY ( Did ) REFERENCES department ( Did ) )

Retrieving Information i The basic command for retrieving information is the SELECT statement SELECT Ename, Eid, Ephone FROM Employee WHERE Did = 15 This query returns the Ename, Eid, and Ephone fields from the Employee table for all employees assigned to department 15

View Creation i The view in Figure 5.4(b) is created using the following statement: CREATE VIEW n e w t a b l e (Dname, Ename, Eid, Ephone ) AS SELECT D. Dname E. Ename, E. Eid, E. Ephone FROM Department D Employee E WHERE E. Did = D. Did

(i) i One of the most prevalent and dangerous network-based security threats Designed to exploit the nature of Web application pages Sends malicious commands to the database server Most common attack goal is bulk extraction of data Depending on the environment, injection can also be exploited to: Modify or delete data Execute arbitrary operating system commands Launch denial-of-service (DoS) attacks

i overview i Internet Legend:. Data exchanged between hacker and servers Two-way traffic between hacker and Web server Credit card data is retrieved from database Router Firewall Web servers servers Switch Wireless access point Web application server Figure 5.5 Typical Attack

Outline i 1 2 i 3 4 5

Technique i The i attack typically works by prematurely terminating a text string and appending a new command Because the inserted command may have additional strings appended to it before it is executed, the attacker terminates the injected string with a comment mark - - Subsequent text is ignored at execution time

Example i As a simple example, consider a script that build an query by combining predefined strings with text entered by a user: var Shipcity; ShipCity = Request.form ( ShipCity ); var sql = select * from OrdersTable where ShipCity = + ShipCity + ; The intention of the script s designer is that a user will enter the name of a city

Example i When the script is executed, the user is prompted to enter a city, and if the user enters Redmond, then the following query is generated: SELECT * FROM OrdersTable WHERE ShipCity = Redmond Suppose, however, the user enters the following: Redmond ; DROP table OrdersTable- - This results in the following query: SELECT * FROM OrdersTable WHERE ShipCity = Redmond ; DROP table OrdersTable- - The semicolon is an indicator that separates two commands, and the double dash is an indicator that the remaining text of the current line is a comment and not to be executed

i Attack Avenues i User input: Attackers inject commands by providing suitable crafted user input Server variables: Attackers can forge the values that are placed in HTTP and network headers and exploit this vulnerability by placing data directly into the headers Second-order injection: A malicious user could rely on data already present in the system or database to trigger an injection attack, so when the attack occurs, the input that modifies the query to cause an attack does not come from the user, but from within the system itself Cookies: An attacker could alter cookies such that when the application server builds an query based on the cookie s content, the structure and function of the query is modified Physical user input: Applying user input that constructs an attack outside the realm of web requests

Outline i 1 2 i 3 4 5

i Inband Inferential Out-of-band

Inband i Uses the same communication channel for injecting code and retrieving results The retrieved data are presented directly in application Web page Include: Tautology: This form of attack injects code in one or more conditional statements so that they always evaluate to true End-of-line comment: After injecting code into a particular field, legitimate code that follows are nullified through usage of end of line comments Piggybacked queries: The attacker adds additional queries beyond the intended query, piggy-backing the attack on top of a legitimate request

Tautology Example i Consider the following script, whose intent is to require the user to enter a valid name and password: $query = SELECT info FROM user WHERE name = $ GET [ name ] AND pwd = $ GET [ pwd ] ; Suppose the attacker submits OR 1 = 1 for the name field. The resulting query would look like this: SELECT info FROM users WHERE name = OR 1 = 1 AND pwpd = The injected code disables the password check (due to the comment indicator - -) and turns the entire WHERE clause into a tautology The database uses the conditional as the basis for evaluating each row and deciding which ones to return The conditional is a tautology, the query evaluates to true for each row in the table and returns all

Inferential Attack i There is no actual transfer of data, but the attacker is able to reconstruct the information by sending particular requests and observing the resulting behavior of the Website/database server Illegal/logically incorrect queries This attack lets an attacker gather important information about the type and structure of the backend database of a Web application The attack is considered a preliminary, information-gathering step for other attacks Blind injection Allows attackers to infer the data present in a database system even when the system is sufficiently secure to not display any erroneous information back to the attacker

Out-of-Band Attack i Data are retrieved using a different channel This can be used when there are limitations on information retrieval, but outbound connectivity from the database server is lax

Outline i 1 2 i 3 4 5

i i Defensive coding Run-time prevention

Defensive Coding i Manual defensive coding practices: a common vulnerability exploited by i attacks is insufficient input validation One solution is to apply defensive coding practices Input type checking: e.g., to check that inputs that match the expected types and formats Performs pattern matching to try to distinguish normal input from abnormal input Parameterized query insertion: Allowing developers to more accurately specify the structure of an query Passing the parameters separately such that any unsanitary user input is not allowed to modify the query structure DOM: A set of classes that enables automated data type validation and escaping This approach uses encapsulation of database queries to provide a safe and reliable way to access databases

i Signature based This attempts to match specific attack patterns Must be constantly updated and may not work against self- modifying attacks Anomaly based Define normal behavior and then detect behavior patterns outside the normal range There is a training phase, in which the system learns the range of normal behavior, followed by the actual detection Code analysis Using a test suite to detect i vulnerabilities The test suite is designed to generate a wide range of i attacks and assess the response of the system

Run-time Prevention i Check queries at runtime to see if they conform to a model of expected queries Various automated tools are available for this purpose

i access control system determines: If the user has access to the entire database or just portions of it What access rights the user has (create, insert, delete, update, read, write) Can support a range of administrative policies Centralized administration: Small number of privileged users may grant and revoke access rights Ownership-based administration: The creator of a table may grant and revoke access rights to the table Decentralized administration: The owner of the table may grant and revoke authorization rights to other users, allowing them to grant and revoke access rights to the table

Outline i 1 2 i 3 4 5

i Two commands for managing access rights: 1 Grant: Used to grant one or more access rights or can be used to assign a user to a role 2 Revoke: Revokes the access rights Typical access rights are: Select Insert Update Delete References

The Grant Command i GRANT [ON TO [IDENTIFIED BY [WITH {privileges role} table] {user role PUBLIC} password] GRANT OPTION] Example GRANT SELECT ON ANY TABLE TO ricflair

The Revoke Command i REVOKE [ON FROM {privileges role} table] {user role PUBLIC} Example REVOKE SELECT ON ANY TABLE FROM ricflair

Cascading Authorizations i The grant option enables an access right to cascade through a number of users The revocation of privileges also cascaded

Privilege Revocation i t = 10 Ann David t = 60 Frank t = 20 Bob Chris t = 30 t = 50 t = 40 Ellen t = 70 Jim t = 10 Bob Ann David t = 60 Frank t = 20 Chris t = 50 Figure 5.6 Bob Revokes Privilege from David

Outline i 1 2 i 3 4 5

Role-Based (RBAC) i access control eases administrative burden and improves security A database RBAC needs to provide the following capabilities: Create and delete roles Define permissions for a role Assign and cancel assignment of users to roles

Categories of Users i Application owner: An end user who owns database objects as part of an application End user: An end user who operates on database objects via a particular application but does not own any of the database objects Administrator: User who has administrative responsibility for part or all of the database

Microsoft Server Roles i

Outline i 1 2 i 3 4 5

What is an Attack? i The process of performing authorized queries and deducing unauthorized information from the legitimate responses received The inference problem arises when the combination of a number of data items is more sensitive than the individual items, or when a combination of data items can be used to infer data of a higher sensitivity

i Nonsensitive data Sensitive data Metadata Authorized access Unauthorized access Figure 5.7 Indirect Information Via Channel

Example of an Attack on (Salary-Name) i Name Position Salary ($) Department Dept. Manager Andy senior 43,000 strip Cathy Calvin junior 35,000 strip Cathy Cathy senior 48,000 strip Cathy Dennis junior 38,000 panel Herman Herman senior 55,000 panel Herman Ziggy senior 67,000 panel Herman (a) Employee table Position Salary ($) Name Department senior 43, 000 Andy strip junior 35,000 Calvin strip senior 48,000 Cathy strip (b) Two views Name Position Salary ($) Department Andy senior 43,000 strip Calvin junior 35,000 strip Cathy senior 48,000 strip (c) Table derived from combining query answers Figure 5.8 Example

Outline i 1 2 i 3 4 5

i detection during database design Approach removes an inference channel by altering the database structure or by changing the access control regime to prevent inference Techniques in this category often result in unnecessarily stricter access controls that reduce availability detection at query time Approach seeks to eliminate an inference channel violation during a query or series of queries If an inference channel is detected, the query is denied or altered Some inference detection algorithm is needed for either of these approaches Progress has been made in devising specific inference detection s for multilevel secure databases and statistical databases

Outline i 1 2 i 3 4 5

i The database is typically the most valuable information resource for any organization Protected by multiple layers of security Firewalls, authentication, general access control systems, DB access control systems, database encryption becomes the last line of defense in database security Can be applied to the entire database, at the record level, the attribute level, or level of the individual field Disadvantages to encryption: Key management: Authorized users must have access to the decryption key for the data for which they have access Inflexibility: When part or all of the database is encrypted it becomes more difficult to perform record searching

How to Process Encrypted Query i 1 The user issues an query for fields from one or more records with a specific value of the primary key 2 The query processor at the client encrypts the primary key, modifies the query accordingly, and transmits the query to the server 3 The server processes the query using the encrypted value of the primary key and returns the appropriate record or records 4 The query processor decrypts the data and returns the results

: Decrypt only Locally i User Client Meta Data 4. Plaintext result 1. Original query Query Processor Encrypt/ Decrypt metadata 2. Transformed query 3. Encrypted result Data owner Query Executor Server Meta Data Encrypted database Figure 5.9 A Scheme

Encrypted Query i SELECT Ename, Eid, Ephone FROM Employee WHERE Did = 15 SELECT Ename, Eid, Ephone FROM Employee WHERE Did = 1000110111001110

Outline i 1 2 i 3 4 5

on Encrypted Data i can Improve Usability for However, it can provide information for inference attacks E(k, B 1 ) I 11 I 1j I 1M E(k, B i ) I i1 I ij I im E(k, B N ) I N1 I Nj I NM B i = (x i1 x i2 x im ) Figure 5.10 Scheme for of Figure 5.3