Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (tt)Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (tt)Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (tt)Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (tt)Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (tt)Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (tt)Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (tt)Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (tt)Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (tt)Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (tt)Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (tt)Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (tt)Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (tt)
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - HUỲNH VĂN THỊNH NGHIÊN CỨU GIẢI PHÁP PHÁT HIỆN TẤN CÔNG WEBSITE DỰA VÀO DẤU HIỆU BẤT THƯỜNG Chuyên ngành: Hệ thống thơng tin Mã số: 60.48.01.04 TĨM TẮT LUẬN VĂN THẠC SĨ TP HỒ CHÍ MINH – 2017 Luận văn hồ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: …………………………………………………… (Ghi rõ học hàm, học vị) 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Ở ĐẦU Ngày nay, số lỗ hổng bảo mật tìm thấy ứng dụng cao nhiều so với số lỗ hổng tìm thấy hệ điều hành Các công nhằm vào ứng dụng web khai thác lỗ hổng lớp ứng dụng lớp truyền tải lớp mạng công thông thường khứ Đồng thời, số lượng mức độ tác động lỗ hổng bảo mật ứng dụng ngày tăng cao Khơng có nghi ngờ bảo mật ứng dụng web chủ đề phổ biến có giá trị Nó liên quan đến tất cả: doanh nghiệp mà doanh thu tăng từ thương mại điện tử Internet, người dùng tin tưởng ứng dụng web với thông tin nhạy cảm, tội phạm kiếm nhiều tiền cách đánh cắp liệu toán xâm nhập vào tài khoản ngân hàng Danh tiếng đóng vai trò quan trọng, khơng muốn kinh doanh với website khơng an tồn, tổ chức muốn tiết lộ chi tiết lỗ hổng bảo mật riêng họ tình trạng bị xâm nhập Vì thế, nghiên cứu giải pháp phát công cho ứng dụng web chủ để cần thiết Theo thống kê w3techs.com [20] cho thấy PHP chiếm 81,9% tất website sử dụng ngơn ngữ lập trình server-side Viết ứng dụng PHP dễ dàng, số đông lập trình viên lại bỏ qua khía cạnh an ninh quan tâm không mức Hiện tại, ngôn ngữ lập trình PHP hỗ trợ hầu hết máy chủ web nhiều nhà cung cấp dịch vụ web hosting, viết cơng cụ phát cơng cho ứng dụng web PHP lợi lớn Đề tài tập trung nghiên cứu xây dựng công cụ phát công cho ứng dụng web PHP dựa vào dấu hiệu bất thường công nghệ học máy, cách xây dựng profile sử dụng mơ hình positive (các mơ hình học hành vi bình thường) Theo tìm hiểu, cơng trình nghiên cứu nước theo hướng tiếp cận đề tài dừng lại mức “đề xuất số mơ hình phát hiện” Về ý nghĩa khoa học, kết nghiên cứu làm tài liệu tham khảo, tài liệu kỹ thuật cho việc xây dựng hệ thống nhận dạng bất thường, phát xâm nhập cho ứng dụng web Về ý nghĩa thực tiễn, sản phẩm đạt hiệu cao sở để xây dựng hệ thống đảm bảo an tồn thơng tin cho cho ứng dụng web 3 Luận văn chia thành ba chương: chương trình bày sở lý thuyết, chương trình bày bước xây dựng cơng cụ phát cơng, chương trình bày cách thức kết thực nghiệm từ công cụ xây dựng Sau luận văn kết thúc qua số tổng kết phần kết luận hướng phát triển 4 CHƯƠNG – CƠ SỞ LÝ THUYẾT Chương trình bày sở lý thuyết luận văn ứng dụng web, giao thức HTTP, ngôn ngữ PHP, rủi ro bảo mật cho ứng dụng web kỹ thuật nhận diện công ứng dụng web 1.1 Ứng dụng web 1.1.1 Khái niệm Các ứng dụng Web chương trình máy tính Các chương trình cho phép người dùng website gửi lấy liệu đến/từ sở liệu qua Internet cách sử dụng trình duyệt web ưa thích họ Sau liệu hiển thị trình duyệt người dùng, thơng tin tạo cách tự động (trong định dạng cụ thể, ví dụ HTML sử dụng CSS) ứng dụng web thông qua máy chủ web 1.1.2 Vấn đề bảo mật ứng dụng web Các website phụ thuộc vào sở liệu để cung cấp thông tin cần thiết cho người dùng Nhiều số sở liệu có chứa thơng tin có giá trị làm cho chúng trở thành mục tiêu thường xuyên tin tặc Mặc dù hành động phá hoại thay đổi giao diện trang web phổ biến, ngày nay, tin tặc thích đạt quyền truy cập vào liệu nhạy cảm nằm máy chủ sở liệu kiếm nhiều tiền từ việc bán liệu đánh cắp Bảo mật ứng dụng web liên quan đến việc người dùng nhập, tùy biến liệu đầu vào Các ứng dụng web phải đối mặt với vấn đề cần phải giải tốt kết nối từ phía người dùng thường ngồi tầm kiểm sốt ứng dụng web, người dùng nhập hay tùy biến liệu đầu vào để chuyển cho ứng dụng web xử lý Do đó, để đảm bảo an tồn ứng web phải giả định liệu đầu vào có nguy mã độc có bước kiểm tra chắn kẻ công thay hay chèn liệu đầu vào cách thủ công để gây hại cho ứng dụng web cách can thiệp vào tính logic cách thức hoạt động ứng dụng web, từ truy cập trái phép vào chức liệu ứng dụng web 1.2 Giao thức HTTP Giao thức truyền siêu văn HTTP giao thức lớp ứng dụng cho hệ thống thông tin siêu phương tiện, cộng tác, phân tán Nó giao thức chung, khơng trạng thái, giao thức sử dụng cho nhiều tác vụ khác truyền siêu văn bản, chẳng hạn máy chủ tên miền hệ thống quản lý đối tượng phân tán, thông qua mở rộng phương thức yêu cầu, mã lỗi header Một đặc trưng HTTP định kiểu điều chỉnh cách biểu diễn liệu, cho phép hệ thống xây dựng độc lập với liệu truyền Phiên “HTTP/ 1.1” mô tả RFC 2616, cập nhật cho RFC 2068 1.2.1 HTTPs 1.2.2 Các kỹ thuật lảng tránh HTTP 1.3 Ngôn ngữ PHP 1.4 Các rủi ro bảo mật cho ứng dụng web Mục trình bày rủi ro bảo mật mà ứng dụng web thường gặp theo đánh giá OWASP Top 10 năm 2013 1.4.1 Chèn mã 1.4.2 Phá vỡ xác thực quản lý phiên làm việc 1.4.3 Thực thi mã lệnh xấu 1.4.4 Tham chiếu đối tượng trực tiếp không an tồn 1.4.5 Sai sót cấu hình bảo mật 1.4.6 Phơi bày liệu nhạy cảm 1.4.7 Thiếu chức điều khiển truy cập 1.4.8 Giả mạo yêu cầu 1.4.9 Sử dụng thành phần tồn lỗ hổng 1.4.10 Chuyển hướng chuyển tiếp không kiểm tra 1.5 Kỹ thuật nhận diện cơng ứng dụng web Có hướng tiếp cận sử dụng kỹ thuật nhận dạng tĩnh sử dụng kỹ thuật nhận dạng động Phương pháp phát công: - Phương pháp thứ gọi phát dấu hiệu (misuse detection), phát xâm nhập dựa vào luật (rulebased intrusion detection), phát dựa vào chữ ký (signature based detection) - Phương pháp thứ hai gọi phát bất thường (anomaly detection), phát xâm nhập dựa thống kê (statistical based intrusion detection) phát xâm nhập dựa theo profile (profile based intrusion detection) 8 CHƯƠNG – XÂY DỰNG CÔNG CỤ PHÁT HIỆN TẤN CƠNG WEBSITE Trong chương trình bày bước mà cần thực để triển khai công cụ phát công Bắt đầu với việc thiết kế profile để xem xét hành vi người dùng Những profile sau đánh giá chọn tập mơ hình phù hợp để tiếp tục sử dụng Tiếp theo xem xét nguồn tài nguyên liệu sử dụng để huấn luyện Cuối mô tả xây dựng công cụ triển khai với profile chọn 2.1 Các Profile Profile hành vi chương trình tham chiếu hữu ích để phát xâm nhập tiềm ẩn hệ thống [1] Khi xem xét xây dựng profile để phát xâm nhập dựa vào bất thường, khía cạnh để xem xét nhiều đa dạng Do mức độ tùy biến chuyên hóa máy chủ ứng dụng, thơng tin xây dựng profile tiến hành sở chung Các mục bên đưa lựa chọn profile sử dụng chương trình phát xâm nhập dựa vào dấu hiệu bất thường Các profile xem xét liệu mức trừu tượng khác để đạt hiểu biết có nhìn sâu sắc tiêu chí, nơi mà cơng thực hiện, từ phân tích giá trị tham số đơn đến tranh tổng thể hành vi người dùng 2.1.1 Profile – Cấu trúc yêu cầu Profile xem xét cấu trúc yêu cầu Các phần tử liệu profile yêu cầu người dùng gửi đến máy chủ Profile bao gồm bốn mơ hình khác nhau, xem xét cấu trúc tính logic yêu cầu, nhằm phát cấu trúc yêu cầu lỗi độc hại Profile gồm mơ hình: Path (Đường dẫn), Parameter (Tham số), Parameter order (Thứ tự tham số), Attribute presence or absence (Nhận dạng diện vắng mặt thuộc tính) 2.1.2 Profile – Các giá trị yêu cầu Profile xem xét giá trị tham số khác thiết lập người dùng, để phát giá trị bất thường, ví dụ mã độc Profile vượt ranh giới kiểm tra tính hợp lệ đầu vào truyền thống cách học phân bố ký tự (character distribution) suy luận cấu trúc (structural inference) Nó tìm kiếm phát tất 10 loại công mà cần truyền liệu đến máy chủ, từ dẫn đến vi phạm an ninh, chẳng hạn công chèn (injection) Profile gồm mơ hình: Value type (Kiểu giá trị), Value length (Chiều dài giá trị), Attribute character distribution (Sự phân bố ký tự thuộc tính), Structural inference (Suy luận cấu trúc), Token finder (Nhận dạng giá trị hợp lệ) 2.1.3 Profile – Phản hồi máy chủ Profile phản hồi máy chủ tìm kiếm phát thơng tin nhạy cảm bị phơi bày cho người dùng cách sai trái Nó cố gắng học cách máy chủ phản hồi lại yêu cầu người dùng khác nhau, để nhận diện người dùng có phản hồi từ máy chủ mà khơng dự định Profile gồm mơ hình: Response (Phản hồi) 2.1.4 Profile – Cấu trúc phiên Profile cấu trúc phiên xem xét phiên phần tử liệu để học Một phiên định nghĩa chuỗi tương tác người dùng máy chủ, từ đăng nhập đến đăng xuất, thời gian chờ Trong lúc tương tác này, học mẫu mà từ cách người dùng tương tác với hệ thống cách bình thường, cho phép phát mẫu tương tác bất thường Hơn nữa, phiên 11 phân tích để phát loại hành động độc hại tìm kiếm để qua mặt tính logic ứng dụng tìm kiếm tài nguyên không công khai Một phiên cung cấp tập hợp thông tin quan trọng để phát hoạt động robot Profile gồm mơ hình: Inter-request time delay (Nhận dạng thời gian chờ yêu cầu), Invocation order (Nhận dạng thứ tự gọi), Invocation frequency (Nhận dạng tần suất gọi), Session time (Thời gian phiên), Session time per invocation (Thời gian phiên lời gọi), Invocations per session time (các lời gọi thời gian phiên) 2.1.5 Profile – Hồ sơ người dùng Để phát người dùng bất hợp pháp giành quyền truy cập trái phép vào tài khoản, cần phải học cách người dùng hợp pháp thường hành động Khi ranh giới tương tác người dùng bình thường tạo ra, phát sai phạm từ quy tắc so với người dùng khác Sử dụng đặc điểm hành vi người dùng, phát người dùng sai trái giành quyền truy cập vào tài khoản Profile gồm mơ hình: User statistics (Thống kê người dùng), Locations (Các vị trí) 12 2.1.6 Profile – Tổng quan hệ thống Để phát công thực người dùng khác nhau, toàn hệ thống cần phải xem xét Các công phân tán thường nhằm làm tải tiêu tốn tài nguyên hệ thống, dẫn đến người dùng bình thường bị hạn chế chức phản hồi Các cơng DDoS phát tăng đột biến yêu cầu dịch vụ tải trọng hệ thống tăng cao bất thường Profile gồm mơ hình: System load (Tải trọng hệ thống), Service requests (Các yêu cầu dịch vụ), Access frequency (Nhận dạng tần suất truy cập) 2.2 Đánh giá profile 2.3 Đề xuất profile Sau đánh giá profile cách độc lập, chúng so sánh với để tìm tập hợp không chồng chéo profile tiếp tục sử dụng đề tài Profile “Các yêu cầu người dùng” (User requests) lựa chọn cho công việc 13 Bảng 2.13: Profile đề xuất – Các yêu cầu người dùng Profile “Các yêu cầu người dùng” (User requests) Các mơ hình Path Parameter Parameter order Attribute presence or absence Value type Value length Attribute character distribution Structural inference 2.4 Nguồn liệu huấn luyện Dữ liệu để tạo profile “Các yêu cầu người dùng” lấy từ nhật ký web (web log) 2.5 Profile Các yêu cầu người dùng Profile “Các yêu cầu người dùng” tìm kiếm phân tích tương tác người dùng với hệ thống mức phần tử đơn Trong trường hợp đề tài, cách tiếp cận phát bất thường phân tích yêu cầu HTTP ghi nhật ký hầu hết máy chủ web phổ biến, ví dụ Apache Phân tích tập trung vào yêu cầu sử dụng tham số để truyền giá trị cho chương trình phía máy chủ Về mặt hình thức, đầu vào trình phát bao gồm tập 14 yêu cầu U = {u1, u2, … , um} URI trích xuất từ yêu cầu thành cơng GET (các u cầu có mã trạng thái trả lớn 200 nhỏ 300) Một URI ui biểu diễn gồm thành phần đường dẫn đến tài nguyên mong muốn (pathi), thành phần thông tin đường dẫn tùy chọn (pinfoi) chuỗi truy vấn tùy chọn (q) Chuỗi truy vấn sử dụng để truyền tham số cho tài nguyên tham chiếu nhận diện chuỗi sau ký tự “?” Một chuỗi truy vấn bao gồm danh sách xếp n cặp tham số (hoặc thuộc tính) với giá trị tương ứng chúng Đó là, q = {(a1, v1), (a2, v2), … , (an, vn)} ∈ A, tập tất thuộc tính, vi chuỗi Tập Sq định nghĩa tập {aj, … , ak} thuộc tính truy vấn q Hình 2.1 cho thấy ví dụ phần tử từ nhật ký máy chủ web thành phần tương ứng mà sử dụng phân tích Đối với truy vấn q ví dụ này, Sq = {a1, a2} Q trình phân tích tập trung vào mối liên hệ chương trình (program), tham số (attribute), giá trị (value) chúng Các URI mà khơng chứa chuỗi truy vấn khơng liên quan, chúng loại bỏ khỏi U Ngoài ra, tập URI U phân chia thành tập Ur theo đường dẫn tài ngun Do đó, chương trình tham 15 chiếu r gán tập hợp truy vấn tương ứng Ur Các thuật toán phát bất thường chạy cách độc lập tập truy vấn Ur Điều có nghĩa mơ hình q trình phát thực riêng rẽ cho chương trình r Mục tiêu profile để phát gian lận hành động độc hại cách xem xét yêu cầu mà khác biệt lớn so với yêu cầu người dùng bình thường từ hệ thống 2.6 Xây dựng công cụ nhận dạng bất thường Nhật ký web Tiền xử lý Profile yêu cầu người dùng Path Parameter Parameter order Attribute presence or absence Dựng mơ hình Value type Value length Attribute character distribution Structural inference Dự báo lớp Dữ liệu kiểm tra Truy vấn bình thường bất thường Hình 2.3: Mơ hình chức nhận dạng bất thường sử dụng profile “Các yêu cầu người dùng” 16 - Nhật ký web: Trong đề tài này, nhật ký web access.log Apache, chứa yêu cầu bình thường gửi đến ứng dụng web, sử dụng để xây dựng mơ hình phát bất thường dựa vào profile đề xuất - Dữ liệu kiểm tra: Là liệu cần kiểm tra phân lớp bình thường bất thường Nó nhật ký web có chứa u cầu bình thường lẫn bất thường [13] - Tiền xử lý: Đối với nhật ký web, phân tích trích xuất u cầu với phương thức GET thành công, tức: + 200 ≤ mã trạng thái (status code) < 300 + Có chứa chuỗi truy vấn, nhận diện thành phần sau ký tự “?” yêu cầu Đối với liệu kiểm tra, phân tích trích xuất u cầu với phương thức GET có chứa chuỗi truy vấn - Dựng mơ hình: Sử dụng đầu giai đoạn tiền xử lý, xây dựng mơ hình cho profile “Các yêu cầu người dùng” Profile 17 chứa mơ hình là: Path, Parameter, Parameter order, Attribute presence or absence, Value type, Value length, Attribute character distribution, Structural inference Trong giai đoạn phân tích thống kê thuộc tính URL, xác định tập mơ hình phù hợp dựa số liệu thống kê Mỗi mơ hình profile “Các u cầu người dùng” trả giá trị xác suất bình thường 𝑝 cho toàn truy vấn cho thuộc tính truy vấn Giá trị xác suất phản ánh xác suất xuất giá trị đặc trưng có liên quan với profile thiết lập Giá trị đặc trưng thấp cơng Dựa vào đầu mơ hình, truy vấn báo cáo bình thường bất thường Quyết định thực cách tính số điểm bất thường (Anomaly Score) cho truy vấn thuộc tính truy vấn Điểm bất thường tính công thức sau: Anomaly Score = 𝑤𝑚 (1 − 𝑝𝑚 ) (2.1) Trong công thức 2.1 trên: 𝑤𝑚 trọng số liên quan với mơ hình 𝑚, 𝑝𝑚 giá trị xác suất trả Trong đề tài này, sử dụng 𝑤𝑚 = 1, nghĩa tất mơ hình profile 18 xem Trong trường hợp mơ hình có nhiều giá trị 𝑝𝑚 trả chọn 𝑝𝑚 có giá trị nhỏ - Dự báo lớp: Với mơ hình profile “Các yêu cầu người dùng” đầu điểm bất thường (Anomaly Score – AS) Theo [5], cơng ứng dụng web bước mà kẻ công thường tiến hành thăm dò phân tích (reconnaissance & analysis) Khi tiến hành thăm dò, kẻ cơng sử dụng cơng cụ dò qt tự động nên thường khơng nhận tính logic ứng dụng web Với năm mơ hình Path, Parameter, Parameter order, Attribute presence or absence, Value type hồn tồn phát cơng vào tính logic web như: thừa thiếu thuộc tính (Missing Attribute), trùng thuộc tính (Duplicated Attribute), thứ tự thuộc tính khơng (Attribute Order), truy cập đường dẫn không tồn không phép (Missing Path) kiểu giá trị đầu vào cho thuộc tính khơng hợp lệ Với năm mơ hình ngưỡng bất thường (AS_threshold), với yêu cầu đầu vào phân tích đưa điểm bất thường yêu cầu (AS_request), tiến hành so sánh AS_threshold, vượt xác định truy vấn bất thường Ngược lại dùng ngưỡng bất thường trung bình đầu [2] ba mơ hình Value length, 19 Attribute character distribution, Structural inference Mean_AS_threshold để so sánh Hình 2.4 bên mô tả chi tiết giai đoạn Dữ liệu kiểm tra Path Parameter Parameter order Attribute presence or absence Value type AS_request > AS_threshold AS_request Mean_AS_threshold Truy vấn bất thường Mean_AS_request