Tải bản đầy đủ (.pdf) (6 trang)

Phát hiện và cảnh báo lỗ hổng bảo mật SQL injection trong ứng dụng web

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (375.73 KB, 6 trang )

Phát hiện và cảnh báo lỗ hổng bảo mật SQL
Injection trong ứng dụng Web


Nguyễn Thúy Hồng


Trường Đại học Công nghệ. Đại học Quốc gia Hà Nội
Luận văn ThS. Công nghệ thông tin : 60 48 10
Người hướng dẫn : TS. Phạm Thanh Giang
Năm bảo vệ: 2013
89 tr .

Abstract. Tổng quan về bối cảnh thực tại của ứng dụng web. Khái niệm cơ bản về ứng
dụng web, việc thẩm định dữ liệu đầu vào, liệt kê các loại lỗ hổng đầu vào, khái niệm
lỗ hổng SQL Injection và cơ chế hoạt động của nó. Trình bày phân loại kỹ thuật tấn
công lỗ hổng SQL Injection. Trình bày kỹ thuật tĩnh, động và vận dụng các kỹ thuật đó
trong việc phát hiện các loại lỗ hổng SQL Injection. Xây dựng công cụ phát hiện và
cảnh báo lỗ hổng SQL Injection cho ứng dụng web.Đưa ra các hướng phát triển trong
tương lai
Keywords. Công nghệ phần mềm; Lỗ hổng bảo mật; Ứng dụng Web
Content.
1.1. Lý do chọn đề tài.
Ở nước ta hiện nay, nền khoa học kỹ thuật nói chung cũng như nền công nghệ
thông tin nói riêng phát triển như vũ bão và được ứng dụng rộng rãi trong hầu hết các
lĩnh vực của đời sống xã hội. Một vấn đề đặt ra là làm thế nào để đáp ứng được nhu
cầu trao đổi thông tin, quảng bá thông tin trực tuyến Từ nhu cầu thực tiễn đó, dẫn đến
sự ra đời của các ứng dụng Web.
Ngày nay, ứng dụng Web đã trở thành phương tiện liên lạc hữu ích cho hàng
triệu tổ chức, cá nhân, doanh nghiệp, đối tác, khách hàng và dần dần thay thế các giao
dịch thủ công truyền thống. Chẳng hạn như, ngày nay ta đã có thể ngồi nhà mà vẫn có


thể thực hiện các dịch vụ như kiểm tra tài khoản ngân hàng, đặt vé máy bay, mua sắm
trực tuyến…Chính vì vậy Web chính là yếu tố cơ bản giúp các doanh nghiệp, tổ chức,
cá nhân tăng cường hình ảnh trực tuyến của mình trên thế giới Internet, tạo ra và duy
trì nhiều mối quan hệ đem lại lợi nhuận lâu dài với khách hàng tiềm năng và khách
hàng hiện tại. Nhưng song song với sự hữu ích đó, các ứng dụng Web cũng đã tạo ra
những thách thức lớn đối với nhà phát triển, nhà quản trị Web đó chính là vấn đề làm
thế nào để đảm bảo được an toàn thông tin khi sử dụng các ứng dụng Web. Bởi vì hầu
hết các ứng dụng này đều chứa những lỗ hổng bảo mật tiềm ẩn mà kẻ tấn công có thể
khai thác và thực hiện các hành vi gây nguy hại đến ứng dụng Web của bạn.
Theo các báo cáo về an ninh mạng của Whitehat Security hay trên trang
Verizon Business, Sans Institute,…thì đều cho thấy mức độ phát triển nhanh chóng,
tính nghiêm trọng của các lỗ hổng bảo mật, và sự quan tâm chưa đúng mức của các tổ
chức tới vấn đề này. Năm 2011, Whitehat Security đã thống kê về 10 lỗ hổng phổ biến
và các lỗ hổng nghiêm trọng tấn công trên Website, kết quả như sau:

Hình 0.1 - Thống kê về 10 lỗ hổng phổ biến tấn công trên Website năm 2011


