XÂY DỰNG CÔNG CỤ ĐÁNH GIÁ AN TOÀN WEBSITE - Pdf 39

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC LẠC HỒNG


LÊ NGỌC THỨC

XÂY DỰNG CÔNG CỤ ĐÁNH GIÁ AN TOÀN
WEBSITE

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

Đồng
Nai,HỌC
nămLẠC
2012HỒNG
TRƢỜNG
ĐẠI


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC LẠC HỒNG


LÊ NGỌC THỨC

XÂY DỰNG CÔNG CỤ ĐÁNH GIÁ AN TOÀN
WEBSITE
Chuyên ngành: Công nghệ thông tin
Mã số: 60.48.02.01

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

Cao học khóa 2 ngành Công nghệ thông tin đã ủng hộ, động viên, giúp đỡ
tôi trong suốt thời gian học tập nghiên cứu và thực hiện đề tài.
Xin chân thành cảm ơn !
Đồng Nai, tháng 12 năn 2012
Học viên
Lê Ngọc Thức


MỤC LỤC
LỜI CAM ĐOAN ................................................................................................... i
LỜI CẢM ƠN ........................................................................................................ ii
MỤC LỤC ............................................................................................................. iii
DANH MỤC CÁC CHỮ VIẾT TẮT.................................................................. iv
DANH MỤC CÁC BẢNG .................................................................................... v
DANH MỤC HÌNH ẢNH .................................................................................... vi
CHƢƠNG I: GIỚI THIỆU ĐỀ TÀI ........................................................................ 1
1. LÝ DO THỰC HIỆN ĐỀ TÀI ...................................................................... 1
2. MỤC TIÊU VÀ GIỚI HẠN CỦA ĐỀ TÀI.................................................. 4
2.1. Mục tiêu ..................................................................................................... 4
2.2. Giới hạn của đề tài ..................................................................................... 4
3. PHƢƠNG PHÁP THỰC HIỆN ĐỀ TÀI ..................................................... 4
4. CẤU TRÚC LUẬN VĂN .............................................................................. 5
CHƢƠNG II: NHỮNG CÔNG TRÌNH LIÊN QUAN .......................................... 7
1. Bộ tiêu chí đánh giá ....................................................................................... 7
2. Bkav WebScan ............................................................................................... 8
3. Paros Proxy .................................................................................................... 9
4. Google Ratproxy .......................................................................................... 11
5. W3af (Web Application Attack and Audit Framework) ......................... 13
CHƢƠNG III: CƠ SỞ LÝ THUYẾT .................................................................... 16
1. GIỚI THIỆU VỀ ỨNG DỤNG WEB ........................................................ 16

6.3. Các cách tấn công .................................................................................... 43
6.4. Cách phòng chống.................................................................................... 51
7. CHIẾM HỮU PHIÊN LÀM VIỆC (SESSION MANGEMENT) ........... 55
7.1. Tổng quan về Session ID ......................................................................... 55
7.2. Ấn định phiên làm việc ............................................................................ 55
7.3. Đánh cắp phiên làm việc .......................................................................... 62
8. TRÀN BỘ ĐỆM (BUFFER OVERFLOW) .............................................. 65
8.1. Khái niệm ................................................................................................. 65
8.2. Sơ đồ tổ chức của bộ nhớ ......................................................................... 66


