- Dòng sự kiện: Bắt đầu sự kiện khi ngƣời dùng muốn đánh giá lỗ hổng của website. Với mỗi lỗ hổng phát hiện đƣợc thì cần đƣa ra những lời khuyên để ngƣời quản trị có thể sửa lỗi website của mình.
- Điều kiện thực hiện: Để thực hiện đƣợc chức năng này cần có dữ liệu về các lời khuyên tƣơng ứng với từng loại lỗi.
- Kết quả xử lý: Nếu phát hiện đƣợc lỗ hổng bảo mật thì hiển thị lời khuyên đối với lỗ hổng đó.
4. CƠNG CỤ SỬ DỤNG ĐỂ QT LỖ HỔNG BẢO MẬT 4.1. W3af 4.1. W3af
Để hỗ trợ cho việc quét nội dung trang web và tạo các mẫu dữ liệu kiểm tra, tác giả có sử dụng một số hàm của w3af (Web Application Attack and Audit Framework). [4]
W3af là một nền tảng hồn tồn mở và miễn phí, nó tn theo bản quyền GPL version 2 (GNU General Public License version 2), mọi ngƣời có thể sử dụng và phát triển w3af, miễn là tuân thủ quy định của GPL v2.
Đúng nhƣ tên gọi của nó w3af thực sự là một framework để phát triển ứng dụng, nó cung cấp nhiều hàm để dị tìm và đánh giá lỗ hổng website. Ở đây tác
giả sử dụng chủ yếu 2 plugins là Discovery để quét nội dung trang web và Audit để đánh giá dữ liệu nhận đƣợc từ server.
Ngoài ra W3af cịn có các tính năng khác nhƣ:
+ Gói urllib2: Có thể giả lập một máy chủ proxy hoặc các loại chứng thực proxy; giả lập một xác thực http; giả mạo một tác nhân ngƣời sử dụng; gửi đi một request đã đƣợc chỉnh sửa header; điều khiển cookie; định vị các truy vấn GET và HEAD; định vị bộ nhớ cache của DNS; hỗ trợ các kết nối http và https; hỗ trợ File Upload với truy vấn POST sử dụng nhiều mảnh; Hỗ trợ SSL.
+ Quản lý dữ liệu đầu ra: W3af cung cấp một plugin là writer, đây là lớp dùng để quản lý dữ liệu đầu ra, nó có thể xuất ra các dữ liệu file dạng text, html, csv và xml.
+ Hỗ trợ Web Service: W3af có thể phân tích file WSDL và đánh giá webservice. Chức năng này có thể tìm thấy các lỗ hổng của webservice cũng nhƣ các ứng dụng web thông thƣờng khác.
+ HTTP headers fuzzing: Tính năng này dùng để tìm kiếm lỗi trong HTTP header.
+ Lƣu trữ phiên làm việc: Các tham số có thể đƣợc lƣu thành một file sử dụng sessionManager. Sau đó có thể sử dụng các tham số cài đặt này để bắt đầu qt mà khơng cần cấu hình lại tất cả các tham số.
+ Phân tích cấu trúc HTML/WML: W3af cung cấp tính năng phân tích cấu trúc html và wml.
4.2. Phƣơng pháp quét lỗ hổng bảo mật
Chƣơng trình sử dụng các hàm của W3af để quét lỗ hổng bảo mật của website, W3af sẽ thực hiện quét, phân tích dữ liệu và xuất ra file kết quả. Chƣơng trình sẽ đọc file kết quả này và kết hợp với cơ sở dữ liệu về các loại lỗ hổng đã xây dựng để đƣa ra kết quả phân tích website.
Các hàm của W3af đƣợc nhóm thành các plugins để thuận tiện cho việc sử dụng, chỉ cần gọi các plugins là W3af sẽ tự động làm tất cả. Ví dụ, chƣơng trình gọi plugins Discovery thì W3af sẽ tự động qt tồn bộ nội dung website theo cách thức Spider (con nhện), gọi plugins Audit thì W3af sẽ đánh giá tồn bộ nội dung đã thu thập đƣợc.
Tùy vào từng loại lỗ hổng bảo mật mà W3af có những hàm khác nhau để dị tìm lỗi, tiêu biểu là các hàm sau:
- XSRF: Là hàm dùng để tìm kiếm lỗ hổng Cross Site Request Forgeries
(XSRF).
- HtaccessMethods: Là hàm dùng để phát hiện các cấu hình thiếu trong file .htaccess.
- Sqli: Là hàm dùng để phát hiện lỗ hổng SQL injections.
- sslCertificate: Dùng để kiểm tra các tham số chứng thực SSL, điều này rất quan trọng đối với những trang web sử dung giao thức HTTPS.
- fileUpload: Dùng để đánh giá các vấn đề bảo mật trên form upload.
- mxInjection: Dùng để phát hiện các lỗ hổng liên quan đến MX Injections. - localFileInclude: Dùng để phát hiện các lỗ hổng liên quan đến việc gọi
file.
- xpath: Dùng để tìm lỗ hổng XPATH Injections.
- osCommanding: Dùng để phát hiện lỗi bảo mật của hệ điều hành.
- remoteFileInclude: Dùng để phát hiện các lỗ hổng liên quan đến việc gọi file từ xa.
- dav: Dùng để tìm các lỗi cấu hình WebDAV. - ssi: Dùng để tìm các lỗ hổng về server side include.
- eval: Dùng để phát hiện các lỗ hổng có thể giúp hacker tiêm nhiễm các
- buffOverflow: Là hàm dùng để tìm các lỗ hổng về tràn bộ nhớ đệm. - xss: Là hàm dùng để tìm các lỗ hổng Cross Site Scripting.
- xst: Là hàm dùng để tìm lỗ hổng Cross Site Tracing.
- blindSqli: Là hàm dùng để phát hiện Blind SQL Injection.
5. XÂY DỰNG CHƢƠNG TRÌNH 5.1. Xây dựng cơ sở dữ liệu 5.1. Xây dựng cơ sở dữ liệu
Từ những kiến thức đƣợc học và kết quả nghiên cứu lý thuyết, tác giả đã xây dựng một cơ sở dữ liệu về các lỗ hổng bảo mật, để làm cơ sở dị tìm và đánh giá website, các lỗ hổng bảo mật này chủ yếu dựa trên tiêu chuẩn OWASP (Open Web Application Security Project).
OWASP là một cộng đồng quốc tế mở tập trung vào cải thiện bảo mật ứng dụng phần mềm. Mục tiêu của OWASP là làm cho an ninh ứng dụng “hiện rõ”, giúp cho mọi ngƣời và các tổ chức có thể đƣa ra những quyết định về rủi ro an ninh ứng dụng. Ai cũng đƣợc quyền tham gia OWASP một cách miễn phí và tất cả các tài liệu của OWASP đều là tài liệu mở và miễn phí. [3]
Đối với từng loại lỗ hổng bảo mật thì tác giả đã tìm hiểu và đƣa ra những lời khuyên để ngƣời sử dụng sửa chữa website của mình. Các lời khuyên này chỉ mang tính tham khảo, khơng nhất thiết phải thực hiện theo những lời khuyên này.
Vì khối lƣợng dữ liệu không nhiều và để thuận tiện cho việc lập trình, tác giả đã cài đặt dữ liệu trên cơ sở dữ liệu Access. Trong cơ sở dữ liệu này có chứa bảng DM_Loi, chứa thơng tin chi tiết về các lỗ hổng bảo mật, căn cứ vào bảng này chƣơng trình sẽ dị tìm lỗi trên website và đƣa ra cảnh báo tƣơng ứng.