Mục đích của Luận văn này là nghiên cứu một số thuật toán học máy có giám sát và ứng dụng cho việc phát hiện tấn công web cơ bản sử dụng web log. Trên cơ sở đó tiến hành thực nghiệm để đánh giá hiệu quả trong việc phát hiện tấn công web cơ bản của một số thuật toán học máy. Mời các bạn cùng tham khảo!
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - Vũ Thị Quý NGHIÊN CỨU PHÁT HIỆN TẤN CÔNG WEB CƠ BẢN DỰA TRÊN HỌC MÁY SỬ DỤNG WEB LOG Chuyên ngành : KHOA HỌC MÁY TÍNH Mã số : 8.48.01.01 TĨM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT HÀ NỘI – NĂM 2020 Luận văn hoàn thành tại: HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG Người hướng dẫn khoa học: TS HOÀNG XUÂN DẬU Phản biện 1: …………………………………………………………………… Phản biện 2:…………………………………………………………………… Luận văn bảo vệ trước Hội đồng chấm luận văn thạc sĩ Học viện Công nghệ Bưu Viễn thơng Vào lúc: ngày tháng năm 2020 Có thể tìm hiểu luận văn tại: - Thư viện Học viện Cơng nghệ Bưu Viễn thơng PHẦN MỞ ĐẦU Trong giới đại ngày nay, ứng dụng web ngày trở nên quan trọng phần thiếu mạng Internet Các ứng dụng web, website chiếm tỷ lệ áp đảo số ứng dụng Internet Cũng mà vấn đề bảo mật web ngày trở thành vấn đề quan tâm Theo số liệu thống kê BKAV [11], năm 2019, thiệt hại virus máy tính gây người dùng Việt Nam lên tới 20.892 tỷ đồng (902 triệu USD), vượt xa số 14.900 tỷ đồng năm 2018 Tổng số lượt máy tính bị nhiễm mã độc ghi nhận năm 2019 lên tới 85,2 triệu lượt, tăng 3,5% so với năm 2018 Năm tiếp tục chứng kiến hoành hành loại mã độc mã hóa liệu tống tiền (ransomware) Số lượng máy tính bị liệu năm 2019 lên tới 1,8 triệu lượt, tăng 12% so với năm 2018 Nghiêm trọng hơn, số có nhiều máy chủ (server) chứa liệu quan Không gây thiệt hại lớn, việc máy chủ bị xóa liệu gây đình trệ hoạt động quan, doanh nghiệp nhiều ngày sau đó, chí đến tháng Đối với công ty lớn, nguy bị công vào hệ thống đồng nghĩa với việc họ bị thiệt hại hàng tỷ USD, uy tín trước khách hàng bị giảm sút Với quan y tế quốc phịng thiệt hại cịn thảm khốc gấp nhiều lần Qua số liệu cho thấy công web dạng công thường gặp lên website, web portal ứng dụng web Các dạng cơng bao gồm: cơng chèn mã SQL (SQLi hay SQL Injection), công chèn mã XSS (Cross-Site Scripting), công duyệt đường dẫn (Path traversal) cơng chèn dịng lệnh hệ điều hành (CMDi hay Command Injection) Trong số này, công chèn mã SQL dạng công phổ biến nguy hiểm Tùy vào mức độ tinh vi, cơng chèn mã SQL cho phép kẻ công (1) vượt qua khâu xác thực người dùng, (2) chèn, sửa đổi, xóa liệu, (3) đánh cắp thông tin sở liệu (4) chiếm quyền điều khiển hệ thống máy chủ sở liệu [1] Tấn cơng XSS cho phép tin tặc đánh cắp liệu người dùng lưu cookie trình duyệt, từ kiểm sốt tài khoản người dùng máy chủ Theo hướng khác, công duyệt đường dẫn cho phép tin tặc tải truy nhập vào file chứa liệu nhạy cảm máy chủ thơng qua xâm nhập sâu vào hệ thống Tấn cơng chèn dịng lệnh hệ điều hành cho phép tin tặc thực lệnh nguy hiểm cho phép xóa file, liệu hệ thống nạn nhân 2 Mặc dù dạng công thường gặp lên website ứng dụng web biết đến từ lâu có nhiều biện pháp phòng chống nghiên cứu, triển khai, sử dụng lọc, tường lửa, chế kiểm soát truy nhập… Tuy nhiên, dạng công web phổ biến gây nhiều thiệt hại cho trang web, cổng thông tin điện tử, trang thương mại điện tử quan tổ chức Nguyên nhân điều có nhiều website ứng dụng web khơng có, thiếu chế lọc liệu đầu vào thực hiệu quả, và/hoặc sử dụng mã chương trình trộn lẫn với liệu, tạo điều kiện cho tin tặc chèn mã độc công hệ thống [1] Việc xây dựng lọc dựa mẫu cố định thực gặp khó khăn, mẫu công liên tục thay đổi ngày tinh vi Việc xây dựng lọc phát dạng công web dựa học máy hướng giải hiệu thay cho lọc mẫu truyền thống Theo hướng nghiên cứu này, đề tài luận văn thạc sĩ học viên có tên “Nghiên cứu phát cơng web dựa học máy sử dụng web log” tập trung nghiên cứu vấn đề phát công web dựa học máy sử dụng web log Do nhiều hạn chế thời gian tài liệu nên đề tài cịn nhiều thiếu sót Rất mong nhận đóng góp thầy bạn để đề tài hồn thiện Tôi xin chân thành cảm ơn! Tổng quan vấn đề nghiên cứu Đã có nhiều giải pháp phịng chống dạng công web nghiên cứu ứng dụng [1][3] Các giải pháp thực tế kể đến gồm: Sử dụng lọc để kiểm tra lọc liệu đầu vào Các lọc sử dụng bao gồm, lọc dựa từ khóa, lọc dựa mẫu lọc dựa biểu thức quy Sử dụng dạng tường lửa, proxy mức ứng dụng, tường lửa ứng dụng web (WAF – Web Application Firewall) WAF sử dụng để lọc tất truy vấn người dùng WAF có ưu điểm bảo vệ đồng thời nhiều website khơng địi hỏi chỉnh sửa mã nguồn website Kết hợp sử dụng biện pháp kiểm soát truy nhập, phân quyền người dùng để giảm thiểu khả bị công, khai thác 3 Sử dụng công cụ theo dõi, giám sát website, ứng dụng web, phát xâm nhập (IDS) Trên phương diện nghiên cứu học thuật, chia đề xuất nghiên cứu phát cơng, xâm nhập nói chung cơng web nói riêng thành nhóm dựa kỹ thuật phát hiện: (1) nhóm phát dựa chữ ký, mẫu, luật (2) nhóm phát dựa bất thường Phát dựa chữ ký (signature), mẫu (pattern), luật (rule) phương pháp phát cơng dựa việc tìm hay so khớp tập chữ ký công biết với liệu giám sát thu thập Một cơng phát có so khớp chữ ký thành công Kỹ thuật phát cơng, xâm nhập dựa chữ ký có ưu điểm có khả phát nhanh xác dạng công biết Tuy nhiên, kỹ thuật có nhược điểm khơng có khả phát dạng công mới, hay công khai thác lỗ hổng zero-day chữ ký chúng chưa tồn sơ liệu Ngoài ra, việc xây dựng cập nhật sở liệu chữ ký thường thực thủ công, nên tốn nhiều công sức Phát công, xâm nhập dựa bất thường dựa giả thiết: hành vi cơng, xâm nhập thường có quan hệ chặt chẽ với hành vi bất thường Quá trình xây dựng triển khai hệ thống phát xâm nhập dựa bất thường gồm giai đoạn: (1) huấn luyện (2) phát Trong giai đoạn huấn luyện, hồ sơ (profile) đối tượng chế độ làm việc bình thường xây dựng Để thực giai đoạn huấn luyện này, cần giám sát đối tượng khoảng thời gian đủ dài để thu thập đầy đủ liệu mô tả hành vi đối tượng điều kiện bình thường làm liệu huấn luyện Tiếp theo, thực huấn luyện liệu để xây dựng mơ hình phát hiện, hay hồ sơ đối tượng Trong giai đoạn phát hiện, thực giám sát hành vi hệ thống cảnh báo có khác biệt rõ nét hành vi hành vi lưu hồ sơ đối tượng Ưu điểm phát xâm nhập dựa bất thường có tiềm phát loại công, xâm nhập mà không yêu cầu biết trước thông tin chúng Tuy nhiên, phương pháp có tỷ lệ cảnh báo sai tương đối cao so với phương pháp phát dựa chữ ký Điều làm giảm khả ứng dụng thực tế phát xâm nhập dựa bất thường Ngồi ra, tiêu tốn nhiều tài ngun hệ thống cho việc xây dựng hồ sơ đối tượng phân tích hành vi 4 Phương pháp phát công web dựa học máy sử dụng web log thực luận văn thuộc nhóm kỹ thuật phát dựa bất thường Theo đó, URI truy nhập tách từ web log phân loại phân loại huấn luyện sử dụng tập liệu gán nhãn Luận văn dự kiến sử dụng thuật tốn học máy có giám sát nên giảm thời gian huấn luyện phát Mục đích nghiên cứu Luận văn nghiên cứu số thuật tốn học máy có giám sát ứng dụng cho việc phát công web sử dụng web log Trên sở tiến hành thực nghiệm để đánh giá hiệu việc phát cơng web số thuật tốn học máy Đối tượng phạm vi nghiên cứu Đối tượng phạm vi nghiên cứu luận văn bao gồm: - Một số dạng công web - Một số thuật toán học máy để phát công - Web log - Một số công cụ, phần mềm để thử nghiệm đánh giá hiệu thuật toán học máy phát dựa Web log Phương pháp nghiên cứu - Phương pháp lý thuyết: Khảo sát, phân tích tài liệu khoa học liên quan đến dạng công số thuật toán học máy - Phương pháp thực nghiệm: Sử dụng công cụ, phần mềm để thử nghiệm đánh giá hiệu thuật toán học máy phát dựa web log liệu lựa chọn Trên sở đánh giá ưu nhược điểm từ định hướng xây dựng định hướng nghiên cứu, cải tiến mở rộng quy trình, phương pháp Cấu trúc luận văn Ngồi phần mở đầu kết luận, luận văn chia thành chương: Chương 1: Tổng quan dạng công vào Website, ứng dụng Web giải pháp phịng chống Chương trình bày kiến trúc ứng dụng web, yêu cầu bảo mật, hình thức công vào ứng dụng web cách phịng chống bị cơng hình thức công phổ biến năm gần dựa theo OWASP Phần cuối chương biện pháp bảo mật ứng dụng web, bao gồm nguyên tắc chung số biện pháp bảo mật cụ thể cho ứng dụng web Chương 2: Phát công WEB dựa học máy sử dụng Web Trong chương 2, luận văn tiếp tục tìm hiểu WEBLOG, khái quát dạng, đồng thời sâu vào việc giới thiệu học máy thuật toán học máy, đưa mơ hình phát cơng website chi tiết khâu xử lý liệu Chương 3: Cài đặt thử nghiệm Trong chương 3, nội dung chủ yếu giới thiệu tập liệu sử dụng để huấn luyện cho học máy, cách xử lý tiền liệu, bước làm pha huấn luyện phân loại liệu đầu vào Trình bày số phương pháp để sử dụng huấn luyện phát hiện, kết dùng để đánh giá mức độ hiệu sử dụng phương pháp học máy khác 6 CHƯƠNG 1: TỔNG QUAN VỀ CÁC DẠNG TẤN CÔNG VÀO WEBSITE, ỨNG DỤNG WEB VÀ CÁC GIẢI PHÁP PHÒNG CHỐNG 1.1 Kiến Trúc Ứng Dụng Web Các Yêu Cầu Bảo Mật 1.1.1 Kiến trúc ứng dụng web Một ứng dụng web (Web application) gồm thành phần: Máy khách web/trình duyệt web (Web client/web browser), Máy chủ web (HTTP/web server), URL/URI, Web session cookie, Bộ diễn dịch thực server script, Các server script (CGI – Common Gateway Interface), Máy chủ sở liệu Hạ tầng mạng TCP/IP kết nối máy khách máy chủ web Hình 1.1: Kiến trúc chuẩn ứng dụng web [1] Hình 1.1 biểu diễn kiến trúc chuẩn hệ thống ứng dụng web (hay ngắn gọn ứng dụng web), mơ tả thành phần ứng dụng web giao tiếp chúng Theo đó, thành phần ứng dụng web gồm Web Browser (Trình duyệt), Web Server (Máy chủ web), Application Server (Máy chủ ứng dụng), Data (Kho chứa liệu – thường sở liệu), File System (Hệ thống file máy chủ) External System (Các hệ thống bên ngoài) Web Browser tạo gửi yêu cầu trang web (Page Request) đến Web Server Nếu yêu cầu trang web tĩnh, Web Server đọc nội dung trang từ File System gửi trang web cho Web Browser Nếu yêu cầu trang web động, Web Server chuyển yêu cầu cho Application Server xử lý Application Server dịch thực mã script trang web để tạo kết Application Server cần truy nhập Data, File System, External System để xử lý yêu cầu Kết xử lý yêu cầu chuyển lại cho Web Server để tạo trang web gửi cho Web Browser 7 Các máy chủ web phổ biến kể tới Apache, Nginx, IIS, Tomcat… Các ứng dụng web tùy thuộc vào yêu cầu triển khai mà tạo nên ngơn ngữ lập trình khác như: C#, Java, Python, PHP, Ruby… Cơ sở liệu (Data) đóng vai trị lưu trữ, cung cấp thơng tin cho ứng dụng web trình xử lý request Một số hệ quản trị sở liệu thường sử dụng bao gồm: SQL Server, MySQL, MongoDB, Oracle Ngoài ra, tùy thuộc vào độ phức tạp, quy mơ, u cầu việc phát triển mà website có thêm nhiều thành phần khác Message Queue, Proxy, Cache Giao thức HTTP Giao thức HTTPS Máy khách web máy chủ web giao tiếp với giao thức HTTP HTTPS thông qua phương thức yêu cầu/đáp ứng (Request/Response), yêu cầu http request gửi từ máy khách web lên máy chủ web đáp ứng hay phản hồi http response gửi từ máy chủ web tới máy khách web Hình 1.2: Cấu trúc http request Hình 1.3: Cấu trúc http reponse 1.1.2 Các yêu cầu bảo mật ứng dụng web, website 1.1.2.1 Yêu cầu cài đặt 1.1.2.2 Tắt/disable thành phần mặc định 1.1.2.3 Thay đổi thành phần mặc định 1.1.2.4 Giới hạn truy cập 1.2 Các Nguy Cơ Các Dạng Tấn Công Lên Ứng Dụng Web 1.2.1 Các nguy lỗ hổng bảo mật website, ứng dụng web (TOP 10 OSWAP 2017) OWASP Top 10 năm 2017 phát hành cơng khai, dựa thăm dị, kiểm tra 2,3 triệu lỗ hổng tác động đến 50000 ứng dụng, bao gồm cập nhật lỗ hổng quy mô lớn cập nhật kịch công Phần mô tả danh sách Top 10 năm 2017 [8][9][10] A1 – Injection (Lỗi nhúng mã) A2 - Broken Authentication and Session Management (Lỗi xác thực quản phiên yếu) A3 - Cross-Site Scripting (XSS) A4 - Broken Access Control (Điều khiển truy nhập yếu) A5 - Security Misconfiguration (Cấu hình thiếu an tồn) A6 - Sensitive data exposure (Rò rỉ liệu nhạy cảm) A7 - Missing function level access control (Lỗi phân quyền) A8 - Cross Site Request Forgery (CSRF) A9 - Using component with known vulnerabilities (Sử dụng thư viện, ứng dụng tồn lỗ hổng trước đó) A10- Underprotected APIs (Các API không bảo vệ) 1.2.2 Một số dạng công web 1.2.2.1 Tấn công chèn mã SQLi Tấn công chèn mã SQL (SQL Injection - SQLi) kỹ thuật cho phép kẻ công chèn mã SQL vào liệu gửi đến máy chủ cuối thực máy chủ sở liệu Tùy vào mức độ tinh vi, công chèn mã SQL cho phép kẻ cơng (1) vượt qua khâu xác thực người dùng, (2) chèn, sửa đổi, xóa liệu, (3) đánh cắp thông tin sở liệu (4) chiếm quyền điều khiển hệ thống máy chủ sở liệu Tấn công chèn mã SQL dạng công thường gặp ứng dụng web, trang web có kết nối đến sở liệu Có nguyên nhân lỗ hổng ứng dụng cho phép thực công chèn mã SQL: - Dữ liệu đầu vào từ người dùng từ nguồn khác không kiểm tra kiểm tra không kỹ lưỡng; - Sử dụng câu lệnh SQL động ứng dụng, có thao tác nối liệu người dùng với mã lệnh SQL gốc 1.2.2.2 Tấn công Cross-Site Scriting (XSS) Tấn công Cross-Site Scriting (XSS – Mã script liên site, liên miền) dạng công phổ biến vào ứng dụng web XSS xuất từ trình duyệt bắt đầu hỗ trợ ngôn ngữ JavaScript (ban đầu gọi LiveScript – trình duyệt Netscape) Mã cơng XSS nhúng trang web chạy lịng trình duyệt với quyền truy nhập người dùng, truy nhập thơng tin nhạy cảm người dùng lưu trình duyệt Do mã XSS chạy lịng trình duyệt nên miễn nhiễm với trình qt phần mềm độc hại công cụ bảo vệ hệ thống [6] XSS xem dạng chèn mã HTML (HTML Injection) Trên thực tế, thực công chèn mã HTML mà không cần mã JavaScript không cần liên site, liên miền Kẻ công khai thác lỗ hổng bảo mật để chèn mã XSS vào trang web, liệu web (như tên địa email) mã (cú pháp phần tử ) XSS trộn lẫn vào mã gốc trang web Tấn công XSS thường xuất trang web cho phép người dùng nhập liệu sau hiển thị liệu lên trang Kẻ cơng khéo léo chèn mã script vào trang mã script kẻ công thực người dùng khác thăm lại trang web 10 Có thể chia cơng XSS thành loại chính: Stored XSS (XSS lưu trữ), Reflected XSS (XSS phản chiếu) DOM-based/Local XSS (XSS dựa DOM cục bộ) 1.2.2.3 Duyệt đường dẫn (Directory traversal) Directory Traversal dạng công cho phép tin tặc truy cập đến mục bị giới hạn, thực thi lệnh bên mục gốc máy chủ web Hình thức cơng không cần sử dụng công cụ mà đơn thao tác với biến / (dotdot-slash) để truy cập đến file, thư mục, bao gồm source code, file hệ thống… 1.2.2.4 Tấn công CMDi OS Command Injection (CMDi) lỗ hổng bảo mật web cho phép kẻ cơng thực thi lệnh hệ điều hành (OS) tùy ý máy chủ chạy service Các lỗ hổng CMDi xảy phần mềm tích hợp liệu người dùng quản lý lệnh, liệu xử lý trình thơng dịch lệnh Nếu liệu không kiểm tra, hacker sử dụng ký tự đặc biệt để thay đổi lệnh thực thi từ kẻ cơng khai thác, truy xuất thơng tin, công sang hệ thống máy chủ khác vùng mạng 1.2.3 Các biện pháp bảo mật ứng dụng web, website 1.2.3.1 Nguyên tắc chung Nguyên tắc bảo mật ứng dụng web tuân theo nguyên tắc chung bảo mật an tồn hệ thống thơng tin phòng vệ nhiều lớp theo chiều sâu (Defense in depth) Hình 1.4 biểu diễn lớp bảo mật ứng dụng web: Lớp bảo mật mạng (Network), Lớp bảo mật máy chủ (Host) Lớp bảo mật ứng dụng (Application) Trong đó, lớp bảo mật mạng thực bảo vệ vịng ngồi, lớp bảo mật máy chủ thực bảo vệ tảng lớp bảo mật ứng dụng thực bảo vệ liệu thơng qua kiểm sốt quyền truy nhập 11 Hình 1.4: Các lớp bảo mật ứng dụng web [1] Tiếp theo lớp bảo mật phải đảm bảo nhiệm vụ cụ thể: Lớp bảo mật mạng đảm bảo cung cấp hạ tầng mạng an toàn cho giao tiếp máy chủ máy khách Lớp bảo mật máy chủ (Host) có nhiệm vụ đảm bảo an toàn cho thành phần tảng hệ thống Lớp bảo mật ứng dụng có trách nhiệm đảm bảo an tồn cho người dùng liệu người dùng lưu hệ thống ứng dụng web 1.2.3.2 Một số biện pháp bảo mật cụ thể 1.2.3.2.1 Kiểm tra liệu đầu vào 1.2.3.2.2 Giảm thiểu giao diện bị cơng 1.2.3.2.3 Phòng vệ theo chiều sâu 1.3 Kết luận Chương Chương giới thiệu tổng quan kiến trúc ứng dụng web, yêu bảo mật ứng dụng web, web server Chương giới thiệu lỗ hổng nằm TOP 10 OWASP 2017 số lỗ hổng cơng web điển hình SQLi, XSS, Duyệt đường dẫn (Directory traversal), CMDi cách phòng chống tương ứng loại lỗ hổng cụ thể hệ thống web nói chung Trong chương 2, với nội dung PHÁT HIỆN TẤN CÔNG WEB DỰA TRÊN HỌC MÁY SỬ DỤNG WEB LOG, luận văn tiếp tục tìm hiểu WEBLOG, khái quát dạng, đồng thời sâu vào việc giới thiệu học máy thuật tốn học máy, đưa mơ hình phát công website chi tiết khâu xử lý liệu 12 CHƯƠNG 2: PHÁT HIỆN TẤN CÔNG WEB DỰA TRÊN HỌC MÁY SỬ DỤNG WEB LOG 2.1 Tìm hiểu Web log 2.1.1 Khái quát Web log Web log hay nhật ký web tệp nhật ký tự động tạo trì máy chủ web Mỗi lần người dùng truy cập vào trang Web, bao gồm chế độ xem tài liệu HTML, hình ảnh đối tượng khác máy chủ web ghi lại Định dạng ghi nhật ký web dòng văn cho lần truy cập vào trang web Tài liệu chứa thông tin người truy cập trang web, nơi họ đến xác họ làm trang web bao gồm loạt mục xếp theo thứ tự thời gian đảo ngược, thường cập nhật thường xuyên với thông tin chủ đề cụ thể Các web server chuẩn Apache Microsoft IIS tạo thông điệp ghi nhật ký theo chuẩn chung (CLF – common log format) Tệp nhật ký CLF chứa dòng thơng điệp cho gói HTTP request theo định dạng sau: Host Ident Authuser Date Request Status Bytes 2.1.2 Các dạng web log Tệp nhật ký truy cập Tệp nhật ký đối tượng Tệp nhật ký lỗi Tệp nhật ký giới thiệu 13 Bảng 2.1: Các loại định dạng tệp nhật ký máy chủ Web Các loại tệp nhật ký Nhật ký Truy cập Hoạt động Định dạng Ghi lại tất [Wed Oct 11 14:32:52 yêu cầu người dùng 2000] [error] [Client xử lý máy chủ 127.0.0.1] máy khách bị từ Ghi thông tin chối máy chủ người dùng Trích xuất kiến thức Người dùng hồ sơ cá nhân Các mẫu thường xuyên Sử dụng băng thơng cấu hình: /export/home/live/ap/htdocs /test Nhật ký tác nhân Tệp nhật ký lỗi duyệt "Mozilla/4.0 (compatible; Phiên đại lý Hệ MSIE 4.01; Windows NT)" điều hành sử dụng Phiên trình duyệt Trình người dùng Danh sách lỗi cho [Wed Oct 11 14:32:52 Các loại lỗi người dùng yêu cầu 2000] [error] [client Tạo địa lỗi IP thực 127.0.0.1] máy khách bị từ Ngày thời gian xảy chối máy chủ máy chủ lỗi cấu hình: /export/home/live/ap/htdocs /test 1.Thơng tin liên "http://www.google.c om/search?q=keyword", Nhật ký kết giới thiệu Chuyển hướng "/page.html" khách truy cập vào trang web Định dạng tệp nhật ký: Có ba loại định dạng tệp nhật ký Định dạng tệp nhật ký chung: Định dạng tệp nhật ký kết hợp: Trình duyệt sử dụng Từ khóa Chuyển hướng dung liên kết nội 14 Nhiều nhật ký truy cập: Thông số tệp nhật ký máy chủ: Dưới minh họa Bảng 2.2, danh sách số thơng số hữu ích cho q trình phân tích Bảng 2.2: Một số trường Web log TT Tên trường Sự miêu tả DATE Ngày xử lý yêu cầu theo định dạng yyyy-mmdd (năm-tháng-ngày) TIME CLIENT_IP HTTP_METHOD URI_STEM Giờ xử lý yêu cầu theo định dạng hh:mm:ss (giờ:phút:giây) Địa IP máy khách Phương thức HTTP máy khách gửi yêu cầu Địa tương đối trang, ví dụ /products/search.aspx Chuỗi truy vấn trang (HTTP query string) URI_QUERY Ví dụ: category_id=100& category_desc=Science Fiction Books HTTP_STATUS BYTE_RECEIVED BYTE_SENT 10 TIME_TAKEN Mã trạng thái xử lý yêu cầu Ví dụ 200 mã xử lý yêu cầu thành công Số lượng Byte yêu cầu (request) máy chủ nhận từ máy khách Số lượng Byte trả lời (response) máy chủ gửi từ máy khách Thời gian xử lý yêu cầu tính giây 2.2 Khái quát Học Máy thuật toán Học Máy 2.2.1 Khái quát học máy 2.2.1.1 Khái niệm 15 Học máy (machine learning) lĩnh vực trí tuệ nhân tạo liên quan đến việc nghiên cứu xây dựng kĩ thuật cho phép hệ thống "học" tự động từ liệu để giải vấn đề cụ thể Cụ thể hơn, học máy phương pháp để tạo chương trình máy tính việc phân tích tập liệu (là khả chương trình máy tính sử dụng kinh nghiệm, quan sát, liệu khứ để cải thiện cơng việc tương lai thay thực theo quy tắc lập trình sẵn) Học máy có liên quan lớn đến thống kê, hai lĩnh vực nghiên cứu việc phân tích liệu, khác với thống kê, học máy tập trung vào phức tạp giải thuật việc thực thi tính tốn [3][13] Nhiều toán suy luận xếp vào loại tốn NP-khó, phần học máy nghiên cứu phát triển giải thuật suy luận xấp xỉ mà xử lý Quá trình học máy đơn giản hiểu ta cung cấp tập liệu thuật tốn tự học mà không cần phải cài đặt luật định Để từ ta đưa liệu kiểm thử vào để hệ thống đưa kết nhận định dựa vào trình học tập liệu huấn luyện (q trình học thơng thường, hệ thống học máy cần có khả ghi nhớ, thích nghi, đặc biệt tổng qt hóa Tổng quát hóa khả hệ thống học máy định xác trường hợp mới, chưa gặp, dựa kinh nghiệm học từ liệu quan sát trước đó) Học máy có áp dụng rộng rãi bao gồm máy truy tìm liệu, chẩn đốn y khoa, phát thẻ tín dụng giả, phân tích thị trường chứng khốn, phân loại chuỗi DNA, nhận dạng tiếng nói chữ viết, dịch tự động, chơi trò chơi cử động rôbốt (robot locomotion) 2.2.1.2 Phân loại kỹ thuật học máy Xét theo phương thức học, thuật toán ML chia làm bốn nhóm, bao gồm “Học có giám sát” (Supervised Learning), “Học không giám sát” (Unsupervised Learning), “Học bán giám sát” (hay học kết hợp - Semi-supervised Learning) “Học tăng cường” (Reinforcement Learning) Học có giám sát Học không giám sát Học bán giám sát 16 Học tăng cường 2.2.2 Một số thuật toán học máy 2.2.2.1 Naive Bayes Naive Bayes Classification (NBC) thuật toán dựa định lý Bayes lý thuyết xác suất để đưa phán đoán phân loại liệu dựa liệu quan sát thống kê Naive Bayes Classification thuật toán ứng dụng nhiều lĩnh vực Machine learning dùng để đưa dự đốn xác dựa tập liệu thu thập, dễ hiểu độ xác cao Nó thuộc vào nhóm Supervised Machine Learning Algorithms (thuật tốn học có giám sát), tức máy học từ ví dụ từ mẫu liệu có Định luật Bayes phát biểu sau: Định lý Bayes cho phép tính xác suất xảy kiện ngẫu nhiên A biết kiện liên quan B xảy Xác suất ký hiệu P(A|B), đọc “xác suất A có B” Đại lượng gọi xác suất có điều kiện hay xác suất hậu nghiệm rút từ giá trị cho B phụ thuộc vào giá trị Cơng thức định luật Bayes [14] phát biểu sau: P(H|x)=P(H)*P(x|H)/P(x) Với: P ( H | x ) xác suất để xảy giả thuyết H với đầu vào tập liệu ngẫu nhiên cần dự đoán x P ( H ) xác suất xảy thân giả thuyết H mà không quan tâm đến x P ( x | H ) xác suất xảy x biết H xảy ra, gọi “xác suất x có H” P ( x ) xác suất xảy riêng tập liệu dự đoán x Tổng quát: P(H|x1…xn)=P(H)P(x1|H)… P(xn|H)/P(x1)… P(xn) Ứng dụng: 17 Real time Prediction: Tốc độ thuật toán phân loại giúp sử dụng việc định thời gian thực Multi class Prediction: Bản chất thuật toán phân loại dự đoán chia thành nhiều lớp Sentiment Analysis: Naive Bayes sử dụng phân loại ngôn ngữ tự nhiên cho kết tốt so với số thuật tốn khác Bên cạnh cịn phân loại spam-mail nhận định bình luận tích cực hay khơng tích cực mạng xã hội Recommendation System: hệ thống gợi ý hoạt động dựa dự đoán 2.2.2.2 Cây định Cây định (Decision Tree) đồ thị định hậu (bao gồm rủi ro hao phí tài nguyên) Cây định sử dụng để xây dựng kế hoạch nhằm đạt mục tiêu mong muốn Các định dùng để hỗ trợ trình định Cây định dạng đặc biệt cấu trúc Học định phương pháp thơng dụng khai phá liệu Khi đó, định mô tả cấu trúc cây, đó, đại diện cho phân loại cịn cành đại diện cho kết hợp thuộc tính dẫn tới phân loại Một định học cách chia tập hợp nguồn thành tập dựa theo kiểm tra giá trị thuộc tính Q trình lặp lại cách đệ qui cho tập dẫn xuất Quá trình đệ qui hồn thành khơng thể tiếp tục thực việc chia tách nữa, hay phân loại đơn áp dụng cho phần tử tập dẫn xuất Hình 2.3: Mơ hình thuật toán định [13] 18 Cây định có loại: Cây hồi quy (Regression tree): ước lượng hàm có giá trị số thực thay sử dụng cho nhiệm vụ phân loại (định giá, ước lượng giá trị nhà cần giao bán, khoảng thời gian nằm viện bệnh nhân) Cây phân loại (Classification tree): dùng tốn phân loại kết (phân biệt giới tính, kết trận đấu, …) 2.2.2.3 Rừng ngẫu nhiên Rừng ngẫu nhiên thuật tốn học có giám sát Rừng ngẫu nhiên sử dụng để làm tảng Rừng ngẫu nhiên tập hợp định, mà chọn theo thuật toán dựa vào ngẫu nhiên Rừng ngẫu nhiên hoạt động cách đánh giá nhiều định ngẫu nhiên, lấy kết đánh giá tốt số kết trả Mơ hình rừng ngẫu nhiên hiệu cho toán phân loại huy động lúc hàng trăm mơ hình nhỏ bên với quy luật khác để đưa định cuối Mỗi mơ hình mạnh yếu khác nhau, theo nguyên tắc “wisdom of the crowd”, ta có hội phân loại xác so với sử dụng mơ hình đơn lẻ Mơ hình tiêu biểu thuật toán Random Forest biểu diễn hình sau: Hình 2.4: Mơ hình thuật tốn rừng ngẫu nhiên [13] 2.3 Phát cơng web dựa học máy sử dụng web log 19 2.3.1 Mơ hình phát Mơ hình phát công web dựa học máy sử dụng web log luận văn triển khai theo giai đoạn: (1) giai đoạn huấn luyện biểu diễn Hình 2.5 (2) giai đoạn phát biểu diễn Hình 2.6 Trong đó, URI (Uniform Resource Indicator) chuỗi truy nhập bóc tách từ web log Các URI bình thường URI công dùng cho giai đoạn huấn luyện lấy từ tập liệu mẫu gán nhãn Hình 2.5: Mơ hình phát cơng web bản: Giai đoạn huấn luyện [2] Hình 2.6: Mơ hình phát công web bản: Giai đoạn phát [2][20] 2.3.2 Các giai đoạn huấn luyện phát 2.3.2.1 Giai đoạn huấn luyện Giai đoạn thực xây dựng mơ hình phát từ liệu huấn luyện gồm bước sau: 20 - Thu thập tập liệu huấn luyện - Tiền xử lý - Huấn luyện - Kiểm thử mơ hình phát 2.3.2.2 Giai đoạn phát Giai đoạn thực phân tích dịng web log nhằm phát dấu hiệu công SQLi, XSS, duyệt đường dẫn chèn dòng lệnh hệ điều hành gồm bước sau: - Tách URI truy nhập - Tiền xử lý - Phát 2.4 Kết luận Chương Chương giới thiệu hiểu biết WEB LOG, dạng WEB LOG, hoạt động định dạng loại WEB LOG Ngoài chương giới thiệu khái quát học máy đưa số thuật toán học máy sử dụng để phát công web Naive Bayes, Cây định (Decision Tree), Rừng ngẫu nhiên Tuy nhiên mục đích chương chủ yếu sâu vào việc trình bày mơ hình phát cơng sử dụng, pha xử lý mơ tiền xử lý, huấn luyện phát Trong chương 3, nội dung chủ yếu giới thiệu tập liệu sử dụng để huấn luyện cho học máy, cách xử lý tiền liệu, bước làm pha huấn luyện phân loại liệu đầu vào Trình bày số phương pháp để sử dụng huấn luyện phát hiện, kết dùng để đánh giá mức độ hiệu sử dụng phương pháp học máy khác 21 CHƯƠNG 3: CÀI ĐẶT VÀ THỬ NGHIỆM 3.1 Giới thiệu tập liệu 3.1.1 Tập liệu mẫu Tập liệu dùng cho thử nghiệm đánh giá mơ hình phát HttpParamsDataset [19] Tập gồm tham số truy vấn HTTP với 19.304 truy vấn bình thường gán nhãn norm 11.763 truy vấn bất thường gán nhãn anom - 10.852 truy vấn công chèn mã SQL gán nhãn sqli - 532 truy vấn công XSS gán nhãn xss - 89 truy vấn công chèn mã lệnh hệ điều hành gán nhãn cmdi - 290 truy vấn công duyệt đường dẫn gán nhãn path-traversal Tập liệu HttpParamsDataset chia thành phần sử dụng cho huấn luyện kiểm thử: - Tập cho huấn luyện gồm 20.712 truy vấn, có 7.842 truy vấn bất thường; - Tập cho kiểm thử gồm 10.355 truy vấn, có 3.921 truy vấn bất thường 3.1.2 Dữ liệu web log thực Tập liệu web log thực liệu thu thập thực tế từ máy chủ web Luận văn sử dụng phần liệu web log thu thập đề tài khoa học công nghệ cấp nhà nước, mã số KC.01.05/16-20 Error! Reference source not found thực Học viện Cơng nghệ Bưu Viễn thơng Web log thu thập chuẩn hóa theo định dạng W3C Extended phục vụ cho phân tích, xử lý 3.2 Tiền xử lý liệu Khâu tiền xử lý liệu nhằm trích chọn số hóa đặc trưng cho truy vấn HTTP thực theo bước mô tả phần giới thiệu mơ hình phát Chương Do ta sử dụng 3-gram chuẩn xây dựng từ việc lấy tất phần tử 3gram khác trình phân tách 3-gram ghi tập huấn luyện gồm 20.712 truy vấn, độ dài 3-gram chuẩn lớn lên tới vài chục nghìn phần tử Nếu thực lưu trữ, ánh xạ phần tử tập chuẩn gặp khó khăn q trình lưu trữ tốc độ xử lý tính tốn Vì vậy, để q trình huấn luyện 22 diễn nhanh mà khơng tính xác mơ hình sử dụng phương pháp để giảm chiều liệu 3-gram chuẩn Principal Component Analysis (PCA) 3.3 Huấn luyện kiểm thử mơ hình phát Tập liệu huấn luyện sau tiền xử lý sử dụng để huấn luyện sử dụng thuật tốn định để sinh mơ hình phân loại (cụ thể thuật toán định CART hỗ trợ thư viện sk-learn Python) Mơ hình lưu vào file cho khâu kiểm thử Trong khâu kiểm thử, tập liệu kiểm thử sau tiền xử lý sử dụng để đánh giá độ xác phân loại 3.4 Thử nghiệm, kết nhận xét 3.4.1 Lựa chọn công cụ thử nghiệm 3.4.2 Kết thử nghiệm 3.4.3 Nhận xét Mơ hình phát cơng web đạt độ xác phát trung bình cao, đạt 98.51% Hầu hết dạng cơng trạng thái bình thường có độ xác phát cao, riêng độ xác phát cơng CMDi đạt 66.67% lượng liệu huấn luyện cho dạng công Trên thực tế, cơng CMDi gặp dịch vụ web dạng SQLi, XSS duyệt đường dẫn Kết phát thử web log thực cho thấy mơ hình phát xác loại cơng Mơ hình có khả phát dạng công web bao gồm SQLi XSS, công duyệt đường dẫn CMDi 3.5 Kết luận chương Trong chương luận văn mô tả chi tiết liệu sử dụng cho mơ hình phát công web sử dụng học máy, mô tả chi tiết phương pháp huấn luyện phát hiện, thống kê chi tiết kết đạt nhiều kịch thử nghiệm khác từ rút nhận xét ưu điểm hạn chế phương pháp học máy sử dụng 23 KẾT LUẬN Kết đạt được: Từ nội dung chương, luận văn đạt kết sau: Trình bày khái quát ứng dụng web, yêu cầu bảo mật ứng dụng web, web server, loại công web đặc điểm cách khai thác loại công web phổ biến biện pháp bảo mật, cách phịng chống. Trình bày phương pháp phát công web sử dụng học máy, thuật toán học máy áp dụng cho tốn phát cơng web Đưa mơ hình phát cơng web ngun lý hoạt động mơ hình phát cơng Trình bày trình xử lý liệu, đưa liệu vào huấn luyện phát kiểm tra. Thử nghiệm mơ hình phát cơng web dựa học máy với kịch cụ thể Hướng phát triển tương lai Do hạn chế thời gian khả năng, luận văn thử nghiệm mơ hình thuật tốn học máy Cây định Trong tương lai sử dụng thuật tốn khác q trình huấn luyện phát hiện, Naive Bayes, Rừng ngẫu nhiên SVM, từ tìm thuật tốn tối ưu. Cập nhật thêm liệu để phát loại công cập nhật cách thức công lỗ hổng cũ. ... Theo hướng nghiên cứu này, đề tài luận văn thạc sĩ học viên có tên ? ?Nghiên cứu phát cơng web dựa học máy sử dụng web log? ?? tập trung nghiên cứu vấn đề phát công web dựa học máy sử dụng web log Do... liệu 12 CHƯƠNG 2: PHÁT HIỆN TẤN CÔNG WEB DỰA TRÊN HỌC MÁY SỬ DỤNG WEB LOG 2.1 Tìm hiểu Web log 2.1.1 Khái quát Web log Web log hay nhật ký web tệp nhật ký tự động tạo trì máy chủ web Mỗi lần người... luyện phát Mục đích nghiên cứu Luận văn nghiên cứu số thuật toán học máy có giám sát ứng dụng cho việc phát công web sử dụng web log Trên sở tiến hành thực nghiệm để đánh giá hiệu việc phát công web