SLIDE 1
Mariam Badr Bank Accounts Credit Cards Information Applications - - PowerPoint PPT Presentation
Mariam Badr Bank Accounts Credit Cards Information Applications - - PowerPoint PPT Presentation
Ahmed Khaled Hossam Alaa Mariam Badr Bank Accounts Credit Cards Information Applications users Licenses and certificates Identity thefts Systems hacking Illegal transactions Most web and network applications are
SLIDE 2
SLIDE 3
Bank Accounts Credit Cards Information Applications users Licenses and certificates
SLIDE 4
Identity thefts Systems hacking Illegal transactions Most web and network applications are
vulnerable
SLIDE 5
Database itself Application Programs Database Management Server (DBMS) Network connected to Database Web Server connected to Database
SLIDE 6
SLIDE 7
Physical level
- Traditional lock-and-key security
- Protection from floods, fire, etc.
▪ E.g. WTC (9/11), fires in IITM, WWW conf website, etc.
- Protection from administrator error
▪ E.g. delete critical files
- Solution
▪ Remote backup for disaster recovery ▪ Plus archival backup (e.g. DVDs/tapes)
Operating system level
- Protection from virus/worm attacks critical
SLIDE 8
To encrypt the database at storage level, transparent to
application
▪ Whole database/file/relation
▪ Unit of encryption: page
▪ Column encryption
- Main issue: key management
▪ E.g. user provides decryption key (password) when database is started up
- Supported by many database systems
▪ Standard practice now to encrypt credit card information, and other sensitive information
SLIDE 9
Encrypting at Application Layer
- Must do it at multiple locations from within app.
- Data can only be used from within application
Encrypting at File System/Operating System
Layer less flexible. Requires you to encrypt everything.
- Performance degrades
- Weak for handling Disk Theft problem.
Encrypting within Database
- Usually, most practical option
SLIDE 10
Application Developers use a cryptographic
library to encrypt such as Java Cryptographic Extensions (JCE) – set of APIs in the java.security and java.crypto packages
SLIDE 11
SQL Server 2005 you can access Windows
CryptoAPI through DB_ENCRYPT and DB_DECRYPT within T-SQL (similar to PL/SQL) Can use DES, Triple DES and AES (symmetric keys)
In ORACLE, you can access
- DBMS_OBFUSCATION_TOOLKIT package that
implements DES and Triple DES
SLIDE 12
DB Encryption can be divided into Data-in-
transit and Data-at-rest
Encryption is useful as a last layer of defense
(defense in depth). Should never be used as an alternative solution
Encryption should be used only when needed Key Management is Key
SLIDE 13
Network level: must use encryption to
prevent
- Eavesdropping: unauthorized reading of
messages
- Masquerading:
▪ pretending to be an authorized user or legitimate site, or ▪ sending messages supposedly from authorized users
SLIDE 14
All information must be encrypted to prevent
eavesdropping
- Public/private key encryption widely used
Must prevent person-in-the-middle attacks
- E.g. someone impersonates seller or bank/credit card
company and fools buyer into revealing information
▪ Encrypting messages alone doesn’t solve this problem
SLIDE 15
One mechanism to allow specific users access
- nly to required data
Password Smartcards
SLIDE 16
Central authentication systems
- Allow users to be authenticated centrally
- MS Active Directory often used for central authentication
and user management in organizations
Single sign-on: authenticate once, and access
multiple applications without fresh authentication
SLIDE 17
Different authorizations for different users
Ensure that only authenticated users can
access the system
And can access (read/update) only
data/interfaces that they are authorized to access
SLIDE 18
Application authenticates/authorizes users Application itself authenticates itself to
database
- Database password
Database Application Program
SLIDE 19
SLIDE 20
Applications are the biggest source of insecurity
- Poor coding of application may allow unauthorized access
- The applications may be very big.
SLIDE 21
E.g. application takes accnt_number as input
from user and creates an SQL query as follows:
string query = "select balance
from account where account_number =‘" + accnt_number +"‘ “
SLIDE 22
select balance from account where account_number =‘123’
SLIDE 23
What if I entered 022572636‘ or 1=1
Now its select balance
from account where account_number =‘ 022572636‘
- r 1=1
SLIDE 24
http://www.example.com/index.php?id=123 Just add ‘ http://www.example.com/index.php?id=123’
SLIDE 25
To prevent SQL injection attacks use prepared
statements (instead of creating query strings from input parameters)
- use stored procedures
- use a function that removes special characters (such
as quotes) from strings
SLIDE 26
Most security schemes address outsider attack Have password to DB? Okay, you can update
anything
- Bypassing all security levels
▪ The more people have access, the more danger
The application program has the DB password Great deal of trust in people who manage databases
SLIDE 27
Chapter 8 of Database System Concepts 5th Edition, Silberschatz, Korth and Sudarshan, McGraw-Hill
The Open Web Application Security Project
- http://www.owasp.org
Web application security scanners
- e.g. WebInspect (SPI Dynamics)
- http://www.windowsecurity.com/software/Web-Application-Security/
SQL Injection
- http://www.cgisecurity.com/development/sql.shtml
9 ways to hack a web app
- http://developers.sun.com/learning/javaoneonline/2005/webtier/TS-5935.pdf
Related research papers
- Kabra, Ramamurthy and Sudarshan, Redundancy and Information Leakage in
Fine-Grained Access Control, SIGMOD 2006
- Rizvi, Mendelzon, Sudarshan and Roy, Extending Query Rewriting Techniques