Khoa CNTT
Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet
MỤC LỤC
GIỚI THIỆU………………………………………………………………………………
Tổ chức của luận văn……………………………………………………………………
PHẦN THỨ NHẤT: CƠ SỞ LÍ THUYẾT……………………………………………….
Chương 1: Giới thệu Ứng dụng Web……………………………………………………
I. KHÁI NIỆM ỨNG DỤNG WEB……………………………… ……………………
II. MÔ TẢ HOẠT ĐỘNG CỦA MỘT ỨNG DỤNG WEB……… …………………
Chương 2: Các khái niệm, thuật ngữ liên quan …………………………………………
I. HACKER………………………………………………………………………………
II. HTTP HEADER……………………………………………………………………
III. SESSION…………………………….………………………………………………
IV. COOKIE……………………………………………………………………………
V. PROXY……………………………………………………………………………….
Chương 3: Giới thiệu sơ lược về các kĩ thuật tấn công Ứng dụng Web…………………
I. KIỂM SOÁT TRUY CẬP WEB………………………………………………………
I.1. Thâm nhập hệ thống qua cửa sau…………………………………………………
II. CHIẾM HỮU PHIÊN LÀM VIỆC…………………………………………………
II.1. Ấn định phiên làm việc……………………………………………………………
II.2. Đánh cắp phiên làm việc………………………………………………………….
III. LỢI DỤNG CÁC THIẾU SÓT TRONG VIỆC KIỂM TRA DỮ LIỆU NHẬP HỢP
LỆ……….……………………………………………………………………………
III.1. Kiểm tra tính đúng đắn của dữ liệu bằng ngôn ngữ phía trình duyệt…………
III.2. Tràn bộ đệm…………… ……………………………………………………….
III.3. Mã hóa URL……………………………………………………………………
III.4. Kí tự Meta………………………………………………………………………
III.5. Vượt qua đường dẫn……………………………………………………………
III.6. Chèn mã lệnh thực thi trên trình duyệt nạn nhân………………………………
III.7. Thêm câu lệnh hệ thống………………….……………………………………
7
III.11. Thao tác trên tham số truyền…………………………………………………
IV. ĐỂ LỘ THÔNG TIN……………………………………………………………….
V. TỪ CHỐI DỊCH VỤ………………….……………………………………………
PHẦN THỨ HAI: CÁC KĨ THUẬT TẤN CÔNG VÀ BẢO MẬT ỨNG DỤNG WEB
Chương 4: Thao tác trên tham số truyền…………………………………………………
I. THAO TÁC TRÊN URL……………………………………………………………
I.1. Khái niệm………………………………………………………………………….
I.2. Một số biện pháp khắc phục……………………………………………………….
II. THAO TÁC TRÊN BIẾN ẨN FORM……………………………………………….
II.1. Khái niệm…………………………………………………………………………
II.2. Một số biện pháp khắc phục……………………………………………………
III. THAO TÁC TRÊN COOKIE………………………………………………………
III.1. Khái niệm ……………………………………………………………………….
III.2. Một số biện pháp khắc phục……………………………………………………
IV. THAO TÁC TRONG HTTP HEADER…………………………………………….
IV.1. Khái niệm………………………………………………………………………
IV.2. Một số biện pháp khắc phục……………………………………………………
Chương 5: Chèn mã lệnh thực thi trên trình duyệt nạn nhân (Cross Side Scripting)…….
I. KĨ THUẬT TẤN CÔNG CROSS-SITE SCRIPTING (XSS)………………………
II. PHƯƠNG PHÁP TẤN CÔNG XSS TRUYỀN THỐNG…………………………
III. MỘT SỐ WEBSITE TÌM THẤY LỖ HỔNG XSS………………………………
IV. TẤN CÔNG XSS BẰNG FLASH………………………………………………….
V. CÁCH PHÒNG CHỐNG……………………………………………………………
Chương 6: Chèn câu truy vấn SQL (SQL Injection)…………………………………….
I. KHÁI NIỆM SQL INJECTION……………………………………………………
II. GIỚI THIỆU MÔ HÌNH CƠ SỞ DỮ LIỆU………………………………………
30
30
30
30
III.3. Tấn công dưa vào câu lệnh HAVING…………………………………………
III.4. Tấn công dưa vào câu lệnh kết hợp UNION……………………………………
III.5. Tấn công dưa vào lệnh INSERT………………………………………………
III.6. Tấn công dưa vào STORED PROCEDURE……………………………………
III.7. Nâng cao………………………………………………………………………
III.7.1. Chuỗi kí tự không có dấu nháy đơn………………………………………….
III.7.2. Tấn công 2 tầng………………………………………………………………
III.7.3. Tránh sự kiểm soát…………………………………………………………
III.7.4. Dùng Extended Stored Procedure……………………………………………
III.7.4.1. Dùng Extended Stored Procedure có sẵn trong hệ thống SQL Server…
III.7.4.2. Dùng Extended Stored Procedure tự tạo………………………………….
III.7.4.3. Nhập tập tin văn bản vào bảng……………………………………………
IV. CÁCH PHÒNG CHỐNG…………………………………………………………
IV.1. Kiểm tra dữ liệu………………………………………………………………
IV.2. Khoá chặt SQL Server (SQL Server Lockdown)……………………………
Chương 7: Chiếm hữu phiên làm việc (Session Management)…………………………
I. TỔNG QUAN VỀ SESSION ID……………………………………………………
II. ẤN ĐỊNH PHIÊN LÀM VIỆC……………………………………………………
II.1. Tấn công Session ID trên tham số URL…………………………………………
II.2. Tấn công Session ID trong biến ẩn form………………………………………
II.3. Tấn công Session ID trong cookie……………………………………………….
II.4. Cách phòng chống……………………………………………………………….
III. ĐÁNH CẮP PHIÊN LÀM VIỆC…………………………………………………
III.1. Tấn công kiểu dự đoán phiên làm việc (Prediction sessionID)…………………
III.2. Tấn công kiểu vét cạn phiên làm việc (Brute force ID)………………………
III.3. Tấn công kiểu dùng đoạn mã để đánh cấp phiên làm việc……………………
58
58
60
62
Chương 8: Tràn bộ đệm (Buffer Overflow)……………………………………………
I. KHÁI NIỆM………………………………………………………………………….
II. SƠ ĐỒ TỔ CHỨC CỦA BỘ NHỚ………………………………………………….
II.1. Stack……………………………………………………………………………
II.2. Push và Pop………………………………………………………………………
II.3. Cách làm việc của hàm…………………………………………………………
II.4. Shell code………………………………………………………………………
III. MỘT SỐ CÁCH GÂY TRÀN BỘ ĐỆM QUA ỨNG DỤNG WEB……………….
IV. CÁC CÁCH PHÒNG CHỐNG…………………………………………………….
Chương 9: Từ chối dịch vụ (DoS)……………………………………………………….
I. KHÁI NIỆM…………………………………………………………………………
II. NHỮNG KHẢ NĂNG BỊ TẤN CÔNG BẰNG DOS……………………………….
III. CÁC KĨ THUẬT TẤN CÔNG……………………………………………………
III.1. Khái niệmvề Tcp bắt tay ba chiều………………………………………………
III.2. Lợi dụng TCP thực hiện phương pháp SYN flood truyền thống………………
III.3. Tấn công vào băng thông………………………………………………………
III.3.1. Kiểu tấn công thứ 1…………………………………………………………
III.3.2. Kiểu tấn công thứ 2…………………………………………………………
III.4. Kiểu tấn công vào tài nguyên hệ thống………………………………………….
IV. BIỆN PHÁP PHÒNG CHỐNG…………………………………………………….
Chương 10: Một số kĩ thuật tấn công khác……………………………………………
I. MÃ HÓA URL (URL Encoding) ……………………………………………………
I.1. Khái niệm…………………………………………………………………………
I.2. Một số biện pháp phòng chống…………………………………………………
II. KIỂU TẤN CÔNG VƯỢT ĐƯỜNG DẪN…………………………………………
II.1. Khái niệm………………………………………………………………………
94
94
97
98
IV. NGÔN NGỮ PHÍA TRÌNH CHỦ………………………………………………….
IV.1. Khái niệm………………………………………………………………………
IV.2. Cách tấn công……………………………………………………………………
IV.3. Biện pháp phòng chống…………………………………………………………
Chương 11: Tổng kết quá trình tấn công của Hacker…………………………………
I. THU THẬP THÔNG TIN Ở MỨC HẠ TẦNG CỦA MỤC TIÊU…………………
II. KHẢO SÁT ỨNG DỤNG WEB……………………………………………………
III. TẤN CÔNG………………………………………………………………………
Chương 12: Tổng kết các biện pháp phòng chống……………………………………
I. VỚI NHỮNG NHÀ QUẢN TRỊ MẠNG……………………………………………
II. VỚI NHỮNG NHÀ THIẾT KẾ ỨNG DỤNG WEB……………………………….
III. VỚI NGƯỜI SỬ DỤNG ỨNG DỤNG WEB……………………………………
PHẦN THỨ BA: CHƯƠNG TRÌNH WEB CHECKER………………………………
Chương 13: Chương trình Web Checker………………………………………………
I. ĐẶC TẢ CHƯƠNG TRÌNH WEB CHECKER……………………………………
I.1. Tổng quan………………………………………………………………………
I.2. Yêu cầu…………………………………………………………………………
I.2.1. Yêu cầu chức năng…………………………………………………………….
I.2.1. Yêu cầu phi chức năng………………………………………………………
II. KIẾN TRÚC CHƯƠNG TRÌNH WEB CHECKER………………………………
II.1. Kiến trúc chương trình Web Checker…………………………………………
II.2. Giao tiếp giữa chương trình với trình chủ Web………………………………….
III. CÀI ĐẶT…………………………………………………………………………
III.1. Ngôn ngữ cài đặt………………………………………………………………
III.2. Phương pháp cài đặt…………………………………………………………….
122
123
123
123
123
III.3. Mô tả chương trình và cách sử dụng……………………………………………
III.3.1. Màn hình chương trình………………………………………………………
III.3.2. Cách sử dụng………………………………………………………………
IV. ĐÁNH GIÁ CHƯƠNG TRÌNH……………………………………………………
IV.1. Những vấn đề đạt được………………………………………………………
IV.2. Những vấn đề hạn chế…………………………………………………………
KẾT LUẬN……………………………………………………………………………
I. NHỮNG VẤN ĐỀ ĐẠT ĐƯỢC…………………………………………………….
II. HƯỚNG PHÁT TRIỂN…………………………………………………………….
PHỤ LỤC………………………………………………………………………………
145
145
146
146
151
151
152
153
153
153
155
156
157
158
Khoa CNTT
Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet
-Trang 7-
GIỚI THIỆU
Ngày nay, khi Internet được phổ biến rộng rãi, các tổ chức, cá nhân đều có nhu cầu
giới thiệu thông tin của mình trên xa lộ thông tin cũng như thực hiện các phiên giao
Cũng theo CERT, những cuộc tấn công thời kỳ 1988-1989 chủ yếu là đoán tên người
sử dụng-mật khẩu (UserID/password) hoặc sử dụng một số lỗi của các chương trình và
hệ điều hành (security hole) làm vô hiệu hệ thống bảo vệ, tuy nhiên các cuộc tấn công
vào thời gian gần đây còn bao gồm cả các thao tác như giả mạo địa chỉ IP, theo dõi
thông tin truyền qua mạng, chiếm các phiên làm việc từ xa (telnet hoặc rlogin), cài
trojan hay worm để kiểm soát hay điều khiển máy tính…vì thế, nhu cầu bảo vệ thông
tin trên Internet là cần thiết nhằm mục đích bảovệ dữ liệu, bảo vệ thông tin người dùng
và bảo vệ hệ thống.
Khi nói đến vấn đề bảo mật, hầu hết các chuyên gia bảo mật đều chú trọng đến sự an
toàn của hệ thống mạng và hệ điều hành. Để bảo vệ cho hệ thống, phương pháp thường
được chọn là sử dụng firewall. Tuy nhiên, theo tuyên bố của CSI/FBI : 78% nơi bị hại
có sử dụng firewall và 59% thì bị tấn công thông qua Internet, cụ thể hơn là theo báo
cáo của CSI/FBI Computer Crime và Security Survey thì tổng số thiệt hại do những
ứng dụng Web bị tấn công từ năm 1997 đến năm 2000 là 626 triệu đôla Mỹ.
Khoa CNTT
Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet
-Trang 9-
Với những công cụ tự động tìm lỗ hổng tuy giúp rất nhiều cho những nhà lập trình
Web nhưng vẫn không thể ngăn chặn toàn bộ vì công nghệ Web đang phát triển nhanh
chóng (chủ yếu chú trọng đến yếu tố thẩm mĩ, yếutố tốc độ…) nên dẫn đến nhiều
khuyết điểm mới phát sinh. Sự tấn công không nằm trong khuôn khổ vài kĩ thuật đã
phát hiện, mà linh động và tăng lên tùy vào những sai sót của nhà quản trị hệ thống
cũng như của những người lập trình ứng dụng.
Luận văn được thực hịên với mục đích tìm hiểu, phân tích các lỗ hổng bảo mật trong
các ứng dụng web (cùng với chương trình minh họa) để qua đó đề xuất các phương án
sửa chữa. Song song đó, luận văn còn thực hiện một chương trình “Tự động phát hiện
lỗ hổng trên ứng dụng Web” giúp ích cho những nhà lập trình Web ít kinh nghiệm
tránh những sai sót trong quá trình tạo các ứng dụng.
Tổ chức của luận văn
Luận văn gồm 13 chương chia thành 3 phần: