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
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
LỜI CẢM ƠN
Trong thời gian học tập, nghiên cứu và thực hiện luận văn này, tôi đã
nhận đƣợc sự giúp đỡ vô cùng to lớn của quý thầy cô trƣờng Đại học Lạc
Hồng, cơ quan, gia đình, bạn bè và đồng nghiệp. Tôi xin tỏ lòng biết ơn
chân thành đến:
TS. Nguyễn Đức Thái, ngƣời đã tận tình hƣớng dẫn và giúp đỡ tôi trong
suốt thời gian học tập, nghiên cứu thực hiện đề tài.
Tập thể quý thầy cô trực tiếp giảng dạy lớp Cao học khóa 2 – nghành
Công nghệ Thông tin đã tận tình giảng dạy, hƣớng dẫn tôi trong suốt thời
gian học tập, nghiên cứu tại trƣờng Đại học Lạc Hồng.
Ban lãnh đạo Sở Tài nguyên và Môi trƣờng tỉnh Đồng Nai đã tạo điều
kiện về thời gian và động viên về mặt tinh thần trong quá trình tôi thực hiện
đề tài. Đặc biệt là gia đình, bạn bè, đồng nghiệp và các bạn học viên lớp
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
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
3.1. Kiểm soát truy cập web (Web access Control) ........................................ 25
3.2. Chiếm hữu phiên làm việc (Session Mangement) ................................... 25
3.3. 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
validation) ....................................................................................................... 26
3.4. Để lộ thông tin (informational) ................................................................ 28
4. THAO TÁC TRÊN THAM SỐ TRUYỀN ................................................ 28
4.1. Thao tác trên url ....................................................................................... 29
4.2. Thao tác trên biến ẩn form ....................................................................... 30
4.3. Thao tác trên cookie ................................................................................. 31
4.4. Thao tác trong http header ....................................................................... 33
5. CHÈN MÃ LỆNH THỰC THI TRÊN TRÌNH DUYỆT NẠN NHÂN
(CROSS SITE SCRIPTING) .......................................................................... 35
5.1. Kỹ thuật tấn công cross site scripting (xss) ............................................. 35
5.2. Phƣơng pháp tấn công xss ....................................................................... 37
5.3. Cách phòng chống.................................................................................... 42
6. CHÈN CÂU TRUY VẤN SQL (SQL INJECTION) ................................ 43
6.1. Khái niệm SQL injection ......................................................................... 43
6.2. Giới thiệu mô hình cơ sở dữ liệu ............................................................. 43
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
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
DANH MỤC BẢNG
Bảng 3.1: Các thành phần của một Cookie ....................................................... 29
Bảng 3.2: Bảng User ......................................................................................... 48
Bảng 3.3: So sánh Session hijacking và Session fixation ................................. 68
Bảng 5.1: Kết quả quét bằng Paros Proxy ........................................................ 90
Bảng 5.2: Kết quả quét bằng Google Ratproxy ................................................ 90
Bảng 5.3: Kết quả quét bằng My Web Scan ..................................................... 90
DANH MỤC HÌNH ẢNH
Hình 1.1: Tỉ lệ phần trăm các loại lỗ hổng bảo mật .......................................... 3
Hình 2.1: Quy trình kiểm tra lỗ hổng an ninh website bằng Bkav WebScan ... 7
Hình 2.2: Kết quả sau khi quét webstie của Bkav WebScan ............................ 8
Hình 2.3: Kết quả thu đƣợc từ Paros ................................................................. 10
Hình 2.4: Kết quả quét bằng Ratproxy ............................................................. 12
Hình 2.5: Kết quả sau khi quét bằng w3af ........................................................ 14
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.
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ử
dụng để quảng bá thông tin, đăng tin tức, mà còn là nơi các công ty, doanh
nghiệp giới thiệu, quảng bá sản phẩm của mình, đồng thời thực hiện các giao
dịch của mình với khách hàng.
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.
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.
2
Theo số liệu của CERT (Computer Emegency Response Team - "Đội ứng
phó khẩn cấp 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 đó 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,
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ụ
thể đƣợc thể hiện trong biểu đồ sau:
Hình 1.1: Tỉ lệ phần trăm các loại lỗ hổng bảo mật. [1]
Qua thống kê trên cho thấy các lỗ hổng về SQL Injection và Cross-Site
Scripting là phổ biến nhất. Tuy đây không phải là các lỗ hổng xa lạ nhƣng cho
thấy số lƣợng các trang web mắc phải các lỗ hổng này là khá nhiều.
4
Bên cạnh đó những ngƣời có ý định xấu cố tình xâm nhập, tấn công vào các
website để khai thác các thông tin nhạy cảm của công ty, hay của khách hàng
công ty. Việc này không chỉ làm thiệt hại về mặt kinh tế mà còn làm giảm uy tín
của cá nhân, công ty và doanh nghiệp. Do đó, việc phát hiện và ngăn chặn tấn
công website đang ngày càng đƣợc chú trọng.
Bản thân là học viên chuyên ngành công nghệ thông tin, có niềm đam mê về
ứng dụng web và bảo mật. Với mong muốn áp dụng những kiến thức mà mình
đã đƣợc học và tìm hiểu từ thực tế, em mạnh dạn nghiên cứu đề tài “Xây dựng
công cụ đánh giá an toàn website”.
2. MỤC TIÊU VÀ GIỚI HẠN CỦA ĐỀ TÀI
2.1. Mục tiêu
Đề tài nghiên cứu nhằm các mục tiêu sau:
Nghiên cứu các lỗ hổng bảo mật phổ biến của ứng dụng web
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.
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.
CHƢƠNG II: NHỮNG CÔNG TRÌNH LIÊN QUAN
Chƣơng này trình bày các công cụ đánh giá an toàn website liên quan, từ đó
có cái nhìn tổng quan về các công cụ hiện có, đồng thời so sánh đƣợc các ƣu,
nhƣợc điểm của công cụ mà mình xây dựng.
CHƢƠNG III: CƠ SỞ LÝ THUYẾT
Chƣơng này nghiên cứu lý thuyết về các lỗ hổng bảo mật website và các
biện pháp phòng chống. Đồng thời cũng nêu lên các kỹ thuật tấn công mà
6
hacker thƣờng sử dụng để khai thác các lỗ hổng bảo mật, từ đó tìm ra phƣơng
pháp đối phó phù hợp.
CHƢƠNG IV: XÂY DỰNG ỨNG DỤNG ĐÁNH GIÁ AN TOÀN WEBSITE
Chƣơng này trình bày quá trình xây dựng ứng dụng “Đánh giá an toàn
website”. Từ những kết quả nghiên cứu lý thuyết ở trên và các công cụ tìm hiểu
đƣợc, để làm cơ sở xây dựng nên ứng dụng.
CHƢƠNG V: KẾT QUẢ ĐẠT ĐƢỢC VÀ ĐÁNH GIÁ
Trình bày kết quả đạt đƣợc của đề tài, phân tích ƣu điểm và hạn chế của
đề tài, từ đó đƣa ra kết luận và hƣớng phát triển tiếp theo.
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ự
á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
các dự án và thành viên dự án. OWASP hỗ trợ sự sáng tạo trong nghiên cứu an
toàn thông tin bằng các khoản trợ cấp và cơ sở hạ tầng.
2. Bkav WebScan
Đây là dịch vụ quét, phát hiện và đánh giá các lỗ hổng an ninh của website.
Là sản phẩm của tập đoàn BKAV, chủ yếu sử dung cho những ngƣời quản trị
website để quét website mà mình quản lý. Dịch vụ có nguyên tắc hoạt động nhƣ
sau:
Hình 2.1: Quy trình kiểm tra lỗ hổng an ninh website bằng Bkav WebScan
Ngƣời dùng sẽ phải đăng ký một tài khoản với BKAV, muốn quét website
nào thì ngƣời dùng phải chứng thực quyền sở hữu đối với website đó bằng cách
phải upload 1 file do BKAV cung cấp lên website cần quét. Sau khi BKAV quét
xong sẽ gửi kết quả qua email cho ngƣời sử dụng.
Một số giao diện khi sử dụng chƣơng trình:
Bƣớc 1: Truy cập vào Bkav WebScan bằng địa chỉ:
Bƣớc 2: Đăng ký một tài khoản Bkav WebScan, và cấu hình các thông số để
quét website.
Bƣớc 3: Nhận kết quả trả về từ Bkav WebScan hoặc qua email đã đăng ký.
9
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
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.
11
Hình 2.3: Kết quả thu đƣợc từ Paros
Kết luận: Paros là một chƣơng trình miễn phí tốt để đánh giá các lỗ hổng bảo
mật của website. Có thể quét bất kỳ trang web nào mà không cần chứng thực
quyền sở hữu đối với trang web đó. Giao diện thì trực quan và dễ sử dụng.
Nhƣng nhƣợc điểm của Paros là không tự động quét toàn bộ trang web đƣợc mà
phải thông qua trình duyệt để duyệt từng page của trang web. Điều này rất thủ
công và mất rất nhiều thời gian và công sức để quét những trang web lớn.
4. Google Ratproxy
Ratproxy là công cụ đánh giá bảo mật website của hãng Google, nhằm hỗ
trợ cho các lập trình viên phát triển web có thể kiểm tra và phát hiện các lỗ hổng
bảo mật mà tin tặc có thể khai thác tấn công.
12
Ratproxy là một công cụ hoàn toàn miễn phí, Google đã quyết định nguồn
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
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
14
cộng đồng mã nguồn mở đóng góp và xây dựng, các phiên bản mới đƣợc cập
nhật liên tục, và hiện này đang là phiên bản r6376.
W3af dò tìm và phát hiện đƣợc rất nhiều loại lỗ hổng bảo mật, từ những lỗi
thông dụng đến những lỗi ít khi gặp, các lỗi mới phát sinh đƣợc cộng đồng mã
nguồn mở bổ sung thƣờng xuyên.
W3af cho phép quét tự động toàn bộ website và hỗ trợ quét nâng cao theo
cấu hình tùy chọn để phù hợp với từng loại website. Nó không sử dụng proxy
mà dùng các plugins dạng Spider để thu thập toàn bộ dữ liệu của website. Các
plugins đƣợc chia thành 3 dạng: Discovery, audit và attack. Ở đây chúng ta chủ
yếu sử dụng 2 loại plugins là Discovery và Audit.
Các bƣớc sử dụng chƣơng trình: W3af có 2 giao diện sử dụng là giao diện
console và giao diện đồ họa (GUI). Ở đây đề tài xin giới thiệu cách sử dụng giao
diện đồ họa.
Bƣớc 1: Cấu hình các thông số quét, sau đó nhập địa chỉ website cần quét và
nhấn nút “Start” để quét toàn bộ webstie.
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.