8.3. Một số cách gây tràn bộ đệm qua ứng dụng web .................................... 72
8.4. Các cách phòng chống ............................................................................. 72
CHƢƠNG IV: XÂY DỰNG ỨNG DỤNG ĐÁNH GIÁ AN TOÀN WEBSITE 74
1. ĐẶC TẢ CHƢƠNG TRÌNH ....................................................................... 74
1.1. Tổng quan ................................................................................................ 74
1.2. Yêu cầu .................................................................................................... 74
2. KIẾN TRÚC CHƢƠNG TRÌNH ............................................................... 75
2.1. Kiến trúc................................................................................................... 75
2.2. Giao tiếp giữa chƣơng trình với máy chủ web ........................................ 76
3. THIẾT KẾ CHỨC NĂNG HỆ THỐNG ................................................... 77
3.1. Chức năng đánh giá toàn bộ nội dung website ........................................ 77
3.2. Chức năng đánh giá trang hiện tại ........................................................... 77
3.3. Chức năng hiển thị file bị lỗi ................................................................... 78
3.4. Chức năng phân loại mức độ lỗi .............................................................. 79
3.5. Chức năng đƣa ra lời khuyên ................................................................... 80
4. CÔNG CỤ SỬ DỤNG ĐỂ QUÉT LỖ HỔNG BẢO MẬT ...................... 81
4.1. W3af ......................................................................................................... 81
4.2. Phƣơng pháp quét lỗ hổng bảo mật ......................................................... 82
5. XÂY DỰNG CHƢƠNG TRÌNH ................................................................ 84

Hình 3.1: Kiến trúc một ứng dụng web............................................................. 17
Hình 3.2: Mô hình hoạt động của một ứng dụng web ...................................... 18
Hình 3.3: Quá trình thực hiện XSS ................................................................... 38
Hình 3.4: Sơ lƣợc quá trình tấn công ngƣời dùng bằng kỹ thuật Session ........ 56
Hình 3.5: Mô tả chi tiết quá trình thực hiện tấn công ngƣời dùng bằng kỹ thuật ấn
định phiên làm việc ........................................................................................... 57
Hình 3.6: Tấn công thông qua tham số URL .................................................... 58
Hình 3.7: sơ đồ tổ chức bộ nhớ ......................................................................... 67
Hình 3.8: Stack .................................................................................................. 68
Hình 3.9: Push một giá trị vào stack ................................................................. 68
Hình 3.10: Pop một giá trị ra khỏi stack ........................................................... 69
Hình 4.1: Kiến trúc phân tầng của ứng dụng .................................................... 76
Hình 4.2: Giao tiếp giữa ứng dụng và máy chủ ................................................ 76
Hình 4.3: Chức năng đánh giá toàn bộ nội dung website ................................. 77
Hình 4.4: Chức năng đánh giá trang hiện tại .................................................... 78
Hình 4.5: Chức năng hiển thị file bị lỗi ............................................................ 79
Hình 4.6: Chức năng phân loại mức độ lỗi ....................................................... 80
Hình 4.7: Chức năng đƣa ra lời khuyên ............................................................ 81
Hình 4.8: Cấu trúc bảng DM_Loi ..................................................................... 85
Hình 4.9: Giao diện của chƣơng trình ............................................................... 87


1

CHƢƠNG I: GIỚI THIỆU ĐỀ TÀI
1. LÝ DO THỰC HIỆN ĐỀ TÀI
Internet ngày nay thực sự là một cuộc cách mạng vĩ đại về công nghệ,
internet không chỉ kết nối hàng tỉ ngƣời trên trái đất lại với nhau mà còn là một
thƣ viện bách khoa khổng lồ của nhân loại, không một bộ bách khoa toàn thƣ
hay một hệ thống thƣ viện nào trên thế giới có thể sánh bằng.

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 đó 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ả tài khoản
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


3

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ả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,

 Tìm ra các giải pháp nhằm phát hiện các lỗ hổng bảo mật
 Đề xuất các phƣơng án khắc phục
 Xây dựng công cụ đánh giá an toàn webstie
2.2. Giới hạn của đề tài
Đề tài tập trung nghiên cứu các lỗ hổng bảo mật phổ biến do mã nguồn trang
web gây ra. Chủ yếu khảo sát các lỗ hổng phổ biến nhất thƣờng bị hacker sử
dụng để khai thác.
Đề tài đánh giá độ an toàn webstie theo phƣơng pháp Black Box, tức là:
Đóng vai trò là ngƣời dùng đầu cuối (ngƣời sử dụng trang web), thông qua các
thông tin đầu vào mà webstie cung cấp để quan sát các dữ liệu đầu ra do website
trả về và đƣa ra kết luận, do đó ngƣời kiểm tra sẽ không biết nội tại bên trong
trang web xử lý thế nào (vì không có mã nguồn của website).
3. PHƢƠNG PHÁP THỰC HIỆN ĐỀ TÀI


