Mục đích nghiên cứu của Luận văn này nhằm góp phần giúp cho người quản lý website đánh giá và ngăn ngừa được một số hình thức tấn công phổ biến, có thể đưa ra giải pháp tăng cường các lỗ hổng, nguy cơ tiềm ẩn. 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 - Đỗ Minh Hải PHÁT HIỆN TẤN CÔNG ỨNG DỤNG WEB DỰA TRÊN LOG TRUY CẬP SỬ DỤNG BỘ PHÂN LỚP RỪNG NGẪU NHIÊN Chuyên ngành : Hệ thống thông tin Mã số: 8.48.01.04 TÓM TẮT LUẬN VĂN THẠC SĨ HÀ NỘI – NĂM 2019 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 Nguyễn Ngọc Điệp 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 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 MỤC LỤC MỞ ĐẦU CHƯƠNG – CƠ SỞ LÝ THUYẾT 1.1 Tổng quan công Web 1.1.1 Một số khái niệm ứng dụng web 1.1.2 Kiến trúc ứng dụng web 1.2 Giới thiệu Web log file 1.3 Phương pháp phát công qua web log sử dụng học máy 1.3.1 Tổng quan học máy 1.3.2 Các nhóm giải thuật học máy: CHƯƠNG 2: PHƯƠNG PHÁP PHÁT HIỆN TẤN CƠNG 2.1 Phương pháp phát cơng 2.1.1 Mơ hình phát công 2.1.2 Các giai đoạn thực 2.2 Tổng quan thuật toán Random Forest 10 2.2.1 Cách làm việc thuật toán 10 2.2.2 Thuật toán lựa chọn thuộc tính cho Random Forest 12 2.3 Tập liệu huấn luyện (CSIC 2010) 13 2.4 Phương pháp đánh giá 14 2.5 Kết thử nghiệm 14 2.6 Kết luận chương 15 CHƯƠNG III – XÂY DỰNG HỆ THỐNG 16 3.1 Xây dựng hệ thống 16 3.1.1 Thu thập liệu log tiền xử lý liệu 16 3.1.2 Cấu trúc thư mục: 17 3.1.3 Cài đặt hệ thống: 18 3.2 Một số kết thử nghiệm hệ thống 19 KẾT LUẬN VÀ KIẾN NGHỊ 22 4.1 Những đóng góp luận văn 22 4.2 Hướng phát triển luận văn 22 CÁC TÀI LIỆU THAM KHẢO 23 MỞ ĐẦU Lý chọn đề tài Hiện nay, với tốc độ phát triển công nghệ tin học, truyền thông, thương mại điện tử nhu cầu đăng tải, chia sẻ thông tin hệ thống web lớn doanh nghiệp sở hữu, sử dụng ứng dụng web như: webmail, bán hàng trực tuyến, đấu giá, mạng xã hội nhiều chức khác để cung cấp dịch vụ trực tuyến, kết nối với khách hàng, đối tác Thực tế, ứng dụng web ln tiềm ẩn nguy an tồn thơng tin nhiều nguyên nhân, chủ quan khách quan gây liệu có giá trị, hay làm gián đoạn việc cung cấp dịch vụ Việc triển khai trực tuyến ứng dụng web cho phép người dùng quyền truy cập tự vào ứng dụng thơng qua giao thức HTTP/HTTPS, truy cập có khả vượt qua hệ thống firewall, lớp bảo vệ hệ thống hệ thống phát xâm nhập mã cơng nằm gói giao thức HTTP hợp lệ, kể ứng dụng Web có độ bảo mật cao sử dụng SSL cho phép tất liệu qua mà khơng kiểm tra tính hợp lệ liệu Các ứng dụng web tiềm ẩn lỗ hổng bảo mật mã nguồn, máy chủ… Bên cạnh đó, việc cơng xâm nhập ứng dụng web harker ngày trở nên đa dạng vô tinh vi Tuy nhiên, người quản trị phát truy cập bất thường dựa vào chế ghi nhận lưu trữ tất truy cập đến máy chủ web thông qua logfile máy chủ web Bằng việc thu thập, phân tích tài nguyên phát truy cập bất thường để chủ động phòng ngừa, ngăn chặn nguy tương lai hệ thống Trong phạm vi luận văn này, tác giả lựa chọn đề tài Phát công ứng dụng web dựa log truy cập sử dụng phân lớp rừng ngẫu nhiên để nghiên cứu xây dựng, đánh giá mơ hình thử nghiệm kết Tổng quan vấn đề nghiên cứu Cho đến nay, nhiều hãng công nghệ Thế giới Việt Nam đưa giải pháp hỗ trợ an toàn, bảo mật mạng, hạn chế ngăn chặn nhiều công nhằm vào mạng đơn vị, doanh nghiệp Ví dụ phần mềm bảo mật, chương trình diệt virus với sở liệu mẫu virus liên tục cập nhật hay hệ thống firewall nhằm ngăn chặn kết nối không tin cậy, thực mã hóa làm tăng an tồn cho liệu truyền tải mạng Tuy nhiên, hình thức phá hoại ứng dụng web ngày trở nên tinh vi hơn, phức tạp hơn, vượt qua công cụ phần mềm bảo mật có sẵn Vì vậy, cần nghiên cứu thêm giải pháp hỗ trợ để phát tối đa công diễn hệ thống mạng để phòng ngừa, hạn chế thiệt hại cho người dùng, doanh nghiệp Với máy chủ web, việc thu thập, phân tích log truy cập chế quan trọng khơng thể thiếu, giúp tự động ghi nhận tất truy cập gồm bình thường bất thường đến ứng dụng web Từ liệu log thơ thu thập được, qua q trình xử lý, phân tích, người quản trị hệ thống trích xuất thông tin quan trọng hành vi người dùng trực tuyến, dấu hiệu truy cập bất thường, dạng mã độc dạng công, xâm nhập để giúp người quản trị định áp dụng phương án phòng ngừa, đưa cảnh báo nguy an tồn thơng tin hệ thống cho người dùng Đồng thời giúp cải thiện chất lượng hệ thống dịch vụ đáp ứng tốt nhu cầu người dùng Có nhiều phương pháp phân tích log nghiên cứu triển khai, nhiên việc áp dụng phân lớp rừng ngẫu nhiên để phân tích phát cơng chưa sử dụng phổ biến Vì tác giả lựa chọn sử dụng phương pháp học máy có giám sát, áp dụng phân lớp rừng ngẫu nhiên để phân tích weblog nhằm phát truy cập bất thường, giúp người quản trị sớm có biện pháp phịng chống, ngăn chặn nguy an tồn thơng tin Mục đích nghiên cứu Nghiên cứu phương pháp xây dựng mơ hình học máy để phát công đến ứng dụng web dựa log truy cập giúp đánh giá ngăn ngừa số hình thức cơng phổ biến, đưa giải pháp tăng cường lỗ hổng, nguy tiềm ẩn Đối tượng phạm vi nghiên cứu Đối tượng phân tích log file truy cập tạo máy chủ web Apache, Nginx, IIS thông qua luồng mạng pcap Phương pháp nghiên cứu Đọc nghiên cứu tổng quan lý thuyết Xây dựng mơ hình học máy phát cơng ứng dụng web, đánh giá mơ hình, thử nghiệm hệ thống dựa liệu thu thập Cấu trúc luận văn tác giả tổ chức thành chương sau: Phần – Giới thiệu Cơ sở lý thuyết 1.1 Tổng quan công Web 1.2 Giới thiệu Web log 1.3 Phương pháp phát công qua web log sử dụng học máy Chương – Phương pháp phát công 2.1 Phương pháp phát công 2.2 Tổng quan thuật toán Random Forest 2.3 Tập liệu huấn luyện (CSIC 2010) 2.4 Phương pháp đánh giá 2.5 Kết thử nghiệm 2.6 Kết luận chương Chương 3: Xây dựng hệ thống thực nghiệm 3.1 Xây dựng hệ thống 3.2 Một số kết thử nghiệm hệ thống Chương 4: Kết luận kiến nghị 4.1 Những đóng góp luận văn 4.2 Hướng phát triển luận văn CHƯƠNG – CƠ SỞ LÝ THUYẾT 1.1 Tổng quan cơng Web Ngày nay, Web kênh truyền thơng giúp doanh nghiệp tăng cường hình ảnh trực tuyến giới mạng, giúp xây dựng, trì nhiều mối quan hệ với khách hàng tiềm Với xu hướng phát triển công nghệ CNTT truyền thông nay, Web trở thành kênh bán hàng phổ biến hàng nghìn doanh nghiệp lớn nhỏ Đặc biệt website cho phép đóng gói, xử lý, lưu trữ truyền tải liệu khách hàng với liệu lớn, quan trọng có giá trị (như thơng tin cá nhân, mã số thẻ tín dụng, thơng tin bảo mật xã hội …) Chính đặc điểm này, website thường xuyên mục tiêu công tin tặc để khai thác đánh cắp thông tin quan trọng Một phương thức công phổ biến khai thác lỗi bảo mật liên quan đến ứng dụng web Nhiều điểm yếu nghiêm trọng hay lỗ hổng cho phép hacker xâm nhập thẳng truy cập vào sở liệu để trích xuất liệu nhạy cảm, quan trọng 1.1.1 Một số khái niệm ứng dụng web a b c d HTTP Request & HTTP Response Session Cookie Proxy 1.1.2 Kiến trúc ứng dụng web Một ứng dụng Web có đầy đủ thành phần sau: Hình 1 - Kiến trúc ứng dụng Web (Nguồn: https://edu.com.vn) Trình khách (hay cịn gọi trình duyệt): Internet Explorer, Firefox, Chrome Trình chủ: Apache, IIS, Hệ quản trị sở liệu: SQL Server, MySQL, DB2, Acess 1.2 Giới thiệu Web log file Web Log nhiều file log tạo lưu trữ Web server, chứa tất hành động mà người truy cập tác động lên trang web Các web server chuẩn Apache 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, cấu tạo sau: Host Ident Authuser Date Request Status Bytes Trong đó: Host: Tên miền đầy đủ client IP Ident: Nếu thị IdentityCheck kích hoạt client chạy identd, thơng tin nhận dạng client báo cáo Authuser: Nếu URL yêu cầu xác thực HTTP tên người dùng giá trị mã thông báo Date: Ngày yêu cầu Request: Dòng yêu cầu client, đặt dấu ngoặc kép (“”) Status: Mã trạng thái (gồm ba chữ số) Bytes: số bytes đối tượng trả cho client, ngoại trừ HTTP header Lợi ích lớn tập tin nhật ký tính sẵn có tương đối đơn giản Máy chủ web Apache mặc định phải cho phép ghi nhật ký Các ứng dụng thường thực ghi nhật ký để đảm bảo truy xuất nguồn gốc hành động chúng 1.3 Phương pháp phát công qua web log sử dụng học máy 1.3.1 Tổng quan học máy Học máy kỹ thuật giúp cho máy tính tự học hỏi dựa liệu đưa vào mà không cần phải lập trình cụ thể Một tốn học máy cần trải qua bước chính: Chọn mơ hình: Chọn mơ hình thống kê cho tập liệu Tìm tham số: Các mơ hình thống kê có tham số tương ứng, nhiệm vụ lúc tìm tham số cho phù hợp với tập liệu Suy luận: Sau có mơ hình tham số, ta dựa vào chúng để đưa suy luận cho đầu vào Một tốn học máy cần có liệu để huấn luyện, ta coi điều kiện tiên Dữ liệu sau có cần phải: Chuẩn hố: Tất liệu đầu vào cần chuẩn hoá để máy tính xử lý Q trình chuẩn hố bao gồm số hố liệu, co giãn thơng số cho phù hợp với toán Việc chuẩn hoá ảnh hưởng trực tiếp tới tốc độ huấn luyện hiệu huấn luyện Phân chia: Việc mơ hình chọn khớp với tập liệu có khơng có nghĩa giả thuyết ta mà xảy tình liệu thật lại không khớp Vấn đề học máy gọi khớp (Overfitting) Vì huấn luyện người ta phải phân chia liệu thành loại để kiểm chứng phần mức độ tổng qt mơ hình Cụ thể loại là: + Tập huấn luyện (Training set): Dùng để học huấn luyện + Tập kiểm chứng (Cross validation set): Dùng để kiểm chứng mơ hình huấn luyện + Tập kiểm tra (Test set): Dùng để kiểm tra xem mơ hình phù hợp chưa sau huấn luyện 1.3.2 Các nhóm giải thuật học máy: Theo phương thức học, thuật toán Machine Learning thường chia làm nhóm: Học có giám sát: Máy tính xem số mẫu gồm đầu vào đầu tương ứng trước Sau học xong mẫu này, máy tính quan sát đầu vào cho kết Học không giám sát; Học nửa giám sát; Học tăng cường; luận văn, tác giả lựa chọn phân lớp Random Forest để xây dựng mơ hình giải tốn phát công Thông báo kết quả: Sẽ thông báo cho người dùng kết phát Xâm nhập/Bình thường 2.1.2 Các giai đoạn thực Thông thường ứng dụng mơ hình học máy thường chia làm hai giai đoạn : Huấn luyện kiểm tra mơ hình Tỷ lệ độ xác phát mã độc mơ hình phụ thuộc nhiều vào chất lượng tập mẫu Để giải tốn phát cơng dựa log file, luồng mạng cần thực giai đoạn sau : Giai đoạn 1: Thu thập liệu tiền xử lý liệu phục vụ cho trình học mơ hình Giai đoạn 2: Lựa chọn thuật tốn xây dựng mơ hình Giai đoạn 3: Huấn luyện mơ hình với liệu xử lý Hình 2 - Sơ đồ tạo mơ hình phân lớp - Giai đoạn 4: Kiểm tra huấn luyện mơ hình Hình - Mơ hình phân lớp liệu đầu vào 10 2.2 Tổng quan thuật toán Random Forest Thuật toán Random Forest lần đề xuất vào năm 1995, phương pháp học máy kết hợp, tức sử dụng cách kết hợp phương pháp học máy đơn giản để xây dựng mơ hình có độ xác cao Random Forest sử dụng để giải tốn phân loại hồi quy Nó làm việc cách xây dựng tập hợp định q trình training, sau kết hợp kết trả đưa định dự đoán cuối Rừng ngẫu nhiên thuật toán học có giám sát Random Forest (RF) dựa sở : Random = Tính ngẫu nhiên ; Forest = nhiều định (decision tree) Đơn vị RF thuật toán định, với số lượng hàng trăm Mỗi định tạo cách ngẫu nhiên từ việc : Tái chọn mẫu (bootstrap, random sampling) dùng phần nhỏ tập biến ngẫu nhiên (random features) từ toàn biến liệu Ở trạng thái sau cùng, mơ hình RF thường hoạt động xác, đổi lại, ta khơng thể hiểu chế hoạt động bên mô hình cấu trúc phức tạp Nhiều định tạo theo ngẫu nhiên tạo rừng ngẫu nhiên (random forest) Một rừng ngẫu nhiên phân lớp bao gồm tổ hợp định phân lớp: {δ(ε, ,k=1,…)} Với điều kiện { } định tạo độc lập ngẫu nhiên định bình chọn cho kết lớp phổ biến với giá trị đầu vào x 2.2.1 Cách làm việc thuật toán Thuật toán Random Forest bao gồm giai đoạn chính: Q trình tạo rừng ngẫu nhiên Quá trình thực dự đốn dựa rừng tạo Q trình tạo rừng ngẫu nhiên Một rừng ngẫu nhiên tập hợp nhiều định (decision tree) Để tạo định, thuật toán Random Forest luôn bắt đầu với định rỗng Đó định có điểm bắt đầu liên kết thẳng tới câu a 11 trả lời Thuật tốn tìm câu hỏi tốt để bắt đầu, sau xây dựng định Mỗi thuật tốn tìm câu hỏi tốt để hỏi, tạo nhánh (trái phải) Khi khơng cịn câu hỏi thú vị nữa, thuật toán dừng lại kết thúc trình xây dựng định Để chắn tất định không giống nhau, Random Forest tự động thay đổi ngẫu nhiên đối tượng cần theo dõi Nói cách xác hơn, thuật tốn xóa ngẫu nhiên vài đối tượng, nhân vài đối tượng khác Tiến trình gọi “bootstrapping” Ngồi để đảm bảo định có khác biệt, Random Forest ngẫu nhiên loại bỏ có mục đích vài câu hỏi xây dựng định Trong trường hợp này, câu hỏi tốt khơng kiểm tra, câu hỏi khác chọn để tạo Quá trình gọi “attribute sampling” Quá trình tao rừng ngẫu nhiên thể qua bước sau : Bước : Chọn ngẫu nhiên k thuộc tính từ tổng m thuộc tính cho k