nghiên cứu một số vấn đề về bảo mật ứng dụng WEB trên internet Khoa CNTT BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN MẠNG MÁY TÍNH
DE LUẬN
VĂN TỐT NGHIỆP
ĐỀ TÀI:
NGHIÊN CỨU MỘT SỐ VẤN ĐỀ VỀ BẢO MẬT ỨNG DỤNG WEB TRÊN INTERNET GVHD: Th.S. MAI
VĂN CƯỜNG SVTH : NGUYỄN DUY THĂNG - 9912074 NGUYỄN MINH THU - 9912156 KHÓA HỌC: 1999-2003 Khoa CNTT Lời cảm ơn Sau gần 6 tháng nỗ lực thực hiện, luận
văn nghiên cứu “Các kĩ thuật tấn công và
bảo mật ứng dụng Web trên Internet” đã phần nào hoàn thành. Ngoài sự cố gắng hết mình của bản thân, chúng em đã nhận được sự khích lệ rất nhiều từ phía nhà trường, thầy cô, gia đình và bạn bè. Trước hết chúng con xin cám ơn ba mẹ đã luôn động viên và tạo mọi điều kiện tốt
để chúng con học tập và hoàn thành luận
văn tốt nghiệp này. Chúng em xin cám ơn thầy cô trường Đại Học Khoa Học Tự Nhiên đã truyền đạt những kiến thức quý báu cho chúng em trong suốt quá trình học tập. Đặc biệt, chúng em xin bày tỏ lòng chân thành sâu sắc đến thầy Mai
Văn Cường, người đã tận tình hướng dẫn và giúp đỡ chúng em trong quá trình làm luận
văn tốt nghiệp. Xin cám ơn tất cả bạn bè đã và đang động viên, giúp đỡ chúng tôi trong quá trình học tập và hoàn thành tốt luận
văn tốt nghiệp này. Khoa CNTT Lời nhận xét …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… 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 9 11 12 13 16 18 19 19 21 22 25 26 27 27 27 27 27 27 28 28 28 28 29 29 29 Khoa CNTT
Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet III.8. Chèn câu truy
vấn SQL…………………….…………………………………… III.9. Ngôn ngữ phía máy chủ……………… III.10. Kí tự rỗng….………………………………………………………………… . 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 31 31 33 34 35 35 36 36 36 38 39 39 40 41 41 42 43 44 46 50 51 54 56 57 57 Khoa CNTT
Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet III. CÁC CÁCH TẤN CÔNG…………………………………………………………. III.1. Kĩ thuật tấn công SQL Injection……………………………………………… . III.2. Tấn công dưa vào câu lệnh SELECT…………………………………………… 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 62 69 70 70 70 71 74 75 75 76 77 77 78 81 83 84 85 88 89 89 91 92 93 93 94 Khoa CNTT
Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet III.4. Cách phòng chống………………………………………………………………. III.5. Sự khác biệt giữa đánh cắp phiên làm việc (session hijacking) và ấn định phiên làm việc (session fixation)…………………………………………………………… . 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 99 100 101 102 104 106 106 108 109 109 110 110 112 113 113 113 117 117 119 120 120 121 121 121 Khoa CNTT
Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet II.2.
Một số biện pháp phòng chống………………………………………………… III. TẤN CÔNG DỰA VÀO KÍ TỰ RỖNG………………………………………… . III.1. Khái niệm……………………………………………………………………… III.2.
Một số biện pháp phòng chống…………………………………………………. 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 123 125 125 127 128 131 132 134 135 137 139 140 141 142 142 142 142 143 143 143 144 145 145 145 Khoa CNTT
Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet III.2.1. Sử
dụng mô hình giao diện dạng Dialog……………………………………. III.2.2. Sử
dụng ActiveX Control (Microsoft
Web Browser)………………………. III.2.3. Sử
dụng giao diện lập trình Window Socket 2……………………………… III.2.4.
Một số lớp và hàm chính được cài đặt trong chương trình…………………. 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 dịch trực tuyến.
Vấn đề nảy sinh là khi phạm vi
ứng dụng của các
ứng dụng Web ngày càng mở rộng thì khả năng xuất hiện lỗi và bị tấn công càng cao, trở thành đối tượng cho nhiều người tấn công với các mục đích khác nhau. Đôi khi, cũng chỉ đơn giản là
để thử tài hoặc đùa bỡn với người khác. Cùng với sự phát triển không ngừng của
Internet và các dịch vụ
trên Internet,
số lượng các vụ tấn công
trên Internet cũng tăng theo cấp
số nhân. Trong khi các phương tiện thông tin đại chúng ngày càng nhắc nhiều đến những khả năng truy nhập thông tin của Internet, thì các tài liệu chuyên môn bắt đầu
đề cập nhiều đến
vấn đề bảo đảm và an toàn dữ liệu cho các máy tính được kết nối vào mạng Internet. Theo
số liệu của CERT (Computer Emegency Response Team - "Đội cấp
cứu máy tính"),
số lượng các vụ tấn công
trên Internet được thông
báo cho tổ chức này là ít hơn 200 vào năm 1989, khoảng 400 vào năm 1991, 1400 vào năm 1993, và 2241 vào năm 1994, và năm 2001 là 5315 vụ. Những vụ tấn công này nhằm vào tất cả các máy tính có
mặt trên Internet, các máy tính của tất cả các công ty lớn như AT&T, IBM, các trường đại học, các cơ quan nhà nước, các tổ chức quân sự, nhà băng .
Một số vụ tấn công có quy mô khổng lồ (có tới 100.000 máy tính bị tấn công). Hơn nữa, những con
số này chỉ là phần nổi của tảng băng.
Một phần rất lớn các vụ tấn công không được thông báo, vì nhiều lý do, trong đó [...]... Giới thiệu
Ứng dụng Web Chương 1 GIỚI THIỆU
ỨNG DỤNG WEB Nội dung: I Khái niệm
về ứng dụng Web II Mô tả cách hoạt động của
một ứng dụng Web -Trang 12- Khoa CNTT Chương 1: Giới thiệu
Ứng dụng Web CHƯƠNG 1: GIỚI THIỆU
ỨNG DỤNG WEB Luận
văn được thực hiện nhằm tìm hiểu
về các kĩ thuật tấn công trang
Web và
đề ra cách phòng chống Do đó, trong chương đầu tiên luận
văn sẽ giới thiệu
sơ lược
một số khái niệm... chương 12 là nội
dung các biện pháp phòng chống chung nhất -Trang 9- Khoa CNTT
Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet Phần thứ ba : CHƯƠNG TRÌNH
WEB CHECKER” Là gồm chương cuối trình bày, giải thích
về chương trình Kết thúc luận
văn là phần kết luận, tóm lược lại những
vấn đề đã trình bày và
một số hướng phát triển trong tương lai và danh mục các tài liệu tham khảo -Trang 10-... 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ỹ -Trang 8- Khoa CNTT
Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet 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... tương tự) và chạy
trên máy chủ phân tán, kết nối đến nhiều nguồn dữ liệu
Một ứng dụng web thường có kiến trúc gồm: -Trang 13- Khoa CNTT Chương 1: Giới thiệu
Ứng dụng Web Hình 1.I-1 Kiến trúc
một ứng dụng Web • Lớp trình bày: Lớp này có nhiệm vụ hiển thị dữ liệu cho người dùng, ngoài ra còn có thể có thêm các
ứng dụng tạo bố cục cho trang
web • Lớp
ứng dụng: là nơi xử lý của
ứng dụng Web Nó sẽ xử lý thông...Khoa CNTT
Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet có thể kể đến nỗi lo bị
mất uy tín, hoặc đơn giản những người quản trị hệ thống không hay biết những cuộc tấn công đang nhằm vào hệ thống của họ Điển hình là cuộc tấn công vào phần mềm thương mại của IBM tháng 3/2001, hai hacker đã tìm thấy lỗ hổng
trên ứng dụng mà bất cứ ai với
một trình duyệt
Web cũng có thể lấy tài... xây
dựng nội
dung cho những phần sau I KHÁI NIỆM
ỨNG DỤNG WEB Ứng dụng Web là
một ứng dụng chủ/khách sử
dụng giao thức HTTP
để tương tác với người
dùng hay hệ thống khác Trình khách dành cho người sử
dụng thường là
một trình duyệt
Web như
Internet Explorer hay Netscape Navigator Cũng có thể là
một chương trình đóng vai trò đại lý người
dùng hoạt động như
một trình duyệt tự động Người
dùng gửi và nhận... triển khai
trên các trình chủ như IBM WebSphere, WebLogic, Apache, IIS… • Lớp dữ liệu: thường là các hệ quản trị dữ liệu (DBMS) chịu trách nhiệm quản lý các file dữ liệu và quyền sử
dụng Mô hình hóa hoạt động của
một ứng dụng Web: -Trang 14- Khoa CNTT Chương 1: Giới thiệu
Ứng dụng Web Hình 1.I-2 Mô hình hoạt động của
một ứng dụng Web Trong đó: • Trình khách ( hay còn gọi là trình duyệt):
Internet Explorer,... cầu
bảo vệ thông tin
trên Internet là cần thiết nhằm mục đích
bảo vệ 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%... Vì thế,
để giải quyết
vấn đề này,
ứng dụng Web đưa ra
một khái niệm phiên làm việc (Session) Còn SessionID là
một chuỗi
để chứng thực phiên làm việc
Một số trình chủ sẽ cung cấp
một SessionID cho người
dùng khi họ xem trang
web trên trình chủ
Để duy trì phiên làm việc thì sessionID thường được lưu vào : -Trang 21- Khoa CNTT Chương 2: Các khái niệm, thuật ngữ liên quan • Biến
trên URL • Biến ẩn form... các khái niệm
sơ lược các kĩ thuật tấn công
ứng dụng Web đã được phân loại dựa
trên mức độ gây tác hại đối với
ứng dụng I KIỂM SOÁT TRUY CẬP
WEB (Web Access Control) I.1 Thâm nhập hệ thống qua cửa sau (Back door) Trong quá trình thiết kế
ứng dụng, những người phát triển
ứng dụng có thể cài
một “cửa sau” (back door)
để sau này có thể thâm nhập vào hệ thống
một cách
dễ dàng II.CHIẾM HỮU PHIÊN LÀM VIỆC(Session . 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. Khoa CNTT Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet III.2.1. Sử dụng mô hình giao diện dạng Dialog……………………………………. III.2.2. Sử dụng ActiveX