Hình 0.2 - Thống kê các lỗ hổng nghiêm trọng năm 2011
Như vậy vấn đề bảo mật Web đang là mối quan tâm hàng đầu không những của
các doanh nghiệp mà còn là mối quan tâm của hầu hết các quốc gia trên thế giới vì các
kỹ thuật tấn công vào ứng dụng Web ngày càng trở nên tinh vi, phức tạp. Nó không
những ảnh hưởng đến nền kinh tế quốc gia mà còn ảnh hưởng đến tình hình an ninh
chính trị giữa các nước trong khu vực và trên chiến trường quốc tế. Trong biểu đồ
thống kê trên ta thấy SQL Injection cũng được coi là một lỗ hổng phổ biến và nghiêm
trọng trong an ninh ứng dụng Web và đây cũng vẫn đang là vấn đề nhận được rất nhiều
quan tâm của các nhà nghiên cứu, các nhà phát triển ứng dụng Web, các tổ chức doanh
nghiệp, cơ quan hành chính
Bên cạnh những khó khăn do cơ sở hạ tầng mạng còn yếu kém, sự phát triển
không ngừng của các công cụ và phương pháp tấn công khiến cho việc phòng, chống

các hình thức tấn công ứng dụng Web trở thành một vấn đề rất nan giải. Một thực tại
hiện này là hầu hết các lập trình viên vẫn chưa nhận thức được vấn đề lập trình ứng
dụng Web an toàn, ngoài ra rất nhiều giải pháp đã được công bố và áp dụng nhưng vẫn
chưa đủ tốt. Đây cũng chính là lý do mà tôi chọn đề tài “Phát hiện và cảnh báo lỗ
hổng bảo mật SQL Injection trong ứng dụng Web” để nghiên cứu.
1.2. Mục đích và nội dung nghiên cứu.
Luận văn này nhằm mục đích phân loại các kỹ thuật mà kẻ tấn công thường sử
dụng để tấn công SQL Injection lên các ứng dụng Web, từ đó nhà phát triển ứng dụng
có thể dự đoán trước các nguy cơ tấn công để kịp thời đưa ra các biện pháp ngăn chặn
những hành động gây mất an toàn thông tin từ bên trong cũng như bên ngoài ứng dụng
Web đối với từng loại SQL Injection…Đồng thời luận văn cũng đưa ra các phương
pháp mà nhà phát triển ứng dụng thường sử dụng để phát hiện các loại lỗ hổng SQL
Injection, đưa ra những cảnh báo và giúp cho những người mới lập trình PHP có cái
nhìn tổng quan và nhận thức được tầm quan trọng của việc đảm bảo an toàn thông tin
cho ứng dụng Web trong xây dựng, phát triển và vận hành ứng dụng Web. Trên cơ sở
đó luận văn cũng xây dựng công cụ cho việc phát hiện và cảnh báo lỗ hổng SQL
Injection.
1.3. Cấu trúc luận văn.
Nội dung của luận văn này xoay quanh các vấn đề chính: Phần mở đầu giúp chúng ta
có cái nhìn tổng quan về bối cảnh thực tại của ứng dụng Web, mục đích và nội dung
nghiên cứu luận văn. Phần thứ hai trình bày một số khái niệm cơ bản về ứng dụng
Web, việc thẩm định dữ liệu đầu vào, liệt kê các loại lỗ hổng đầu vào, khái niệm lỗ
hổng SQL Injection và cơ chế hoạt động của nó. Ngoài ra phần thứ hai còn trình bày
phân loại các kỹ thuật tấn công lỗ hổng SQL Injection. Việc trình bày các phương
pháp phân tích tĩnh, phân tích động và vận dụng các kỹ thuật này trong việc phát hiện
các loại lỗ hổng SQL Injection sẽ được trình bày trong chương 3. Chương 4 sẽ tập
trung xây dựng công cụ phát hiện và cảnh báo lỗ hổng SQL Injection cho ứng dụng
Web. Phần kết luận và hướng phát triển sẽ được trình bày trong phần cuối của luận
văn.