5

Để luận văn đạt kết quả tốt, bản thân sẽ áp dụng các phƣơng pháp sau để thực
hiện đề tài:
 Tiến hành nghiên cứu sâu về bảo mật ứng dụng web và tìm các giải pháp
đảm bảo an toàn cho website.
 Khảo sát hiện trạng lỗ hổng bảo mật website, nghiên cứu các báo cáo và
những nhận xét của các chuyên gia về bảo mật để từ đó có cái nhìn tổng
quan về thực trạng an toàn website.
 Tìm hiểu các công cụ đánh giá an toàn website liên quan, để từ đó so sánh
ƣu và nhƣợc điểm của sản phẩm mình xây dựng.
 Xây dựng một cơ sở dữ liệu về các lỗ hổng bảo mật website để có cơ sở
đánh giá các trang web có lỗ hổng bảo mật.
 Tự viết mã nguồn để xây dựng một ứng dụng rà soát lỗ hổng của website
và đƣa ra những cảnh báo tƣơng ứng.

CHƢƠNG II: NHỮNG CÔNG TRÌNH LIÊN QUAN

Qua quá trình nghiên cứu các công cụ đánh giá an toàn webstie, tác giả xin
đƣợc giới thiệu một số công cụ đang đƣợc sử dụng phổ biến hiện nay.
1. Bộ tiêu chí đánh giá
Trƣớc khi khảo sát các công cụ đánh giá an toàn website, tác giả xin đƣợc
đƣa ra bộ tiêu chí đang đƣợc sử dụng phổ biến hiện nay là OWASP.
OWASP viết tắt của Open Web Application Security Project (dự án mở về
bảo mật ứng dụng web), dự án là một sự cố gắng chung của của cộng đồng giúp
các tổ chức có thể phát triển, mua hoặc bảo trì các ứng dụng an toàn. Ở OWASP
chúng ta sẽ tìm thấy “miễn phí” và “mở” (free and open):
 Công cụ và các tiêu chuẩn về án toàn thông tin;
 Sách về kiểm tra bảo mật ứng dụng, lập trình an toàn và các bài viết
về kiểm định mã nguồn;
 Thƣ viện và các tiêu chuẩn điều khiển an ninh;
 Những nghiên cứu mới nhất;
 Và nhiều thứ khác, xem thêm tại www.owasp.org
OWASP là một mô hình tổ chức mới. Việc không bị thƣơng mại hóa ảnh
hƣởng giúp cho nó đƣa ra những thông tin chính xác, không thiên vị và có giá trị
về an toàn ứng dụng. OWASP không liên kết với bất kì công ty kỹ thuật nào, dù
nó hỗ trợ về các mặt kỹ thuật trong an toàn thông tin. Cũng giống nhƣ những dự
án phần mềm mã nguồn mở, OWASP tạo ra rất nhiều sản phẩm bằng sự hợp tác
của cộng đồng.
Nến tảng của OWASP là một tổ chức phi lợi nhuận và đảm bảo sự thành
công lâu dài của dự án. Hầu hết thành phần của tổ chức là tình nguyện viên bao
gồm Ban Quản Trị, Ban Điều Hành toàn cầu, lãnh đạo các chi nhánh, lãnh đạo


8


