1. Trang chủ
  2. » Công Nghệ Thông Tin

Một số phương pháp phát hiện tấn công SQL Injection dựa trên kỹ thuật học máy

7 3 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 679,5 KB

Nội dung

Bài viết Một số phương pháp phát hiện tấn công SQL Injection dựa trên kỹ thuật học máy nghiên cứu hai thuật toán học máy là thuật toán Multinomial Naïve Bayes và K-Nearest neighbors và đề xuất một giải pháp phát hiện tấn công SQL Injection dựa trên file logs theo thời gian thực. Thực nghiệm cho thấy tỉ lệ phát hiện tấn công SQL Injection khá cao trên 90%. Mời các bạn cùng tham khảo!

Một số phương pháp phát công SQL Injection dựa kỹ thuật học máy Trần Đắc Tốt Khoa Công nghệ Thông tin Trường Đại học Công nghiệp Thực phẩm TP Hồ Chí Minh TP Hồ Chí Minh, Việt Nam tottd@hufi.edu.vn Nguyễn Trung Kiên Khoa Công nghệ Thông tin Trường Đại học Cơng nghiệp Thực phẩm TP Hồ Chí Minh TP Hồ Chí Minh, Việt Nam 2033181116@hufi.edu.vn Trương Hữu Phúc Khoa Công nghệ Thông tin Trường Đại học Công nghiệp Thực phẩm TP Hồ Chí Minh TP Hồ Chí Minh, Việt Nam 2033181058@hufi.edu.vn Nguyễn Thanh Long* Khoa Công nghệ Thông tin Trường Đại học Công nghiệp Thực phẩm TP Hồ Chí Minh TP Hồ Chí Minh, Việt Nam longnt@hufi.edu.vn Lê Ngọc Sơn Khoa Công nghệ Thông tin Trường Đại học Cơng nghiệp Thực phẩm TP Hồ Chí Minh TP Hồ Chí Minh, Việt Nam 2033180055@hufi.edu.vn lựa chọn nhiều cơng ty tin dùng nhiên khó bao qt tất cả, SQL Injection giống truy vấn thông thường, WAF làm việc dựa việc so sánh Hiện nay, việc áp dụng học máy vào việc phát cơng ngày phổ biến [7] Nhiều thuật tốn áp dụng đưa kết ngày khả quan [8] Trong báo đề xuất sử dụng kết hợp thuật tốn Multinomial Nạve Bayes K-Nearest Neighbors (KNN) để kiểm tra truy vấn có phải SQL Injection hay khơng ? Bài báo có cấu trúc sau: Phần mơ tả SQL Injection, Phần trình bày phương pháp đề xuất Phần kết thực nghiệm thảo luận Phần phần kết luận hướng nghiên cứu Abstract—SQL Injection dược xem lỗ hổng bảo mật có mức độ nguy hiểm bậc liên tục nằm top 10 lỗ hổng bảo mật theo thông kê hàng nằm OWASP Các công SQL Injection gây thiệt hại nghiêm trọng Trong báo nhóm tác giả nghiên cứu hai thuật tốn học máy thuật tốn Multinomial Nạve Bayes K-Nearest neighbors đề xuất giải pháp phát công SQL Injection dựa file logs theo thời gian thực Thực nghiệm cho thấy tỉ lệ phát công SQL Injection cao 90% Keywords— Multinomial Naïve Bayes, K-Nearest Neighbors, SQL Injection, Lỗ hổng SQL, Học máy I GIỚI THIỆU Website ngày trở nên phổ biến xem thành phần khơng thể thiếu, mặt công ty, cầu nối khách hàng doanh nghiệp, nơi buôn bán trực tiếp mặt hàng công ty Đặc biệt công ty, doanh nghiệp hoạt động lĩnh vực thương mại điện tử trực tuyến Website đối tượng phải bảo vệ nghiêm ngặt Cũng lý mà Website đối tượng bị công, khai thác lỗ hổng nhiều [1] II CÁC CƠNG TRÌNH LIÊN QUAN VÀ SQL INJECTION A Các cơng trình liên quan SQL Injection kỹ thuật lợi dụng lỗ hổng câu truy vấn, lấy liệu Website không an tồn mơi trường Internet Rahman cộng [10] sử dụng Thuật toán Moore Boyer để phát SQL Injection Đối sánh chuỗi sử dụng thuật tốn tốt mặt hiệu suất, thuật toán so sánh từ khóa khớp với tính độc hại bên chuỗi nhật ký Thuật toán xếp văn từ khóa so sánh sau kiểm tra từ khóa văn từ trái sang phải Các tìm kiếm bắt đầu với ký tự từ khóa cuối kết thúc với ký tự Trong năm vừa qua, giới không đối mặt với tình trạng nguy cấp thực covid mà không gian mạng xuất hàng loạt lỗ hổng Zeroday nguy hiểm, Website không bảo vệ kỹ mục tiêu cho nhóm tin tặc cơng gây thiệt hại nặng nề công ty, doanh nghiệp Theo báo cáo Verizon [2] Edgescan [3] số lượng Data Breaches với số lượng lên đến hàng triệu hay hàng trăm triệu record với công ty Không riêng giới, việt nam nhiêu công ghi nhận gây thiệt hại ngày Abirami J., Devakunchari R [11] trình bày đặc điểm SQL Injection ngăn chặn công SQL Injection cách thực xác nhận đầu vào thích hợp Các tác giả đề xuất mơ hình ngăn chặn cơng SQL Injection, phương pháp so sánh kích thước đầu vào chuỗi truy vấn dự định với giá trị ban đầu Kỹ thuật ứng dụng web sử dụng để ngăn chặn công Năm 2021, năm đầy biến động, năm 2021 tổ chức OWASP [4] thông kê cho top 10 lỗ hổng phổ biến nhất, Injection xuống thứ từ hạng năm 2017 khơng mà nguy hiểm phổ biến, SQL Injection (SQLi) lỗ hổng A3:Injection OWASP, thông thường trang web xuất lỗ hổng SQL Injection thường bị thiệt hại nặng nề, lỗ hổng can thiệp sâu tới tận database người dùng Patil cộng [12] đề xuất hệ thống phát phịng chống xâm nhập (IDS/IPS) sử dụng để phát SQL Injection Trong nghiên cứu này, kỹ thuật học máy sử dụng để phát công SQL Injection cách so sánh tệp nhật ký truy cập trang web với tập tính độc hại Trong thực tế, có nhiều giải pháp đưa để xác định xem truy vấn có phải cơng SQL Injection hay không [5] WAF - tường lửa ứng dụng Web [6] * Coressponding Author: Nguyễn Thanh Long, Khoa Công nghệ Thông tin, Trường Đại học Công nghiệp Thực phẩm TP Hồ Chí Minh, TP Hồ Chí Minh, Việt Nam Email: longnt@hufi.edu.vn 86 hiện, Có dạng là: Blind-boolean-base Blind-Timebase Faisal Yudo Hernawan cộng [13] đề xuất xây dựng hệ thống hoạt động proxy để ngăn chặn công chèn SQL cách sử dụng kết hợp phương pháp SQL Injection Free Secure (SQL-IF) Naïve Bayes Kết thử nghiệm cho thấy phương pháp lai cải thiện độ xác phịng chống công SQL Injection Muhammad Amirulluqman Azman tác giả [14] đề xuất kỹ thuật học máy để phát công SQL Injection Nghiên cứu dựa việc chuẩn bị liệu để huấn luyện thử nghiệm Bộ liệu huấn luyện sử dụng để thiết lập sở kiến thức liệu kiểm tra sử dụng để đánh giá độ xác Kết cho thấy kỹ thuật đề xuất tạo độ xác cao việc nhận dạng lưu lượng truy cập web độc hại hay lành tính Naghmeh Moradpoor Sheykhkanloo cộng [15] đề xuất mơ hình dựa Mạng Nơ-ron (NN) để phát phân loại cơng SQL Injection Mơ hình đề xuất xây dựng từ ba yếu tố: 1) URL, 2) phân loại URL 3) mơ hình NN Mơ hình đề xuất giúp phát URL lành tính độc hại, xác định kiểu công SQL Injection cho URL độc hại Blind-boolean-base: Kỹ thuật dựa vào việc gửi truy vấn tới sở liệu buộc trả kết quả, việc so sánh sai để tìm ký tự thông tin tên database, tên bảng , Do ký tự trải dài với giá trị bao gồm, chữ thường chữ hoa, số số ký tự đặc biệt nên việc khai thác Blind-boolean-base tay nhiều thời gian Blind-Time-base: Kỹ thuật giống boolean khác cách suy diễn, kỹ thuật dựa vào thời gian mà ứng dụng xử lý kết trả về.Từ xác định câu truy vấn cho kết true false Out-of-band SQL Injection Đây dạng khai thác lọc liệu từ sở liệu thông qua kênh gửi giao thức DNS, HTTP Sử dụng số dịch vụ chạy server để trích xuất liệu từ máy chủ Việc lợi dụng số dịch vụ server phụ thuộc vào cơng nghệ sử dụng backend III PHƯƠNG PHÁP THỰC HIỆN Các giai đoạn thực nghiên cứu mô tả sau A Thu thập liệu (Data Collection) Đối với hệ thống phát xâm phương pháp sử dụng phổ biến phân tích file log Các file log web server thường lưu thông tin request http gửi đến máy chủ (table I) Trong nghiên cứu tập trung vào file log web server apache B SQL Injection Một khai thác SQL Injection thành cơng đọc liệu nhạy cảm từ sở liệu, sửa đổi sở liệu (thêm/xoá/sửa), thực thi hoạt động sở liệu [9] SQL Injection chia thành loại (hình 1) Đối với apache có hai loại file log gồm có access.log error.log apche tạo Đối với file access.log cho thông tin request http, thông tin bao gồm trang mà người dùng truy cập mã trạng thành công http, địa ip truy cập đến website, tên phiên bảnh trình duyệt web địa ip truy cập, thời gian truy cập Còn với file error.log chứa thông tin lỗi mà máy chủ web gặp phải xử lý yêu cầu File log apache cho người dùng tùy chỉnh định trường liệu file log File log có hỗ trợ đến mười sáu mức độ nghiêm trọng bao gồm: emerg, alert, crit, error, warn, notice, info, debug, trace1, trace2, trace3, trace4, trace5, trace6, trace7, trace8 TABLE I Hình Phân loại SQL Injection ĐỊNH DẠNG CÁC TRƯỜNG DỮ LIỆU TRONG FILE LOG KIỂU MẶC ĐỊNH In-band SQLi: Đây dạng công đơn giản phổ biến để khai thác lỗ hổng SQL Injection Dạng chia thành dạng nhỏ Error-based Union-based %h: Địa ip máy khách %l: Danh tính máy khách %u: Người dùng từ xa (từ auth; false trạng thái trả (% s) 401) %t: Thời gian truy cập máy khách Với dạng Error-based: Việc công dựa vào thông báo lỗi trả người dùng cố tình truy vấn sai, dựa vào thơng báo lỗi, đơi kẻ cơng biết thuộc tính database thơng qua lỗi xuất hình Với dạng Union-based: Là kỹ thuật sử dụng tính tốn tử UNION ngơn ngữ SQL cho phép kết hợp truy vấn nhiều câu truy vấn SQL trả kết truy vấn kết Blind SQLi: Đây kiểu công SQL Injection sử dụng mệnh đề để đốn có nghĩa dạng công không lỗi, việc công phải lần mò bước để thực 87 127.0.0.1 frank [10/Oct/2000:13:55:36 0700] %r: Gồm có http method đường dẫn, tên phiên giao thức mà máy khách sử dụng %s: mã trạng thái http %b: Kích thước liệu trả cho máy khách thường gặp cụ thể SQL Comments, SQL Operators, SQL Logical, SQL Keywords (Table II) Danh sách từ khóa phổ biến sử dụng hiển thị bảng GET /apache_pb.gif HTTP/1.0 200 TABLE II Comment Operator Logical Keywords 2326 Đây giai đoạn thu thập liệu trước tiến hành chạy thuật toán để thực train từ liệu thu thập Các liệu thu thập từ logs công SQL Injection máy chủ Chia file, file tập dòng logs bị nhiễm SQL Injection, file tập hợp dòng log liệu khơng bị nhiễm Ví dụ file thứ nhất: /index.php?id='+and+order+by+1+ +-+ /login/username='+or+1+=+1&password=123 123 Ví dụ file thứ hai tập hợp liệu không bị nhiễm: /wordpress/wp-admin/ /wordpress/wp-login.php NHẬN DIỆN SQL INJECTION , #, -+, ++, , -", /*, */, /**/ , ==, != =, , ||, && OR, AND, NOR, XOR UNION, SELECT, ORDER, CONCAT, GROUP, INFORMATION_SCHEMA.TABLES, TABLE_NAME, TABLE_SCHEMA, GROUP_CONCAT, COLUMN_NAME, INFORMATION_SCHEMA.COLUMNS, LIMIT, COUNT, CHAR, BY, SLEEP, BENCHMARK, LIKE, WAITFOR, LOAD_FILE, DECLARE, INSERT, UPDATE, FROM, DATABASE, WHERE, EXEC, HEX, DELAY, DESC, FALSE, COUNT, EXPORT_SET, ORD Tập liệu sử dụng làm liệu đào tạo để ngăn chặn công đưa vào query SQL Sau kiểm tra request từ phương thức GET (tham số truyền sau url), POST (tham số truyền body) tương ứng khớp với keyword danh mục SQL Comment, SQL Operator, SQL Logical, SQL Operator SQL Keyword đưa vào xử lý liệu Nếu bị nhiễm SQL Injection đánh số 1, cịn khơng bị nhiễm đánh số vào vector số đếm số lượng SQL Injection tồn B Tạo liệu để train (Data Creation) Đối với liệu test từ file log apache nginx liệu http request người dùng gửi đến webserver bị mã hóa url encode, base64 nhiều loại mã hóa khác Đối số kí tự thuộc bị mã hóa url phương pháp mà kẻ cơng hay sử dụng double encode url nghĩa chuỗi liệu qua hai lần mã hóa sau gửi đến server Do sau trích liệu cần phải giải mã kí tự bị mã hóa url dạng chuẩn (hình 2): C Multinomial Naïve Bayes Phân lớp Bayes giải thuật thống kê, dự đốn xác suất phần tử liệu thuộc vào lớp có tỉ lệ so với xác suất [9] Phân lớp Bayes đưa dựa tảng định lý Bayes (tác giả định lý Thomas Bayes), công thức (1) P(𝐴|𝐵) = 𝑃(𝐵|𝐴)𝑃(𝐴) (1) 𝑃(𝐵) Trong đó: - P(A|B) xác suất xảy kiện ngẫu nhiên A biết kiện liên quan tới B xảy - P(B|A) xác suất xảy B biết A xảy - P(A) xác suất sảy riêng A mà không quan tâm đến B - P(B) xác suất xảy riêng B mà không quan tâm đến A Hình Danh sách ký tự bị mã hố url ký tự khơng bị mã hố url Multinomial Naive Bayes: Mơ hình chủ yếu sử dụng phân loại văn mà feature vectors tính Bags of word Giả sử có đoạn văn sau tìm vector tương ứng Ở giai đoạn này, liệu công liệu bình thường chuyển đổi thành dạng vector số cách tính tốn số lượng từ khóa coi tồn query SQL tồn liệu cơng liệu bình thường Các từ khóa nhóm thành số loại 88 Vb1: “Don’t go tonight” Vb2: “Lover is gone, that is not easy ” Ta có từ điển từ văn sau: [“go”, “tonight”, “is”, “gone”] Với văn tạo thành vector với độ dài với độ dài từ điển => Vb1: [1, 1, 0, 0] (có từ “go” từ “tonight”) => Vb2: [0, 0, 2, 1] (có từ “is” từ “gone”) Lúc này, văn biểu diễn vector có độ dài d số từ từ điển Giá trị thành phần thứ i vector số lần từ thứ i xuất văn Khi đó, P(xi|c) tỉ lệ với tần suất từ thứ i (hay feature thứ i cho trường hợp tổng quát) xuất văn lớp c Giá trị tính cách (2): 𝑁 𝜆𝑐𝑖 = P(𝑥𝑖 |𝑐) = 𝑐𝑖 (2) Thuật toán Multinomial Naive Bayes minh họa sau: a) b) c) d) e) f) g) 𝑁𝑐 h) Trong đó: - - - Nci tổng số lần từ thứ i xuất văn lớp c, tính tổng tất thành phần thứ i feature vectors ứng với lớp c Nc tổng số từ (kể lặp) xuất class c Nói cách khác, tổng độ dài toàn văn thuộc vào lớp c Có thể suy 𝑁𝐶 = ∑𝑑𝑖=1 𝑁𝑐𝑖 , từ ∑𝑑𝑖=1 𝜆𝑐𝑖 = Từ vector số chuyển đổi từ bước ta đưa vào Multinomial Nạve Bayes để xử lý liệu đó; Dữ liệu tranning sau qua q trình tiền xử lý liệu trích xuất từ liệu đầu vào hình thành từ điển Tính tổng số lượng liệu xác xuất SQL Injection liệu tranning Tính tổng số lượng liệu xác xuất Normal liệu tranning Dữ liệu test xử lý làm liệu từ file log Dữ liệu test dựa vào từ điển hình để chuyển hóa thành vector Dữ liệu test chuyển hóa sang vector dựa vào tổng số liệu xác xuất SQL Injection để tính xác suất nhiễm SQL Injection Dữ liệu test chuyển hóa sang vector dựa vào tổng số liệu xác xuất Normal để tính xác suất liệu Normal So sánh kết xác suất liệu test nhiễm SQL Injection xác suất liệu test liệu Normal Từ đưa kết D K-Nearst Neighbors KNN (K-Nearst Neighbors) thuật tốn học có giám sát đơn giản học máy [16] Thuật toán hoạt động cách tìm lớp (nhãn) đối tượng thơng qua k hàng xóm gần Đối với thuật tốn này, đặt điểm nằm khơng gian chiều cho điểm liệu tương tự có vị trí gần nhau, việc tìm k điểm liệu gần với liệu cần kiểm tra (hình 4) Đối với mơ hình Multinomial Naive Bayes dùng liệu huấn luyện trích xuất từ liệu thành từ điển Với chuỗi liệu biểu diễn thành vector có độ dài độ dài từ điển giá trị phần tử thứ i vector số lần từ thứ i xuất chuỗi liệu (hình 3) Hình Cách hoạt động KNN Đối với thuật toán có nhược điểm có xu hướng bị lệch lớp có tỉ lệ điểm liệu xuất nhiều Có nghĩa điểm liệu lớp xuất thường xuyên có xu hướng chiếm tỉ lệ xuất cao việc dự đoán lớp điểm liệu Phân loại k − NN có hai giai đoạn [16]: Hình Quá trình chuyển data sang dạng vector Multinomial Naive Bayes 89 - Đầu tiên xác định người hàng xóm gần - Thứ hai xác định lớp cách sử dụng người hàng xóm Đối với mơ hình K-Nearest Neighbors dựa vào số lượng đặc điểm người dùng đưa Với chuỗi liệu biểu diễn thành vector có độ dài tổng số lượng đặc điểm giá trị phần tử thứ i vector (là giá trị sai đặc điểm thứ i Giá trị tương ứng giá trị sai tương ứng 0) (hình 5) Trong mơ hình k có giá trị 7, tức lấy điểm liệu ngắn Hình Sơ đồ hoạt động AUZ1 Havoc Monitor Log SQLI Detect Các Mô-đun tương ứng: Mô-đun detect_knn: mô-đun kiểm tra đặc điểm liệu để sử dụng cho thuật tốn K-Nearest Neighbors Mơ-đun knn: mơ-đun có chức sử dụng thuật tốn K-Nearest Neighbors để thực phân loại liệu vào Mô-đun nạve_bayes: mơ-đun có chức sử dụng thuật tốn Multinomial Naive Bayes để thực phân loại liệu đầu vào Mô-đun mails: mô-đun thực gửi cảnh báo đến quản trị - Mơ-đun proccess_apache2: để trích xuất liệu từ file log apache làm liệu để đưa tiếp qua mơ-đun proccess_waf Hình Quá trình chuyển data sang dạng vector K-Nearest Neighbors Mô-đun proccess_waf: tiếp liệu từ mô-đun proccess_apache2 để xử lý liệu có khả vượt qua web application firewall đưa liệu bình thường để đưa vào thuật toán để phân loại Thuật toán K-Nearest Neighbour minh họa sau: a) Dữ liệu tranning sau qua trình tiền xử lý liệu dựa vào đặc điểm nhận dạng để chuyển liệu sang dạng vector b) Đặc điểm nhận dạng + Kí tự đặc biệt: \'"%@=;)(# + Các từ khóa liệu SQL Injection + Dấu comment liệu SQL Injection c) Dữ liệu test xử lý làm liệu từ file log d) Dữ liệu test dựa vào đặc điểm nhận dạng chuyển sang dạng vector e) Chọn số lượng K điểm liệu gần liệu tranning f) Dữ liệu test chuyển sang vector dưa vào số K tương đồng với giá trị cần tính tốn từ đưa kết liệu test có phải SQL Injection Normal Mô-đun Monitor_logs_Sqli: thực đọc file history phân loại liệu để render liệu lên web cho người dùng xem AUZ1 Havoc Monitor Log SQLI Detect u cầu cấu hình vị trí file log email quản trị viên Chọn thuật toán để phân loại liệu giám sát file log phát requets http mới, phần mềm bắt đầu trích xuất làm liệu file log đưa vào thuật toán để xử lý tiến hành ghi log liệu loại liệu, thuật tốn phát có dấu hiệu công SQL Injection tiến hành gửi cảnh báo đến quản trị viên qua mail IV KẾT QUẢ THỰC NGHIỆM VÀ THẢO LUẬN A Dataset Bộ liệu sử dụng liệu HttpParamsDataset [12], liệu có chuỗi liệu giá trị tham số http request Bộ liệu có tổng cộng 31067 liệu có 19304 liệu bình thường 11763 liệu độc hại Trong 11763 liệu độc hại gồm có loại cơng: SQL Injection attacks, Cross-Site Scripting, Command Injection, Path Traversal attacks Trong SQL Injection attacks gồm có: 10852, Cross-Site Scripting có: 532, Command Injectioncó: 89, Path Traversal attacks có: 290 Bộ liệu tạo từ nguồn khác như: CSIC2010 dataset [13], sqlmap để tạo paypload công SQL Injection, xssya để tạo E Giải pháp phát công SQL Injection Trong phần giới thiệu AUZ1 Havoc Monitor Log SQLI Detect Đây giải pháp mà nhóm phát triển để giám sát file log theo thời gian thực, cách áp dụng hai thuật toán K-Nearest Neighbors Multinomial Naive Bayes (hình 6) 90 payload Cross-site-Scripting, Vega Scanner tạo payload Command Injection Path Traversal cuối FuzzDB repository chứa payload Cross-Site scripting, Command Injection Path traversal Từ liệu chọn hai liệu để sử dụng có hai liệu để huấn luyện liệu để thực test Trong hai liệu dùng để huấn luyện liệu thứ tổng cộng có 19730 SQL Injection 9865 normal 9865 Trong liệu huấn luyện thứ hai tồng cộng có 20105 có 7235 SQL Injection 12870 normal Bộ liệu dùng để test có tổng cộng 10051 có 6434 liệu normal 3617 liệu SQL Injection Actual Class Positive Negative 𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 0.9039 Thử nghiệm thuật toán Multinomial Naive Bayes (Table V), K-Nearest Neighbors (Table VI) áp dụng hai thuật toán huấn luyện với liệu có tồng cộng có 20105 có 7235 SQL injection 12870 normal Thực kiểm tra với bơ liệu test có số lượng 10051 có 6434 liệu normal 3617 liệu SQL injection B Đánh giá hiệu suất hệ thống Hiệu xuất hệ thống đánh giá sử dụng ‘Diện tích đường cong’ (Area under the curve – AUC) ‘Diễn giải nghiên cứu tiên lượng’ (Receiver Operating Characteristic) kèm với độ xác (Accuracy (3)) phân loại, độ nhạy (Sensitivity (4)), độ chuyên (Specificity(5)) Các thơng số tính tốn sau: 𝑇𝑃+𝑇𝑁 𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = 𝑇𝑃+𝐹𝑃+𝐹𝑁+𝑇𝑁 (3) 𝑆𝑒𝑛𝑠𝑖𝑡𝑖𝑣𝑖𝑡𝑦 = 𝑆𝑝𝑒𝑐𝑖𝑓𝑖𝑐𝑖𝑡𝑦 = 𝑇𝑃 𝑇𝑃+𝐹𝑁 𝑇𝑁 𝑇𝑁+𝐹𝑃 K-Nearest Neighbors Predicted Class Positive Negative TP = 3616 FN = 964 FP = TN = 5470 𝑆𝑒𝑛𝑠𝑖𝑡𝑖𝑣𝑖𝑡𝑦 𝑆𝑝𝑒𝑐𝑖𝑓𝑖𝑐𝑖𝑡𝑦 0.7895 0.9998 TABLE V ACCURACY, SENSITIVITY, SPECIFICITY CỦA THUẬT TOÁN MULTINOMIAL NAIVE BAYES TRÊN DỮ LIỆU HUẤN LUYỆN Multinomial Naive Bayes Predicted Class Actual Class Positive Negative Positive TP = 3586 FN = Negative FP = 31 TN = 6433 𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 𝑆𝑒𝑛𝑠𝑖𝑡𝑖𝑣𝑖𝑡𝑦 𝑆𝑝𝑒𝑐𝑖𝑓𝑖𝑐𝑖𝑡𝑦 0.9968 0.9997 0.9952 (4) TABLE VI ACCURACY, SENSITIVITY, SPECIFICITY CỦA THUẬT TOÁN K-NEAREST NEIGHBORS TRÊN DỮ LIỆU HUẤN LUYỆN (5) Trong TP, FP, TN, FN theo thứ tự True Postitive (mẫu mang nhãn dương phân lớp vào lớp dương), False Positive (mẫu mang nhãn âm bị phân lớp sai vào lớp dương), True Negative (mẫu mang nhãn âm phân lớp vào lớp âm), False Negative (Mẫu mang nhãn dương bị phân lớp sai vào lớp âm) Actual Class Positive Negative 𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 0.9039 K-Nearest Neighbors Predicted Class Positive Negative TP = 3616 FN = 964 FP = TN = 5470 𝑆𝑒𝑛𝑠𝑖𝑡𝑖𝑣𝑖𝑡𝑦 𝑆𝑝𝑒𝑐𝑖𝑓𝑖𝑐𝑖𝑡𝑦 0.7895 0.9998 Kết thử nghiệm phát công từ SQLmap thời gian thực thuật tốn Multinomial Naive Bayes (hình 7) C Kết thực nghiệm Thử nghiệm thuật toán Multinomial Naive Bayes (Table III), K-Nearest Neighbors (Table IV) áp dụng hai thuật toán huấn luyện với liệu có tổng cộng 19730 SQL injection 9865 normal 9865.Thực kiểm tra với bơ liệu test có số lượng 10051 có 6434 liệu normal 3617 liệu SQL injection TABLE III ACCURACY, SENSITIVITY, SPECIFICITY CỦA THUẬT TOÁN MULTINOMIAL NAIVE BAYES TRÊN DỮ LIỆU HUẤN LUYỆN Multinomial Naive Bayes Predicted Class Actual Class Positive Negative Positive TP = 3586 FN = Negative FP = 31 TN = 6431 𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 𝑆𝑒𝑛𝑠𝑖𝑡𝑖𝑣𝑖𝑡𝑦 𝑆𝑝𝑒𝑐𝑖𝑓𝑖𝑐𝑖𝑡𝑦 0.9966 0.9991 0.9952 Hình Multinomial Naive Bayes thử nghiệm phát công từ SQLmap Kết thử nghiệm phát công từ SQLmap thời gian thực thuật tốn K-Nearest Neighbors (hình 8) TABLE IV ACCURACY, SENSITIVITY, SPECIFICITY CỦA THUẬT TOÁN K-NEAREST NEIGHBORS TRÊN DỮ LIỆU HUẤN LUYỆN 91 [3] [4] [5] [6] Hình K-Nearest Neighbors thử nghiệm phát công từ SQLmap Kết cảnh báo công SQL injection nhận qua email [7] [8] [9] [10] Hình Phát cảnh báo phát dấu liệu công SQL injection [11] V KẾT LUẬN [12] Trong nghiên cứu nhóm tác giả nghiên cứu thuật tốn Multinomial Nạve Bayes, thuật toán KNearest neighbors đề xuất giải pháp phát SQL injection kết hợp với thuật toán cho tốn phát cơng SQL Injection Các thí nghiệm, thực nghiệm cho thấy hệ thống phát công SQL Injection theo thời gian thực có tỷ lệ xác hiệu cao Các nghiên cứu tương lai tập trung vào cải thiện tốc độ độ xác thuật toán cho toán phát công SQL Injection thử nghiệm kết hợp với thuật toán học máy khác cho ứng dụng phát SQL Injection [13] [14] [15] REFERENCES [1] [2] [16] V Prokhorenko, K.-K R Choo, and H Ashman, “Web application protection techniques: A taxonomy,” Journal of Network and Computer Applications, vol 60, pp 95-112 2016 Verizon, “2022 Data Breach Investigations Report,” Verizon, 2022 [Online] Available: https://www.verizon.com/business/resources/reports/2022/dbir/2022data-breach-investigations-report-dbir.pdf, last accessed 2022/04/20 Edgescan, Edgescan 2021 Stats Reports, edgescan cyber Security company (2021), Available at: https://info.edgescan.com/hubfs/Edgescan2021StatsReport.pdf OWASP Top 10 team, Open Web Application Security Project (OWASP), OWASP Top Ten Project, SQL Injection – OWASP, Available at: https://owasp.org/wwwcommunity/attacks/SQL_Injection Michael Ritter, Cyber Risk Services, Deloitte, Web Application Firewall Profiling and Evasion, Open Web Application Security Project (OWASP) Luca Demetrio, Andrea Valenza, Gabriele Costa, Giovanni Lagorio, WAF-A-MoLE: Evading Web Application Firewalls through Adversarial Machine Learning, Conference: 35th Annual ACM Symposium on Applied Computing At: Brno, Czech Republic (March 2020), DOI:10.1145/3341105.3373962 Alex S & Vishwanathan, S.V.N Introduction to Machine Learning Published by the press syndicate of the University of Cambridge, Cambridge, United Kingdom Copyright ⓒ Cambridge University Press 2008 ISBN: 0-521-82583-0 Sheykhkanloo, N N., A Learning-based Neural Network Model for the Detection and Classification of SQL Injection Attacks International Journal of Cyber Warfare and Terrorism (2017) Available at: https://dl.acm.org/doi/10.4018/IJCWT.2017040102 Mishra, Sonali, “SQL Injection Detection Using Machine Learning”, Master's Projects 727, San Jose State University, 2019 DOI: htps://doi.org/10.31979/etd.j5dj-ngvb Rahman, T F A., Buja, A G., Abd, K., & Ali, F M, “SQL Injection Attack Scanner Using Boyer-Moore String Matching Algorithm”, JCP, 12(2), 183-189, 2017 https://doi.org/10.17706/jcp.12.2.183-189 Abirami J., Devakunchari R and Valliyammai C.,”A top web security vulnerability SQL Injection attack”, Seventh International Conference on Advanced Computing (ICoAC), 2015 Patil, A., Laturkar, A., Athawale, S V., Takale, R., & Tathawade, P, “A multilevel system to mitigate DDOS, brute force and SQL Injection attack for cloud security”, In 2017 International Conference on Information, Communication, Instrumentation and Control (ICICIC) (pp 1-7) 2017, IEEE https://doi.org/10.1109/ICOMICON.2017.8279028 Faisal Yudo Hernawan, Indra Hidayatulloh, Ipam Fuaddina Adam, Hybrid method integrating SQL-IF and Naïve Bayes for SQL Injection attack avoidance, Journal of Engineering and Applied Technology Vol 1, No 2, pp 85-96 (August 2020) Azman, M A., Marhusin, M F & Sulaiman, R Machine LearningBased Technique to Detect SQL Injection Attack Journal of Computer Science, 17(3), 296-303 (2021) https://doi.org/10.3844/jcssp.2021.296.303 Sheykhkanloo, N N., A Learning-based Neural Network Model for the Detection and Classification of SQL Injection Attacks International Journal of Cyber Warfare and Terrorism (2017) Available at: https://dl.acm.org/doi/10.4018/IJCWT.2017040102 Alex S & Vishwanathan, S.V.N Introduction to Machine Learning Published by the press syndicate of the University of Cambridge, Cambridge, United Kingdom Copyright ⓒ Cambridge University Press 2008 ISBN: 0-521-82583-0 92 ... Secure (SQL- IF) Naïve Bayes Kết thử nghiệm cho thấy phương pháp lai cải thiện độ xác phịng chống cơng SQL Injection Muhammad Amirulluqman Azman tác giả [14] đề xuất kỹ thuật học máy để phát công SQL. .. sqlmap để tạo paypload công SQL Injection, xssya để tạo E Giải pháp phát công SQL Injection Trong phần giới thiệu AUZ1 Havoc Monitor Log SQLI Detect Đây giải pháp mà nhóm phát triển để giám sát... SQL Operator, SQL Logical, SQL Operator SQL Keyword đưa vào xử lý liệu Nếu bị nhiễm SQL Injection đánh số 1, cịn khơng bị nhiễm đánh số vào vector số đếm số lượng SQL Injection tồn B Tạo liệu để

Ngày đăng: 31/12/2022, 14:47

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

TÀI LIỆU LIÊN QUAN