CH05 CompSec4e
CH05 CompSec4e
• Create tables
• Insert and delete data in tables
• Create views
• Retrieve data with query statements
SQL Injection Attacks
(SQLi)
• One of the most prevalent • Most common attack goal is
and dangerous network- bulk extraction of data
based security threats
• Depending on the
• Designed to exploit the environment SQL injection
nature of Web application can also be exploited to:
pages o Modify or delete data
o Execute arbitrary operating system
commands
• Sends malicious SQL o Launch denial-of-service (DoS)
attacks
commands to the database
server
Injection Technique
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 SQL
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 SQL query based
on the cookie’s content, the structure and function of the query is modified
End-of-line Piggybacked
Tautology
comment queries
After injecting code
The attacker adds
This form of attack into a particular
additional queries
injects code in one field, legitimate
beyond the
or more conditional code that follows
intended query,
statements so that are nullified
piggy-backing the
they always through usage of
attack on top of a
evaluate to true end of line
legitimate request
comments
Inferential Attack
• 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
• Include:
o 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
o Blind SQL 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
• Data are retrieved using a different channel
Detection
• Manual defensive • Check queries at
coding practices runtime to see if they
• Parameterized query • Signature based conform to a model of
insertion • Anomaly based expected queries
• SQL DOM • Code analysis
Defensive Run-time
coding prevention
Database Access Control
Database access control Can support a range of
system determines: administrative policies
Centralized administration
If the user has access to the entire database • Small number of privileged users may grant and
or just portions of it revoke access rights
Ownership-based administration
What access rights the user has (create, • The creator of a table may grant and revoke access
insert, delete, update, read, write) 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
SQL Access Controls
• Two commands for managing access rights:
• Grant
o Used to grant one or more access rights or can be used to assign a user
to a role
• Revoke
o Revokes the access rights
• An end user who owns • An end user who operates on • User who has administrative
database objects as part of an database objects via a responsibility for part or all of
application particular application but does the database
not own any of the database
objects
Table 5.2
Fixed
Roles
in
Microsoft
SQL
Server
Two approaches
Inference detection
at query time
If an inference channel is
detected, the query is denied or
altered
Data Center
Tiers
Defined in
TIA-942