DANH MỤC CÁC BẢNG4DANH MỤC CÁC HÌNH5LỜI MỞ ĐẦU6CHƯƠNG I: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU71.1.Tổng quan về khai phá dữ liệu 171.2.Quy trình tổng quát thực hiện khai phá dữ liệu71.3.Tiến trình khám phá tri thức khi đi vào một bài toán cụ thể81.4.Một số kỹ thuật dùng trong Data Mining91.4.1.Cây quyết định101.4.2.Luật kết hợp141.4.3.Khoảng cách ngắn nhất181.4.4.KLáng giềng gần nhất191.4.5.Phân cụm201.4.6.Mạng Neural221.4.7.Thuật toán di truyền24Kết chương27CHƯƠNG II: PHƯƠNG PHÁP LAI PHÁT HIỆN TẤN CÔNG SQLI VÀ CÁC KỸ THUẬT NÉ TRÁNH TINH VI282.1.Giới thiệu292.2.Các nghiên cứu liên quan302.3.Tấn công SQLi và các kỹ thuật tránh né312.3.1.Giải pháp đề xuất trong phân tích giao thức HTTP312.4.Hệ thống phòng chống Injection lai322.4.1.Mô hình học máy342.4.2.Lựa chọn vector đặc tính342.4.3.Biểu diễn yêu cầu352.4.4.Phân lớp: Mô hình phân lớp Naive Bayes352.4.5.Đánh giá362.5.Đánh giá kết quả392.6.Phân tích so sánh40KẾT CHƯƠNG40CHƯƠNG III: KẾT LUẬN42TÀI LIỆU THAM KHẢO43
HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA AN TOÀN THÔNG TIN ĐỀ TÀI PHƯƠNG PHÁP TIẾP CẬN LAI ĐỂ PHÁT HIỆN TẤN CÔNG SQLI VÀ CÁC KỸ THUẬT TRÁNH NÉ TINH VI HÀ NỘI, 2015 MỤC LỤC Nghiên cứu ứng dụng khai phá liệu phát công Web Page DANH MỤC CÁC BẢNG Nghiên cứu ứng dụng khai phá liệu phát công Web Page DANH MỤC CÁC HÌNH Nghiên cứu ứng dụng khai phá liệu phát công Web Page LỜI MỞ ĐẦU Sự phát triển công nghệ thông tin việc ứng dụng công nghệ thông tin nhiều lĩnh vực đời sống, kinh tế xã hội nhiều năm qua đồng nghĩa với lượng liệu quan thu thập lưu trữ ngày tích luỹ nhiều lên Họ lưu trữ liệu cho ẩn chứa giá trị định Tuy nhiên, theo thống kê có lượng nhỏ liệu (khoảng từ 5% đến 10%) phân tích, số lại họ phải làm làm với chúng họ tiếp tục thu thập tốn với ý nghĩ lo sợ có quan trọng bị bỏ qua sau có lúc cần đến Các phương pháp quản trị khai thác sở liệu truyền thống không đáp ứng kỳ vọng này, nên đời Kỹ thuật phát tri thức khai phá liệu (KDD - Knowledge Discovery and Data bMining) Kỹ thuật phát tri thức khai phá liệu nghiên cứu, ứng dụng nhiều lĩnh vực khác nước giới, Việt Nam kỹ thuật tương đối mẻ nhiên nghiên cứu dần đưa vào ứng dụng Ngày nay, ứng dụng web ngày đóng vai trò quan trọng tổ chức Điều trở nên rõ ràng ứng dụng web bị công làm ảnh hưởng nghiêm trọng đến chức hoạt động tổ chức Trong phạm vi đề tài nghiên cứu này, nhóm xin trình bày kiến thức khai phá liệu việc ứng dụng khai phá liệu phát công SQLi kỹ thuật tránh né tinh vi Nội dung nghiên cứu: Tổng quan khai phá liệu Nghiên cứu phương pháp lai phát công SQL injection kỹ thuật tránh né tinh vi Sau trình bày chi tiết nội dung Nghiên cứu ứng dụng khai phá liệu phát công Web Page CHƯƠNG I: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 1.1 Tổng quan khai phá liệu [1] Khai phá liệu định nghĩa trình trích xuất thông tin có giá trị tiềm ẩn bên lượng lớn liệu lưu trữ sở liệu, kho liệu Cụ thể tiến trình trích lọc, sản sinh tri thức mẫu tiềm ẩn, chưa biết hữu ích từ sở liệu lớn Đồng thời tiến trình khái quát kiện rời rạc liệu thành tri thức mang tính khái quát, tính qui luật hỗ trợ tích cực cho tiến trình định Hiện nay, thuật ngữ khai phá liệu, người ta dùng số thuật ngữ khác có ý nghĩa tương tự như: Khai phá tri thức từ CSDL, trích lọc liệu, phân tích liệu/mẫu, khảo cổ liệu (data archaeology), nạo vét liệu (data dredredging) Nhiều người coi khai phá liệu số thuật ngữ thông dụng khác khám phá tri thức CSDL (Knowledge Discovery in Databases-KDD) Tuy nhiên thực tế khai phá liệu bước thiết yếu trình Khám phá tri thức CSDL Nguồn liệu phục vụ cho KTDL CSDL lớn hay kho liệu (Datawarehouse) có hay cấu trúc Các tác vụ khai phá liệu phân thành hai loại: miêu tả dự báo - Các tác vụ khai phá miêu tả mô tả đặc tính chung liệu sở liệu Kỹ thuật khai phá liệu mô tả: Có nhiệm vụ mô tả tính chất đặc tính chung liệu CSDL có Các kỹ thuật gồm có: phân cụm (clustering), tóm tắt (summerization), trực quan hoá (visualiztion), phân tích phát triển độ lệch (Evolution and deviation analyst), phân tích luật kết hợp (association rules)… - Các tác vụ khai phá dự báo thực việc suy luận liệu thời để đưa dự báo Kỹ thuật khai phá liệu dự đoán: Có nhiệm vụ đưa dự đoán dựa vào suy diễn liệu thời Các kỹ thuật gồm có: Phân lớp (classification), hồi quy (regression)… Khai thác liệu ứng dụng rộng rãi nhiều lĩnh vực như: ngân hàng, thương mại điện tử, nhân sự, y học, an ninh, an toàn mạng 1.2 Quy trình tổng quát thực khai phá liệu Quá trình gồm bước[1]: 1) Làm liệu (data cleaning): Loại bỏ nhiễu liệu không thích hợp 2) Tích hợp liệu (data integration): Tích hợp liệu từ nguồn khác như: CSDL, Kho liệu, file text… Nghiên cứu ứng dụng khai phá liệu phát công Web Page 3) Chọn liệu (data selection): Ở bước này, liệu liên quan trực tiếp 4) 5) 6) 7) đến nhiệm vụ thu thập từ nguồn liệu ban đầu Chuyển đổi liệu (data transformation): Trong bước này, liệu chuyển đổi dạng phù hợp cho việc khai phá cách thực thao tác nhóm tập hợp Khai phá liệu (data mining): Là giai đoạn thiết yếu, phương pháp thông minh áp dụng để trích xuất mẫu liệu Đánh giá mẫu (pattern evaluation): Đánh giá hữu ích mẫu biểu diễn tri thức dựa vào số phép đo Trình diễn liệu (Knowlegde presention): Sử dụng kỹ thuật trình diễn trực quan hoá liệu để biểu diễn tri thức khai phá cho người sử dụng Hình 1.1 Datamining – bước trình khám phá tri thức 1.3 Tiến trình khám phá tri thức vào toán cụ thể Chính mục tiêu khám phá trí thức ngầm định sở liệu nên trình khai phá thường phải qua số giai đoạn cần thiết Bao gồm giai đoạn chuẩn bị liệu khai phá, giai đoạn khai phá liệu cuối giai đoạn chuyển kết khai phá sang tri thức cho người hiểu Chi tiết bước thực mô tả bảng tóm tắt sau[2]: Giai đoạn 1: phát triển hiểu biết lĩnh vực ứng dụng tri thức tương ứng Xác định mục đích tiến trình khai phá liệu từ quan điểm người dùng Giai đoạn 2: chuẩn bị liệu để khai phá, thu thập liệu liệu mẫu Nghiên cứu ứng dụng khai phá liệu phát công Web Page Giai đoạn 3: tiền xử lý liệu, xóa thông tin bị nhiễu liệu, loại bỏ trùng lặp liệu xác định chiến lược để xử lý liệu bị Giai đoạn 4: chiếu liệu, thu nhỏ liệu tìm đặc trưng để khai phá Giai đoạn 5: chọn phương pháp khai phá liệu thích hợp số phương pháp phổ biến như: tóm tắt, phân lớp, hồi quy, phân nhóm, kết hợp… Giai đoạn 6: từ thuật toán chọn, mô hình hóa thuật toán để giải trường hợp cụ thể xét Lựa chọn phương pháp tìm kiếm mẫu liệu, định tham số Giai đoạn 7: giai đoạn khai phá liệu, sử dụng thuật toán để tìm kiếm mẫu thú vị hình thức thể đặc thù tập thể bao gồm luật phân lớp, cây, hồi quy phân nhóm Giai đoạn 8: thông dịch lại mẫu khai phá hình thức thể tri thức liệu ngôn ngữ, biểu đồ, hình cây, bảng… Hình 1.2 Tổng quan tiến trình khai phá liệu Quá trình khai phá có tương tác lặp lại hai bước bất kỳ, bước tiến trình minh họa hình Hầu hết công việc trước tập trung bước giai đoạn khai phá liệu Tuy nhiên, bước lại quan trọng không bước đóng góp nhiều vào thành công toàn tiến trình khai phá liệu 1.4 Một số kỹ thuật dùng Data Mining Cho tới có nhiều kỹ thuật áp dụng việc khai phá liệu như: tập mờ, phương pháp Bayes, định, lập trình tiến hóa với thuật Nghiên cứu ứng dụng khai phá liệu phát công Web Page toán di truyền, máy học, mạng neural, kỹ thuật phân nhóm, luật kết hợp, mô hình liệu đa chiều, công cụ phân tích liệu trực tuyến (OLAP), khoảng cách ngắn nhất, kỹ thuật k-láng giềng gần nhất, luật kết hợp với giải thuật AprioriTID, học quy nạp… Ở trình bày sơ lược số kỹ thuật thường sử dụng [2] [5] [6] [9] 1.4.1 Cây định Trong lý thuyết định (chẳng hạn quản lí rủi ro), định đồ 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 Trong lĩnh vực học máy, định kiểu mô hình dự báo nghĩa ánh xạ từ quan sát vật/hiện tượng tới kết luận giá trị mục tiêu vật/hiện tượng Mỗi nút tương ứng với biến, đường nối với nút thể giá trị cụ thể cho biến Mỗi nút đại diện cho giá trị dự đoán biến mục tiêu, cho trước giá trị biến biểu diễn đường từ nút gốc tới nút Kỹ thuật học máy dùng định gọi học định, hay gọi với tên ngắn gọn định 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à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 Quá trình lặp lại cách đệ qui cho tập dẫn xuất Quá trình đệ qui hoàn thành 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 Một phân loại rừng ngẫu nhiên (random forest) sử dụng số định để cải thiện tỉ lệ phân loại Cây định phương tiện có tính mô tả dành cho việc tính toán xác suất có điều kiện Cây định mô tả kết hợp kỹ thuật toán học tính toán nhằm hỗ trợ việc mô tả, phân loại tổng quát hóa tập liệu cho trước Dữ liệu cho dạng ghi có dạng: ( x, y ) = ( x1 , x2 , x3 , , xk , y) Nghiên cứu ứng dụng khai phá liệu phát công Web Page Biến phụ thuộc (dependant variable) y biến mà cần tìm hiểu, phân loại hay tổng quát hóa x1 , x2 , x3 biến giúp ta thực công việc Cây định có hai tên khác: Cây hồi quy (Regression tree): ước lượng hàm giá có giá trị số thực thay sử dụng cho nhiệm vụ phân loại (ví dụ: ước tính giá nhà khoảng thời gian bệnh nhân nằm viện) Cây phân loại (Classification tree): y biến phân loại như: giới tính (nam hay nữ), kết trận đấu (thắng hay thua) Ví dụ: Ta dùng ví dụ để giải thích định: David quản lý câu lạc đánh golf tiếng Anh ta có rắc rối chuyện thành viên đến hay không đến Có ngày muốn chơi golf số nhân viên câu lạc lại không đủ phục vụ Có hôm, không hiểu lý mà chẳng đến chơi, câu lạc lại thừa nhân viên Mục tiêu David tối ưu hóa số nhân viên phục vụ ngày cách dựa theo thông tin dự báo thời tiết để đoán xem người ta đến chơi golf Để thực điều đó, anh cần hiểu khách hàng định chơi tìm hiểu xem có cách giải thích cho việc hay không Vậy hai tuần, thu thập thông tin về: Trời (outlook) (nắng (sunny), nhiều mây (clouded) mưa (raining)) Nhiệt độ (temperature) độ F Độ ẩm (humidity) Có gió mạnh (windy) hay không Và tất nhiên số người đến chơi golf vào hôm David thu liệu gồm 14 dòng cột Quang cảnh Nắng Nắng Âm u Mưa Mưa Mưa Âm u Dữ liệu chơi golf Các biến độc lập Nhiệt độ Độ ẩm 85 85 80 90 83 78 70 96 68 80 65 70 64 65 Gió Không Có Không Không Không Có có Chơi Không Không Có Có Có Không Có Nghiên cứu ứng dụng khai phá liệu phát công Web Page 10 Hình 2.8 Kẻ công sử dụng kỹ thuật tinh vi để vượt qua WAF Trong chương giới thiệu phương pháp để phân tích lưu lượng HTTP kiểm tra công SQL injection phức tạp Mô hình đưa hệ thống ngăn chặn injection lai (Hybrid Injection Prevention System - HIPS) sử dụng phân lớp học máy mô hình phù hợp với công cụ kiểm tra dựa việc giảm tập luật an toàn 1.5 Giới thiệu SQL (Structured Query Language) injection lỗ hổng nghiêm trọng có ảnh hưởng đến hệ quản trị sở liệu (DBMS), dẫn đến lộ tất thông tin nhạy cảm lưu trữ sở liệu ứng dụng Để đối phó với công SQL injection, có nhiều phương pháp kỹ thuật khác sử dụng Một mặt, nhà phát triển ứng dụng Web thông qua việc viết mã an toàn áp dụng chức xác nhận đầu vào Họ phát triển lọc để bảo vệ mục nhập liệu ứng dụng khỏi SQL injection Các lọc chặn đầu vào có chứa từ khóa SQL ký tự đặc biệt thường sử dụng mã độc SQL injection Mặt khác, tường lửa ứng dụng Web bảo vệ sở liệu ứng dụng cách kiểm tra lưu lượng HTTP áp dụng tập luật an toàn Các ngôn ngữ sử dụng để thể luật an toàn mô tả cách rõ ràng mẫu công SQL injection, ngầm mô tả cách phát công Nó thể giá trị điểm bất thường, giá trị thường tăng lên mẫu độc hại xuất yêu cầu HTTP Nếu giá trị bất thường đạt đến ngưỡng xác định trước, yêu cầu bị từ chối Mặc dù Nghiên cứu ứng dụng khai phá liệu phát công Web Page 28 phương pháp mạnh, kẻ công vượt qua chúng cách thay đặc điểm mẫu độc hại thay đổi định dạng Tuy nhiên, giải pháp viết luật cụ thể cho loại kỹ thuật trốn tránh, điều đòi hỏi khả làm chủ cao giao thức HTTP lập trình biểu thức quy Hơn nữa, thuật toán phù hợp với mẫu sử dụng luật an toàn để kiểm tra mẫu phức tạp làm giảm hiệu suất tổng thể công cụ phát Bởi thuật toán phù hợp với mẫu đòi hỏi nhiều tài nguyên, số WAF cấu hình để kiểm tra yêu cầu POST Trong phần sau trình bày đề xuất phương pháp lai để phát công SQL injection kỹ thuật trốn tránh tinh vi Đề xuất giúp tăng cường trình kiểm tra luồng HTTP quản lý luật an toàn 1.6 Các nghiên cứu liên quan Trong [12] [13], Kruegel Vigna đề xuất hệ thống phát xâm nhập bất thường cho ứng dụng web Nó đặc trưng cho yêu cầu HTTP cách sử dụng số đặc tính thống kê lấy từ chiều dài, phân bố ký tự, cấu trúc, diện trật tự tham số Phương pháp tập trung vào tham số truy vấn đến bỏ qua lời trả HTTP tương ứng Những kết thường dẫn đến dương tính giả (dương sai) không cần thiết bỏ lỡ công AMNESIA [14] hệ thống phòng chống phát SQL injection, kết hợp phân tích tĩnh giám sát thời gian chạy Nó sử dụng phương pháp tiếp cận dựa mô hình để phát truy vấn bất hợp pháp Tuy nhiên, đòi hỏi phải rà soát mã nguồn ứng dụng web Trong SQLrand [12] [15] thay từ khóa SQL bình thường nhà phát triển tạo truy vấn cách sử dụng lệnh ngẫu nhiên Trong phương pháp lọc proxy chặn truy vấn sở liệu giải ngẫu nhiên (derandomizes) từ khóa Bằng cách sử dụng tập lệnh ngẫu nhiên, mã injection kẻ công chưa xây dựng Vì sử dụng khóa bí mật để sửa đổi lệnh, an toàn phương pháp phụ thuộc vào khả kẻ công có khóa Nó đòi hỏi tích hợp proxy cho sở liệu hệ thống việc đào tạo nhà phát triển WAF ModSecurity Ivan [16] Ristic đề xuất, giải pháp mã nguồn mở dựa phát mẫu công ModSecurity sử dụng rộng rãi có hiệu suất vừa Mặc dù, hệ thống có liên quan chặt chẽ với số loại máy chủ web phân tích truy vấn POST để tránh việc suy giảm hiệu suất Ngoài ra, luật có định dạng phức tạp đòi hỏi kiến thức chuyên môn cao giao thức HTTP việc mã biểu thức quy IronBee [17], dự án tương Nghiên cứu ứng dụng khai phá liệu phát công Web Page 29 tự ModSecurity, nhằm nâng cao khả phát tạo điều kiện cho biểu diễn luật an toàn cách giới thiệu ngôn ngữ scripting LUA Một dự án nguồn mở khác gần NAXSI [18] sử dụng phương pháp tiếp cận heuristic cho việc phát công XSS SQL injection Hiệu suất chấp nhận đòi hỏi trình học để xác định danh sách Hite Các luật SQLi XSS tĩnh sử dụng hệ thống tính điểm tích lũy đơn giản dựa vào xuất số chuỗi đặc biệt 1.7 Tấn công SQLi kỹ thuật tránh né Halfond, Viegas, Orso nghiên cứu [14] đề xuất nguyên tắc phân loại công SQL injection Tùy thuộc vào mục tiêu, kẻ công gắn thêm mã SQL cú pháp vào truy vấn ban đầu làm giả lệnh SQL độc hại riêng gửi chúng đến DBMS thông qua đầu vào dễ bị tổn thương ứng dụng web Chúng sử dụng lớp này: phép lặp thừa, truy vấn không xác, truy vấn UNION, truy vấn Piggy-backed, Stored Procedure, Inference (blind injection, công Timing) 1.7.1 Giải pháp đề xuất phân tích giao thức HTTP Trong hầu hết giải pháp bảo mật, trình bóc tách lưu thông hoạt động trước áp dụng kiểm soát bảo mật Trong dự án HAKA [19], luồng HTTP chia làm hai bảng, HttpRequest HTTPResponse, bảng liên kết với hook hook có chứa tất luật an toàn khai báo cho yêu cầu đáp trả HTTP Trong phần giới thiệu cách khác để chia cắt luồng HTTP 1.7.1.1 Yêu cầu HTTP tiêu biểu Giao thức HTTP thể dạng văn ASCII mà người đọc Các Header sử dụng văn để mô tả yêu cầu từ client (trình duyệt) phản hồi từ máy chủ Một yêu cầu HTTP thường bắt đầu với phương thức GET POST, URL phiên giao thức Các tiêu đề sau cung cấp thông tin khác client, kết nối, nội dung… Các tiêu đề phân cách \r\n để phân biệt tiêu đề Nghiên cứu ứng dụng khai phá liệu phát công Web Page 30 Hình 2.9 Yêu cầu HTTP thô 1.7.1.2 Phân tích yêu cầu HTTP Module phân tích luồng HTTP có khả nhận biết thành phần yêu cầu (các tiêu đề body) phân cách ký tự \r\n Tuy nhiên, trước đưa phân tích, phải lấy thông tin luật an toàn Thật vậy, người sử dụng buộc phải khai báo luật an toàn cho body cho tiêu đề Với kiến thức tiêu đề liên quan trình kiểm tra (các tiêu đề có luật an toàn), người phân tích trích xuất phân tích tiêu đề 1.8 Hệ thống phòng chống Injection lai Phân tích URL yêu cầu: Những thông tin mà URL phải kiểm tra biết đến người phân tích, người sử dụng khai báo luật an toàn móc: HTTP URL Người phân tích trích xuất chuỗi URL gửi tới phân lớp Hình 2.10 Cấu trúc phận phát Is legitimate (Là hợp pháp): Kết việc phân lớp âm tính, điều có nghĩa chuỗi URL không chứa mã SQL injection tiềm ẩn Nghiên cứu ứng dụng khai phá liệu phát công Web Page 31 If SQLi: Bộ phân lớp định chuyển tiếp chuỗi URL đến công cụ phát luật an toàn, URL chứa mã SQL injection Trong phần kết quả, hiển thị ngưỡng tối thiểu mà nội dung hợp pháp coi đáng ngờ If SQLi: Công cụ phát tải tất luật an toàn nối với móc URL HTTP If matched: Công cụ phát sử dụng thuật toán so khớp mẫu để kiểm tra nội dung URL, luật an toàn phù hợp với mẫu cụ thể, công cụ phát loại bỏ yêu cầu HTTP No Rule matched: Sau áp dụng tất luật an toàn, luật phù hợp với nội dung phân tích HTTP Next Dissector: Các tiêu đề phân tích không chứa mã độc, tiêu đề phân tích theo cách kết thúc việc phân tích 1.8.1 Mô hình học máy Framework tập hợp liệu SQL injection: lưu lượng truy cập độc hại thu thập từ Framework công bao gồm: - Các công cụ công SQLi cụ thể cách sử dụng kỹ thuật trốn tránh - Một máy chủ Web - Một ứng dụng web dễ bị tổn thương với công SQL injection biết Hình 2.11 Framework thu thập dấu vết công 1.8.2 Lựa chọn vector đặc tính Lựa chọn đặc tính đóng vai trò quan trọng việc xác định liệu độc hại tiềm ẩn sử dụng để thoát khỏi lọc SQLi Nghiên cứu ứng dụng khai phá liệu phát công Web Page 32 Dựa kinh nghiệm công SQL injection kỹ thuật tránh né, xác định vector có giới hạn đặc tính Có số yếu tố thúc đẩy đằng sau việc giới hạn tập đặc tính chuỗi SQL injection trốn tránh phân lớp Một tập đặc tính nhỏ dẫn đến sụt giảm đáng kể thời gian học thời gian phân lớp Bảng cho thấy kết việc lựa chọn vector đặc tính Biến Thẻ (từ khóa) x1 SELECT x2 UNION x3 UPDATE Các từ khóa SQL khác xn * Các ký tự đặc biệt khác xm UNHEX Các từ khóa tránh né khác x45 % Bảng 2-7: Một bảng đơn giản 1.8.3 Biểu diễn yêu cầu Tiêu đề yêu cầu đặc trưng vector = (x 1,x2, …,xm) với x1,x2, …,xm giá trị lấy từ biến ngẫu nhiên X 1, X2,…, Xm giả định có điều kiện độc lập tương đối so với lớp c (SQLi Legitimate) Mỗi biến ngẫu nhiên đưa thông tin kiểu từ khóa có tiêu đề phân tích Trong mô hình này, tất biến ngẫu nhiên nhị phân: Xi = từ khóa loại i ghi nhận p ai, có mặt, không X i = Do đó, biến ngẫu nhiên Xi = tuân theo phân phối Bernoulli với tham số p i = p(pai) 1.8.4 Phân lớp: Mô hình phân lớp Naive Bayes Naïve Bayes (NB) phương pháp phân loại dựa vào xác suất sử dụng rộng rãi lĩnh vực máy học [Mitchell, 1996] [Joachims, 1997] [Jason, 2001], sử dụng lần lĩnh vực phân loại Maron vào năm 1961 [Maron, 1961] sau trở nên phổ biến dùng nhiều lĩnh vực công cụ tìm kiếm [Rijsbergen et al, 1970], lọc email [Sahami et al, 1998]… Thuật toán Naïve Bayes dựa định lý Bayes phát biểu sau: Áp dụng toán phân loại, kiện gồm có: Nghiên cứu ứng dụng khai phá liệu phát công Web Page 33 D: tập liệu huấn luyện vector hóa dạng Ci: phân lớp i, với i = {1,2,…,m} Các thuộc tính độc lập điều kiện đôi với Theo định lý Bayes: Theo tính chất độc lập điều kiện: Trong đó: xác suất thuộc phân lớp i biết trước mẫu X xác suất phân lớp i xác suất thuộc tính thứ k mang giá trị xk biết X thuộc phân lớp i Các bước thực thuật toán Naïve Bayes: Bước 1: Huấn luyện Naïve Bayes (dựa vào tập liệu), tính Bước 2: Phân lớp , ta cần tính xác suất thuộc phân lớp biết trước X new Xnew gán vào lớp có xác suất lớn theo công thức Áp dụng vào mô hình, theo định lý Bayes [20] định lý tổng số xác suất, cho vector = (x1, x2, , xm), xác suất thuộc lớp c tính sau: (1) Sử dụng định lý tổng xác suất, suy ra: (2) 1.8.5 Đánh giá Công trình [21] biện pháp đánh giá chi phí-nhạy cảm bao gồm đánh giá hiệu dương tính giả tổng chi phí, thời gian lãng phí người dùng để xóa thư rác Nhưng trường hợp chúng tôi, chi phí tác Nghiên cứu ứng dụng khai phá liệu phát công Web Page 34 động âm tính giả tin tưởng người dùng cấp tới phân lớp 1.8.5.1 Ảnh hưởng dương tính giả Âm tính giả nhầm lẫn phân lớp công SQLi nội dung hợp pháp, dương tính giả nội dung hợp pháp nhầm lẫn phân lớp công SQLi Trong mô hình chúng tôi, hậu âm tính giả cao nhiều so với hậu dương tính giả Thật vậy, việc lãng phí thời gian việc phân tích yêu cầu hợp pháp chấp nhận bỏ qua mã độc hại vào ứng dụng Web Hai loại lỗi xác định sau: - Phân lớp công SQLi nội dung hợp pháp: (SQLi -> Leg) Phân lớp nội dung hợp pháp công SQLi: (Leg -> SQLi) Trong mô hình phân lớp chúng tôi, lỗi nghiêm trọng nhiều so với lỗi thứ hai Để thấy rõ điều này, đưa tham số λ, để cung cấp tầm quan trọng (nguy hiểm) nhiều lỗi cách giả định lỗi leg -> SQLi nguy hiểm lỗi SQLi -> Leg λ lần 1.8.5.2 Tiêu chí phân loại Theo hai loại lỗi trên, tiêu chí lựa chọn sau: - Nội dung tiêu đề phân lớp hợp pháp, nếu: (3) mà =1, tiêu chí lựa chọn trở thành: (4) Với (5) 1.8.5.3 Đánh giá phương pháp thông số Trong phần này, xác định thông số cho phép đánh giá lọc Vì mục đích này, hai thông số đánh giá sử dụng: độ xác (Acc) lỗi (Err = – Acc), xác định sau: (6) Nghiên cứu ứng dụng khai phá liệu phát công Web Page 35 Trong đó: biểu thị số mẫu lớp y phân loại nhầm lẫn lớp z Các thông số xác định không cho thấy trọng số cho hai loại lỗi Điều dẫn đến việc đưa thông số: trọng số độ xác (Wacc) trọng số lỗi (Werr = - WACC) Chúng giả định SQLi -> Leg có mức độ phá hoại cho hệ thống lớn λ so với Leg -> SQLI Để làm cho tỷ lệ độ xác tỷ lệ lỗi nhạy cảm với chi phí này, nên xử lý SQL injection thể λ đầu vào; SQL injection phân lớp sai, điều tính λ lỗi; phân lớp cách xác, điều tính λ thành công (7) Để có ý tưởng xác hiệu suất lọc, so sánh với hệ thống không lọc tất yêu cầu coi hợp pháp Chúng đưa định nghĩa đường trọng số lỗi đường trọng số độ xác (tương ứng biến Wacc b Werrb) định nghĩa sau: (8) Giá trị TCR (Total Cost Ratio) đo hiệu suất mô hình lai có phân lớp học máy so với mô hình mà phân lớp hoạt động môi trường Trong trường hợp giá trị TCR không đáng kể, phương pháp tốt không sử dụng phân lớp gửi tất yêu cầu tới công cụ phát dựa vào luật Một lọc hiệu sử dụng môi trường thực tế cần phải có giá trị TCR cao Nghiên cứu ứng dụng khai phá liệu phát công Web Page 36 Công thức TCR định nghĩa sau: (9) 1.9 Đánh giá kết Chúng thu thập tập liệu huấn luyện từ framework trước trình bày phần 2.4.1 Tập huấn luyện tập hỗn hợp công SQLi yêu cầu hợp pháp thể bảng với tỷ lệ khác (80-20)%, (75-25)%, (50-50)%, sau thay đổi tham số α cho kịch cuối tính toán giá trị Wacc, Waccb TCR Bảng 2-8 Bảng đánh giá giá trị mô hình lai Bằng cách tăng giá trị α (ngưỡng) từ 99% đến 50%, thấy có gia tăng số dương tính giả, có nghĩa chế tìm luật phân tích yêu cầu đáng, đồng thời, đánh giá cho thấy có gia tăng giá trị TCR Tuy nhiên, thực tế, dương tính giả (yêu cầu hợp pháp phân lớp công SQLi) chuyển tiếp đến chế luật Điều làm giảm hiệu suất tổng thể hệ thống Để tìm thỏa hiệp số dương tính giả âm tính giả thấp hơn, giá trị TCR nên giá trị trung bình Giá trị chấp nhận TCR tương ứng với ngưỡng α có giá trị cao 50% thấp 90% Nghiên cứu ứng dụng khai phá liệu phát công Web Page 37 Hình 2.12 Framework thu thập dấu vết công 1.10 Phân tích so sánh WAF dựa luật an toàn mô-đun dự đoán công SQL injection Trong trường hợp này, cách tiếp cận cải thiện hiệu suất kiểm tra module phân lớp không chuyển lưu thông hợp pháp đến công cụ phát Chỉ có yêu cầu nghi ngờ kiểm tra cách áp dụng thuật toán so khớp mẫu Trong [22], tác giả làm việc phân lớp độc hại Web học máy Họ thực đánh giá theo hai phân lớp SQLIAs XSS, mà sử dụng phương pháp TF-IDF để tính trọng số, ba phương pháp học máy SVM, Naive- Bayes, thuật toán k-láng riềng gần Họ thu giá trị xác tốt cho phân lớp: 99,16% cách sử dụng SVM với Gaussian Kernel, 97,6% cách sử dụng thuật toán Bayes Tuy nhiên, họ không cung cấp giải pháp để xử lý âm tính giả dương tính giả Mặt khác, việc sử dụng thuật toán SVM với Gaussian Kernel yêu cầu tài nguyên CPU cách đáng kể làm giảm hiệu suất phân lớp mạng tốc độ nhiều gigabit KẾT CHƯƠNG Trong chương tập trung vào vấn đề phát công SQL injection phức tạp Đã đề xuất phương pháp để phân tích yêu cầu HTTP để bao quát hầu hết kỹ thuật tránh né cải thiện trình quản lý luật an toàn Đồng thời cung cập kiến trúc hệ thống ngăn chặn injection, bao gồm phân lớp học máy Dựa kết TCR thể hiệu việc phân lớp cách điều chỉnh giá trị để giảm bớt âm tính giả Chúng cho thấy dương tính giả không ảnh hưởng đến hiệu suất tổng thể hệ thống Nghiên cứu ứng dụng khai phá liệu phát công Web Page 38 Để phát triển mô hình với định hướng công việc tương lai áp dụng phương pháp tương tự để phát triển giải pháp chống công XSS SQL injection Nghiên cứu ứng dụng khai phá liệu phát công Web Page 39 CHƯƠNG III: KẾT LUẬN Qua thời gian tìm hiểu khai phá liệu ứng dụng khai phá liệu việc phát công Web, nhóm thu kết sau: Tìm hiểu cách tổng quan khai phá liệu: o Khái niệm khai phá liệu o Các ứng dụng khai phá liệu o Quy trình tổng quát thực khai phá liệu o Tiến trình khám phá tri thức vào toán cụ thể o Một số kỹ thuật dùng trọng khai phá liệu: định, luật kết hợp, khoảng cách ngắn nhất, k-láng giềng gần nhất, phân cụm, mạng Neural, thuật toán di truyền - Ngoài ra, nhóm vào chi tiết ứng dụng khai phá liệu phát công Web: phương pháp lai phát công SQLi kỹ thuật tránh né tinh vi Trong phần này, nhóm tìm hiểu chi tiết quy trình ứng dụng khai phá liệu để phát công SQLi kỹ thuật tránh né tinh vi: o Tìm hiểu nghiên cứu liên quan đến phát công SQLi sử dụng khai phá liệu o Tìm hiểu đề xuất phân tích giao thức HTTP o Tìm hiểu mô hình hệ thống phòng chống Injection lai (sử dụng phân lớp học máy) vào chi tiết vấn đề: Thu thập liệu công, lựa chọn đặc tính, cách thức biểu diễn yêu cầu HTTP, hoạt động phân lớp (dựa mô hình phân lớp Naïve Bayes), tham số để đánh giá độ xác, tỷ lệ lỗi hiệu suất mô hình o Thực việc đánh giá mô hình xây dựng với tập liệu với tỷ lệ truy cập công SQLi truy cập bình thương khác nhau, để đưa đánh giá nhằm lựa chọn thông số ngưỡng cho phù hợp với hệ thống đưa vào thực tế o Trong đề tài đề xuất hướng nghiên cứu kế thừa kết là: áp dụng phương pháp tương tự để phát triển giải pháp chống công XSS SQL injection - Do hạn chế mặt thời gian kiến thức nên nhóm chưa vào thực tế xây dựng mô hình Nghiên cứu ứng dụng khai phá liệu phát công Web Page 40 TÀI LIỆU THAM KHẢO [1] PGS.TS Đỗ Phúc (2006), Giáo trình Khai thác Dữ liệu, Trường Đại học Công nghệ thông tin TP Hồ Chí Minh, Đại học Quốc gia TP Hồ Chí Minh [2] Huỳnh Tuấn Anh, Bài giảng DATAWAREHOUSE AND DATA MINING, TRƯỜNG ĐẠI HỌC NHA TRANG (2008) [3] TS Nguyễn Đình Thúc Trí tuệ nhân tạo - Mạng Nơron – Phương pháp ứng dụng – NXB Giáo dục năm 2000 [4] PGS.TS Nguyễn Quang Hoan Nhập môn trí tuệ nhân tạo Học viện Công nghệ Bưu Viễn thông (2007) [5] Ths Phạm Nguyễn Anh Huy, Luận văn thạc sĩ tin học “Dùng số thuật toán khai khoáng liệu hỗ trợ truy xuất địa Internet WebServer ” Trường Đại học Khoa học Tự nhiên - Đại học quốc gia TPHCM (2000) [6] PGS.TS Đỗ Phúc, Luận văn tiến sĩ toán học “Nghiên cứu phát triển số thuật giải, mô hình ứng dụng khai thác liệu (DATA MINING)” Trường Đại học Khoa học Tự nhiên - Đại học Quốc gia TPHCM (2002) [7] Nong Ye The handbook of data mining Arizona state University LAWRENCE ERLBAUM ASSOCIATES (LEA), PUBLISHERS Mahwah, New Jersey London (2003) [8] Jiawei Han and Micheline Kamber, University of Illinois at UrbanaChampaign Data Mining Concepts and Techniques nd Morgan kaufmann Publishers (2006) [9] ZhaoHui Tang and Jamie MacLennan Data Mining with SQL Server 2005 Wiley Publishing, Inc., Indianapolis, Indiana (2005) [10] The Open Web Application Security Project (OWASP) considers, in its 2013 top ten list https://www.owasp.org/index.php/Top 10 2013 [11] Sid Ansari et al SQL Injection in Oracle: An exploration of vulnerabilities International Journal on Computer Science and Engineering (IJCSE), pp 522531, April 2012 [12] A.Tajpour, M Massrum and M.Z Heydari, Comparison of SQL Injection Detection and Prevention Techniques, 2nd International Conforence on Education Technology and Computer (ICETC), 2010 Nghiên cứu ứng dụng khai phá liệu phát công Web Page 41 [13] C Kruegel and G Vigna Anomaly detection of web-based attacks 10 th ACM Conference on Computer and Communication Security (CCS 03), pages 251261 ACM Press, October 2003 [14] W.G Halfond and A Orso, AMNESIA: Analysis and Monitoring for NEutralizing SQL-Injection Attacks, Proc 20th IEEE and ACM Intl Conf Automated Software Eng., pp 174-183, Nov 2005 [15] S W Boyd and A D Keromytis SQLrand: Preventing SQL Injection Attacks In Proceedings of the 2nd Applied Cryptography and Network Security (ACNS) Conference, pages 292-302 June 2004 [16] Ivan Ristic : ModSecurity Handbook: The Complete Guide to the Popular Open Source Web Application Firewall, 2010 Feisty Duck Ltd Edition ISBN: 1907117024 [17] The IronBee Project May 2014 http://www.ironbee.com [18] Naxsi project (Nginx Anti Xss Sql Injection) https://www.owasp.org/index.php/OWASP NAXSI Project May 2014 [19] Kevin Denis, Pierre Sylvain Desse et Mehdi Talbi (Arkoon Network Security), un langage orient rseaux et scurit, Symposium sur la scurit des technologies de l’information et des communications,Confrence francophone sur le thme de la scurit de l’information, 2014 [20] C.P.Robert,Le choix Baysien Principes et pratiques, Ed Springer,2006 [21] Androutsopoulos I., J Koutsias, K.V Chandrinos, G Paliouras, and C.D Spyropoulos.2000a An Evaluation of Naive Bayesian Anti-Spam Filtering Proceedings of the Workshop on Machine Learning in the New Information Age, 11th European Conference on Machine Learning, Barcelona, Spain, pages 917 [22] Komiya, R Incheon Paik Hisada, M.Classification of malicious web code by machine learning.Awareness Science and Technology (iCAST),011 3rd International Conference Sept 2011 Nghiên cứu ứng dụng khai phá liệu phát công Web Page 42 [...]... mạng Neural Chương sau sẽ trình bày về một phương pháp tiếp cận lai sử dụng kỹ thuật khai phá dữ liệu để phát hiện tấn công SQLi và các kỹ thuật tránh né tinh vi Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web Page 26 CHƯƠNG II: PHƯƠNG PHÁP LAI PHÁT HIỆN TẤN CÔNG SQLI VÀ CÁC KỸ THUẬT NÉ TRÁNH TINH VI Lỗ hổng Injection trong đó bao gồm SQL injection là những mối đe dọa bảo mật phổ... chứa bất kỳ mã SQL injection tiềm ẩn nào Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web Page 31 3 If SQLi: Bộ phân lớp quyết định chuyển tiếp chuỗi URL đến công cụ phát hiện 4 5 6 7 luật an toàn, bởi vì URL có thể chứa một mã SQL injection Trong phần kết quả, chúng tôi sẽ hiển thị các ngưỡng tối thiểu mà một nội dung hợp pháp được coi là đáng ngờ If SQLi: Công cụ phát hiện tải tất... tương Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web Page 29 tự như ModSecurity, nhằm nâng cao khả năng phát hiện và tạo điều kiện cho sự biểu diễn các luật an toàn bằng cách giới thiệu ngôn ngữ scripting LUA Một dự án nguồn mở khác gần đây NAXSI [18] sử dụng một phương pháp tiếp cận heuristic cho việc phát hiện tấn công XSS và SQL injection Hiệu suất của nó là chấp nhận được nhưng... cần thiết hoặc bỏ lỡ một tấn công nào đó AMNESIA [14] là một hệ thống phòng chống và phát hiện SQL injection, nó kết hợp phân tích tĩnh và giám sát thời gian chạy Nó sử dụng một phương pháp tiếp cận dựa trên mô hình để phát hiện các truy vấn bất hợp pháp Tuy nhiên, nó đòi hỏi phải rà soát mã nguồn của ứng dụng web Trong SQLrand [12] [15] thay vì từ khóa SQL bình thường nhà phát triển tạo ra các truy... Các luật SQLi và XSS là tĩnh và sử dụng một hệ thống tính điểm tích lũy đơn giản dựa vào sự xuất hiện của một số chuỗi đặc biệt 1.7 Tấn công SQLi và các kỹ thuật tránh né Halfond, Viegas, và Orso nghiên cứu [14] đề xuất một nguyên tắc phân loại của các cuộc tấn công SQL injection Tùy thuộc vào mục tiêu, kẻ tấn công có thể gắn thêm một mã SQL đúng cú pháp vào truy vấn ban đầu hoặc làm giả lệnh SQL độc... OWASP Để giảm thiểu các cuộc tấn công, tường lửa mức ứng dụng Web (WAF) áp dụng các luật an toàn để kiểm tra cả các dòng dữ liệu HTTP và phát hiện các giao dịch HTTP độc hại Tuy nhiên, kẻ tấn công có thể vượt qua các luật của WAF bằng cách sử dụng các kỹ thuật SQL injection tinh vi Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web Page 27 Hình 2.8 Kẻ tấn công sử dụng các kỹ thuật tinh... 1.8.1 Mô hình học máy Framework tập hợp dữ liệu SQL injection: lưu lượng truy cập độc hại được thu thập từ một Framework tấn công bao gồm: - Các công cụ tấn công SQLi cụ thể bằng cách sử dụng các kỹ thuật trốn tránh - Một máy chủ Web - Một ứng dụng web dễ bị tổn thương với các cuộc tấn công SQL injection đã biết Hình 2.11 Framework thu thập các dấu vết tấn công 1.8.2 Lựa chọn vector đặc tính Lựa chọn... các luật an toàn để kiểm tra các mẫu phức tạp sẽ làm giảm hiệu suất tổng thể của các công cụ phát hiện Bởi vì các thuật toán phù hợp với mẫu đòi hỏi nhiều tài nguyên, một số WAF được cấu hình để chỉ kiểm tra yêu cầu POST Trong phần sau sẽ trình bày một đề xuất về một phương pháp lai để phát hiện các cuộc tấn công SQL injection và kỹ thuật trốn tránh tinh vi Đề xuất này sẽ giúp tăng cường cả các quá trình... giới thiệu một phương pháp mới để phân tích lưu lượng HTTP và kiểm tra các cuộc tấn công SQL injection phức tạp Mô hình được đưa ra ở đây là hệ thống ngăn chặn injection lai (Hybrid Injection Prevention System - HIPS) trong đó sử dụng cả một bộ phân lớp học máy và một mô hình phù hợp với công cụ kiểm tra dựa trên việc giảm tập các luật an toàn 1.5 Giới thiệu SQL (Structured Query Language) injection là... cuộc tấn công SQL injection, đã có rất nhiều các phương pháp và kỹ thuật khác nhau đã được sử dụng Một mặt, các nhà phát triển ứng dụng Web thông qua việc viết mã an toàn và áp dụng chức năng xác nhận đầu vào Họ đã phát triển các bộ lọc để bảo vệ các mục nhập liệu của ứng dụng khỏi SQL injection Các bộ lọc này chặn đầu vào có chứa từ khóa SQL hoặc các ký tự đặc biệt thường được sử dụng trong mã độc SQL