quản lý website.
3. Paros Proxy
Paros là một chƣơng trình viết bằng Java, nó dùng để đánh giá bảo mật ứng
dụng web. Đặc tính của Paros là đóng vai trò nhƣ một proxy, bắt tất cả dữ liệu
HTTP và HTTPS giữa máy máy chủ và máy con, bao gồm cả cookies và toàn bộ
dữ liệu trên form. Sau đó đánh giá các lỗ hổng của website dựa trên dữ liệu thu
thập đƣợc.
Paros là một chƣơng trình miễn phí, hỗ trợ cả việc xem và chỉnh sửa các
thông điệp HTTP/HTTPS để thay đổi các mục nhƣ cookies và dữ liệu trên form.


10

Nó có thể ghi nhận lƣu lƣợng truy cập web, tính toán mảng băm, và quét một số
tấn công ứng dụng web thông thƣờng, nhƣ SQL Injection và Cross-site
Scripting.
Các bƣớc để sử dụng chƣơng trình nhƣ sau:
Bƣớc 1: Kiểm tra cấu hình cài đặt roxy của Paros, mặc định Paros sử dụng
localhost và cổng 8080 là cấu hình mặc định.
Bƣớc 2: Cài đặt proxy cho trình duyệt, địa chỉ proxy và cổng truy cập cài đặt
nhƣ bƣớc 1.
Bƣớc 3: Dùng trình duyệt web vừa cấu hình để truy cập vào website cần đánh
giá, và mở tất cả các link cần quét trên trang web để Paros thu thập thông tin.
Bƣớc 4: Quét dữ liệu thu đƣợc để lấy kết quả. Paros sẽ sinh ra một file báo cáo
kết quả dạng html.
Bƣớc 5: Vào menu “Report\Last scan report” để xem kết quả. Báo cáo kết quả
chia làm 2 phần, phần đầu sẽ trình bày tổng quan tất cả các lỗ hổng, phần thứ 2
sẽ trình chi tiết từng lỗ hổng.



ratproxy –v ratproxy –w report.log –d localhost –leXtifscgjmcls
Bƣớc 2: Khi Ratproxy đã chạy thì mở trình duyệt web lên để cấu hình proxy cho
trình duyệt.
Bƣớc 3: Dùng trình duyệt để truy cập vào website cần đánh giá, sử dụng tất cả
các page của trang web. Toàn bộ dữ liệu sẽ đƣợc di qua Ratproxy và kết quả sẽ
đƣợc ghi vào file log.
Bƣớc 4: Quay trở lại command shell đang chạy ở bƣớc 1, bấm Ctrl+C để stop
Ratproxy, và gõ câu lệnh sau để tạo file kết quả:
ratproxy-report.sh report.log > report.html
Bƣớc 5: Mở file report.html đã tạo ở trên để xem kết quả.


13

Hình 2.4: Kết quả quét bằng Ratproxy

Kết luận: Ratproxy là công cụ đánh giá an toàn website tốt của Google, có khả
năng quét nội dung và lôi ra những đoạn mã Javascript đƣợc giấu trong Style
Sheet, hỗ trợ quét giao thức an toàn SSL (Secure Socket Layer). Tuy nhiên,
phƣơng thức bán chủ động của Ratproxy đã làm giảm tính hiệu quả của chƣơng
trình, ngƣời dùng phải thực hiện thao tác thủ công trên từng page của website
làm mất rất nhiều thời gian và công sức.
5. W3af (Web Application Attack and Audit Framework)
W3af là 1 công cụ dùng để rà soát lỗi bảo mật và kiểm định mức độ an toàn
của website. Đúng nhƣ tên gọi của nó, w3af thực sự là một framework để phát
triển các ứng dụng về đánh giá an toàn website. Nó có nhiều hàm hỗ trợ việc
quét và dò tìm lỗ hổng bảo mật.
W3af đƣợc trang chuyên về công cụ bảo mật Sectools.org đánh giá là một
trong 3 công cụ quét lỗ hổng website tốt nhất hiện nay. Đây là công cụ đƣợc


hổng bảo mật mới, w3af thực sự là công cụ tốt để đánh giá an toàn website.



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