MỤC LỤC PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP......................................... 1 I. Giới thiệu.................................................................................................. 5 1. Tổng quan và mục tiêu của đồ án ....................................................... 5 2. Bố cục của đồ án................................................................................. 7 II. Tổng quan về ứng dụng web và vấn đề bảo mật cho ứng dụng web........ 8 1. Ứng dụng web..................................................................................... 8 2. Các vấn đề trong bảo mật web............................................................ 9 3. Giới thiệu về Web Application Firewall........................................... 11 III. Các nghiên cứu liên quan ..................................................................... 13 1. Sử dụng các phương pháp phân loại dựa trên học máy cơ bản ........ 13 2. Sử dụng deep learning ...................................................................... 15 3. Các phương pháp khác...................................................................... 18 IV. Phương pháp đề xuất và kết quả thu được ........................................... 20 1. Tập dữ liệu ........................................................................................ 20 2. Một số khái niệm .............................................................................. 21 a. Học máy ........................................................................................ 21 b. Một số phương pháp phân lớp thường dùng trong học máy ......... 22 c. Cách đánh giá mô hình học máy ................................................... 23 3. Trình bày phương pháp tiến hành và kết quả thu được .................... 24 a. Tổng quan về phương pháp tiến hành ........................................... 24 b. Tiền xử lý đối với dữ liệu thô........................................................ 26 c. Xây dựng cơ sở dữ liệu ................................................................. 27 d. Mô tả phương pháp trích chọn dữ liệu .......................................... 29 e. Tiến hành thí nghiệm và kết quả thu được .................................... 34 f. Kết luận, các công việc trong tương lai......................................... 38 V. Mô hình triển khai thực tế ...................................................................... 39 1. Tổng quan mô hình và các thành phần ............................................. 39 Áp dụng phương pháp học máy trong phát hiện và ngăn chặn tấn công web Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 4 2. Nguyên lý hoạt động của hệ thống ................................................... 40 3. Đề xuất phát triển thêm cho mô hình này trong tương lai ................ 41 Tài liệu tham khảo .......................................................................................... 4
Giới thiệu
Tổng quan và mục tiêu của đồ án
Ngành công nghệ thông tin phát triển đồng nghĩa với việc nguy cơ mất an toàn thông tin gia tăng, đặc biệt đối với các ứng dụng công khai như website, dễ trở thành mục tiêu tấn công Theo thống kê từ các công ty bảo mật như Bkav và CMC, hàng năm tại Việt Nam có hàng ngàn website bị tấn công, trong đó năm 2017 ghi nhận 40% website tồn tại lỗ hổng nghiêm trọng, cho phép hacker đánh cắp dữ liệu và thực thi lệnh tùy ý trên server Đáng chú ý, nhiều website quan trọng của cơ quan nhà nước và tập đoàn lớn cũng bị ảnh hưởng Một số sự vụ nổi bật như vụ hack website Tổng công ty hàng không Việt Nam năm 2016, làm lộ thông tin của 411.000 hành khách, hay vụ rò rỉ 163 triệu tài khoản ZingID của VNG vào đầu năm 2018, cho thấy vấn đề an ninh website chưa được đầu tư đúng mức, yêu cầu nâng cấp khả năng phòng chống tấn công là cấp thiết.
Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 6
Hình 1.1 Thống kê số lượng website bị tấn công trong 9 tháng đầu năm 2017
Để bảo vệ website mà không cần kiến thức sâu về bảo mật, các công ty an ninh mạng tại Việt Nam và thế giới đã phát triển ứng dụng WAF (Web Application Firewall) Một số nhà cung cấp WAF tại Việt Nam bao gồm Bkav, Viettel và Cystack Tuy nhiên, công nghệ hiện tại chủ yếu dựa vào phân tích http traffic và phương pháp signature-based để ngăn chặn tấn công, điều này có điểm yếu là chỉ phát hiện các kiểu tấn công đã biết Việc này yêu cầu đội ngũ bảo mật phải liên tục cập nhật quy tắc để đối phó với hàng trăm ngàn kiểu tấn công khác nhau, dẫn đến khó khăn trong quản lý và duy trì Hơn nữa, phương pháp signature-based không thể phát hiện các lỗ hổng chưa được công bố (zero-day), tạo cơ hội cho hacker mũ đen tấn công vào hệ thống quan trọng đã được bảo vệ.
Để giải quyết các khó khăn trong việc phát triển WAF, tôi đề xuất một mô hình học máy nhằm phát hiện tấn công web Mô hình này tập trung vào ứng dụng web mà nó bảo vệ, dựa vào các thuộc tính và đặc điểm của ứng dụng để nhận diện traffic độc hại Phương pháp này nổi bật ở khả năng bảo trì và mở rộng dễ dàng, không cần đội ngũ theo dõi và cải tiến liên tục để cập nhật khả năng đánh chặn các kiểu tấn công mới Thay vào đó, việc cập nhật dữ liệu học chỉ cần thực hiện khi có thay đổi về nội dung hoặc cấu trúc website, với quy trình chủ yếu tự động và ít cần can thiệp từ kỹ sư chuyên môn.
Hoàng Phú Hoan, mã số 20131522, thuộc Khóa K58 Lớp CNTT1.02, nhấn mạnh rằng việc khai thác các lỗ hổng zero-day có thể dễ dàng bị phát hiện, tương tự như các lỗ hổng thông thường.
Bố cục của đồ án
Trong đồ án này, tôi xin được trình bày các vấn đề chính như sau:
Chương này cung cấp cái nhìn tổng quan về ứng dụng web, bao gồm mô hình, các thành phần và cách thức hoạt động cũng như liên kết giữa các thành phần trong ứng dụng Bên cạnh đó, nó cũng nêu ra những vấn đề chính liên quan đến bảo mật web và giới thiệu WAF (Web Application Firewall) như một giải pháp phổ biến để phát hiện và ngăn chặn các cuộc tấn công vào hệ thống website.
Trong chương này, chúng ta sẽ khám phá các nghiên cứu liên quan đến phát hiện tấn công bảo mật nhằm vào website, bao gồm cả phương pháp truyền thống và các phương pháp học máy Bằng cách điểm qua những báo cáo đã được công bố trong những năm gần đây, chúng ta sẽ nhận thấy những kết quả và tiến bộ đáng kể trong lĩnh vực này.
Chương này sẽ phân tích chi tiết phương pháp học máy mà tôi đề xuất, bao gồm kết quả đạt được và những cải tiến so với các nghiên cứu trước đây trên cùng tập dữ liệu Đồng thời, tôi cũng sẽ trình bày định hướng phát triển và cải tiến cho mô hình trong tương lai.
Để minh chứng khả năng ứng dụng của phương pháp học máy trong bảo vệ website, chương này đề xuất một hệ thống phát hiện và bảo vệ website theo thời gian thực Hệ thống này sẽ được thử nghiệm để bảo vệ một website thực trước các yêu cầu tấn công Mặc dù đây chỉ là một hệ thống thử nghiệm với các chức năng cốt lõi, nhưng cũng sẽ được đưa ra một số định hướng phát triển trong tương lai nhằm biến nó thành một lá chắn hiệu quả cho các website phức tạp và chịu tải lớn.
Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 8
Tổng quan về ứng dụng web và vấn đề bảo mật cho ứng dụng web
Ứng dụng web
Ứng dụng web đã trở thành một phần thiết yếu của internet và là nền tảng tương tác chủ yếu cho người dùng Dù có quy mô đa dạng, tất cả các ứng dụng web đều tuân theo một kiến trúc cơ bản.
Hình 2.1 Kiến trúc của một ứng dụng web cơ bản (nguồn internet)
Kiến trúc cơ bản của một ứng dụng web bao gồm webserver, các file service/script và cơ sở dữ liệu Webserver tiếp nhận và điều phối các yêu cầu từ client, chuyển đến service tương ứng để phân tích và trả về tài nguyên cho client Cơ sở dữ liệu lưu trữ và cung cấp thông tin cho ứng dụng web trong quá trình xử lý yêu cầu Một số webserver phổ biến hiện nay là Apache, Nginx, IIS và Tomcat Các ứng dụng web có thể được phát triển bằng nhiều ngôn ngữ lập trình như C#, Java, Python, PHP, trong khi các cơ sở dữ liệu quen thuộc bao gồm SQLServer, MySQL, MongoDB và Oracle Tùy thuộc vào độ phức tạp và quy mô, website có thể có thêm các thành phần như Message Queue, Proxy và Cache.
Khách hàng và máy chủ giao tiếp thông qua giao thức HTTP hoặc HTTPS, với HTTPS là phiên bản an toàn hơn của HTTP nhờ khả năng mã hóa dữ liệu HTTP, viết tắt của Hypertext Transfer Protocol, cho phép tương tác giữa Client và Server và hoạt động như một giao thức không trạng thái, dựa trên giao thức TCP/IP.
Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 9 sử dụng cổng 80 cho HTTP và cổng 443 cho HTTPS Giao thức này bao gồm hai thành phần chính: http request (gửi từ client lên server) và http response (phản hồi từ server cho client).
Hình 2.2 Cấu trúc cơ bản của HTTP request và HTTP response
Các vấn đề trong bảo mật web
Bảo mật website đã luôn là một vấn đề quan trọng kể từ khi các ứng dụng web đầu tiên xuất hiện trên internet Có nhiều dạng tấn công web khác nhau, và OWASP, một tổ chức phi lợi nhuận nổi tiếng toàn cầu, đã thống kê các loại lỗ hổng web có mức độ nguy hiểm cao nhất Mục tiêu của OWASP là phổ biến kiến thức về bảo mật web và cung cấp phương pháp phòng chống cho người dùng, tổ chức và doanh nghiệp trên toàn thế giới.
Các file cũ không còn sử dụng trên server có thể chứa thông tin nhạy cảm và dễ bị hacker truy cập, do đó cần được xóa bỏ để đảm bảo an toàn dữ liệu.
• File mặc đinh: Các file mặc định trên server là nới hacker có thể dễ dàng truy cập và tìm kiếm các thông tin nhạy cảm
• Lộ mã nguồn website: Việc lộ lọt này cho phép hacker nắm được mã nguồn website và thực hiện tìm kiếm các lỗ hổng nghiêm trọng dựa trên đó
• Các HTTP method nguy hiểm: Một số method http có thể cho phép thực hiện việc chỉnh sửa, xóa file trên server như PUT, DELETE
• Chèn CRLF: Lỗ hổng cho phép chèn các kí tự đặc biệt làm thay đổi cấu trúc gói tin hoặc thậm chí thực thi câu lệnh tùy ý
Việc không hạn chế truy cập vào các tài nguyên quan trọng, chẳng hạn như trang quản trị, tạo ra một lỗ hổng lớn, cho phép hacker dễ dàng xâm nhập sâu vào hệ thống.
Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 10
Không kiểm tra dữ liệu người dùng là một lỗi nghiêm trọng, cho phép hacker thay đổi tùy ý dữ liệu gửi lên server Điều này tạo cơ hội cho hacker khai thác nhiều loại lỗ hổng bảo mật nghiêm trọng.
Here is a rewritten paragraph:"Ứng dụng web truyền trực tiếp dữ liệu người dùng cung cấp và các lời gọi lệnh có thể bị lợi dụng bởi hacker để thực hiện lệnh tùy ý với quyền của ứng dụng web Điều này cho phép hacker có thể chèn câu lệnh tùy ý, gây ra các vấn đề nghiêm trọng về bảo mật Do đó, cần phải có các biện pháp phòng ngừa và kiểm soát chặt chẽ để ngăn chặn các cuộc tấn công này."
Cross site scripting là một lỗ hổng bảo mật xảy ra khi ứng dụng web không kiểm soát dữ liệu do người dùng nhập vào, dẫn đến việc sử dụng dữ liệu này để hiển thị trên trang web Kẻ tấn công có thể lợi dụng lỗ hổng này để thay thế dữ liệu hợp lệ bằng các script độc hại, từ đó thực hiện các hành vi như đánh cắp phiên làm việc của người dùng hoặc thay đổi giao diện website.
SQL injection là một lỗ hổng bảo mật xảy ra khi dữ liệu người dùng được đưa vào các câu truy vấn cơ sở dữ liệu mà không qua kiểm tra Lợi dụng lỗ hổng này, hacker có thể thay đổi dữ liệu truyền lên bằng các từ khóa SQL, từ đó thực hiện các thao tác tùy ý trên cơ sở dữ liệu của website.
Lỗ hổng tràn bộ đệm (buffer overflow) là một vấn đề nghiêm trọng trong các thành phần của webserver, xảy ra khi dữ liệu vượt quá giới hạn cho phép Lỗ hổng này có thể cho phép hacker can thiệp vào hoạt động của thành phần tương ứng, thậm chí thực hiện các lệnh tùy ý trên server.
Lỗi xác thực và quản lý phiên làm việc là một lỗ hổng bảo mật xảy ra khi dữ liệu quan trọng như định danh người dùng và mã phiên không được bảo vệ đúng cách Điều này tạo điều kiện cho hacker dễ dàng đánh cắp thông tin, từ đó có thể đăng nhập vào ứng dụng web với quyền truy cập của người dùng.
Lỗ hổng kiểm soát truy cập bị phá vỡ xảy ra khi ứng dụng web thiếu cơ chế phân quyền chính xác, cho phép hacker dễ dàng truy cập dữ liệu của người dùng khác hoặc thực hiện các chức năng chỉ dành riêng cho quản trị viên.
Nhiều website cung cấp trang quản trị như một phần của giao diện chính Nếu các chức năng của trang này không được bảo vệ cẩn thận, nó có thể tạo cơ hội cho hacker thực hiện các cuộc tấn công.
Việc rà soát và đảm bảo cấu hình chuẩn cho ứng dụng web là rất quan trọng, đặc biệt khi một ứng dụng có thể bao gồm nhiều thành phần và nền tảng khác nhau Nếu chỉ một trong số các thành phần này có cấu hình yếu hoặc lỗi, điều đó có thể tạo điều kiện cho hacker xâm nhập vào toàn bộ hệ thống.
Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 11
Lỗ hổng thực thi file độc hại cho phép hacker chạy mã độc trên server một cách tùy ý Điều này thường xảy ra khi hacker có khả năng tải lên một file bất kỳ lên server.
Lỗ hổng Insecure Direct Object Reference xảy ra khi việc tham chiếu đến các đối tượng trên website bị lộ ra thông qua các tham số như id, user, hoặc file Hacker có thể thay đổi các tham số này để truy cập vào những đối tượng khác, từ đó thực hiện các thao tác chỉnh sửa hoặc thậm chí thực thi mã độc hại.
Thông tin về ứng dụng web có thể bị lộ qua nhiều con đường như header phản hồi, mã nguồn và lỗi cấu hình Việc xử lý các yêu cầu lỗi cũng rất quan trọng, vì thông báo lỗi không được xử lý đúng có thể dẫn đến việc lộ lọt thông tin về cấu trúc thư mục trên server, hệ điều hành, nền tảng lập trình, ngôn ngữ, phiên bản webserver, và thậm chí là một phần mã nguồn cho hacker.
Hình 2.3 Lộ lọt dữ liệu khi ứng dụng web không xử lý lỗi đúng cách
Giới thiệu về Web Application Firewall
Trong những năm gần đây, WAF đã trở thành một phần quan trọng không thể thiếu cho các website lớn Khác với firewall truyền thống, WAF hoạt động ở tầng ứng dụng, bảo vệ website bằng cách phân tích các yêu cầu HTTP để nhận diện và xử lý các cuộc tấn công.
Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 12
Hình 2.4 Mô hình cơ bản của WAF (nguồn: internet)
WAF hoạt động theo hai cơ chế chính: chủ động và bị động Mô hình chủ động chỉ cho phép traffic hợp lệ đi qua, trong khi mô hình bị động cho phép tất cả traffic nhưng chỉ chặn những traffic được xác định là độc hại WAF có thể được triển khai theo nhiều cách khác nhau trong mạng, trong đó phổ biến nhất là mô hình Reverse Proxy.
Transparent Proxy, Host-Based Trong đó mô hình Reverse Proxy là phổ biến hơn cả nhờ các khả năng đa dạng mà nó đem lại
Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 13
Các nghiên cứu liên quan
Sử dụng các phương pháp phân loại dựa trên học máy cơ bản
Trong những năm gần đây, đã có nhiều nghiên cứu về việc phát hiện tấn công web Hầu hết các nghiên cứu này sử dụng các phương pháp phân lớp phổ biến trong học máy, bao gồm Logistic Regression, Support Vector Machine, Decision Tree, XGBoost và Nạve Bayes.
Rafal Kozik và các cộng sự (2016) đã thực hiện một nghiên cứu so sánh hiệu quả của nhiều phương pháp phân loại khác nhau như Nạve Bayes, AdaBoost, PART và J48 trong việc phân loại các request độc hại trên tập dữ liệu CSIC 2010, bao gồm cả request bình thường và request tấn công đã được gán nhãn Tập dữ liệu này được tạo ra bằng cách mô phỏng các request đến một trang web thương mại điện tử thực tế Nhóm tác giả tập trung vào phân tích dữ liệu từ câu truy vấn, địa chỉ truy cập và phương thức truy cập, sau đó vector hóa chúng bằng thuật toán Lempel-Ziv-Welch (LZW) Để đánh giá hiệu năng của từng mô hình học máy, tác giả đã sử dụng phương pháp 10-folds để tính toán độ chính xác trung bình Kết quả cho thấy phương pháp J48, một cải tiến của mô hình Decision Tree, đạt hiệu quả cao nhất với các chỉ số đánh giá là Tỷ lệ Phát hiện (TP rate) và Tỷ lệ Dương tính Giả (FP rate), cho thấy độ chính xác vượt trội hơn cả báo cáo của tác giả bộ dữ liệu CSIC vào năm 2016.
Sara Althubiti và các cộng sự (2017) đã áp dụng một phương pháp độc đáo bằng cách sử dụng lại các thuộc tính từ nghiên cứu trước đó của Nguyen et al (2011) Trong nghiên cứu của mình, nhóm tác giả đã tiến hành quá trình chọn lọc thuộc tính (Feature Selection) để xác định các thuộc tính quan trọng nhất cho việc phân loại Họ sử dụng phần mềm Weka để thu gọn danh sách thuộc tính xuống còn năm thuộc tính Những thuộc tính này sau đó được áp dụng trong nhiều mô hình học máy khác nhau như Random Forest, Logistic Regression, J48, Ada Boost, SGDc, và Naïve Bayes, với phân tích được thực hiện trên tập dữ liệu CSIC 2010 Kết quả được đánh giá dựa trên các chỉ số như Precision, Recall, F-Measure và TP rate.
FP rate, bảng so sánh cho thấy các kết quả mà tác giả đạt được hoàn toàn vượt trội
Hoàng Phú Hoan, sinh viên lớp CNTT1.02 Khóa K58 (20131522), đã nghiên cứu về hiệu quả của các phương pháp lựa chọn thuộc tính trong mô hình học máy Bài báo tổng quan việc áp dụng Generic Feature Selection (GeFS) trong phát hiện tấn công, sử dụng hai phương pháp: Correlation Feature Selection (CFS) và minimal-Redundancy-Maximal-Relevance (mRMR) CFS đánh giá mức liên hệ tuyến tính giữa các thuộc tính, trong khi mRMR xem xét mối liên hệ phi tuyến tính Dữ liệu thí nghiệm bao gồm hai tập dữ liệu CSIC 2010 và ECML/PKDD 2007, với 30 thuộc tính liên quan đến phát hiện tấn công Mặc dù kết quả phân loại đối với tập dữ liệu ECML/PKDD 2007 khá tốt, nhưng nó chỉ chứa các kiểu tấn công cơ bản, không đủ để đánh giá khả năng phát hiện tấn công web một cách toàn diện Kết quả cho thấy cả hai phương pháp không tạo ra sự khác biệt lớn so với việc sử dụng toàn bộ 30 thuộc tính ban đầu.
EIEI HAN et al (2015) đã thử nghiệm phân loại tấn công web bằng cách kết hợp nhiều mô hình học máy, bao gồm K-means và ID3 decision tree, để bù đắp hạn chế của mỗi phương pháp khi được sử dụng riêng biệt Kết quả cho thấy phương pháp Random Forest cho kết quả ấn tượng nhất, tuy nhiên phương pháp kết hợp hai mô hình cũng cho thấy sự hiệu quả so với việc áp dụng từng phương pháp riêng rẽ Theo đó, tác giả đã tiến hành so sánh phương pháp trên với mô hình học máy khác và áp dụng hai mô hình một cách tách biệt trên tập dữ liệu CSIC 2010.
Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 15
Nghiên cứu của Melody Moh et al (2016) cho thấy việc kết hợp giữa phương pháp học máy và phương pháp phát hiện tấn công dựa trên signature-based có thể nâng cao hiệu quả phát hiện tấn công web Tác giả so sánh phương pháp truyền thống pattern-matching với các phương pháp học máy như Nạve Bayes và Bayes Net, thử nghiệm kết hợp hai phương pháp này để phân loại các cuộc tấn công Nghiên cứu sử dụng tập dữ liệu 12,000 mẫu tự động tạo ra bằng Log4j Framework, và kết quả cho thấy sự kết hợp giữa hai phương pháp mang lại hiệu quả tốt nhất Tuy nhiên, một hạn chế là dữ liệu tấn công chỉ mô phỏng SQL Injection, do đó, việc áp dụng cho nhiều loại tấn công web khác có thể gặp khó khăn trong phân loại dựa trên pattern-matching.
Gần đây, Shailendra et al (2017) đã công bố một nghiên cứu về phát hiện tấn công XSS trên mạng xã hội thông qua các phương pháp phân lớp của học máy Nghiên cứu tập trung vào ba nhóm thuộc tính: thuộc tính của URL, thuộc tính của thẻ HTML, và thuộc tính của nền tảng mạng xã hội Mỗi nhóm chứa nhiều thuộc tính khác nhau, được sử dụng trong quá trình phân loại tấn công bằng mười phương pháp học máy, bao gồm RandomForest, ADTree, RandomSubspace, Decorate, AdaBoost, JRip, NaiveBayes, Support Vector Machine, Logistic Regression, và k-Nearest Neighbors Tập dữ liệu thử nghiệm bao gồm các website từ cơ sở dữ liệu Alexa và các website đã bị tấn công XSS trong cơ sở dữ liệu XSSed Phương pháp 10-folds được sử dụng để đánh giá các mô hình học máy, cho thấy Random Forest đạt kết quả tốt nhất về Precision, Recall, F-measure và tỷ lệ dương tính giả Mặc dù nghiên cứu này cho kết quả khả quan trong việc phát hiện lỗi XSS, nhưng vẫn chưa thể áp dụng rộng rãi cho nhiều loại tấn công khác nhau trong thực tế.
Sử dụng deep learning
Ngoài các phương pháp học máy phân lớp thông thường vẫn được ưu chuộng sử dụng trong các bài toán phân loại như Logistic Regression, Support Vector
Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 16
Các nhà nghiên cứu đã tìm kiếm giải pháp phát hiện tấn công web bằng cách áp dụng deep learning, sử dụng mô hình mạng neural sâu để phân loại các yêu cầu.
D Atienza et al (2015) đã áp dụng các phương pháp mô tả dữ liệu trực quan như Principal Component Analysis (PCA), Cooperative Maximum Likelihood Hebbian Learning (CMLHL), và Self-Organizing Maps (SOM) để phát hiện tấn công vào ứng dụng web PCA giúp giảm kích thước dữ liệu và chuyển đổi dữ liệu đa chiều thành không gian với các biến độc lập, từ đó hỗ trợ việc trực quan hóa dữ liệu CMLHL, một mở rộng của Maximum Likelihood Hebbian Learning, được thiết kế để xác định cấu trúc dữ liệu phức tạp và giảm chiều dữ liệu nhằm cải thiện khả năng đánh giá trực quan SOM cũng nhằm mục đích trực quan hóa dữ liệu trong không gian ít chiều hơn mà vẫn giữ lại thông tin quan trọng của tập dữ liệu gốc Các phương pháp này đã được thử nghiệm trên tập dữ liệu CSIC 2010, bao gồm các yêu cầu bình thường và yêu cầu tấn công đã được gán nhãn Trước khi phân tích, các tác giả đã thực hiện bước tiền xử lý để loại bỏ dữ liệu không cần thiết và các bản ghi trùng lặp, giữ lại các thông tin như method, host, content-type, content-length, và payload Tuy nhiên, kết quả thử nghiệm cho thấy không có phương pháp nào có khả năng phân biệt rõ ràng giữa yêu cầu thông thường và yêu cầu độc hại, do quá trình tiền xử lý đã loại bỏ một số thông tin hữu ích cho việc phân loại.
Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 17
Khác với cách tiếp cận sử dụng deep-learning theo hướng trực quan hóa dữ liệu của
D Atienza, (Yao Pan et al.,2017) [8] trong đã tiến hành đánh giá khả năng ứng dụng của mô hình End-to-End Deep Learning với đại diện là hai phương pháp PCA và autoencoder so với các phương pháp phân loại truyền thống như Logistic Regression (LR), Support Vector Machine (SVM) trong việc phát hiện tấn công web Việc đánh giá độ chính xác của các phương pháp trên được thực hiện dựa trên dữ liệu của hai ứng dụng web về quản lý video và dich vụ nén dữ liệu Trong đó dữ liệu tấn công được mô phỏng bằng một số hình thức tấn công cơ bản và phổ biến là SQL injection, XSS và Object deserialization Các thuộc tính được trích chọn bao gồm thời gian xử lý request, tên của người dùng hệ thống, số lượng kí tự trong các tham số, số lượng domain có mặt trong truy vấn, số lượng kí tự trùng lặp, vector thuộc tính được tính dựa trên N-gram của câu truy vấn Kết quả cho thấy phương pháp End-to-End Deep Learning sử dụng autoencoder cho kết quả tốt nhất dựa trên thông số F-score Tuy nhiên kết quả này mới chỉ được kiểm chứng đối với ba dạng tấn công cơ bản ở trên cũng như chỉ một số dạng dữ liệu tấn công đặc trưng, trong khi payload tấn công trong thực tế thì lại không theo bất kì khuôn dạng cụ thể nào
Nghiên cứu của Farhan Douksieh et al (2017) so sánh giữa phương pháp deep learning và các phương pháp truyền thống như SVM trong phát hiện tấn công web, nhưng chỉ tập trung vào phân tích các URL độc hại Nhóm tác giả đã áp dụng mạng Convolutional Neural Networks (CNNs) cùng với các thuộc tính từ Word2Vec và TFIDF, cho thấy CNN là một mô hình học sâu hiệu quả trong nhận dạng với độ chính xác cao Nghiên cứu sử dụng dữ liệu tự thu thập, được gán nhãn thành hai lớp độc hại và bình thường, và kết quả cho thấy SVM và CNN đạt được độ chính xác cao nhất dựa trên các chỉ số precision, recall và f1-score Tuy nhiên, phương pháp này chỉ phân tích thuộc tính chuỗi, không cung cấp đặc tính phân biệt rõ ràng giữa request tấn công và request thông thường Hơn nữa, dữ liệu thu thập từ nhiều nguồn khác nhau chưa phản ánh đầy đủ sự đa dạng của các kiểu tấn công web, chủ yếu chỉ tập trung vào phân tích dữ liệu trên URL.
Cuối cùng, để nhận diện một trong những loại tấn công nguy hiểm và phổ biến nhất đối với các ứng dụng web, đó là SQL injection, nghiên cứu của Asaad Moosa và các cộng sự (2010) đã được thực hiện.
Hoàng Phú Hoan, sinh viên lớp CNTT1.02 Khóa K58, đã thực hiện nghiên cứu về việc sử dụng Mạng Nơron Nhân Tạo (ANNs) để phát hiện tấn công SQL injection Nghiên cứu dựa trên quan sát rằng một số ký tự đặc trưng thường xuất hiện nhiều hơn trong các cuộc tấn công SQL injection, do đó tác giả đã nhóm các ký tự và sử dụng thuộc tính từ những nhóm này làm đầu vào cho mạng nơron Do thiếu tập dữ liệu chuẩn để thử nghiệm, tác giả đã tự tổng hợp các payload cho SQL injection Kết quả cho thấy khả năng phát hiện tấn công của mô hình rất cao, tuy nhiên, tác giả thừa nhận rằng tập dữ liệu nhỏ và chưa bao quát được tất cả các dạng tấn công SQL injection Phương pháp này cũng chỉ phù hợp cho SQL injection và không thể áp dụng cho các dạng tấn công khác Tác giả còn giới thiệu một phương pháp tiếp cận khác dựa vào “từ khóa” thường gặp trong SQL injection, kết hợp với ANNs, mang lại kết quả tốt nhưng vẫn tồn tại nhiều hạn chế và không phải là giải pháp toàn diện cho việc phát hiện tấn công web.
Các phương pháp khác
Cùng với sự phát triển của nghiên cứu dựa trên học máy, nhiều phương pháp tiếp cận khác cũng đang được cộng đồng nghiên cứu an ninh mạng thử nghiệm Một số báo cáo dưới đây sẽ giới thiệu những phương pháp thú vị trong việc phát hiện các cuộc tấn công web.
Carmen Torrano-Gimenez và các cộng sự (2016) đã nghiên cứu một phương pháp phát hiện tấn công web dựa trên file XML mô tả toàn bộ website Phương pháp này sử dụng dữ liệu từ chính website cần bảo vệ để xây dựng một file XML, trong đó định nghĩa các thông tin về phương thức sử dụng, giá trị trường header, và các tham số URL được chấp nhận Các đặc điểm như độ dài tối đa, số lượng chữ số tối đa, và tập ký tự hợp lệ cũng được xác định Những mô tả này tạo thành chuỗi điều kiện mà một request phải thỏa mãn khi truy cập vào website; nếu vi phạm bất kỳ điều kiện nào, request sẽ bị coi là độc hại Kết quả thử nghiệm trên một website thương mại điện tử đã cho thấy hiệu quả của phương pháp này.
Hoàng Phú Hoan, sinh viên lớp CNTT1.02 khóa K58, đã thực hiện một nghiên cứu cho thấy việc sử dụng nhiều dữ liệu thông thường để xây dựng file XML có thể nâng cao độ chính xác trong việc phát hiện tấn công Tuy nhiên, tác giả cũng thừa nhận rằng một trong những thách thức lớn nhất của phương pháp này là xây dựng file XML một cách chính xác và tự động Việc lọc traffic thông thường không hề đơn giản, đặc biệt khi đối mặt với các ứng dụng web phức tạp hoặc những ứng dụng cho phép người dùng tạo ra các trang và URL mới.
Một phương pháp khác để phát hiện tấn công SQL Injection là dựa vào các dấu hiệu bất thường liên quan đến kiểu tấn công, như đã được Vigna et al (2005) giới thiệu Tác giả đã xác định các dấu hiệu nhận biết tấn công SQL Injection và phát triển các mô hình riêng biệt để phát hiện dựa trên các đặc điểm như độ dài chuỗi, phân bố kí tự, tiền tố và hậu tố đặc biệt, cấu trúc chuỗi, cùng những giá trị chưa từng thấy Bằng cách sử dụng các request thông thường, các mô hình này có thể nhận diện các dấu hiệu bất thường Tuy nhiên, kết quả thí nghiệm cho thấy tỷ lệ False Alarm Rate khá cao đối với các request mà hệ thống chưa từng gặp trong quá trình học.
Báo cáo của Kruegel et al (2003) đã áp dụng phương pháp phát hiện tấn công web dựa trên dấu hiệu bất thường, tập trung vào phân tích các thành phần của URL trong request Tác giả xây dựng nhiều mô hình nhỏ, mỗi mô hình dựa trên các yếu tố nhận diện như độ dài câu truy vấn, phân bố ký tự, cấu trúc và thứ tự các tham số trong câu truy vấn Để xác định xem một request có phải là tấn công hay không, nó sẽ được đánh giá qua các mô hình này, nhận điểm số và so sánh với ngưỡng đã được điều chỉnh Nhóm tác giả đã thử nghiệm mô hình trên tập dữ liệu tự thu thập, giả định rằng dữ liệu đều là sạch và đánh giá dựa trên tỷ lệ False Positive Kết quả cho thấy tỷ lệ FP rất thấp, tuy nhiên, giả định dữ liệu hoàn toàn sạch là không hợp lý với tập dữ liệu lớn từ thực tế.
Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 20
Phương pháp đề xuất và kết quả thu được
Tập dữ liệu
Để đánh giá và so sánh khách quan độ chính xác của phương pháp đề xuất, tôi sẽ sử dụng tập dữ liệu CSIC 2010, một bộ dữ liệu chuẩn đã được áp dụng trong nhiều nghiên cứu về phát hiện tấn công web trước đây, cũng như một tập dữ liệu đã được công bố sau quá trình chuẩn hóa kỹ lưỡng bởi một viện nghiên cứu quốc tế.
Tập dữ liệu CSIC 2010, được công bố bởi Hội đồng Nghiên cứu Quốc gia Tây Ban Nha và cập nhật lần cuối vào năm 2012, chứa hàng chục ngàn yêu cầu được tạo tự động Những yêu cầu này mô phỏng các hoạt động thực tế nhằm phục vụ cho một trang web thương mại điện tử, bao gồm các chức năng cơ bản như đăng ký và giỏ hàng.
Tập dữ liệu bao gồm 36,000 yêu cầu thông thường và hơn 25,000 yêu cầu độc hại đã được phân loại vào các tệp tương ứng Với ứng dụng web Tây Ban Nha, ký tự sử dụng là các ký tự Latin Các yêu cầu độc hại bao gồm nhiều kiểu tấn công như SQL injection, XSS, Local File Inclusion, CRLF injection, rò rỉ thông tin, và buffer overflow, được phân chia thành ba mục chính.
• Tấn công tĩnh: Gồm các request tới những file cũ, những file cấu hình, những file mặc định trên server
• Tấn công động: Gồm các request mô phỏng các kiểu tấn công nổi tiếng như
Các request không hợp lệ là những yêu cầu không nhằm mục đích tấn công thực sự, mà thường được sử dụng để thu thập dữ liệu từ website Những yêu cầu này thường cung cấp các kiểu dữ liệu không tuân theo định dạng hợp lệ, chẳng hạn như địa chỉ email không đúng chuẩn hoặc username chỉ chứa các ký tự đặc biệt.
Each request structure in the dataset encompasses all components of an HTTP request, including method, host, URL, query, HTTP version, User-Agent, Cookie, and Connection.
Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 21
Hình 4.1 Ví dụ về các request trong tập dữ liệu CSIC 2010
Một số khái niệm
Học máy là một lĩnh vực trong trí tuệ nhân tạo, cho phép máy tính tự học mà không cần lập trình hướng dẫn.
Máy tính được gọi là học từ kinh nghiệm E với tác vụ T và được đánh giá bởi độ đo
P nếu máy tính khiến tác vụ T này cải thiện được độ chính xác P thông qua dữ liệu
Trong bài toán phân loại email spam, kinh nghiệm E bao gồm các email đã được phân loại trước, tác vụ T là phân loại email thành hai nhóm: spam và không spam, trong khi độ chính xác P thể hiện mức độ chính xác trong quá trình phân loại email.
Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 22
Hình 4.2 Quá trình học máy cơ bản [15]
Học máy được chia làm 2 dạng bài toán học cơ bản [15]:
Học có giám sát là phương pháp mà dữ liệu được sử dụng để học có sự liên kết với một đầu ra tương ứng Nó được chia thành hai loại chính: phân lớp và hồi quy Bài toán thuộc dạng phân lớp khi đầu ra nằm trong một tập hữu hạn các giá trị, trong khi bài toán hồi quy xảy ra khi đầu ra là một giá trị số thực Ví dụ điển hình cho phân lớp là bài toán phân loại email spam và bài toán phát hiện tấn công mạng.
Học không giám sát là phương pháp mà dữ liệu đầu ra có thể là một cụm dữ liệu hoặc cấu trúc ẩn, chẳng hạn như xác định biến động giá cổ phiếu hoặc phát hiện các cộng đồng trên mạng xã hội Một số phương pháp phân lớp phổ biến trong học máy có thể được áp dụng để phân tích và khai thác thông tin từ dữ liệu này.
Phương pháp logistic là một kỹ thuật hồi quy dùng để dự đoán giá trị đầu ra rời rạc trong khoảng từ 0 đến 1 Phương pháp này đo lường mối quan hệ giữa biến phụ thuộc phân loại và các biến độc lập thông qua việc ước tính xác suất bằng cách sử dụng hàm logistic, cụ thể là phân bố tích lũy logistic.
Phương pháp cây quyết định là một kỹ thuật học máy hiệu quả, sử dụng cấu trúc cây để xấp xỉ hàm cần học Mỗi nút trong cây đại diện cho một thuộc tính cần kiểm tra giá trị, trong khi các nhánh của nút đó tương ứng với các kết quả khác nhau.
Hoàng Phú Hoan, sinh viên mã số 20131522, thuộc Khóa K58 Lớp CNTT1.02, đã nghiên cứu về cây quyết định trong học máy Mỗi nút trong cây quyết định thể hiện một thuộc tính, với các nút lá tương ứng với các lớp khác nhau Quá trình phân lớp diễn ra bằng cách duyệt từ nút gốc đến nút lá, giúp xác định lớp cho mỗi ví dụ.
Support Vector Machine (SVM) là một kỹ thuật phân lớp tuyến tính, nhằm xác định siêu phẳng để phân tách hai lớp dữ liệu Phương pháp này hiệu quả trong các bài toán phân lớp nhiều chiều, đặc biệt thích hợp cho các ứng dụng phân loại văn bản.
Naive Bayes là một phương pháp phân lớp dựa trên xác suất đơn giản, sử dụng định lý Bayes và giả định rằng các thuộc tính độc lập với nhau.
Hình 4.3 Minh họa bài toán phân lớp trong học máy (nguồn: internet) c Cách đánh giá mô hình học máy
Một số phương pháp đánh giá mô hình học máy bao gồm: Hold-out, trong đó dữ liệu được chia thành hai tập con không giao nhau, một dùng để huấn luyện và một để đánh giá hiệu năng, phù hợp với tập dữ liệu lớn Phương pháp Repeated hold-out thực hiện việc chia này nhiều lần ngẫu nhiên Cross-validation chia dữ liệu thành k phần không giao nhau có kích thước tương đương, thực hiện k lần lặp, mỗi lần sử dụng một tập con làm kiểm thử và k-1 tập còn lại làm huấn luyện, sau đó trung bình các giá trị lỗi để có kết quả cuối cùng, thích hợp cho tập dữ liệu vừa và nhỏ.
Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 24
Các chỉ số đánh giá mô hình bao gồm Precision, Recall và F1 Precision đối với lớp i được tính bằng tổng số vụ dụ thuộc lớp i được phân loại chính xác chia cho tổng số ví dụ được phân loại vào lớp i Recall đối với lớp i là tổng số ví dụ thuộc lớp i được phân loại chính xác chia cho tổng số ví dụ thuộc lớp i F1 là tiêu chí kết hợp giữa Precision và Recall, được tính theo công thức cụ thể.
Trình bày phương pháp tiến hành và kết quả thu được
a Tổng quan về phương pháp tiến hành
Sơ đồ sau đây mô tả một cách tổng quan phương pháp tiến hành các công đoạn chính để thực hiện đồ án:
Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 25
Hình 4.5 Sơ đồ mô tả quá trình tiến hành nghiên cứu
Các bước thực hiện chính bao gồm:
Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 26
Tiền xử lý dữ liệu là bước quan trọng trong quy trình phân loại, nơi các thành phần không cung cấp thông tin giá trị sẽ được loại bỏ Đồng thời, quá trình này cũng bao gồm việc thực hiện các thống kê đánh giá ban đầu nhằm hiểu rõ hơn về tập dữ liệu.
Để xây dựng một hệ thống phân loại dữ liệu hiệu quả, cần phải thiết lập một cơ sở dữ liệu chứa các thuộc tính quan trọng, lưu trữ các thông tin cần thiết cho quá trình phân loại Cơ sở dữ liệu này sẽ bao gồm các bảng dữ liệu được tạo ra để làm cơ sở cho quá trình tính toán các thuộc tính của dữ liệu sau này, giúp hệ thống phân loại dữ liệu trở nên chính xác và hiệu quả hơn.
Trong bước đầu tiên, chúng ta sẽ trích xuất dữ liệu và xây dựng ma trận thuộc tính, tính toán giá trị các thuộc tính và lưu toàn bộ ma trận cùng với các nhãn tương ứng vào một file riêng Việc này sẽ tạo điều kiện thuận lợi cho các thử nghiệm tiếp theo.
Trong giai đoạn này, tôi thực hiện nhiều thử nghiệm đa dạng để đánh giá một cách chính xác các phương pháp học máy khác nhau liên quan đến bài toán mà chúng ta đang nghiên cứu.
Dựa trên kết quả thu được từ các thí nghiệm trước đó, tôi sẽ đưa ra các kết luận và lựa chọn phương pháp phát hiện tấn công web hiệu quả nhất Tiền xử lý dữ liệu thô là một bước quan trọng, ảnh hưởng đến toàn bộ quá trình xử lý sau này Với kiến thức về bảo mật web đã được nghiên cứu kỹ lưỡng, tôi đã chọn lọc các dữ liệu quan trọng và loại bỏ những dữ liệu không cần thiết để nâng cao độ chính xác trong quá trình đánh giá.
• Dữ liệu được giữ lại bao gồm: o Method: chứa thông tin về phương thức được sử dụng trong request
Trong tập dữ liệu này, có ba phương thức chính được sử dụng là GET, POST và PUT, ảnh hưởng đến cách mà server xử lý các yêu cầu URI cung cấp thông tin về tài nguyên cần truy cập trên server, phản ánh nhu cầu truy vấn của máy khách và liên quan đến tập dữ liệu mà người dùng có thể cung cấp Payload là phần dữ liệu quan trọng nhất, chứa toàn bộ thông tin mà người dùng gửi lên server và là yếu tố chính trong việc phân tích, xử lý yêu cầu của server.
Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 27
Các dữ liệu không cần thiết đã được loại bỏ bao gồm toàn bộ các trường trong phần http headers như Host, Protocol, User-Agent, Cache, Accept, Cookies, và Connection Những dữ liệu này thường chứa giá trị giống nhau cho tất cả các yêu cầu hoặc có sự khác biệt nhưng theo định dạng hoàn toàn giống nhau, do đó chúng được xem là không có giá trị trong quá trình xử lý.
Hình 4.6 Các thành phần dữ liệu khác nhau trong http request c Xây dựng cơ sở dữ liệu
Mục tiêu xây dựng cơ sở dữ liệu là tạo điều kiện thuận lợi cho việc thực hiện nhiều thí nghiệm mà không cần phải trích xuất dữ liệu từ đầu Việc lưu trữ dữ liệu trong cơ sở dữ liệu cũng rất hữu ích cho các thao tác thống kê và tính toán đơn giản, như tìm kiếm các đoạn payload liên quan đến một URL hoặc tính trung bình độ dài của một dạng payload Ngoài ra, các dữ liệu cơ sở được sử dụng trong quá trình tính toán vectơ thuộc tính cũng được lưu trữ trong các bảng riêng biệt để xử lý các thuộc tính phức tạp cần nhiều bước.
Dưới đây là các bảng dữ liệu được sử dụng:
• Mal_rqs: lưu các thông tin về request tấn công o Id: số thứ tự của request o Method: phương thức được sử dụng o url: đường dẫn
Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 28 o payload: dữ liệu được truyền lên server o type: phân loại request (1 cho request tấn công)
Hình 4.7 Mô tả bảng dữ liệu mal_rqs
Normal_rqs là một phương pháp lưu trữ thông tin cho các yêu cầu thường, bao gồm các thành phần như Id (số thứ tự của yêu cầu), Method (phương thức được sử dụng), url (đường dẫn), payload (dữ liệu được truyền lên server) và type (phân loại yêu cầu, trong đó 0 đại diện cho yêu cầu thường).
Hình 4.8 Mô tả bảng dữ liệu normal_rqs
Hàm set_values_attribute được sử dụng để lưu trữ các giá trị hữu hạn cho các trường dữ liệu có thể gửi lên theo đường dẫn tương ứng, bao gồm các thông tin như id (số thứ tự), url (đường dẫn tương ứng) và key_value (cặp giá trị với trường dữ liệu liên quan, ví dụ: username=hoan).
Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 29
Hình 4.9 Mô tả bảng dữ liệu set_values_attribute
Subset_attributes lưu trữ các định dạng dữ liệu được gửi lên theo các bộ tham số cụ thể, nhằm đối chiếu với dữ liệu gửi lên sau này để tính toán các thuộc tính liên quan đến payload Bao gồm các thông tin như Id (số thứ tự), url (đường dẫn tương ứng) và attributes (các bộ tham số tương ứng).
Hình 4.10 Mô tả bảng dữ liệu subset_attributes
• urls: lưu trữ toàn bộ các đường dẫn tồn tại trên website o id: số thứ tự o url: đường dẫn
Hình 4.11 Mô tả bảng dữ liệu urls d Mô tả phương pháp trích chọn dữ liệu
• URL: Bao gồm các đặc tính liên quan tới URL
• Method: Bao gồm các đặc tính liên quan tới phương thức gửi dữ liệu lên server
• Payload: Bao gồm các đặc tính liên quan tới dữ liệu được gửi lên server
Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 30
Hình 4.12 Các nhóm thuộc tính của request Các thuộc tính về URL
Người dùng thông thường hiếm khi truy cập vào các địa chỉ URL không tồn tại, trừ khi ứng dụng web không còn hỗ trợ tính năng đó Tuy nhiên, đối với hacker, việc này lại là một bước quan trọng trong quá trình thu thập thông tin từ server Bằng cách cố gắng truy cập vào các URL không tồn tại, hacker có thể tìm thấy các file backup, file default, hoặc admin-site, từ đó thu thập thông tin về hệ điều hành, cấu hình, phiên bản web-server, và thậm chí là mã nguồn của website Để khai thác đặc điểm này, cần tạo một cơ sở dữ liệu chứa tất cả các URL của website bằng cách phân tích dữ liệu ban đầu và so sánh các URL trong yêu cầu với tập dữ liệu này để xác định tính tồn tại của URL.
Nếu url không tồn tại thì giá trị của thuộc tính là 1, ngược là thì giá trị sẽ là 0
Ví dụ: http://localhost:8080/tienda1/publico/pagar.jsp~ => đường dẫn được hacker sử dụng để tìm các file bản sao trên server => không tồn tại thật => trả về
• Kiểm tra kí tự và string bất thường trong url
Tập kí tự và string bất thường được định nghĩa bao gồm: “"~", "backup", "bak",
Các ký tự và từ khóa như "zip", "sql", và "%" thường được các hacker sử dụng để tìm kiếm tài liệu sao lưu, file cơ sở dữ liệu ẩn trên server Chúng cũng có thể được dùng trong quá trình fuzzing URL nhằm thu thập thông tin tối đa từ website.
Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 31
Nếu có tồn tại kí tự bất thường thì giá trị thuộc tính bằng 1, ngược lại thì bằng 0
Ví dụ: http://localhost:8080/tienda1/miembros/imagenes.BAK => đường dẫn được hacker sử dụng để tìm kiếm file backup trên server => có chứa từ khóa bất thường => trả về 1
Kiểm tra độ dài của URL là một thuộc tính quan trọng, cung cấp thông tin hữu ích trong việc phát hiện và ngăn chặn các cuộc tấn công của hacker Trong quá trình thu thập thông tin hoặc khai thác các lỗ hổng phổ biến, độ dài của URL có thể thay đổi đáng kể, do đó việc theo dõi nó có thể giúp nhận diện các hoạt động đáng ngờ.
Giá trị trả về là độ dài của url
Ví dụ: http://localhost:8080/travelnet/home.jsp => giá trị trả về là độ dài len(“/travelnet/home.jsp”)
• Đếm số lượng kí tự đặc biệt (không phải các chữ cái bình thường trong url)
Mô hình triển khai thực tế
Tổng quan mô hình và các thành phần
Hình 5.1 Sơ đồ hệ thống WAF áp dụng học máy
Như mô tả ở hình trên, hệ thống WAF do tôi đề xuất sẽ gồm bốn thành phần chính:
Nginx server, được triển khai trên nền tảng OpenResty, là một phiên bản mở rộng của Nginx với nhiều module từ các nhà phát triển thứ ba, cho phép lập trình viên có khả năng tùy biến cao hơn Nó đảm nhiệm vai trò reverse proxy, tiếp nhận các yêu cầu từ phía client một cách hiệu quả.
• Module điều khiển: viết bằng ngôn ngữ Lua, chịu trách nhiệm phân tích request, gửi dữ liệu đi và quyết định việc xử lý đối với request đó
• Module học máy: Chạy trên nền tảng Flask như một web service, đảm nhận việc dự đoán request có phải tấn công hay không
Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 40
ELK Stack là một hệ thống hoàn chỉnh bao gồm ba thành phần chính: Elasticsearch, Logstash và Kibana Hệ thống này được thiết kế để vận chuyển, lưu trữ và hiển thị dữ liệu log một cách đồng bộ và hiệu quả.
Nguyên lý hoạt động của hệ thống
Hình 5.2 Sơ đồ hoạt động của hệ thống WAF
1 Đầu tiên, request sẽ được Nginx tiếp nhận, sau đó toàn bộ thông tin về request sẽ được phân tích và xử lý tại module điều khiển
2 Tại module điều khiển, các thông tin cần cho quá trình dự đoán sẽ được trích rút bao gồm: method, url, payload
3 Các thông tin này sau đó sẽ được gửi đến cho webservice thông qua giao thức http dưới dạng câu truy vấn sau: http://api.aiservice.local/predict?url=[]&method=[]&payload=[] Sau đó module điều khiển chờ đợi phản hồi từ phía webservice
4 Sau khi nhận được đầy đủ dữ liệu, mô hình học máy đã được huấn luyện từ trước đang chạy trên webservice sẽ tiến hành việc trích rút thuộc tính và đưa
Hoàng Phú Hoan, mã sinh viên 20131522, thuộc Khóa K58 Lớp CNTT1.02, đã đưa ra dự đoán về giá trị trả về của truy vấn Nếu truy vấn là một request tấn công, giá trị sẽ là 1; ngược lại, nếu là request bình thường, giá trị sẽ là 0 Đặc biệt, thông tin chi tiết về các request tấn công sẽ được lưu trữ và hiển thị trên ELK stack.
5 Module điều khiển nhận được kết quả phản hồi từ phía webservice và đưa ra chỉ thị tương ứng cho Nginx Nếu là request tấn công thì Nginx sẽ phản hồi bằng cách chuyển hướng request sang một trang cảnh báo, nếu là request thường thì sẽ cho đi tới ứng dụng web phía sau
Hình 5.3 Minh họa trang cảnh báo xuất hiện khi phát hiện request tấn công
Đề xuất phát triển thêm cho mô hình này trong tương lai
Do thiếu điều kiện hạ tầng, hệ thống hiện tại chỉ được thử nghiệm bằng máy ảo, cho thấy khả năng phân loại tức thời nhưng chưa đánh giá được hiệu quả trong thực tế do lượng truy cập còn thấp Mục tiêu tương lai là tiến hành thêm nhiều thí nghiệm trên website thực tế với lượng truy cập lớn, đồng thời hoàn thiện các tính năng hiện có và phát triển thêm các tính năng mở rộng như cân bằng tải, gửi cảnh báo tấn công qua email, và xây dựng trang quản trị cho hệ thống.
Hoàng Phú Hoan: 20131522 Khóa K58 Lớp CNTT1.02 42