Nghiên cứu một số vấn đề về bảo mật ứng dụng web - Pdf 10

Sưu tầm bởi: www.daihoc.com.vn

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
Sưu tầm bởi: www.daihoc.com.vn

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

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

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

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

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…………………………………………


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…………………………………………………………………………...

145
Sưu tầm bởi: www.daihoc.com.vn

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


Khoa CNTT
Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet
-Trang 8-
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 khoản của người dùng, thậm chí cả người quản trị.
Không chỉ số lượng các cuộc tấn công tăng lên nhanh chóng, mà các phương pháp tấn
công ngày càng tinh vi và có tổ chức. Mặt khác, việc quản trị các hệ thống mạng đòi
hỏi nhà quản trị hệ thống có kiến thức và kinh nghiệm về hệ thống mạng chắc chắn,
do đó sự yếu kém trong quản lý sẽ tạo nhiều điều kiện cho các hacker khai thác.
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ỹ.
Sưu tầm bởi: www.daihoc.com.vn

Khoa CNTT

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.
Sưu tầm bởi: www.daihoc.com.vn

Khoa CNTT
Phần I: Cơ sở lý thuyết
-Trang 11-
PHẦN THỨ NHẤT
CƠ SỞ LÍ THUYẾT
Sưu tầm bởi: www.daihoc.com.vn

Khoa CNTT
Chương 1: Giới thiệu Ứng dụng Web
-Trang 12-
Chương 1
GIỚITHIỆ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
Sưu tầm bởi: www.daihoc.com.vn

Khoa CNTT
Chương 1: Giới thiệu Ứng dụng Web
-Trang 13-
CHƯƠNG 1: GIỚI THIỆU ỨNG DỤNG WEB
DE
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ố

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:
Sưu tầm bởi: www.daihoc.com.vn

Khoa CNTT
Chương 1: Giới thiệu Ứng dụng Web
-Trang 15-
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, Netscap Navigator
• Trình chủ: Apache, IIS, ….
• Hệ quản trị cơ sở dữ liệu: SQL Server, MySQL, DB2, Access….
Bên cạnh đó, một giải pháp dùng để bảo vệ một hệ thống mạng thường đượcsử dụng
là bức tường lửa, nó có vai trò như là lớp rào chắn bên ngoài một hệ thống mạng, vì
chức năng chính của firewall là kiểm soát luồng thông tin giữa các máy tính. Có thể
xem firewall như một bộ lọc thông tin, nó xác định và cho phép một máy tính này có
được truy xuất đến một máy tính khác hay không, hay một mạng này có được truy
xuất đến mạng kia hay không.
Người ta thường dùng firewall vào mục đích:
• Cho phép hoặc cấm những dịch vụ truy xuất ra ngoài.
Sưu tầm bởi: www.daihoc.com.vn

Khoa CNTT
Chương 1: Giới thiệu Ứng dụng Web
-Trang 16-
• Cho phép hoặc cấm những dịch vụ từ bên ngoài truy nhập vào trong.
• Kiểm soát địa chỉ truy nhập, cấm địa chỉ truy nhập.
Firewall hoạt động dựa trên gói IP do đó kiểm soát việc truy nhập của máy người sử
dụng
II.MÔ TẢ HOẠT ĐỘNG CỦA MỘT ỨNG DỤNG WEB

CÁC KHÁI NIỆM, THUẬT NGỮ LIÊN QUAN
Nội dung:
I. Hacker
II. HTTP Header
III. Phiên làm việc (Session)
IV. Cookie
V. Proxy
Sưu tầm bởi: www.daihoc.com.vn

Khoa CNTT
Chương 2: Các khái niệm, thuật ngữ liên quan
-Trang 19-
CHƯƠNG 2:
CÁC KHÁI NIỆM, THUẬT NGỮ LIÊN QUAN
DE
I. HACKER
Hacker là một thuật ngữ dùng để chuyên chỉ những kẻ phá hoại các hệ thống mạng…
Hacker thường là những chuyên gia về máy tính. Hacker không tạo ra các kẽ hở cho
hệ thống, nhưng hacker lạilà những người am hiểu về hệ điều hành, hệ quản trị dữ
liệu, các ngôn ngữ lập trình…Họ sử dụng kiến thức của mình trong việc tìm tòi và
khai thác các lỗ hổng của hệ thống mạng. Một số hacker chỉ dừng lạiviệc phát hiện
và thông báo lỗi tìm được cho những nhà bảo mật hay người phát triển chương trình,
họ được xem như là WhiteHat (Hacker nón trắng). Một số hacker dựa vào những lỗ
hổng thực hiện việc khai thác trái phép nhằm mục đích phá hoại hay mưu lợi riêng,
những người này bị xem như là BlackHat (Hacker nón đen).
Vì tính chất phổ biến của thuật ngữ hacker, nên trong phần trình bày, luận văn sẽ sử
dụng “hacker” thay cho “kẻ tấn công”.
II.HTTP HEADER
HTTP header là phần đầu (header) của thông tin mà trình khách và trình chủ gửi cho
nhau. Những thông tin trình khách gửi cho trình chủ được gọi là HTTP requests (yêu

Sưu tầm bởi: www.daihoc.com.vn

Khoa CNTT
Chương 2: Các khái niệm, thuật ngữ liên quan
-Trang 21-
Content-Length: 2291
Content-Type: text/html
Set-Cookie: ASPSESSIONIDQQGGGNCG=LKLDFFKCINFLDMFHCBCBMFLJ;
path=/
Cache-control: private
<HTML>
<BODY>
...
o Dòng đầu là dòng trạng thái, để cho biết phiên bản HTTP được dùng
(HTTP/1.1), mã trạng thái (200) và trạng thái (OK).
o Tiếp theo là các tham số.
o Tiếp theo là một dòng trống để báo hiệu kết thúc header, tiếp theo là phần
thân của HTTP response.
Danh sách tham số của HTTP header được trình bày trong phụ lụcA
III. SESSION
HTTP là giao thức hướng đối tượng tổng quát, phi trạng thái, nghĩa là HTTP không
lưu trữ trạng thái làm việc giữa trình duyệt với trình chủ. Sự thiếu sót này gây khó
khăn cho mộtsố ứng dụng Web, bởi vì trình chủ không biết được trước đó trình
duyệt đã có những trạng thái nào. Vì thế, để giải quyết vấn đề này, ứng dụng Web
đưa ra một khái niệmphiê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ườidù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ưuvào :
Sưu tầm bởi: www.daihoc.com.vn


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status