TÀI LIỆU THAM KHẢO
Tiếng Việt
1. Phạm Hữu Khang, Hoàng Đức Hải (2007), Xây dựng ứng dụng Web bằng PHP &
MySQL, Nhà xuất bản Phương Đông.
Tiếng Anh
2. Alshanetsky (2005), PHP|Architect’s Guide to Security, Marco Tabini &
Associates, Inc.
3. Anup Shakya, Dhiraj Aryal (2011), A Taxonomy of SQL Injection Defense
Techniques, Master’s Thesis Computer Science, School of Computing Blekinge
Institute of Technology, Sweden.
4. Chad Dougherty (2012), Practical Identification of SQL Injection Vulnerabilities,
US – CERT (United States Computer Emergency Readiness Team).
5. Chris Snyder and Michael Southwell (2005), Pro PHP Security, Grace Wong,
United States of America.
6. Dafydd Stuttard and Marcus Pinto (2008), The Web Application Hacker’s
Handbook : Discovering and Exploiting Security Flaws, Wiley Publishing, Inc.,
Indianapolis, Indiana.
7. David Litchfield, Chris Anley, John Heasman, Bill Grindlay (2005), The Database
Hacker’s Handbook - Defending Database Servers, Wiley Publishing, Inc.,
Indianapolis, Indiana.
8. Debasish Das, Utpal Sharma & D.K. Bhattacharyya (2010), “An Approach to
Detection of SQL Injection Attack Based on Dynamic Query Matching”,
International Journal of Computer Applications, Volume 1, No. 25, pp. 28 - 33.
9. Devata R. Anekar, Prof. A. N. Bhute (2012), “SQL Injection Detection and
Prevention Mechanism using Positive Tainting and Syntax Aware Evaluation”,
International Journal of Advances in Computing and Information Researches,
Volume 1, No.3, pp. 1 - 4.
10. Dibyendu Aich (2009), Secure Query Processing By Blocking SQL Injection,
Master’s Thesis, National Institute of Technology Rourkela of India.
11. Fatima Sami Hamdan (2012), Labeling user inputs to prevent SQL Injection

attacks, Master’s Thesis, American University of Beirut.
12. Gary Michael Wassermann (2008), Techniques and Tools for Engineering Secure
Web Applications, Master’s Thesis, Computer Science, University of California.
13. Hung Q.Nguyen, Bob Johnson, Michael Hackett (2003), Testing Applications on
the Web, Wiley Publishing, Inc., Indianapolis, Indiana.
14. Justin Clarke (2009), SQL Injection Attacks and Defense, Syngress Publishing,
Inc.
15. Dr R.P.Mahapatra and Mrs Subi Khan (2012), A Survey Of Sql Injection
Countermeasures, International Journal of Computer Science & Engineering
Survey (IJCSES), Vol.3, No.3, pp. 56 - 70.
16. Mark Curphey, Joel Scambray, and Erik Olson (2003), Improving Web Application
Security - Threats and Countermeasures, Microsoft Corporation.
17. McGraw-Hill (2003), HackNotes Web Security Portable Reference, Brandon A.
Nordin, United States of America.
18. Munqath H. Alattar S.P. Medhane (2013), “Efficient Solution for SQL Injection
Attack Detection and Prevention”, International Journal of Soft Computing and
Engineering (IJSCE), Vol.3, pp. 396 - 398.
19. Praveen Kumar (2013), “The Multi-Tier Architecture for Developing Secure
Website with Detection and Prevention of SQL-Injection Attacks”, International
Journal of Computer Applications, Vol. 62, No.9, pp. 30 – 35.
20. Rahul Johari, Pankaj Sharma (2012), “A Survey On Web Application
Vulnerabilities (SQLIA,XSS) Exploitation and Security Engine for SQL
Injection”, International Conference on Communication Systems and Network
Technologies, pp. 453 – 456.
21. Shreeraj Shah (2008),Web 2.0 Security: Defending AJAX, RIA, and SOA, Publisher
and General Manager, Course Technology PTR.
22. Sonal Telang, Prof. Ajit Kumar Shrivastava, Dr. Manish Manoria (2012),
“Development of an Effective Runtime Defense Algorithm for Web Application
Security”, IACSIT Coimbatore Conferences, Vol. 28, pp. 6-9.
23. Shruti Bangre, Alka Jaiswal (2012), “SQL Injection Detection and Prevention

Using Input Filter Technique”, International Journal of Recent Technology and
Engineering (IJRTE), Vol. 1, pp. 145 - 149.
24. Yonghee SHIN, Laurie Williams (2008), Toward A Taxonomy of Techniques to
Detect Cross – site Scripting and SQL Injection Vulnerabilities, North Carolina
State University


×