Luận văn thạc sĩ công nghệ thông tin Xây dựng công cụ đánh giá an toàn website - Pdf 24



TRƢỜNG ĐẠI HỌC LẠC HỒNG

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


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

NGƢỜI HƢỚNG DẪN KHOA HỌC:
TS. NGUYỄN ĐỨC THÁI Đồng Nai, năm 2012
LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi.
Các số liệu sử dụng trong luận văn và các kết quả nghiên cứu được
trình bày trong luận văn là trung thực.
Đồng Nai, tháng 12 năn 2012
Học viên Lê Ngọc Thức

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
1.1. Khái niệm ứng dụng web 16
1.2. Mô tả hoạt động của một ứng dụng web 19
2. CÁC KHÁI NIỆM, THUẬT NGỮ LIÊN QUAN 19
2.1. Hacker 19
2.2. Http header 20
2.3. Session 21
2.4. Cookie 22
2.5. Proxy 24 3. GIỚI THIỆU SƠ LƢỢC VỀ CÁC KỸ THUẬT TẤN CÔNG ỨNG
DỤNG WEB 25

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
5.1. Xây dựng cơ sở dữ liệu 84
5.2. Một số hàm chính đƣợc sử dụng trong chƣơng trình 85
5.3. Mô tả chƣơng trình và cách sử dụng 86
CHƢƠNG V: KẾT QUẢ ĐẠT ĐƢỢC VÀ ĐÁNH GIÁ 89
1. KẾT QUẢ ĐẠT ĐƢỢC 89
2. ĐÁNH GIÁ CHƢƠNG TRÌNH 89
2.1. So sánh với các công cụ liên quan 89
2.2. Những vấn đề đạt đƣợc 90
2.3. Những vấn đề hạn chế 91 3. HƢỚNG PHÁT TRIỂN 91

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.
Thời kỳ phôi thai của Internet bắt nguồn từ việc năm 1968, Bộ Quốc phòng
Mỹ xây dựng dự án ARPANET (Advanced Research Projects Agency - ARPA).
Từ đó tới nay bằng việc ra đời hàng loạt ứng dụng chạy trên internet nhƣ email,
ftp, … Internet đã và đang phát triển một cách chóng mặt.
Một ứng dụng mà khi nói tới Inernet, không thể không đề cập, đó là world
wide web (www). Ra đời vào 13/03/1989 , www đã thực sự trở thành một ứng
dụng phát triển nhất và đƣợc nhiều ngƣời dùng nhất. WWW không chỉ đƣợc sử

Đ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,
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ỹ.
Theo thống kê 6 tháng đầu năm 2009 của công ty Cenzic chuyên về bảo mật
web, thì tỉ lệ các trang web mắc phải các loại lỗ hổng bảo mật là khác nhau, cụ

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.
4. CẤU TRÚC LUẬN VĂN
Nội dung chính của luận văn gồm có 5 chƣơng:
CHƢƠNG I: GIỚI THIỆU ĐỀ TÀI
Đây là chƣơng mở đầu, giới thiệu các vấn đề tổng quan của luận văn. Bao
gồm những nội dung chính sau: Lý do thực hiện đề tài; mục tiêu và giới hạn của
đề tài; phƣơng pháp thực hiện đề tài và cấu trúc của luận văn.
7
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ự
Hình 2.2: Kết quả sau khi quét webstie của Bkav WebScan

Kết luận: Bkav WebScan có ƣu điểm là quét miễn phí (sẽ tính phí khi xem
muốn xem chi tiết lỗi và cách khắc phục), nhƣng nhƣợc điểm là số lƣợng lỗi
phát hiện đƣợc còn ít, một số lỗi không phát hiện đƣợc nhƣ: mxInjection,
LDAPi, responseSplitting, preg_replace, … Đồng thời muốn sử dụng công cụ
này thì chỉ có ngƣời sở hữu website mới có thể quét website của mình. Việc phải
upload một file lạ lên website cũng là một yếu tố gây lo ngại cho những ngƣời
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

mở hóa ứng dụng này, mà lâu nay vốn chỉ đƣợc sử dụng duy nhất trong nội bộ
hãng. Nhằm giúp cho các webmaster trong việc dò tìm lỗi bảo mật khác nhau về
mã lập trình khi phát triển các ứng dụng web nhƣ các lỗi XSS (cross-site
scripting), lỗi caching trình duyệt cũng nhƣ một số lỗi thông dụng khác.
Michal Zalewski - một chuyên gia bảo mật của Google - cho biết “hãng
kỳ vọng Ratproxy sẽ góp một phần thiết thực trong việc tăng cƣờng độ an toàn
cho ứng dụng web cũng nhƣ giúp ngƣời dùng hiểu đƣợc những thách thức mà
công nghệ web ngày nay đang phải đối mặt”. [2]
Các bƣớc để sử dụng chƣơng trình: Ratproxy là chƣơng trình chạy trên
linux, nếu muốn chạy trên Windows thì phải dùng Cygwin.
Bƣớc 1: Mở một command shell và chạy Ratproxy bằng câu lệnh sau:
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

Bƣớc 2: Sau khi chƣơng trình quét xong, mở tab Result để xem kết quả. Kết quả
sẽ mô tả chi tiết lỗi và nội dung request của từng lỗi một.
15

Hình 2.5: Kết quả sau khi quét bằng w3af
Kết luận: W3af là một công cụ mạnh để quét các lỗ hổng bảo mật, không cần
chứng thực sở hữu đối với website cần quét và cũng không cần sử dụng thông
qua một proxy nào. Nó là một framework để phát triển các ứng dụng, bao gồm
nhiều hàm để quét và dò tìm lỗ hổng bảo mật. Các lỗ hổng bảo mật thì thƣờng
xuyên đƣợc phát hiện và bổ sung, với việc đƣợc cập nhật thƣờng xuyên các lỗ
hổng bảo mật mới, w3af thực sự là công cụ tốt để đánh giá an toàn website.

Trích đoạn GIỚI THIỆU VỀ ỨNG DỤNG WEB Lợi dụng các thiếu sót trong việc kiểm tra dữ liệu nhập hợp lệ (Input CÔNG CỤ SỬ DỤNG ĐỂ QUÉT LỖ HỔNG BẢO MẬT XÂY DỰNG CHƢƠNG TRÌNH ĐÁNH GIÁ CHƢƠNG TRÌNH
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