1. Trang chủ
  2. » Tất cả

Xây dựng giải pháp tường lửa lớp ứng dụng dựa trên modsecurity

49 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SỸ Xây dựng giải pháp tường lửa lớp ứng dụng dựa Modsecurity TRẦN ĐỨC MẠNH manh.td202171M@sis.hust.edu.vn Ngành Công nghệ thông tin Giảng viên hướng dẫn: PGS.TS Trần Quang Đức Viện: Công nghệ thông tin truyền thông : HÀ NỘI, 10/2022 CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ Họ tên tác giả luận văn: Trần Đức Mạnh Đề tài luận văn: Xây dựng giải pháp tường lửa lớp ứng dụng dựa ModSecurity Chuyên ngành: Công nghệ thông tin Mã số SV: 20202171M Tác giả, Người hướng dẫn khoa học Hội đồng chấm luận văn xác nhận tác giả sửa chữa, bổ sung luận văn theo biên họp Hội đồng ngày 29/10/2022 với nội dung sau: STT Yêu cầu chỉnh sửa Giải trình Trang Làm rõ việc áp dụng học máy Mô tả giai đoạn học máy giai 29-32 vào tường lửa Modsecurity đoạn cơng áp dụng vào trình bày kết thử nghiệm tường lửa Modsecurity Trình bày thêm kết thực nghiệm 33-38 Rà sốt tả, chỉnh sửa nội Đã rà sốt lỗi tả; Bổ sung 26-38 dung Chương 3, phần Kết luận nội dung giải pháp mơ tả chi tiết trình bày giải pháp lựa chọn, thể kết nghiên cứu rõ kết nghiên cứu Đã chỉnh sửa lại phần Kết luận Dịch thuật ngữ tiếng Anh sang Đã dịch thuật ngữ tiếng Anh 39 - 40 tiếng Việt rút gọn phần sang tiếng Việt rút gọn số sở lý thuyết phần sở lý thuyết Ngày 29 tháng 11 năm 2022 Giáo viên hướng dẫn Tác giả luận văn CHỦ TỊCH HỘI ĐỒNG Lời cam đoan Tôi xin cam đoan nội dung luận văn với đề tài “Xây dựng giải pháp tường lửa lớp ứng dụng dựa ModSecurity” cơng trình nghiên cứu độc lập thân hướng dẫn PGS.TS Trần Quang Đức Các số liệu, hình ảnh, trích dẫn có nguồn gốc rõ ràng tuân thủ nguyên tắc Luận văn khơng có chép từ cơng trình nghiên cứu người khác mà không ghi rõ danh mục tài liệu tham khảo Mọi chép không hợp lệ, vi phạm quy chế hay gian trá xin hoàn toàn chịu trách nhiệm Hà nội, ngày 29 tháng 11 năm 2022 Học viên Trần Đức Mạnh Lời cảm ơn Đầu tiên, xin gửi lời cảm ơn lòng biết ơn sâu sắc tới thầy giáo PGS.TS Trần Quang Đức giúp chọn đề tài, định hướng nghiên cứu, tận tình hướng dẫn tạo điều kiện cho tơi hồn thành luận văn Trong q trình làm luận văn tốt nghiệp, thầy Trường Công nghệ thông tin Truyền thông nhiệt tình hướng dẫn giúp đỡ tơi mặt Tôi xin cảm ơn nhiều! Cuối cùng, muốn gửi lời cảm ơn tới gia đình, người thân bạn bè Tất người bên, động viên giúp đỡ tơi nhiều q trình thực thực luận văn Với thời gian nghiên cứu hạn chế, thực tiễn công tác lại vô sinh động, luận văn không tránh khỏi thiếu sót, tác giả mong nhận ý kiến đóng góp chân thành từ thầy giáo, cô giáo, đồng nghiệp, bạn bè Hà Nội, ngày 29 tháng 11 năm 2022 Học viên Trần Đức Mạnh TÓM TẮT NỘI DUNG LUẬN VĂN Ngày nay, với phát triển mạnh mẽ bùng nổ công nghệ thông tin kéo theo nguy gây an tồn an ninh thơng tin khơng gian mạng ngày gia tăng số lượng mức độ nguy hiểm Xu hướng công vào cổng thông tin điện tử dần trở thành xu hướng gây nhiều khó khăn cho người quản trị bảo mật Hệ thống phát hiện/chống công (Intrusion Detection System-IDS/Intrusion Prevention System-IPS) quan, tổ chức đưa vào sử dụng giải pháp đưa để bảo vệ ứng dụng web trang thơng tin điện tử Tuy nhiên, vấn đề hệ thống IDS/IPS chúng không hiểu logic giao thức tức chúng biết gói tin HTTP hay sai định dạng Để giải vấn đề tường lửa lớp ứng dụng web (Web Application firewall–WAF) giải pháp tối ưu nhằm đảm bảo an tồn thơng tin cho cổng thông tin điện tử Luận văn cung cấp mối nguy cơ, rủi ro bảo mật web, thơng tin giải pháp an tồn thơng tin đặc biệt lĩnh vực tường lửa ứng dụng web cho cổng thông tin điện tử Việt Nam giải pháp xu hướng nghiên cứu bảo mật toàn giới; xây dựng mơ hình giải pháp bảo mật cho lớp ứng dụng web, tạo tính ổn định, chắn, bảo vệ thơng tin quan trọng góp phần thúc đẩy triển khai phủ điện tử nâng cao hiệu kinh tế, xã hội MỤC LỤC CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 1.1 Đặt vấn đề 1.2 Các giải pháp hạn chế 1.3 Mục tiêu định hướng giải pháp 1.4 Đóng góp luận văn 1.5 Bố cục luận văn CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Các nguy an toàn ứng dụng Web 2.1.1 Tổng quan ứng dụng Web 2.1.2 Các nguy gây an toàn ứng dụng Web 2.2 Đặc trưng header HTTP 2.2.1 Request 2.2.2 Request Header 11 2.2.3 HTTP Response 11 2.2.4 Các phiên HTTP 12 2.3 Web Application Firewall 14 2.3.1 Khái niệm 14 2.3.2 Mơ hình hoạt động WAF 16 2.4 Tường lửa ModSecurity 16 2.4.1 Khái niệm 16 2.4.2 Các tính Modsecurity 16 2.4.3 Nguyên lý hoạt động 17 2.4.4 Quá trình hoạt động xử lý 18 2.4.5 Cấu trúc luật ModSecurity 19 2.5 Một số thuật toán học máy 20 2.5.1 Phương pháp Support Vector Machine (SVM) 20 2.5.2 Phương pháp Cây định (Decision Tree) 22 2.5.3 Phương pháp Rừng ngẫu nhiên (Random Forest) 23 2.5.4 Phương pháp Hồi quy Logistic (Logistic Regression) 24 CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ 26 3.1 Giải pháp đề xuất 26 3.2 Kiến trúc tổng quan hệ thống 26 3.3 Bộ liệu thử nghiệm 27 3.4 Phân tích lựa chọn đặc trưng 28 3.4.1 Lựa chọn đặc trưng 30 3.4.2 Mô tả đặc trưng 32 3.5 Đánh giá thử nghiệm thuật toán học máy 33 3.5.1 Lọc liệu đầu vào với ModSecurity 33 3.5.2 Đánh giá kết dựa phương pháp học máy 34 3.5.3 Tích hợp Modsecurity với hệ thống phát truy vấn HTTP 36 CHƯƠNG 4: KẾT LUẬN 39 4.1 Đóng góp luận văn 39 4.2 Hướng phát triển luận văn 39 TÀI LIỆU THAM KHẢO 40 Danh mục ký hiệu chữ viết tắt Viết tắt OWASP Tiếng Anh Open Web Tiếng Việt Application Dự án mở bảo mật ứng dụng Security Project Web SQL Structured Query Language Ngôn ngữ truy vấn cấu trúc HTTP HyperText Transfer Protocol Giao thức truyền tải siêu văn HTTPS Hyper Text Transfer Protocol Giao thức truyền tải siêu văn Secure bảo mật Cross-Site Scripting Tấn công thực thi mã script HTML Hypertext Markup Language Ngôn ngữ đánh dấu siêu văn CSRF Cross-Site Request Forgery Tấn công giả mạo yêu cầu SSL Secure Sockets Layer Lớp socket bảo mật TSL Transport layer security Giao thức bảo mật tầng giao vận WAF Web Application Firewall Giải pháp bảo mật hệ thống Internet Protocol Giao thức Internet Support vector machine Máy véc tơ hỗ trợ XSS IP SVM Danh mục hình ảnh vẽ đồ thị Hình 2.1: Cơ chế hoạt động ứng dụng web Hình 2.2: HTTP Request 10 Hình 2.3:Mô tả trường header HTTP 11 Hình 2.4: Web Application Firewall 15 Hình 2.5: Quy trình xử lý Modsecurity 18 Hình 2.6: Mơ tả hai data mặt phẳng 21 Hình 2.7: Mơ tả data phức tạp không gian nhiều chiều 21 Hình 2.8: Mơ tả cách xác định margin 22 Hình 2.9: Ví dụ định 22 Hình 3.1: Mơ hình đề xuất 26 Hình 3.2: Kiến trúc tổng quan hệ thống 26 Hình 3.3: Kết tính tốn tham số 30 tính liên quan đến Web Attack 30 Hình 3.4: Lựa chọn 10 tính tốt sử dụng phương pháp Univariate Selection 31 Hình 3.5: Lựa chọn 10 tính tốt dựa phương pháp Feature Importance 31 Hình 3.6: Ma trận tương quan mơ tả tính tập liệu 31 Hình 3.7: Cấu trúc URI 32 Hình 3.8: Mơ tả phương pháp đánh giá kết Confusion Matrix 35 Hình 3.9: Hệ thống nhận diện truy vấn bình thường 36 Hình 3.10: Hệ thống nhận diện truy vấn bất thường 36 Hình 3.11: Cấu trúc câu lệnh truy vấn 37 Hình 3.12: Người dùng thực truyền truy vấn bình thường 37 Hình 3.13: Hệ thống trả kết truy vấn bình thường 38 Hình 3.14: Người dùng thực truyền truy vấn bất thường 38 Hình 3.15: Hệ thống trả kết truy vấn bất thường 38 CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 1.1 Đặt vấn đề Ngày nay, với phát triển mạnh mẽ bùng nổ công nghệ thông tin kéo theo nguy gây an toàn an ninh thông tin không gian mạng ngày gia tăng số lượng mức độ nguy hiểm Xu hướng công vào cổng thông tin điện tử dần trở thành xu hướng gây nhiều khó khăn cho người quản trị bảo mật Việc kẻ công lấy cắp thông tin, phá hoại hay thay đổi, xuyên tạc nội dung thông tin cổng thông tin điện tử mang lại thiệt hại vô lớn đặc biệt cổng thơng tin quan trọng phủ Các quan nhà nước, tổ chức phủ có nhiều biện pháp tích cực việc phịng chống phát cơng website, đó, giải pháp triển khai tường lửa lớp ứng dụng web (Web Application Firewall - WAF) giải pháp tối ưu nhằm đảm bảo an tồn thơng tin cho cổng thông tin điện tử Hiện tại, thị trường có nhiều sản phẩm WAF có thương mại mã nguồn mở Các giải pháp WAF thương mại thường đánh giá cao nhiên việc sử dụng phần mềm, thiết bị thương mại tiềm ẩn rủi ro việc rị rỉ thơng tin Chính vậy, việc làm chủ công nghệ phát triển phần mềm, thiết bị thực cần thiết nhằm đảm bảo an ninh an tồn cho cổng thơng tin điện tử quan trọng Nhận thấy tiềm lợi ích mà tưởng lửa lớp ứng dụng web mang lại, định chọn đề tài “Xây dựng giải pháp tường lửa lớp ứng dụng dựa Modsecurity” để nghiên cứu giải pháp công nghệ 1.2 Các giải pháp hạn chế Các loại tường lửa phổ biến đa số sử dụng thông tin tầng mạng (network layer) tầng vận chuyển (transport layer) chủ yếu số cổng (port number) giao thức để ngăn chặn cơng, truy cập trái phép Chính việc giải pháp tường lửa cho phép gói tin đến dịch vụ máy chủ web, dns, FTP nên việc bảo vệ dịch vụ người quản trị tạo ứng dụng với mã nguồn an tồn Hiện tại, có nhiều tài liệu hướng dẫn lập trình an tồn, nhiên, khơng phải lúc nhà phát triển ứng dụng nắm vững làm theo hướng dẫn dẫn đến việc mắc lỗi trình thiết kế, cài đặt điều tránh khỏi Hệ thống phát hiện/chống công (Intrusion Detection System-IDS/Intrusion Prevention System-IPS) giải pháp đưa để bảo vệ ứng dụng web trang thơng tin điện tử Có hai hướng tiếp cận việc phát triển IDS/IPS Giải pháp sử dụng mẫu nhận dạng (signature-based IDS) giải pháp dựa vào hành vi (behavior-based IDS) Các kĩ thuật dựa vào mẫu nhận dạng phát công cách so sánh nội dung gói tin với dấu hiệu nhận dạng (signature) từ sở CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ 3.1 Giải pháp đề xuất Đối với mơ hình hoạt động WAF trình bày chi tiết Mục 2.4.2 luận văn, để xây dựng hệ thống tối ưu cho việc phát ngăn chặn đưa thông báo truy vấn bình thường hay bất thường tơi sử dụng mơ hình triển khai WAF tích hợp Modsecurity chạy chế độ reverse proxy Hình 3.1: Mơ hình đề xuất Với chế độ WAF giám sát tất lưu lượng đến ứng dụng web, sau thay cho địa IP bên ngồi gửi truy vấn trực tiếp đến máy chủ web WAF đứng làm trung gian để gửi truy vấn đến máy chủ web thay cho trình duyệt gốc gửi trả lại kết cho địa IP truy vấn 3.2 Kiến trúc tổng quan hệ thống Hình 3.2: Kiến trúc tổng quan hệ thống Hình 3.2 mô tả kiến trúc tổng quan hệ thống liệu trainning hay truy vấn từ máy khách đưa vào tiền xử lý làm liệu sau phân tách trường liệu từ tính tốn lựa chọn phân tích trích chọn đặc trưng Tại giai đoạn huấn luyện, phát xử lý: tất truy vấn qua tường lửa ModSecurity, đây, luật thiết lập giao thức GET|PUT|HEAD|OPTIONS|DELETE|CONNECT|TRACE tiến hành thực thi 26 tệp tin chứa thông tin đặc trưng truy vấn đưa vào huấn luyện Bộ huấn luyện đưa kết trả ngưỡng so sánh sau ModSecurity kết luận request bất thường hay bình thường tiến hành cảnh báo Để thực hiện, thêm luật /usr/share/modsecurity-crs/rules/luat.conf: SecRuleARGS,REQUEST_METHOD "^(GET|PUT|HEAD|OPTIONS|DELETE|CONNECT|TRACE|POST)$" "pass,setenv:input_raw=http://%{SERVER_NAME}%{REQUEST_URI}?%{RE QUEST_BODY},exec:/home/chamaeleon/manh/learn.sh,id:1993" Luật kích hoạt gặp truy vấn có phương thức GET|PUT|HEAD|OPTIONS|DELETE|CONNECT|TRACE Các biến mơi trường setenv có định dạng sau: input_raw=http://%{SERVER_NAME}%{REQUEST_URI}?%{REQUEST_BODY} Sau luật thực thi tập tên /home/chamaeleon/modsec/learn.sh Nội dung tệp tin learn.sh: #!/bin/sh python /home/chamaeleon/modsec/learn.py -t $input_raw Lúc này, tệp tin learn.py chạy với tham số $input_raw toàn trường liệu câu lệnh truy vấn phân tách, phân tích so sánh với ngưỡng giá trị quy định truy vấn bất thường truy vấn bình thường, từ đó, đưa kết trả 3.3 Bộ liệu thử nghiệm Trong phạm vi luận văn, sử dụng liệu CSIC 2020, liệu HTTP CSIC 2010 chứa hàng ngàn yêu cầu web tạo tự động Nó sử dụng để thử nghiệm hệ thống bảo vệ công web Bộ liệu HTTP CSIC phát triển "Viện bảo mật thông tin" CSIC (Hội đồng nghiên cứu quốc gia Tây Ban Nha) Bộ liệu tạo tự động chứa 36.000 yêu cầu bình thường 25.000 yêu cầu bất thường Các yêu cầu HTTP gắn nhãn bình thường bất thường có chứa cơng SQL, tràn đệm, thu thập thông tin, tiết lộ tệp, tiêm CRLF, XSS, v.v phía máy chủ Dữ liệu tạo theo bước: Đầu tiên, liệu thực thu thập cho tất tham số ứng dụng web Tất liệu (tên, họ, địa chỉ, v.v.) trích xuất từ sở liệu thực Các giá trị lưu trữ hai sở liệu: cho giá trị bình thường cho giá trị bất thường Ngoài ra, tất trang có sẵn cơng khai ứng dụng web liệt kê Tiếp theo, yêu cầu bình thường bất thường tạo cho trang web Trong trường hợp yêu cầu bình thường có tham số, giá trị tham số điền đầy đủ với 27 liệu lấy từ sở liệu bình thường; yêu cầu bất thường có tham số giá trị tham số điền đủ với liệu lấy từ sở liệu bất thường Trong tập liệu sử dụng, ba loại truy vấn bất thường bao gồm: - Các công cố gắng yêu cầu tài nguyên ẩn (hoặc không tồn tại) Các yêu cầu bao gồm tệp lỗi thời, ID phiên URL ghi lại, tệp cấu hình, tệp mặc định, v.v - Các công tác động thay đổi đối số yêu cầu hợp lệ: SQL injection, CRLF injection, cross-site scripting, tràn đệm, v.v - Các truy vấn bất hợp pháp không chủ ý Những truy vấn không xấu, nhiên chúng không tuân theo hành vi bình thường ứng dụng web khơng có cấu trúc giống giá trị tham số bình thường (ví dụ: số điện thoại bao gồm chữ cái) Tập liệu chia thành ba tập khác Một tập sử dụng cho giai đoạn đào tạo, có lưu lượng truy cập bình thường; hai tập lại sử dụng cho giai đoạn thử nghiệm tập có chứa lưu lượng truy cập bình thường tập cịn lại chứa lưu lượng truy cập độc hại 3.4 Phân tích lựa chọn đặc trưng Trong phạm vi luận văn có sử dụng 30 tính có liên quan đến việc phát tơng Web Application trích dẫn [1] Đối với mơ hình tổng quan máy khách (web client) máy chủ (web server) trao đổi liệu với qua câu truy vấn câu phản hồi Ứng với câu truy vấn, tơi sử dụng thuộc tính hai mức độ ứng với trường liệu ứng với tồn câu truy vấn Những thuộc tính cho điểm từ đến để phản ánh độ giống với giá trị mặc định biết trước thuộc tính Đây giá trị phản ánh độ bình thường thuộc tính Giá trị p tiến giá trị so sánh không giống với giá trị mặc định thiết lập từ trước (báo hiệu nguy có cơng xảy ra) Ngược lại, giá trị tiến thuộc tính thể việc khơng có công xảy với liệu Điểm bất thường xây dựng với công thức sau: Điểm bất thường = � 𝑚𝑚∈𝑡𝑡ℎ𝑢𝑢ộ𝑐𝑐 𝑡𝑡í𝑛𝑛ℎ 𝑤𝑤𝑚𝑚 ∗ (1 − 𝑝𝑝𝑚𝑚 ) Trong q trình thực nghiệm, tơi nhận thấy để nhận biết truy vấn bất thường, công thức chạy có hiệu trường hợp câu truy vấn có thuộc tính Khi câu truy vấn có nhiều thuộc tính điểm bất thường câu truy vấn bị nhiễu Để khắc phục trường hợp này, sử dụng phương pháp học máy để xác định ngưỡng giá trị từ liệu đầu vào xác định câu truy vấn bình thường hay bất thường Trong 30 tính đề cập có số điểm chung chia thành nhóm để phân tách chọn lựa: 28 - Chiều dài trường liệu: Đối với truy vấn bình thường, chiều dài trường liệu gửi lên máy chủ từ trình duyệt người dùng thường cố định có biến thiên độ biến thiên chiều dài trường liệu không cao Tuy nhiên trường hợp bị cơng độ dài trường liệu thay đổi lớn (ví dụ cơng SQL injection, XSS), việc thay đổi độ dài trường liệu câu truy vấn lựa chọn thuộc tính đặc trưng + Giai đoạn học: Trích chọn tất chiều dài trường liệu câu truy vấn liệu bất thường bình thường có sẵn để tạo giá trị ngưỡng + Giai đoạn phát công: Chiều dài câu truy vấn cần xét tính tốn so sánh với giá trị ngưỡng tạo giai đoạn học, sau xác định xấp xỉ ngưỡng tạo kết luận truy vấn bình thường Ngược lại, giá trị chiều dài vượt ngưỡng đáng kể kết luận truy vấn bất thường - Phân bổ thuộc tính ký tự: Trong cấu trúc câu truy vấn số trường có ký tự định phần lớn nhóm ký tự bao gồm phần nhỏ 256 ký tự bảng ASCII Do đó, tơi thống kê xuất ký tự câu truy vấn, giá trị tần suất xếp theo thứ tự giảm dần Đối với câu truy vấn bình thường, giá trị thể tần suất xuất ký tự giảm dần Ngược lại trường hợp bị cơng có hai trường hợp: Giá trị tần suất giảm cách đột ngột số ký tự xuất liên tục; trường hợp thứ hai ký tự tạo ngẫu nhiên nên phân bố trở nên đồng Giả sử đặt phân bố tần suất xuất ký tự câu truy vấn bình thường TS, lúc giá trị tần xuất xuất thứ i xác định TS(i) + Giai đoạn học: Trong giai đoạn này, phân bố tần suất xuất ký tự câu truy vấn bình thường (TS) xây dựng Với câu truy vấn cần kiểm tra tính tốn lưu giá trị thể phân bố kí tự Ứng với giá trị thứ i TS TS(i) tính giá trị trung bình tất phần tử i phân bố kí tự lưu trước + Giai đoạn phát cơng: Sau có giá trị TS truy vấn bình thường, truy vấn cần xác định tham số câu truy vấn tương ứng có giá trị bình thường hay bất thường cách tính tần suất xuất để xây dựng thành vector 256 giá trị tương ứng với 256 ký tự bảng ASCII Sau thực phép thử chi bình phương (chi-squared) nhằm xác định giá trị có phân phối với TS, từ đó, kết luận truy vấn bình thường hay bất thường - Xuất ký tự mới: Giai đoạn học, hệ thống lưu lại tập ký tự sử dụng Trong giai đoạn phát công, câu lệnh truy vấn xuất ký tự xem xét điểm nghi ngờ công để kết luận truy vấn bình thường hay bất thường - Xuất từ khóa: Trong giai đoạn học, từ khóa xây dựng từ truy vấn bất thường liệu Trong giai đoạn phát công, 29 câu truy vấn cần xét có xuất từ khóa từ khóa xây dựng làm sở để kết luận truy vấn bình thường hay bất thường Sau tiến hành việc tính tốn giá trị tham số 30 tính phân tích, bước lựa chọn tính tốt để đưa vào huấn luyện học máy Đối với việc tính tốn giá trị tham số tính năng, ngơn ngữ sử dụng ngơn ngữ Python, tính cần tính tốn tham số length (ví dụ length of the request, length of the argument, …) hàm len() sử dụng; tính cần tính tồn tham số number (ví dụ number of argument, number of distinct bytes, …) hàm sum() sử dụng; tính cần tính tốn giá trị cụ thể trường (ví dụ number of digits in the path, number of other char in the argument) hàm len() sum() sử dụng kết hợp với hàm split() nhằm mục đích phân tách trường truy vấn từ tính tốn xác giá trị tính Hình 3.3: Kết tính tốn tham số 30 tính liên quan đến Web Attack Tất kết tính tốn tổng hợp thành file định dạng csv để phục vụ cho bước lựa chọn đặc trưng tốt từ tính 3.4.1 Lựa chọn đặc trưng Lựa chọn tính việc làm quan trọng học máy có tác động lớn đến hiệu suất mơ hình Lợi ích việc lựa chọn tính là: giảm liệu dư thừa hay giảm nhiễu từ liệu từ đưa định xác; liệu sai lệch tức độ xác mơ hình cải thiện; giảm thời gian huấn luyện điểm liệu làm giảm độ phức tạp thuật toán thuật toán huấn luyện nhanh Để lựa chọn tính có đặc trưng tốt 30 tính đề cập trên, tơi sử dụng ba phương pháp:  Univariate Selection (Lựa chọn đơn biến): Lựa chọn đặc điểm có mối quan hệ chặt chẽ với biến đầu Thư viện scikit-learning cung cấp lớp 30 SelectKBest sử dụng đưa kiểm tra khác để lựa chọn tính tốt từ tập liệu Hình 3.4: Lựa chọn 10 tính tốt sử dụng phương pháp Univariate Selection  Feature Importance (Lựa chọn tính quan trọng): Hiển thị mức độ quan trọng tính Sử dụng phương pháp lựa chọn thuộc tính tốt dựa mức độ quan trọng tính năng, điểm cao tính quan trọng có liên quan đến biến kết đầu tập liệu Hình 3.5: Lựa chọn 10 tính tốt dựa phương pháp Feature Importance  Correlation Matrix with Heatmap (Ma trận tương quan với đồ nhiệt): Thể tương quan biến tính với với biến mục tiêu Các mối tương quan tích cực (dương) tức tăng giá trị tính làm tăng giá trị biến mục tiêu tiêu cực (âm) tức tăng giá trị tính làm giảm giá trị biến mục tiêu Hình 3.6: Ma trận tương quan mơ tả tính tập liệu 31 3.4.2 Mơ tả đặc trưng Để định câu lệnh truy vấn bình thường hay bất thường cần phải hiểu rõ cấu trúc thành phần truy vấn Các đặc trưng trích chọn từ Mục 3.3.1 đặc trưng quan trọng liên quan đến request, path argument Đối với cấu trúc URI gồm thành phần mơ tả hình 3.6 Hình 3.7: Cấu trúc URI Trong đó, request thành phần bao gồm tên giao thức, số phân cấp URL, thông tin đăng nhập để truy cập tài nguyên, máy chủ để lấy liệu, cổng kết nối, đường dẫn phân cấp cho tài nguyên, tham số truy vấn hay thông tin tùy chọn thêm vào Path đường dẫn phân cấp cho tài nguyên có web, tài nguyên ngăn cách dấu “/” Argument biến truyền vào câu lệnh truy vấn sau dấu “?” Đối với giao thức GET argument hiển thị câu lệnh truy vấn Còn giao thức POST PUT, argument hiển thị phần request body Mỗi argument ngăn cách dấu “&” câu lệnh truy vấn có nhiều argument khác Chính việc hiểu rõ tham số liên quan đến biến request, path, argument cần thiết việc phát truy vấn độc hại hay bình thường Các đặc trưng liên quan đến biến request, path, argument mô tả cụ thể sau: - num_letter_arg: mô tả số ký tự có argument - length_argument: độ dài argument có request - num_digit_arg: số lượng chữ số có argument - num_special_path: số kí tự đặc biệt có path request - num_otherchar_path: số kí tự khác có path request Được tính cách: num_otherchar_path = tổng độ dài path – kí tự số - kí tự chữ - số spaces 32 - length_contentlength: độ dài trường Content-Length Trong giao thức GET độ dài gán - num_ditgit_path: số lượng chữ số có trường path câu truy vấn - num_letter_path: số lượng chữ có trường path câu truy vấn - length_path: độ dài trường path có câu truy vấn - length_request: độ dài câu truy vấn 3.5 Đánh giá thử nghiệm thuật toán học máy 3.5.1 Lọc liệu đầu vào với ModSecurity Với kiến trúc tổng quan hệ thống mô tả mục 3.1 Để thu liệu truy vấn đầu vào với ModSecurity tiến hành thiết lập luật (rule) ModSecurity có hỗ trợ Từng gói tin GET, POST hay PUT web browser gửi lên webs server thu, chặn lại xử lý - Cấu hình rule cho Modsecurity, viết rule vào file riêng biệt có tên modsecurity.conf viết rule vào file *.conf thư mục /etc/httpd/conf.d: #gedit /etc/httpd/conf.d/modsecurity.conf - Nội dung rule sử dụng để thu truy vấn thay đổi theo giao thức mà truy vấn sử dụng: + Truy vấn sử dụng giao thức GET SecRule ARGS,REQUEST_METHOD "^(GET)$" "id:80,pass,auditlog,t:urlDecodeUni,severity:WARNING,msg:'loc theo truy van giao thuc GET', setenv:dau_vao=%{REQUEST_URI}, exec:/usr/local/bin/process_get_request.sh" + Truy vấn sử dụng giao thức POST SecRule ARGS,REQUEST_METHOD "^(POST)$" "id:81,pass,auditlog,t:urlDecodeUni,severity:WARNING, msg:'Loc theo truy van giao thuc POST', setenv:dau_vao=%{REQUEST_BODY}, exec:/usr/local/bin/ process_get_request.sh" 33 + Truy vấn sử dụng giao thức PUT SecRule ARGS,REQUEST_METHOD "^(PUT)$" "id:82,pass,auditlog,t:urlDecodeUni,severity:WARNING, msg:'Loc theo truy van giao thuc PUT', setenv:dau_vao=%{REQUEST_BODY}, exec:/usr/local/bin/ process_get_request.sh" Ý nghĩa trường luật Từ khóa SecRule REQUEST_METHOD "^(GET)$" REQUEST_METHOD "^(POST)$", REQUEST_METHOD "^(PUT)$" Id:81 Pass Severity :WARNING auditlog Nội dung Từ khóa viết Rule Modscurity Các truy vấn với phương thức GET, POST, PUT ID định danh rule Action cho phép truy vấn qua Đặt mức độ cảnh báo Warning Lưu log truy vấn vào auditlog Modsecurity urlDecodeUni Giải mã chuỗi đầu vào URL mã hóa Msg:”Filter GET request” Thơng báo lưu kèm theo logs, error log, auditlog setenv:dau_vao=%{REQUEST_BODY} Biến đầu vào lưu giá trị cần thiết theo phương thức GET, POST, PUT exec:/usr/local/bin/*.sh Hành động thực thi đoạn script với đường dẫn định 3.5.2 Đánh giá kết dựa phương pháp học máy Sau thu lọc truy vấn (request) liệu trainning để tiến hành lựa chọn đặc trưng Các đặc trưng đưa vào máy học thử nghiệm Để đánh giá độ xác tơi sử dụng ma trận nhầm lẫn (confusion matrix) Confusion Matrix phương pháp đánh giá kết toán phân loại với việc xem xét số độ xác độ bao quát dự đoán cho lớp Một confusion matrix gồm số sau lớp phân loại: - TP (True Positive): mẫu mang nhãn dương phân lớp vào lớp dương - TN (True Negative): mẫu mang nhãn âm phân lớp vào lớp âm - FP (False Positive - Type Error): mẫu mang nhãn âm bị phân lớp sai vào lớp dương 34 - FN (False Negative - Type Error): mẫu mang nhãn dương bị phân lớp sai vào lớp âm Hình 3.8: Mơ tả phương pháp đánh giá kết Confusion Matrix Ký hiệu TP True Positive; TN True Negative; FP False Positive FN False Negative Thực phép đo Precision – Recall, đó, Precision tỉ lệ số điểm TP điểm phân loại Positive, Recall tỉ lệ số điểm TP số điểm thực Positive Công thức sau: Precision= Recall= 𝑇𝑇𝑇𝑇 𝑇𝑇𝑇𝑇+𝐹𝐹𝐹𝐹 𝑇𝑇𝑇𝑇 𝑇𝑇𝑇𝑇+𝐹𝐹𝐹𝐹 Giá trị Precision Recall phủ cao tốt Nhưng thực tế, hai giá đạt cực đại lúc Thước đo F1Score trung bình Precision Recall Nó có xu hướng khơng hai giá trị có xu hướng khơng 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝 × 𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟 F1score= 2* 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝 + 𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟 SVM F1Score 0.9155 Confusion Matrix [3712 52] [487 2653] Decision Tree F1Score 0.923 Confusion Matrix [3703 61] [470 2670] Random Forest F1Score 0.9156 Confusion Matrix [3714 54] [485 2655] Logistic Regression F1Score 0.8861 Confusion Matrix [3755 30] [777 2363] Với liệu HTTP CSIC 2010 chứa 36000 truy vấn bình thường 25065 truy vấn bất thường áp dụng phương pháp học máy thu kết bảng Sau chạy kết thuật toán học máy thu kết tốt với thuật tốn Cây định (Decision Tree) Q trình học máy thực hệ thống kết hợp với luật thiết lập Modsecurity nhận diện đưa thông báo cho request đưa vào phân tích 35 Hình 3.9: Hệ thống nhận diện truy vấn bình thường Hình 3.10: Hệ thống nhận diện truy vấn bất thường 3.5.3 Tích hợp Modsecurity với hệ thống phát truy vấn HTTP Sau Modsecurity cài đặt thành công hệ điều hành Linux (Ubuntu), để Modsecurity thu nhận câu lệnh truy vấn từ người dùng, hai tập luật cấu hình tệp tin /etc/modsecurity/manh.conf - Luật 1: SecRule ARGS,REQUEST_METHOD "^(GET)$" "pass,setenv:request_method=%{REQUEST_METHOD},setenv:full_request_length=%{FULL_REQ UEST_LENGTH},setenv:content_length=%{REQUEST_HEADERS:Content-Length} ,setenv:request_raw=http://%{SERVER_NAME}%{REQUEST_URI}, exec:/home/chamaeleon/Desktop/code/25_10/manh.sh,id:1999" - Luật 2: SecRule ARGS,REQUEST_METHOD "^(PUT|POST)$" "pass,setenv:request_method=%{REQUEST_METHOD},setenv:full_request_length=%{FULL_REQ UEST_LENGTH},setenv:content_length=%{REQUEST_HEADERS:ContentLength},setenv:request_raw=http://%{SERVER_NAME}%{REQUEST_URI},setenv:request_body= %{REQUEST_BODY}, exec:/home/chamaeleon/Desktop/code/25_10/manh.sh,id:2000" Hai tập luật viết dựa cấu trúc luật trình bày chi tiết Mục 2.5.5 Các tập luật định nghĩa thu nhận tất câu truy vấn với phương thức GET, POST PUT từ phía người dùng 36 Hình 3.11: Cấu trúc câu lệnh truy vấn Hình 3.x mơ tả cấu trúc truy vấn cụ thể, Modsecurity với hai tập luật cấu phân tách trường câu lệnh truy vấn biến tương ứng: - Biến request_method trả kết method truy vấn - Biến full_request_length trả kết độ dài câu lệnh truy vấn - Biến content_length trả kết giá trị tham số Content-Length có câu lệnh truy vấn - Biến request_raw trả dòng câu lệnh truy vấn (line request) có chứa giá trị path argument câu lệnh truy vấn - Biến request_body trả kết trường request body (giá trị requet body có câu lệnh truy vấn sử dụng phương thức POST, truy vấn sử dụng phương thức GET giá trị 0) Các giá trị biến Modsecurity phân tích so sánh với ngưỡng giá trị có từ q trình học máy học từ trước Cuối đưa kết luận câu truy vấn đầu vào bình thường hay bất thường Hình 3.12: Người dùng thực truyền truy vấn bình thường 37 Hình 3.13: Hệ thống trả kết truy vấn bình thường Hình 3.14: Người dùng thực truyền truy vấn bất thường Hình 3.15: Hệ thống trả kết truy vấn bất thường 38 CHƯƠNG 4: KẾT LUẬN 4.1 Đóng góp luận văn Với mục tiêu nghiên cứu giải pháp xây dựng tường lửa lớp ứng dụng dựa Modsecurity, luận văn tập trung vào nghiên cứu phương pháp phát bất thường dựa học máy thống kê kết hợp với tường lửa mã nguồn mở Modsecuriy để xây dựng tường lửa ứng dụng web ngăn chặn, phịng chống số dạng cơng Một số kết đạt luận văn: (i) Cung cấp nhìn tổng quan tình hình cơng tin tặc vào trang thông tin điện tử đồng thơi đưa giải pháp để ứng phó với tình hình (ii) tìm hiểu liệt kê số nguy an tồn thơng tin thơng qua kĩ thuật công web, đưa lỗ hổng thường gặp cách thức ngăn chặn thực tế (iii) vận dụng sở lý thuyết thuật toán học máy tiến hành đưa vào thử nghiệm thực tế truy vấn đầu vào để tạo ngưỡng giá trị làm sở để đối sánh với tường lửa modsecurity (iv) Dựa sở lý thuyết HTTP, đặc trưng header HTTP tiến hành xây dựng giải pháp tường lửa lớp ứng dụng với chế độ reverse proxy tích hợp với tường lửa mã nguồn mở Modsecuriy phân tích đưa kết truy vấn đầu vào Qua kết thực nghiệm truy vấn thực tế, luận văn khơng có tính giải pháp xây dựng tường lửa lớp ứng dụng dựa Modsecurity có khả triển khai số ứng dụng thực tế, hỗ trợ cho doanh nghiệp, tổ chức với định hướng giải dạng công trang, cổng thông tin điện từ - vấn đề cấp thiết 4.2 Hướng phát triển luận văn Hiện hệ thống đưa cảnh báo truy vấn bất thường hay bình thường có độ xác chưa cao cần hồn thiện tương lai Một số hướng phát triển luận văn cụ thể là: (i) Tham khảo, thu thập xây dựng thêm cho liệu học máy phong phú từ tăng khả nhận diện xác cho hệ thống cách sử dụng logs trang web; thu thập liệu kiểm thử mạng Internet (ii) Tiếp tục thử nghiệm nhiều thuật toán học máy với kịch khác liệu khác để đưa giá trị ngưỡng từ xác định kết xác (iii) Tiến hành so sánh loại tường lừa ứng dụng web phổ biển thị trường ví dụ AQTRONIX WebKnight, Barracuda Web Application Firewall, SecureSphere Web Application Firewall, Dịch vụ Web Application Firewall Cyberoam với tường lửa Modsecurity để phát ưu, nhược điểm hệ thống (iv) Hoàn thiện, cập nhật thường xuyên luật hệ thống để phát ngăn chặn cảnh báo truy vấn bất thường từ nhiều hình thức cơng khác tin tặc 39 TÀI LIỆU THAM KHẢO [1] Hai Thanh Nguyen, Carmen Torrano-Gimenez, Gonzalo Alvarez, Slobodan Petrović and Katrin Franke, Application of the Generic Feature Selection Measure in Detection of Web Attacks, 2011 [2] Ngoc-Tin Tran, Van-Hoa Nguyen, Thanh Nguyen-Le, and Khuong NguyenAn, Improving ModSecurity WAF with Machine Learning Methods, 2020 [3] Gim´enez, C.T, Villegas, A.P, Maranon, G.A: HTTP data set CSIC 2010 Information Security Institute of CSIC (Spanish Research National Council), 2010 [3] Ristic, Ivan, Modsecurity Handbook: The Complete Guide to the Popular Open Source Web Application Firewall, 2010 [4] Khuất Thị Ngọc Ánh, “Phương pháp phát công web ứng dụng dựa kỹ thuật phân tích hành vi”, Luận văn thạc sĩ, Học viện bưu viễn thông, 2020 [5] Vũ Hữu Tiệp (2016-2020) – “Machine Learning bản” [6] ModSecurity Core Rule Set Project, “OWASP ModSecurity Core Rule Set,” 2016, https://coreruleset.org/ (truy cập ngày 28/9/2022) [7] T Berners-Lee, Hypertext transfer protocol (HTTP) [Online] Available: https://www.rfc-editor.org/rfc/rfc1945 (truy cập ngày 03/10/2022) [8] The OWASP Top 10 2021 Available: https://owasp.org/Top10/ (truy cập ngày 28/9/2022) 40 ... vận dụng xây dựng tường lửa lớp ứng dụng - Nghiên cứu phương pháp học máy kết hợp với tường lửa Modsecurity mã nguồn mở xây dựng giải pháp tường lửa lớp ứng dụng Giải pháp xây dựng tường lửa lớp. .. tưởng lửa lớp ứng dụng web mang lại, định chọn đề tài ? ?Xây dựng giải pháp tường lửa lớp ứng dụng dựa Modsecurity? ?? để nghiên cứu giải pháp công nghệ 1.2 Các giải pháp hạn chế Các loại tường lửa. .. giải pháp xây dựng tường lửa lớp ứng dụng dựa Modsecurity, luận văn tập trung vào nghiên cứu phương pháp phát bất thường dựa học máy thống kê kết hợp với tường lửa mã nguồn mở Modsecuriy để xây

Ngày đăng: 24/03/2023, 23:44

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w