HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH BÀI BÁO CÁO CUỐI KHÓA PHƯƠNG PHÁP LUẬN NGHIÊN CỨU KHOA HỌC ĐỀ TÀI: Phân tích và phòng chống tấn công SQL Injecti
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH
BÀI BÁO CÁO CUỐI KHÓA PHƯƠNG PHÁP LUẬN NGHIÊN CỨU KHOA HỌC
ĐỀ TÀI: Phân tích và phòng chống tấn công SQL Injection trong
ứng dụng Web
Giảng viên hướng dẫn: PHẠM QUỐC HỢP
Sinh viên thực hiện: PHẠM NGỌC HOẠT
MSSV: N19DCAT034 LỚP: D19CQAT01-N
TPHCM, tháng 5 năm 2024
Trang 2HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH
BÀI BÁO CÁO CUỐI KHÓA PHƯƠNG PHÁP LUẬN NGHIÊN CỨU KHOA HỌC
ĐỀ TÀI: Phân tích và phòng chống tấn công SQL Injection trong
ứng dụng Web
Giảng viên hướng dẫn: PHẠM QUỐC HỢP
Sinh viên thực hiện: PHẠM NGỌC HOẠT
MSSV: N19DCAT034 LỚP: D19CQAT01-N
Trang 31 Tên đề tài: Phân tích và phòng chống tấn công SQL Injection trong ứng
dụng Web
2 Lý do nghiên cứu / Đặt vấn đề: Trong bối cảnh công nghệ thông tin ngày
càng phát triển và việc sử dụng các ứng dụng web trở nên phổ biến, bảo mật thông tin đã trở thành một vấn đề cấp bách và quan trọng Một trong những lỗ hổng bảo mật phổ biến và nguy hiểm nhất đối với các ứng dụng web hiện nay là SQL Injection SQL Injection cho phép kẻ tấn công thao túng cơ sở dữ liệu của ứng dụng bằng cách chèn mã SQL độc hại qua các đầu vào của người dùng, dẫn đến những hậu quả nghiêm trọng như mất
mát dữ liệu, vi phạm quyền riêng tư, và làm gián đoạn dịch vụ
3 Lịch sử nghiên cứu / Lược khảo tài liệu:
Tài liệu 1: Nguyễn Ngọc Thanh (2017) Một số phương pháp phát hiện tấn
http://thuvien.hou.edu.vn/Opac/DmdInfo.aspx?mnuid=141&search_id=4 9858&search_field=AUTHOR&dmd_id=67811 [đã truy cập 10 – 05 – 2024]
+ Tài liệu nghiên cứu: Tập trung vào việc phát hiện tấn công SQL
Injection bằng cách sử dụng các kỹ thuật học máy Nghiên cứu này xem xét các phương pháp hiện có và đề xuất các kỹ thuật mới để cải thiện khả năng phát hiện tấn công SQL Injection trong các ứng dụng web
+ Phương pháp thực hiện: phân tích và tổng hợp: đọc tài liệu, tổng hợp
lý thuyết, phân tích lý thuyết về cách tấn công SQL Injection
+ Kết quả mà tài liệu đã đạt được:
Hiệu quả phát hiện: Các mô hình học máy, đặc biệt là SVM và Neural
Networks, đã cho thấy hiệu quả cao trong việc phát hiện các tấn công SQL Injection với độ chính xác và độ nhạy cao
Khả năng ứng dụng: Nghiên cứu chứng minh rằng việc sử dụng học
máy có thể tự động phát hiện các mẫu tấn công mới và chưa được biết đến trước đó
Cải thiện bảo mật: Các phương pháp được đề xuất giúp nâng cao bảo
mật cho các ứng dụng web, giảm thiểu nguy cơ bị tấn công SQL
Injection
+ Nhận xét về kết quả mà đề tài đã làm được cũng như chưa làm được:
Điểm mạnh:
Trang 4 Hiệu quả cao: Các thuật toán học máy đã chứng minh khả năng
phát hiện tấn công SQL Injection một cách hiệu quả, với độ chính xác và độ nhạy cao
Tính tự động: Các mô hình học máy có khả năng tự động học và
phát hiện các mẫu tấn công mới, giúp nâng cao tính bảo mật của
hệ thống
Ứng dụng thực tiễn: Kết quả nghiên cứu có thể được áp dụng
trong thực tiễn để bảo vệ các ứng dụng web khỏi các cuộc tấn công SQL Injection
Điểm yếu:
Cần dữ liệu chất lượng cao: Hiệu quả của các mô hình học máy
phụ thuộc rất nhiều vào chất lượng và số lượng dữ liệu huấn luyện Thiếu dữ liệu có thể làm giảm hiệu suất của mô hình
Yêu cầu tài nguyên tính toán: Việc triển khai và chạy các mô
hình học máy, đặc biệt là các mô hình phức tạp như Neural Networks, đòi hỏi tài nguyên tính toán đáng kể
Khả năng tổng quát hóa: Mặc dù các mô hình học máy có thể
phát hiện nhiều mẫu tấn công mới, nhưng vẫn có khả năng bị bỏ sót các mẫu tấn công đặc biệt phức tạp hoặc chưa từng gặp phải
Tài liệu 2: Lê Đình Duy (2020) Tấn công kiểu SQL Injection – Tác hại và
https://www.academia.edu/16301772/T%E1%BA%A4N_C%C3%94NG _KI%E1%BB%82U_SQL_INJECTION_T%C3%81C_H%E1%BA%A0 I_V%C3%80_PH%C3%92NG_TR%C3%81NH?auto=download [đã truy cập 10 – 05 – 2024]
+ Tài liệu nghiên cứu: Tập trung vào việc phân tích chi tiết các kiểu tấn
công SQL Injection, những tác hại mà chúng gây ra, và các biện pháp phòng tránh để bảo vệ ứng dụng web khỏi các cuộc tấn công này
+ Phương pháp thực hiện: Phân tích và tổng hợp, thử và sai
+ Kết quả mà tài liệu đạt được:
Phân loại và phân tích tấn công: Tài liệu đã phân loại và mô tả chi
tiết các kiểu tấn công SQL Injection khác nhau, giúp người đọc hiểu rõ hơn về cách thức hoạt động và nguy cơ của từng kiểu tấn công
Đánh giá tác hại: Đưa ra đánh giá rõ ràng về tác hại của tấn công
SQL Injection, từ đó nhấn mạnh tầm quan trọng của việc phòng tránh
Trang 5Giải pháp phòng tránh: Cung cấp một bộ giải pháp toàn diện và
thực tế để phòng tránh các cuộc tấn công SQL Injection, bao gồm cả các biện pháp kỹ thuật và khuyến nghị về quy trình phát triển phần mềm an
toàn
+ Nhận xét về kết quả đề tài đạt được và chưa đạt được:
Điểm mạnh:
Phân tích toàn diện: Tài liệu đã phân tích toàn diện các kiểu tấn
công SQL Injection, từ cách thức thực hiện đến tác hại cụ thể, giúp người đọc có cái nhìn rõ ràng và chi tiết về vấn đề
Giải pháp thực tế: Các giải pháp phòng tránh được đề xuất rất thực
tế và có thể áp dụng trực tiếp trong việc phát triển và bảo vệ ứng dụng web
Tính ứng dụng cao: Tài liệu không chỉ cung cấp kiến thức lý thuyết
mà còn đưa ra các công cụ và phương pháp cụ thể để bảo vệ hệ thống, giúp các nhà phát triển và quản trị hệ thống dễ dàng áp dụng
Điểm yếu:
Thiếu thử nghiệm thực tế: Mặc dù các giải pháp được đề xuất rất
hữu ích, nhưng tài liệu thiếu các thử nghiệm thực tế để minh chứng cho hiệu quả của các biện pháp phòng tránh
Không đề cập đến các kỹ thuật phát hiện nâng cao: Tài liệu chưa
đề cập đến việc sử dụng các kỹ thuật học máy hay trí tuệ nhân tạo
để phát hiện và phòng chống SQL Injection, một hướng nghiên cứu đang phát triển mạnh mẽ
Thiếu chi tiết về công cụ bảo mật: Mặc dù có đề cập đến việc sử
dụng các công cụ bảo mật như WAF, tài liệu không cung cấp chi tiết
về cách cài đặt và cấu hình các công cụ này
Tài liệu 3: Bri Rolston (2005) Attack Methodolygy Analysis: SQL
https://inldigitallibrary.inl.gov/sites/sti/sti/3395025.pdf [đã truy cập 10 –
05 – 2024]
+ Tài liệu nghiên cứu: phân tích chi tiết phương pháp tấn công SQL
Injection, tập trung vào các kỹ thuật và chiến lược mà kẻ tấn công sử dụng
để khai thác lỗ hổng này Tài liệu cung cấp một cái nhìn tổng quan về các
phương pháp tấn công, cách thức hoạt động và các biện pháp phòng chống
Trang 6+ Phương pháp thực hiện: phân tích và tổng hợp
+ Kết quả mà tài liệu đạt được:
Phân tích chi tiết về các phương pháp tấn công: Tài liệu cung cấp
một cái nhìn chi tiết và toàn diện về các phương pháp tấn công SQL Injection, bao gồm cả các kỹ thuật nâng cao
Nghiên cứu điển hình hữu ích: Các nghiên cứu điển hình giúp minh
họa rõ ràng các phương pháp tấn công và phòng chống trong thực tế, cung cấp bài học kinh nghiệm quý báu
Đề xuất chiến lược phòng chống hiệu quả: Đưa ra các biện pháp
phòng chống cụ thể và khả thi, giúp các nhà phát triển và quản trị hệ
thống có thể áp dụng để bảo vệ ứng dụng của mình
+ Nhận xét về kết quả mà đề tài đạt được và chưa đạt được:
Điểm mạnh:
Phân tích toàn diện: Tài liệu cung cấp một phân tích toàn diện về
các phương pháp tấn công SQL Injection, từ cơ bản đến nâng cao, giúp người đọc hiểu rõ về các nguy cơ và chiến lược tấn công
Nghiên cứu điển hình thực tế: Việc phân tích các trường hợp tấn
công thực tế giúp minh họa cụ thể và rõ ràng hơn về cách thức tấn công diễn ra và hậu quả của nó
Giải pháp chi tiết: Các biện pháp phòng chống được đề xuất rất chi
tiết và cụ thể, cung cấp hướng dẫn thực tiễn cho việc bảo vệ hệ thống
Điểm yếu:
Thiếu cập nhật mới nhất: Tài liệu được xuất bản từ năm 2005, do
đó có thể thiếu các kỹ thuật và biện pháp phòng chống mới nhất hiện nay Công nghệ và phương pháp tấn công đã có nhiều thay đổi và phát triển trong những năm qua
Chưa đề cập đến học máy và trí tuệ nhân tạo: Tài liệu không bao
gồm các kỹ thuật phát hiện tấn công hiện đại như học máy và trí tuệ nhân tạo, vốn đang ngày càng trở nên quan trọng trong lĩnh vực bảo mật
Khả năng áp dụng thực tiễn: Mặc dù các biện pháp phòng chống
được đề xuất rất chi tiết, nhưng không có hướng dẫn cụ thể về cách triển khai các biện pháp này trong các môi trường thực tế khác nhau
Trang 7Tài liệu 4: William G.J Halfond and Alessandro Orso (2007) Detection
and Prevention of SQL Injection Attacks, Từ: https://viterbi-web.usc.edu/~halfond/papers/halfond07springer.pdf [đã truy cập 10 – 05 – 2024]
+ Tài liệu nghiên cứu: tập trung vào việc phát hiện và ngăn chặn các cuộc
tấn công SQL Injection Nghiên cứu này giới thiệu các phương pháp và công cụ để bảo vệ ứng dụng web khỏi các tấn công dạng này, đồng thời
cung cấp đánh giá về hiệu quả của các phương pháp được đề xuất
+ Phương pháp thực hiện: phân tích và tổng hợp, thử nghiệm và đánh
giá
+ Kết quả mà tài liệu đạt được:
Phát triển công cụ phát hiện và ngăn chặn: Nghiên cứu đã phát
triển một công cụ hiệu quả để phát hiện và ngăn chặn tấn công SQL Injection, giúp bảo vệ ứng dụng web khỏi các cuộc tấn công dạng này
Hiệu quả cao trong thử nghiệm: Công cụ được thử nghiệm đã cho
thấy hiệu quả cao trong việc phát hiện và ngăn chặn các lỗ hổng SQL Injection, với các chỉ số độ chính xác, độ nhạy và độ đặc hiệu đáng kể
Đóng góp về mặt lý thuyết: Nghiên cứu cung cấp một phân tích lý
thuyết toàn diện về các kiểu tấn công SQL Injection và các kỹ thuật phát
hiện và ngăn chặn
+ Nhận xét về kết quả mà đề tài đạt được và chưa đạt được:
Điểm mạnh:
Công cụ phát hiện và ngăn chặn hiệu quả: Công cụ phát hiện và
ngăn chặn do nhóm nghiên cứu phát triển đã chứng minh hiệu quả cao trong việc bảo vệ ứng dụng web
Phân tích toàn diện: Nghiên cứu cung cấp một cái nhìn toàn diện
và chi tiết về các kiểu tấn công SQL Injection và các kỹ thuật phòng chống
Phương pháp kết hợp: Sử dụng cả kỹ thuật phân tích tĩnh và động
để phát hiện các lỗ hổng bảo mật, giúp tăng cường khả năng bảo vệ
hệ thống
Điểm yếu:
Trang 8 Thiếu thử nghiệm thực tế đa dạng: Mặc dù công cụ được thử
nghiệm hiệu quả trên một số ứng dụng web mẫu, nhưng nghiên cứu
có thể mở rộng phạm vi thử nghiệm để đánh giá hiệu quả trong các môi trường thực tế đa dạng hơn
Yêu cầu về tài nguyên và kỹ thuật: Việc triển khai và sử dụng
công cụ này có thể yêu cầu kiến thức kỹ thuật sâu và tài nguyên tính toán đáng kể, điều này có thể là một thách thức đối với các tổ chức nhỏ hoặc thiếu kinh nghiệm
Không cập nhật các kỹ thuật hiện đại: Nghiên cứu từ năm 2007,
do đó có thể thiếu cập nhật về các phương pháp và công cụ phát hiện tấn công SQL Injection mới nhất như các kỹ thuật học máy và trí tuệ nhân tạo
4 Mục tiêu nghiên cứu:
Nghiên cứu các phương pháp và kỹ thuật để phát hiện, ngăn chặn và phòng chống SQL Injection trong ứng dụng web
5 Phạm vi nghiên cứu:
Tập trung vào các ứng dụng web có sử dụng cơ sở dữ liệu SQL
6 Câu hỏi (vấn đề) nghiên cứu:
Câu hỏi 1: Các kỹ thuật tấn công SQL Injection phổ biến là gì và chúng
hoạt động như thế nào?
Câu hỏi 2: Bằng chứng nào cho thấy tác hại của tấn công SQL Injection? Câu hỏi 3: Những phương pháp nào hiện có để phát hiện và phòng chống
tấn công SQL Injection trong ứng dụng web?
Câu hỏi 4: Hiệu quả của các biện pháp phòng chống tấn công SQL
Injection hiện nay ra sao và có những cải tiến gì có thể thực hiện?
7 Giả thuyết khoa học:
Giả thuyết 1: Các kỹ thuật tấn công SQL Injection có thể được phân loại
và mô tả một cách chi tiết, từ đó giúp phát hiện và phòng chống hiệu quả hơn
Giả thuyết 2: Tấn công SQL Injection gây ra các hậu quả nghiêm trọng,
bao gồm mất mát và rò rỉ dữ liệu, thiệt hại tài chính, tổn thất uy tín của tổ chức, và các hậu quả pháp lý, được chứng minh thông qua các vụ tấn công nổi bật, các báo cáo nghiên cứu từ các tổ chức bảo mật uy tín, và các phân tích học thuật và kỹ thuật chi tiết
Trang 9Giả thuyết 3: Sử dụng các biện pháp kết hợp như phân tích tĩnh và động,
học máy và trí tuệ nhân tạo có thể tăng cường khả năng phát hiện và ngăn
chặn tấn công SQL Injection
Giả thuyết 4: Việc áp dụng các biện pháp phòng chống đúng cách có thể
giảm thiểu rủi ro tấn công SQL Injection một cách đáng kể, bảo vệ an toàn
dữ liệu và hệ thống
8 Dự kiến luận cứ:
Luận cứ 1: Phân loại và mô tả các kỹ thuật tấn công SQL Injection, bao
gồm Classic SQL Injection, Blind SQL Injection, và Advanced SQL Injection
Phân loại chi tiết các kỹ thuật tấn công:
Classic SQL Injection: Tấn công trực tiếp vào các truy vấn SQL bằng cách chèn các mã độc hại vào các trường đầu vào
Blind SQL Injection: Sử dụng các câu hỏi điều kiện đúng/sai để tìm
ra thông tin mà không thể trực tiếp xem kết quả của truy vấn
Union-based SQL Injection: Sử dụng từ khóa UNION để kết hợp kết quả của nhiều truy vấn và khai thác dữ liệu từ cơ sở dữ liệu
Error-based SQL Injection: Tận dụng thông báo lỗi của cơ sở dữ liệu
để lấy thông tin cấu trúc và dữ liệu của cơ sở dữ liệu
Time-based Blind SQL Injection: Dựa trên sự thay đổi về thời gian phản hồi để xác định các điều kiện đúng/sai trong truy vấn
Mô tả cách thức hoạt động của từng kỹ thuật:
Chi tiết từng bước tấn công: Mô tả chi tiết từng bước trong quá trình tấn công, từ việc chèn mã độc hại đến việc khai thác thông tin
Ví dụ cụ thể: Cung cấp ví dụ cụ thể về các đoạn mã SQL bị tấn công
và cách chúng bị khai thác
Phát hiện và phòng chống:
Kỹ thuật phát hiện: Sử dụng các kỹ thuật phát hiện như phân tích mẫu mã, kiểm tra đầu vào, và giám sát hệ thống
dụng các câu truy vấn có tham số (Prepared Statements), kiểm tra
và lọc đầu vào người dùng, và áp dụng các chính sách bảo mật nghiêm ngặt
Luận cứ 2: Các vụ tấn công SQL Injection nổi bật:
Heartland Payment Systems (2008):
Trang 10 Sự kiện: Heartland Payment Systems, một trong những công ty xử
lý thẻ tín dụng lớn nhất tại Mỹ, đã bị tấn công SQL Injection
Tác hại: Kẻ tấn công đã xâm nhập vào hệ thống và đánh cắp dữ liệu của hơn 130 triệu thẻ tín dụng Vụ tấn công này đã gây thiệt hại hàng triệu USD cho công ty và khách hàng bị ảnh hưởng
Bằng chứng: Theo báo cáo của Heartland và các cơ quan điều tra, việc sử dụng lỗ hổng SQL Injection là nguyên nhân chính dẫn đến
vụ xâm nhập này
Sony Pictures (2011):
Sự kiện: Sony Pictures bị tấn công SQL Injection, dẫn đến việc rò rỉ hàng triệu tài khoản người dùng và thông tin cá nhân
Tác hại: Hàng triệu tên đăng nhập, mật khẩu và thông tin cá nhân của người dùng bị đánh cắp và công bố trên internet, gây ảnh hưởng nghiêm trọng đến uy tín của Sony và sự an toàn của khách hàng
Bằng chứng: Các hacker nhóm LulzSec đã tuyên bố trách nhiệm cho
vụ tấn công này, và các phân tích kỹ thuật sau đó xác nhận việc sử dụng SQL Injection để xâm nhập hệ thống
Báo cáo và nghiên cứu về tác hại của SQL Injection:
Báo cáo của OWASP:
Security Project) liệt kê SQL Injection là một trong những nguy cơ bảo mật hàng đầu đối với các ứng dụng web
dữ liệu, hủy hoại dữ liệu, rò rỉ thông tin nhạy cảm, và kiểm soát hoàn toàn hệ thống ứng dụng
Nghiên cứu của Verizon Data Breach Investigations Report (DBIR):
Nội dung: Báo cáo DBIR hàng năm của Verizon phân tích hàng nghìn vụ xâm nhập dữ liệu và tấn công mạng trên toàn thế giới
Bằng chứng: Báo cáo DBIR nhiều năm liên tiếp chỉ ra rằng tấn công SQL Injection là một trong những phương thức phổ biến nhất để xâm nhập cơ sở dữ liệu và đánh cắp thông tin nhạy cảm
Hậu quả pháp lý và tài chính:
Chi phí khắc phục và phạt hành chính:
Ví dụ: Sau vụ tấn công Heartland, công ty phải chi hàng triệu USD
để khắc phục hệ thống và bồi thường cho các nạn nhân Ngoài ra,