Nội dung 5: Thực nghiệm với các kịch bản của ứng dụng web: e Mục tiêu: Có thé đánh giá được một cách chính xác và khách quan nhất kết quả hoạt động của mô hình mà chúng ta đã xây dựng e
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN KHOA MANG MAY TINH VA TRUYEN THONG
DOAN ANH DUNG - LE THI MY DUYEN
DEVELOPING A MACHINE LEARNING INTEGRATED WEB
APPLICATION FIREWALL MODULE FOR NGINX
KY SU NGANH AN TOAN THONG TIN
TP HO CHI MINH, 2023
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA MANG MAY TINH VA TRUYEN THONG
DOAN ANH DUNG - 19520053
LE THỊ MY DUYEN - 19521439
KHOA LUAN TOT NGHIEP
PHAT TRIEN MO-DUN TUONG LUA UNG DUNG WEB
TICH HOP HOC MAY CHO NGINX
DEVELOPING A MACHINE LEARNING INTEGRATED WEB
APPLICATION FIREWALL MODULE FOR NGINX
KY SU NGANH AN TOAN THONG TIN
GIANG VIEN HUONG DAN
THS DO HOANG HIEN
TP HO CHi MINH, 2023
Trang 3THÔNG TIN HỘI ĐÒNG CHÁM KHÓA LUẬN TÓT NGHIỆP
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số
Tigầy của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
Trang 4LỜI CÁM ƠN
Lời đầu tiên, nhóm thực hiện khoá luận chúng em xin trân trọng giành lời
cảm ơn đến các thầy cô giảng viên tại khoa Mạng máy tính và Truyền thông, cũngnhư toàn thể các thầy cô giảng viên đang công tác tại trường Đại học Công nghệ
Thông tin đã dạy dỗ, truyền đạt những bài học và kiến thức quý báu cho chúng emtrong suốt quãng thời gian vừa qua Nhóm chúng em xin chúc khoa Mạng máy tính
và Truyền thông nói riêng và trường Đại học Công nghệ Thông tin nói chung luônđạt được những thành công trong tương lai, sẽ mãi là niềm tin cho các thế hệ sinh
viên và là niềm tự hào của hệ thong giáo dục nước nhà
Đặc biệt, nhóm chúng em xin gửi lời biết ơn sâu sắc đến giảng viên hướng
dẫn, ThS Đỗ Hoàng Hiên, thay đã luôn theo dõi, quan tâm và giúp đỡ rat nhiệt tình,đồng thời hỗ trợ giải quyết những vấn đề phát sinh khác trong quá trình hoàn thànhkhoá luận tốt nghiệp Tiếp theo chúng em xin cảm ơn Phòng thí nghiệm An Toàn
Thông Tin đã hỗ trợ cơ sở vật chất, tạo điều kiện cho chúng em trong suốt quá trình
thực hiện khóa luận.
Cuối cùng, nhóm chúng em xin gửi một lời cảm ơn chân thành dành cho cácanh chị, bạn bè tại trường Đại học Công nghệ Thông tin đã luôn giải đáp các thắc
mắc, hỗ trợ và góp ý cho khoá luận của nhóm trong thời gian vừa qua
Xin chân thành cảm ơn.
TP Hồ Chí Minh, ngày 31 tháng 01 năm 2023
Nhóm tác giả
Trang 5ĐẠI HỌC QUOC GIA TP HO CHi MINH CONG HÒA XÃ HOI CHỦ NGHĨA VIET NAM
Tên đề tài (tiếng việt): Phát triển mô-đun tường lửa ứng dụng web tích hợp
học máy cho NGINX
Tên Tiếng Anh: Developing a machine learning integrated web application
firewall module for NGINX
Cán bộ hướng dan: Ths Đỗ Hoang Hién
Thời gian thực hiện: từ ngày 05/09/2022 đến ngày 09/12/2022
Sinh viên thực hiện:
Lê Thị Mỹ Duyên — 19521439 - 0981590645
Doan Anh Dũng — 19520053 - 0398296628
Nội dung đề tài:
1 Tổng quan tình hình nghiên cứu:
Thông tin tồn tại ở khắp mọi nơi xung quanh chúng ta ké từ khi công
nghệ thông tin phát triển, va Internet đã thay đổi lối sống truyền thống hangngày của chúng ta Đồng thời, các ứng dụng web được ứng dụng rộng rãi
trong cách lĩnh vực khác nhau, va sự gia tăng của công nghệ dam mây đã làm cho cách dịch vụ web trở nên nhanh chóng và tiện lợi hơn.
Trang 6Gartner đã báo cáo rang 75% các hành vi tan công đã được phát hiện ởtầng ứng dụng (application layer) và các máy chủ web là mục tiêu chính củatin tặc trong các sự cô an ninh mạng đã xảy ra trong những năm gần đây Cóhai lý do khiến tin tặc có xu hướng xâm nhập vào máy chủ web Một mặt,hàng triệu thông tin cá nhân của người dung (ví dụ: số ID, địa chỉ, tài khoản
ngân hàng) được luu trữ trong cơ sở dữ liệu của máy chủ và tin tặc sẽ thu
được lợi nhuận đáng kế băng cách bán đữ liệu Mặt khác, tin tặc có thể đưa
mã độc vào tại liệu nguồn của mát chủ và người dung sẽ bị tấn công khi họ
duyệt hoặc tải xuống các tài liệu này
Chính vì vậy, tìm ra các biện pháp tối ưu dé bảo vệ ứng dụng web là mộtcông việc hết sức cần thiết, một trong những biện pháp để bảo vệ ứng dụng
web phổ biến và quen thuộc với nhiều người là sử dụng Web Application
Firewall (WAF).
Web Application Firewall (WAF) giúp bảo vệ các ứng dụng web bằng
cách giám sát và lọc các lưu lượng HTTP/HTTPS giữa ứng dụng web và
người dùng từ Internet Nó thường bảo vệ các ứng dụng web khỏi các cuộc
tấn công web như: Cross-site request forgery (CSRF), Cross-site scripting(XSS), File Inclustion, SQL Injection WAF hoạt động ở tang 7 (trong môhình OSI) va không được thiết kế dé bao vệ chống lại tat ca các loại tan công.Bằng cách triển khai WAF trước ứng dung web, một 1a chắn được thiết lập dé
bao ứng dụng web WAF là một loại reverse proxy, bao vệ máy chủ khỏi bi
tấn công bằng cách cho request từ client đi qua WAF trước khi đến máy chủ.WAF hoạt động thông qua một tập hợp các quy tắc (rule) thường được gọi là
chính sách Các chính sách này nhằm mục đích bảo vệ khỏi các lỗ hồng trongứng dụng băng cách lọc ra các traffic (lưu lượng) độc hại WAF có tốc độnhanh chóng và việc sửa đôi các chính sách có thé được thực hiện dé dàng,cho phép phản ứng nhanh hơn với các vector tấn công khác nhau
ModSeurity là một WAF khá phổ biến, nhóm sẽ chọn ModSecurity détriển khai trong khóa luận của mình
Trang 7Server
Web Application
Firewall HTTP Traffic
Sources
Hình 1: Mô hình có sử dụng Web Application Firewall
Tuy nhiên việc chỉ sử dụng WAF một cách truyền thống dé chống lai cáccuộc tấn công web vẫn có tồn tại những rủi ro, hạn chế nhất định, chúng vẫn
có thể xâm nhập vì hầu hết các WAF đều dựa trên các bộ lọc dựa trên biểu
thức chính quy được tạo ra từ cuộc tấn công đã biết chữ ký
Với hiện trạng trên, chúng em quyết định đưa vào mô hình máy học mục
đích phân loại các requests, đồng thời tích hợp vào mô-đun của NGINX nhằm
phát hiện các loại tân công.
URL Decode
Filter blocker
2 Tính khoa học và tính mới của đề tài:
Trong mục tiêu khóa luận của nhóm, chúng em sẽ phát triển một mô đuntường lửa có kết hợp giữa mô hình Web Applicatio Firewall truyền thống và
mô hình máy học, đồng thời, đưa ra phương án giải quyết nhằm đảm bảo độ
chính xác cao nhưng vẫn giữ được tốc độ xử lí của các hành vi Nhóm thực
hiện nghiên cứu các công bô về vân đê tương tự, đưa ra cai nhìn tông thê, sau
Trang 8đó áp dụng vào mô hình hiện tại Bên cạnh đó, vẫn đảm bảo được tính thực
tiễn, có thé áp dụng và sử dụng như một ứng dụng thực tế
3 Mục tiêu, đối tượng và phạm vi:
Mục tiêu:
Với những ý tưởng hiện tại, nhóm xây dựng một mô dun có thé ngăn chặn
được các cuộc tấn công web sử dụng Web Application Firewall như thôngthường Nhưng bên cạnh đó, nhóm kết hợp với học máy dé có thé phát hiện
được những tân công chưa được biệt đên Cụ thê mục tiêu của đê tài như sau:
- Hiểu được những hạn chế còn tồn tại trong các mô hình WAF thông
thường, nhóm sẽ thực hiện tích hợp các phương pháp hiện đại, cụ thé là
Machine Learning, để khắc phục được những hạn chế còn tồn tại.
- Dé xuất một phương pháp không những phát hiện được những cuộc tan
công đã có (những cuộc tan công đã có signature và được lưu trongdatabase) mà còn có thé phát hiện được những cuộc tan công mới
- Tu phương pháp đã dé xuất, nhóm phát triển một mô đun cho NGINX
nhằm phát hiện các tấn công web
- Thực hiện các kịch ban tan công va đo thời gian xử lý dé đánh giá hệ
thống đã xây dựng
Đối tượng nghiên cứu:
- _ Công cụ Nginx va reverse proxy
- _ Cách viết một module NGINX
- Web Application Firewall (Modsecurity)
- Cac phuong phap hoc may.
Pham vỉ nghiên cứu:
- _ Xây dựng một reverse proxy sử dung NGINX.
- Phat triển một module Web Application Firewall (WAF) Nginx
- Thuc hiện cai đặt mô dun WAF lên reverse proxy NGINX.
Trang 9- Tim hiểu, nghiên cứu các biện pháp Machine Learning dé tích hợp vào
mô hình nhằm mục đích phát hiện ra những vector tấn công mới mà
WAF thông thường không phát hiện được.
4 Nội dung, phương pháp dự định nghiên cứu
Nội dung, phương pháp nghiên cứu chính:
a Nội dung 1: Tim hiêu vê Nginx, reverse proxy va cach câu hình một
Nginx web server dùng làm reverse proxy:
s Mục tiêu: Hiêu được nguyên tac hoạt động và các tính năng cơ bản của
Nginx Hiêu được một mô hình có sử dung reverse proxy và cách câu
hình một Nginx web server làm reverse proxy.
- Kiém tra lại hoạt động của reverse proxy, xác định xem liệu traffic dén
reverse proxy có được forward đên web server phía sau hay không.
2 Nội dung 2: Tìm hiểu về Web Application Firewall, cách triển khai một
web application Firewall, cụ thể ở đây là Modsecurity Tìm hiểu cách viết
một rule sử dụng cho Modsecurity.
+ Mục tiêu: Hiéu được tác dụng của Web Application Firewall Triển khai
được WAF (Modsecurity) trên reverse proxy đã được cấu hình Hiểu
được quy tắc hoạt động của rule, cách viết rule trong Modsecurity dé
filter được black-data và white-data.
e Phương pháp:
- Tim hiều các tài liệu về Web Application Firewall
Trang 10- Tìm hiểu và thực hiện cài đặt Modsecurity theo hướng dẫn của
Modsecurity.
- Kiém tra hoat động cua Modsecurity, có thé block được những traffic có
chứa dữ liệu độc hại hay không.
- Xác định được vi trí chứa rule của Modsecurity và các và các rule ay
được load vào.
- Tim hiểu cách viết một rule trong Modsecurity và thực hiện viết các rule
đơn giản với ca hai trường hợp black-data và white-data.
- Thuc hiện kiểm tra lại xem các rule vừa viết đã hoạt động hay chưa với
các test case (black-data, white-data, unknown-data).
- Mục tiêu cuối cùng là đến đây có được một mô hình sử dụng WAF
truyền thống (1)
3 Nội dung 3: Machine Learning
e Mục tiêu: Áp dụng mô hình máy học, đưa ra quyết định thực hiện yêu cầu
từ phía máy khách (client) đến máy chủ (server) Bên cạnh đó phải đảm
Sử dụng các dataset có sẵn trên internet từng được sử dụng ở các bài báo
khoa học uy tín, thực hiện thử nghiệm, so sánh tính chính xác ở các thuật toán
Tiến hành sinh dataset, làm giàu vốn data dé nâng cao độ chính xác hơn
Kết hợp kĩ thuật tiền xử lí của chúng em thực hiện, mục đích dé nang cao
tính chính xác
Đưa ra quyết định sử dụng thuật toán để đảm bảo cân bằng việc chính
Trang 11xác và độ trễ thực hiện 1 yêu cầuTích hợp về ngôn ngữ C để thuận tiện trong việc cấu hình module cho
Nginx.
Cuối cùng xây dựng được một mô hình máy học có kha năng dự đoán với
tỉ lệ chính xác nhất phục vụ cho việc phòng tránh các yêu cầu độc hại (2)
4 Nội dung 4: Tìm hiểu cách viết và compile một module Nginx Từ đó xây
dựng một module nhằm kết hợp (1) và (2) dé thực hiện phát hiện những
unknown data (những data mà Modsecurity không phát hiện được.
« Muc tiêu: Có thé viết được một module Nginx cơ ban Từ đó phát triển
module lên dé có thể tích hợp được (1) và (2) lại với nhau
e Phuong pháp:
- Tim hiểu tài liệu va những quy tắc cơ bản nhất dé có thé viết được một
module Nginx
- Song song với việc tim hiểu tài liệu, bắt đầu thử nghiệm viết những
module đơn giản, và thử compile và load những module đó vào Nginx (reverse proxy).
- Tiép tục tìm hiểu về module Nginx, cách sử dung Nginx dé load một
Machine Learning module Cuối cùng có thể xây dựng được một Nginxmodule có thê kết hợp được (1) và (2)
5 Nội dung 5: Thực nghiệm với các kịch bản của ứng dụng web:
e Mục tiêu: Có thé đánh giá được một cách chính xác và khách quan
nhất kết quả hoạt động của mô hình mà chúng ta đã xây dựng
e Phuong pháp:
- Thực hiện thử nghiệm trên nhiều cuộc tấn công với các loại lỗi khác
nhau.
- Thực hiện thử nghiệm triển khai các cuộc tan công sử dụng những
payload có áp dụng những biện pháp bypass thông thường.
- Thực hiện thử nghiệm triên khai các cuộc tân công sử dụng những
Trang 12payload có áp dụng những biện pháp bypass nâng cao.
- Thực hiện trai khai nhiều cuộc tấn công cùng một lúc để kiểm tra hiệu
xuất hoạt động của mô hình
; ; công block những traffic
Modsecurity (dong vai tro
độc hai trước khi đến web
là WAF) va web server.
server.
| 2 P
Có thê tự viêt được một rule
Tìm hiệu về cách việt rule l ;
Modsecurity don gian va
Modsecurity va cach „
đảm bảo rule này có thê hoạt
1mport rule đó vào
Trang 13Thực hiện áp dụng
Machine learning đê xây
, Hoàn thành mô hình và có dựng một mô hình có thê „ „
thê phát hiện được tân công.
phát hiện được những
hợp nhất để có thể tích hợp
Thực hiện các phương
được mô hình máy học vào
hap dé xây dựng module
pep yas mô hình WAF hiện tai.
nginx có thé tích hợp mô
hình Máy học vào.
Thực hiện tích hợp mô
-cHoàn thành việc tích hop
Tháng 11/2022 hình máy học vào mô
Tháng 12/2022
mô hình máy học.
hình WAE hiện tại.
Có được kết quả thực
Thực nghiệm và đánh giá nghiệm và đưa ra được báo
kết quả đạt được cáo tổng quan về quá trình
H T Nguyen va K Franke, “Adaptive Intrusion Detection System via
Online Learning,” Proc 12th Int Conf Hybrid, 2012.
J Liang, W Zhao và W Ye, “Anomaly-Based Web Attack Detection: A Deep Learning Approach,” VI International Conference on Network,
Communication and Computing, 2017.
Z Tian, C Luo, J Qiu, X Du va M Guizani, “A Distributed Deep Learning System for Web Attack Detection on Edge Devices”.
M S Hacer Karacan, “A Novel Data Augmentation Technique and
Deep Learning Model for Web Application Security,” 08 11 2021.
Trang 14[Trực tuyến] Available: https://ieeexplore.ieee.org/document/9605636.
[5] A loulin, E Grave, P Bojanowski và T Mikolov, “Bag of Tricks for
Efficient Text Classification,” arXiv:1607.01759
[6] A Tekerek, “A novel architecture for web-based attack detection using
convolutional neural network,” Comput Secur, [Truc tuyén].
Available:
https://www.sciencedirect.com/science/article/p1i/S0167404820303692.
[7] D Madhugiri, “Visualize Deep Learning Models using Visualkeras,”
[Truc tuyến] Available:
learning-models-using-visualkeras/ [Đã truy cập 8 March 2022].
https://www.analyticsvidhya.com/blog/2022/03/visualize-deep-[8] E BARRIL, “Text Classification using Neural Networks,” 2019 [Trực
tuyên] Available: classification-using-neural-networks#A-complex-model-:-LSTM.
https://www.kaggle.com/code/eliotbarr/text-[9] Z Wang, X Ren va S Li, “A Malicious URL Detection Model Based
on Convolutional Neural Network,” 2021.
[10] H Liu, B Lang, M Liu và H Yan, “CNN and RNN based payload
classification methods for attack detection,” Knowledge-Based
Systems, 2019.
[11] M Ito va H Iyatomi, “Web application firewall using character-level
convolutional neural network,” Penang, Malaysia, 2018.
[12] T Mikolov, K Chen, G Corrado va J Dean, “Efficient Estimation of
Word Representations in Vector Space,” 2013.
[13] KERAS, “Keras API reference,” [Truc tuyén] Available:
https://keras.io/api/.
[14] P R McWhirter, K Kifayat, Q Shi va B Askwith, “SQL Injection
Attack classification through the feature extraction of SQL query strings using a Gap-Weighted String Subsequence Kernel,” [Truc tuyén] Available: https://doi.org/10.1016/j.jisa.2018.04.001.
[15] MR_ KNOWNOTHING, “Deep Learning For NLP: Zero To
Transformers & BERT,” 2020 [Truc tuyến] Available:
zero-to-transformers-bert.
https://www.kaggle.com/code/tanulsingh0O77/deep-learning-for-nlp-[16] P MEGRET, “Gensim Word2Vec Tutorial,” 2019 [Trực tuyến].
Available: word2vec-tutorial.
https://www.kaggle.com/code/pierremegret/gensim-[17] SpiderLabs, [Trực tuyến] Available:
https://github.com/SpiderLabs/ModSecurity-nginx.
[18] Emiller, “Emiller’s Guide To Nginx Module Development,” [Truc
tuyén] Available:
Trang 15https://medium.com/@vladislavsd/undocumented-[22] O G o F5, “Compiling Third-Party Dynamic Modules for NGINX
and NGINX Plus,” [Truc tuyén] Available:
https://www.nginx.com/blog/compiling-dynamic-modules-nginx-plus/.
[23] J Kiarie, “How to Install ModSecurity for Nginx on Debian/Ubuntu,”
[Truc tuyén] Available: nginx-debian-ubuntu/.
https://www.tecmint.com/install-modsecurity-[24] [Trực tuyén] Available:
https://stackoverflow.com/questions/3299 1429/compiling module-with-dependant-library.
-nginx-Xac nhan cia CBHD
(Ký tên và ghi rõ họ tên)
GVHD: Ths Đỗ Hoàng Hiển
TP HCM, ngày 21 tháng 9 năm 2022
Sinh viên
(Ký tên và ghi rõ họ tên)
SV1: Doan Anh Dũng SV2: Lê Thị Mỹ Duyên
Trang 162.1.1 Giới thiệu về NGINX -.-ccocsrecccctireeeerrrrerrrrrrirrrrrrrrrrrrrrrrrrrerrre 5
2.1.2 Nguyên lý hoạt động của NGINX «ecceeekieekiieiieiiiiiirie 5
2.1.3 Các tính năng chính của NGINXX e-cceieririiiririiiiiiiriie 5
2.1.4 Phương pháp tao và biên dịch mô-đun trong NGINX 6
2.4.1 Giới thiệu về Modsecurify - cccccicceeccverrrrreerverrrrtrrrrerrrrrrrrrrrrrrrrree 9
2.4.2 ModSecurity Core Rule Set (CRS): -e.c-erieireiriiriririrre 9 2.5 Hoc máy (Machine Learn1n§) -s-cssccxesrrerretrktrtrrtrrrrrirrrrrrrrrrrike 10
2.5.1 Học sâu (Deep Learn1nng) s- «sex 11 2.5.2 Neural Network (mạng 'IƠ-TOT)) - c5cxsxsekekrEkteertetrketrrerkrrreerrrke 12 2.6 Natural Language Processing (NILP) -cs«ecei HH Hiy 17
2.6.1 Giới thiệu về NLP cce+ceecetrrreeEEtrrerrrtrrrerrtrrtrrrrrrrrrrrrrrrrrrrrre 172.6.2 Ứng dụng của NLP -cs2eccetrrerErreretrrrrvrrirrtrrrrrrrrrrrrrrrerre 17
Chương 3 THIẾT KẾ HỆ THỐNG -.22ttccSttrceEttrerttrrrrrrrrrrrrrrrrre 19
Trang 173.1 Tổng quan về hệ thống -c2+++cc22treevEEEtrervvtttrervvtrtrrrvrrtrrrrtrrrrrrrte 19
3.2 Tiền xử lí dữ liệu .-i.ktreriiiitrHHiriiiriririreieriri 20 3.3 Triển khai các mô hình -2+++ecettreceEEEtrereEErrrerrrtrrrarrrrrirsrrrrrrerre 23
3.3.1 Kiến trúc mô hình Birectional-LSTM cse+rcccetrrreeerrre 24 3.3.2 Tổng quan mô hình Bidirectional-L/STM: - ccc-e-:-eccecccrrree 25
3.4 Word Embedding s«-cs+cxesxeerstrktkkttrskrikkiirrikriiriirrrirrrkrrrsrke 26
3.5 Chi tiết quy trình hoạt động của hệ thống -2 cseccerrccc+ 28
3.5.1 Yêu cầu được gửi từ máy tan công đến Reverse proxy -WAE 28
3.5.2 Yêu cầu được xử lý tai máy Reverse proxy — WAE - 28
3.5.3 Yêu cầu được gửi từ máy Reverse proxy — WAF đến máy chủ web 29
Chương 4 HIỆN THỰC HE THỐNG VA THỰC NGHIỆM - - 31
4.1 Hiện thực hệ thống - ece2t+ectrterttrrrztrterEtrirrtrtrrrtrtrrtrrrrrtrrrrrrrre 31 4.1.1 Mô hình triển khai -c: ++ecccccetirrrevEvEEttrrerrrvrrtrrrrrrrrrrrrrrrrrrrrrrre 31 4.1.2 Câu hình các máy thực nghiệm +eeetreeetrreeerrerverrreete 32 4.1.3 Dữ liệu và tiền xử lí .-c.etirieriiiiiriie 33 4.1.4 Cài đặt HH HH HH1 re 34 4.1.5 Tiền xử lý dữ liệu trong NGINX -ccccccreeccccerrrrreeceerrrrree 34 4.1.6 Triển khai ModSecurity vào NGINX s-.+ccsseccerrceet 48 4.1.7 Triển khai mô hình học máy vào NGINX .cccccerrrez 53 4.1.8 Triển khai các mô hình khác -s+++ccettreccvttrrrerrrrrrrrrrrre 62 cao hố ẽẽẽ 65
“AI (in 2 nh <S 65
4.2.2 Kết quả thực nghiệm trên Python es2+ccestrcc+trrerrrrrret 66 4.2.3 So sánh kết quả thực nghiệm với các mô hình khác 66
4.3 Chạy thực nghiệm trên NGINX c-cccsriieirriiriiriiiirirree 67
4.3.1 Trường hợp WAF chỉ sử dụng Modse€CUTIfy -cccs-ceexeeereeree 67
4.3.2 Trường hợp WAF tích hợp Modsecuirty và mô hình
Trang 18Bidirectional-Chương 5 KẾT LUẬN VA HƯỚNG PHAT TRIỂN 2+-z2trzztrrz+2 78
Trang 19Hình 1: Các chức năng chính của NGINX - si 6 Hình 2: Mô hình hoạt động của Reverse Proxy -e cceercrrterrrrrtrrerrriirrrrrrrrrie 8 Hình 3: Mô hình sử dụng Web Application FIrewalÏ -. -‹c-e-e-ceexeerreeeeere 9
Hình 4: Mối quan hệ giữa AI, Machine Learning va Deep Learning 11
Hình 5: Lịch sử deep learning
Hình 6: Mạng nƠ-TOH - 5c 5s< xxx HH HH HH HH HH Hàng nnrrkg
Hình 7: Mô hình tổng quan về hệ thống đề xuất :+:cccccerrrreeeceeerrrree 19
Hình 8: Mô hình Bidirectional LŠ TÌM c cxceksrxrekiirritkiriiririiirrriee 25
Hình 9: Phân tách đường dẫn dựa vào những kí tự đặc biệt 39
Hình 10: Phân tách dữ liệu dựa vào những kí tự đặc DIGt - ‹ -«-©5<«- 40
Hình 11: Đường dan được đưa về dang thống nhắt -+ s++czstree 42Hình 12: Chuyển đường dẫn về dạng mảng $6 .ccec:iiiceeeveerrrrresvevrrrrre 43Hình 13: Dữ liệu được chuyên sang dạng thống nhất -iiiiccccevverrrrrrrrrreeeeee 47
Hình 14: Dữ liệu được chuyên sang dạng mảng sỐ -s++cesree 48
Hình 15: Mô hình được tải thành công vào NGINX -.-«c-cceceeerreree 62 Hình 16: Mô hình Simple 1moelL -.- -s+-s<5seSxs+Extsrxerrtetrttrrkrtrkrrrrrrtkrtrrkrrrree 62
Hình 17: Mô hình LLS”TÌM c-Scccc+rirtrirtritErtiriiiriiiiiiiiiirirrree 63
Hình 19: Mô hình CNN-LSTM ou esseessssecseessseesseesneesstersseesstessseesneesssessseersessneesaseesseesaensneenes 64
Hình 20: Thực nghiệm trên 20% bộ dữ liệu bat thường CSIC chỉ sử dung
Hình 23: Thực nghiệm trên trên 5000 requests đầu trong 20% của bộ dữ liệu bình
thường FWAF chỉ sử dụng ModS€CurIfy «-cc<ccxeisrieekirttriikriiiriirirrree 69
Hình 24: Thực nghiệm trên 20% dữ liệu bắt thường của bộ HttpParams chỉ sử dụng
Trang 20Hình 28: Thực nghiệm trên 20% bộ dữ liệu bat thường FWAF sử dung mô-đun mới
— Ô 73
Hình 29: Thực nghiệm trên 5000 yêu cầu đầu của bộ dữ liệu bình thường của
FWAB sử dụng mô-đun THỚI s << 5£5<£+x*SEE*EEE+kSEEEEErEEkrEkkttrktkkrrkkrrrkrrkrrkrrrerrkeee 74
Hình 30: Thực nghiệm trên 20% dữ liệu bất thường của HttpParams sử dụng
mô-GUT 0 75
Hình 31: Thực nghiệm trên 20% dữ liệu bình thường HttpParams sử dụng mô-đun
TIO cesssssesssssseensssseesesnsseesssseessssseseesnseenessseensssseeessssseeesssseesssnseesessueenssnseesssssseeessuseessssseenensseensssseensanseeessnans 75
Trang 21DANH MỤC BANG
BANG 1: CÁC TU KHOA ĐƯỢC ĐỊNH NGHĨA 2-2-5 sccxccezxxe2 22BANG 2: BANG ANH XA CHUYEN DOI TỪ - 2-52 52S+E‡EEeEEeEererxrree 23BANG 3: SO LƯỢNG BO DU LIEU SAU KHI LỌC c5 s2 s+c+ +2 33
BANG 4: KET QUA DU DOAN CUA MO HINH TREN CAC BO DU LIỆU ó6
BANG 5: KET QUA SO SANH GIỮA MO HINH DE XUẤT VA CÁC MÔ HÌNHKHAC woe ccccccsesscsscssessesscsscsscsvcsvcsssesscsussucsucsucsussessesuesussucsussvssessesaesussueassssseseesseseesnease 66BANG 6: CÁC CHỈ SO TREN DU LIEU THU NGHIEM KHI CHUA TÍCH HỢPMÔ-ĐUƯN SG 5n TT 11121111011211111111 1111111111111 1111111111111 Tre 71
BANG 7: CÁC CHỈ SO TREN DU LIEU THU NGHIỆM KHI ĐÃ TÍCH HOP
MO-DUN oeeccccecsscsssessessesssessessessvssuessesssssucsuessesssssvssussuesssssecsussssssessssssessesstessesseeseesseas 76
BANG 8: SO SÁNH KET QUÁ THỰC NGHIỆM GIỮA MODSECURITY VA
\ (055910)8)1900 12 — 76
Trang 22DANH MỤC TỪ VIET TAT
Natural Language Processing
Long Short-Term Memory
Convolutional Neural Network Recurrent Neural Network
Trang 23Model Module
Neuron
Firewall Session
Trang 24TOM TAT KHÓA LUẬN
Các cuộc tan công mạng đang ngày càng phổ biến, các cuộc tấn công diễn ra dưới
rất nhiều kỹ thuật và hình thức khác nhau, cách thức tấn công cũng thay đổi dần nêncác hệ thống phát hiện xâm nhập dựa vào dấu hiệu là không hiệu quả, thay vào đó,các hệ thống phát hiện xâm nhập sử dụng học máy thường chứng tỏ ưu thế hơn
trong việc phát hiện các cuộc tan công mới Đề đạt được độ chính xác cao, cần có
tập dit liệu lớn và có thé bao gồm nhiều cuộc tan công khác nhau Trong nghiên
cứu này, nhóm tác giả đề xuất một hệ thống phát hiện xâm nhập dựa trên học máy,bên cạnh đó, chính hệ thông này sẽ được tích hợp vào NGINX như một module
Mục dich của việc này nhằm tăng được khả năng bảo vệ dành cho tường lửa, nâng
cao khả năng phân biệt và ngăn chặn những yêu câu độc hại.
Trang 25Chương 1 TONG QUAN DE TÀI
1.1 Giới thiệu về đề tài
Trong khoảng thời gian 5 năm trở lại gần đây, ứng dụng doanh nghiệp ngày càng có
xu hướng chuyền đổi từ ứng dụng desktop sang ứng dụng web Các cuộc tấn công
mạng nhăm vào các máy chủ web và ứng dụng web vẫn đang là một trong những
van đề chủ chốt cần được chú trọng trong một doanh nghiệp đang sử dụng công
nghệ Các cuộc tấn công vào các ứng dụng web ngày càng trở nên phức tạp và khó
bị phát hiện hơn Do đó, việc triển khai các biện pháp để bảo vệ các ứng dụng webnhằm tránh khỏi các cuộc tan công là một công việc hết sức cần thiết
Mặc dù các nhà phát triển ứng dụng web đã triển khai các biện pháp phòng thủ,
nhưng các cuộc tan công vẫn không ngừng phát triển nên nhu cầu về phan mềm
hoặc sản phẩm chủ yếu dé hỗ trợ các quy trình phòng thủ nham nâng cao mức độ
bảo vệ web đã trở nên cấp thiết Một trong những phương pháp được sử dụng phốbiến nhất hiện nay là Web Application Firewall (WAP)
Các WAF thông thường hoạt động bang việc sử dụng chữ ky (signature), chúng
nhận biết cuộc tắn công thông qua dấu hiệu riêng biệt của nó, điều này dựa trên một
cơ sở dữ liệu có sẵn nên nó yêu cầu cơ sở dit liệu lớn Bên cạnh đó việc phụ thuộc
vào cơ sở dir liệu va các logic và quy tắc được mã hóa cứng (sử dụng lập trình
truyền thống) cũng ton tại những hạn chế nhất định.
Trong những thập kỷ gần đây, trí tuệ nhân tạo đã trở thành một cuộc cách mạng
khoa học và đạt được ưu thế trong việc làm chủ công việc mà con người làm Các
nhà nghiên cứu và chuyên gia bảo mật thông tin đã đặc biệt chuyền sang khai thác
khả năng của trí tuệ nhân tạo dé phat hién va chéng lại các cuộc tan công
Với mong muốn có thê tận dụng tối đa những gì đã có nhưng vẫn có thể nắm bắt
được xu hướng hiện tại, trong khóa luận tốt nghiệp này nhóm tác giả sẽ thực hiện
triển khai một WAF kết hợp giữa một WAF thông thường và machine learning
Mục đích của việc kết hợp này là có thé đưa ra một WAF có thé hoạt động hiệu quả,
Trang 26không chỉ phát hiện được những cuộc tấn công đã có chữ kí mà còn có khả năng
phát triển xa hơn, phát hiện được những cuộc tấn công mới
1.2 Mục tiêu của đề tài
Mục tiêu của nhóm hướng đến là có thé dé có thể xây dựng một mô-đun có thé ngăn
chặn được các cuộc tan công Web sử dụng Web Application Firewall như thông
thường Nhưng bên cạnh đó nhóm kết hợp với học máy đề có thé phát hiện được
những tân công mới, đây là những cuộc tân công chưa có chữ ký Cụ thê, mục tiêu
của dé tài như sau:
Nghiên cứu và sử dụng được một Web Application Firewall thông thường,
cụ thê trong khóa luận tốt nghiệp này nhóm sẽ sử dụng ModSecurity
Thực hiện tích hợp và triển khai ModSecurity vào Nginx
Hiểu được những hạn chế còn tổn tại trong một Web Application Firewallthông thường, nhóm sẽ thực hiện tích hợp các phương pháp hiện đại, cụ thể ở
đây là Machine Learning dé có thé khắc phục các hạn chế còn tồn đọng
Đề xuất một phương pháp không những phát hiện được những cuộc tấn công
đã có (những cuộc tân công đã có signature và được lưu trong database) màcòn có thé phát hiện được những cách tan công mới
Từ phương pháp đã đề xuất, nhóm phát triển một mô-đun cho Nginx có khảnăng phát hiện được những cách tan công web hoạt động ở mức tốt
Cuối cùng, nhóm sẽ thực hiện những kịch bản tan công thực tế để có thể
đánh giá được mức độ hoạt động của hệ thống mà nhóm đã xây dựng
1.3 Đối tượng, phạm vỉ nghiên cứu
1.3.1 Đối tượng nghiên cứu:
Công cụ Nginx va Reverse Proxy
Cách viết và biên dich (compile) một mô-đun Nginx
Web Application Firewall (ModSecurity)
Cac phuong phap hoc may
Trang 271.4 Tính mới và tính ứng dụng của đề tài
Trong mục tiêu khóa luận của nhóm, chúng em sẽ phát triển một mô đun tường lửa
có kết hợp giữa mô hình Web Application Eirewall truyền thống và mô hình máy
học, đồng thời, đưa ra phương án giải quyết khả quan đảm bảo độ chính xác cao
nhưng vẫn giữ được tốc độ xử lí của các hành vi Nhóm thực hiện nghiên cứu các
công bồ về van đề tương tự, đưa ra cái nhìn tong thé, sau đó áp dụng vào mô hình
hiện tại Bên cạnh đó, vẫn đảm bảo được tính thực tiễn, có thể áp dụng và dùng nhưmột ứng dụng thực tế
Trang 28Chương 2 CƠ SỞ LÝ THUYET
2.1.NGINX
2.1.1 Giới thiệu về NGINX
NGINX là một web server va reverse proxy server miễn phí, mã nguôn mở Nó
được tạo ra dé giải quyết các van đề liên quan đến việc quản lý các kết nối đồng
thời và hiệu suât truyên tải trên các ứng dụng web tải nặng.
2.1.2 Nguyên lý hoạt động của NGINX
NGINX hoạt động theo mô hình xử lý bat đồng bộ (asynchronous) và sử dụng cơ
chê event-driven đê quản lý các kêt nôi đồng thời Khi có một yêu câu truy cập đên
Server, nginx sẽ tạo ra một tiên trình xử lý (worker process) đê xử lý yêu câu đó
2.1.3 Các tính năng chính của NGINX
Nginx có nhiều tính năng chính, bao gồm:
Web server: Nginx có khả năng xử lý các yêu cầu HTTP và HTTPS truy cậpđến server, hỗ tro nhiéu tinh năng như server-side includes, reverse proxy,caching, SSL/TLS, và nén dữ liệu dé tăng tốc độ truy cập
Reverse proxy server: Nginx có thể được sử dụng làm reverse proxy server,giúp chuyền tiếp yêu cầu từ client đến server hoặc giữa các server khác nhau
để tăng tốc độ truy cập và cải thiện tính sẵn sàng của hệ thống
Load balancing: Nginx cung cấp tính năng cân bằng tải giữa các server, giúpphân phối tải truy cập đến các server khác nhau một cách công bằng và giảm
thiểu tình trạng quá tải trên các server.
High availability: Với tính năng load balancing và chuyển tiếp yêu cầu,
Nginx có khả năng tăng tính sẵn sàng của hệ thống băng cách đảm bảo rằng
yêu cầu sẽ được xử lý bởi server khác nếu server chính gặp sự cố
Performance: Nginx được thiết kế dé xử lý hàng ngàn kết nối đồng thời mộtcách hiệu quả, giảm thiéu tình trang blocking và cải thiện hiệu suất truy cập
Extensibility: Nginx có khả năng mở rộng thông qua các module dé hỗ trợ
các tinh năng phức tap và đáp ứng nhu cau của người dùng
Trang 29- Security: Nginx cung cấp tính năng bảo mật như hạn chế truy cập, chống tan
công DDoS, bảo vệ khỏi các cuộc tan công SQL injection va XSS
What is NGINX?
a ( =(( Proxy
Caching, Load Balancing
Web Server O Application Server
Serve content from disk & FastGGI, uWSGI, Passenger
HTTP traffic
Hình 1: Các chức năng chính cua NGINX
Tóm lại, Nginx là một web server và reverse proxy server đa năng và mạnh mẽ, có
thê cung cap nhiêu tính năng dé giải quyét các vân đê liên quan đên hiệu suât, tính
săn sàng, bảo mật và mở rộng của hệ thông web.
2.1.4 Phương pháp tạo và biên dịch mô-đun trong NGINX
Tùy vào mục đích của mô-đun mà mỗi mô-đun sẽ có những tệp mã nguồn và độ
phức tạp khác nhau Tuy nhiên thì để viết một mô-đun và tích hợp vào NGINX thì
cân có tôi thiêu 2 tập tin cơ bản:
- File code C: chứa code chính được sử dụng dé biên dịch mô-đun
- File config: Moi module cần một tệp cấu hình là một Bourne shell file hướng
dẫn hệ thống về cách xây dựng một module NGINX Tùy vào việc compile
module dynamic hay static mà tập tin config sẽ khác nhau.
Các bước biên dịch một mô-đun động trong NGINX:
Trang 30- _ Biên dịch mô-đun băng cách chạy tập tin configure trước tiên với đối số
with-compat, tạo môi trường xây dựng tiêu chuẩn được hỗ trợ bởi Nginx
Open Source và Nginx Plus:
./configure with-compat add-dynamic-module=
./nginx-hello-world-module
- _ Tiếp theo chạy câu lệnh bên dưới dé xây dựng mô-đun:
make module
2.2 Reverse Proxy
2.2.1 Khái niệm Reverse proxy
Reverse proxy là một server trung gian nằm giữa client và server, chuyên tiếp các
yêu cầu từ client đến server và trả về kết quả từ server cho client Trong kiến trúc
này, client không kết nối trực tiếp với server, mà thay vào đó kết nối với reverse
proxy và yêu cầu của client sẽ được chuyền tiếp đến server bên trong mạng nội bộ.Reverse proxy thường được sử dụng trong các kiến trúc phân tán, mạng lưới và các
hệ thống web quy mô lớn Nginx là một ví dụ phổ biến về reverse proxy server
2.2.2 Mô hình Reverse proxy
Bên dưới là một mô hình trong thực tế sử dung reverse proxy Reverse proxy sẽ
đứng trước máy chủ web, nhận mọi lưu lượng từ Internet đi vào, sau đó thực hiện
chuyền những lưu lượng này đến máy chủ web
Trang 31Hình 2: Mô hình hoạt động của Reverse proxy
2.3 Web Application Firewall
Web Application Firewall (WAF) là một loại phan mềm bao mật dat tai céng vao
(front-end) của một ứng dụng web, giúp bảo vệ ứng dụng khỏi các cuộc tan công
mạng như tan công SQL Injection, Cross-site Scripting (XSS), Cross-site Request
Forgery (CSRF), và các cuộc tan công khác
WAF hoạt động như một bộ lọc tùy chỉnh cho các yêu cầu và phản hồi HTTP/S,
chặn các yêu cau độc hại, và giám sát các hoạt động của ứng dụng web dé phát hiện
các hành vi bất thường WAF có thể được cấu hình dé thực hiện các chức năng như
chặn truy cập từ các địa chỉ IP đáng ngờ, theo dõi các kết nối của người dùng, phântích độ tin cậy của dữ liệu nhập vào và đưa ra các cảnh báo về các hành vi tấn công
mạng.
WAF là một phan quan trong trong bảo mật ứng dụng web, giúp giảm thiểu rủi ro
tan công và giữ an toàn cho dif liệu và thông tin của người dùng Tuy nhiên, việc
triển khai WAF cũng cần cân nhắc đến các yếu tố khác như hiệu suất, tương thích
và chi phí.
Trang 322.4.1 Giới thiệu về Modsecurity
ModSecurity (còn được gọi là ModSec) là một Web Application Firewall, nó được
triển khai dé bảo vệ trang web và ứng dụng ngăn cản nhiều cuộc tan công phô biến
Nó thiết lập và ngăn chặn các yêu cầu tấn công trước khi chúng đến được ứng dụng
OWASP ModSecurity Core Rule Set.
2.4.2 ModSecurity Core Rule Set (CRS):
CRS là một bộ các quy tắc phát hiện tấn công chung có thể sử dung cho
Modsecurity hoặc tưởng lửa tương thích CRS có mục đích nhằm bảo vệ ứng
dụng web khỏi một loạt các cuộc tấn công, bao gồm cả Top 10 OWASP CRS
Trang 33cung cấp khả năng chống lại nhiều cuộc tân công hiện nay phổ biến, bao gồm
SQL Injection, Cross-site Scripting, Local File Inclusion,
2.5 Học máy (Machine Learning)
Học may (Machine Learning) là một lĩnh vực của trí tuệ nhân tạo (Artificial
Intelligence - AI) nghiên cứu về cách xây dựng các thuật toán và mô hình để
máy tính có thể học hỏi và cải thiện kết quả dự đoán của chúng một cách tự
động.
Học máy cho phép máy tính tự động học hỏi từ dữ liệu đầu vào và chuyển đổi
dữ liệu đó thành các mô hình dự đoán Để làm được điều này, máy tính sử dụng
các kỹ thuật và thuật toán phân tích dữ liệu như regression, clustering, decision
trees, neural networks, support vector machines, và deep learning.
Ứng dụng của học máy là rất đa dạng và được sử dụng trong nhiều lĩnh vực
như xử lý ngôn ngữ tự nhiên, nhận dạng hình ảnh, phân loại văn bản, thị giác
máy tính, điều khiển tự động, dự đoán tín dụng, thị trường tài chính và nhiều
lĩnh vực khác.
Học máy đang được sử dụng rộng rãi trong các ứng dụng thực tế và được xem
là một công cụ quan trọng trong việc giải quyết các bài toán phức tạp.
10
Trang 34Since an early flush of optimism in the 1950s, smaller subsets of artificial intelligence - first machine learning, then
deep learning, a subset of machine learning - have created ever larger disruptions.
Hình 4: Mối quan hệ giữa AI, Machine Learning va Deep Learning.
2.5.1 Hoc sau (Deep Learning)
Học sau (Deep learning) là một phan cua lĩnh vực hoc máy, sử dụng các mang
no-ron nhân tao (artificial neural networks) dé học và hiểu dữ liệu Khác với các mô
hình học máy truyền thống, học sâu có khả năng học và giải quyết các bài toán phức
tạp, đặc biệt là trong các lĩnh vực như thị giác máy tính (computer vision) và xử lý
ngôn ngữ tự nhiên (natural language processing).
Học sâu được gọi là "sau" bởi vì các mô hình neural networks được sử dụng có rấtnhiều lớp (layers) khác nhau, từ đó giúp nó có khả năng học được các mẫu phức tạp
hơn Các mô hình học sâu có thé được huấn luyện đề phát hiện và phân tích các đặc
trưng ấn trong dữ liệu, sau đó áp dụng các phương pháp học tăng cường dé cải thiện
kết quả dự đoán
Deep learning được nhắc đến nhiều trong những năm gần đây, nhưng những nền
tang cơ bản đã xuất hiện từ rat lâu
11
Trang 35Cụ thé như hình dưới đây:
Deep Neural Network
+ Adjustable Weights + Learnable Weights and Threshold + XOR Problem + Solution to nonlinearly separable problems = Limitations of learning prlor knowledge + Hierarchical feature Leeming
+ Weights are not Learned + Big computation, local optima and overfiting + Kermel function: Human Intervention
Hinh 5: Lich su deep learning
2.5.2 Neural Network (mang no-ron)
Mang neural (neural network) là một mô hình toán học được lay cảm hứng từ cầu
trúc và hoạt động của hệ thông thần kinh của con người Mạng neural là một hệ
thống tính toán đồng thời trên một tập hợp các "nơ-ron" nhân tạo (artificial neurons)
để giải quyết các bài toán phức tạp trong lĩnh vực học máy và trí tuệ nhân tạo
Mỗi nơ-ron trong mạng neural nhận đầu vào từ các nơ-ron khác, thực hiện một phéptính toán đơn giản, sau đó chuyên kết quả cho các nơ-ron khác Kết quả cuối cùng
được tính toán từ các nơ-ron cuối cùng của mạng Mạng neural có thê được huấn
luyện để tự động học các mối quan hệ và đặc trưng an trong dữ liệu đầu vào, và từ
đó áp dụng dé giải quyết các bài toán phức tạp như nhận dạng hình ảnh, xử lý ngôn
ngữ tự nhiên, và dự báo.
2.5.2.1 Tam quan trong của mạng no-ron
Tầm quan trọng của neural network nam ở khả năng của chúng trong việc giải quyết
các bài toán phức tạp và khó khăn trong các lĩnh vực khác nhau như nhận dạng hình
ảnh, xử lý ngôn ngữ tự nhiên, dự báo tài chính, và nhiều ứng dụng khác Mạng
nơ-12
Trang 36ron có thê hiêu rõ dữ liệu phi câu trúc và đưa ra các nhận xét chung mà không cân
đào tạo cụ thể Tam quan trọng của neural network có thể được tóm tắt như sau:
Xử lý dữ liệu phức tap: Neural network có thé học và xử lý các dữ liệu phức
tạp mà các phương pháp truyền thống khác không thé làm được
Khả năng học tập: Neural network có khả năng học tập và cải thiện hiệu suất
theo thời gian.
Giải quyết các bài toán khó khăn: Neural network có thé giải quyết các bàitoán phức tạp trong nhiều lĩnh vực như nhận dạng hình ảnh, xử lý ngôn ngữ
tự nhiên, dự báo tài chính, và nhiều ứng dụng khác
Độ chính xác cao: Neural network có khả năng đạt được độ chính xác cao
trong các bài toán dự đoán và phân loại.
Đa đạng về kiến trúc: Neural network có nhiều kiến trúc khác nhau cho phéptùy chỉnh dé phù hợp với các bài toán cụ thé
Tóm lại, tâm quan trọng của neural network năm ở khả năng của chúng trong việc
giải quyết các bài toán phức tạp và khó khăn, đạt được độ chính xác cao và có thé
được tùy chỉnh cho các bai toán cụ thé
2.5.2.2 Công dung của mang no-ron
Mang neural (Neural network) là một công nghệ quan trọng trong lĩnh vực machine
learning và đã được sử dụng rộng rãi trong nhiều ứng dụng khác nhau Sau đây là
một sô công dụng của neural network:
Nhận dạng hình ảnh: Neural network có thể được sử dụng để nhận dạng hìnhảnh, từ việc phát hiện khuôn mặt đến phân tích ảnh y tế để chân đoán bệnh
Xử lý ngôn ngữ tự nhiên: Neural network có thé được sử dụng dé xử lý ngônngữ tự nhiên, từ việc phân loại tin nhắn thư rác đến tạo ra các trả lời tự động
trong ứng dụng chatbot.
Dự báo va dự đoán: Neural network có thé được sử dụng dé dự báo và dự
đoán trong nhiều lĩnh vực khác nhau, từ dự đoán giá chứng khoán đến dự
báo thời tiết
13
Trang 37- Tu động hóa: Neural network có thé được sử dụng dé tự động hóa nhiều tác
vụ, từ việc tìm kiếm thông tin trên mạng đến phân tích dữ liệu cho việc đưa
ra quyết định
- Robotics: Neural network có thé được sử dung dé diéu khién robot va lam
cho chúng có thé học và thích nghi với môi trường xung quanh
- _ Tối ưu hóa: Neural network có thể được sử dụng dé tối ưu hóa các quá trình
sản xuất và hoạt động, từ việc quản lý kho hàng đến tối ưu hóa hệ thống cung
ứng.
Trên đây chỉ là một vài ví dụ về các ứng dụng của neural network Với khả năng
học tập và xử lý dữ liệu phức tạp, neural network đang trở thành công nghệ quan
trọng trong nhiều lĩnh vực và được sử dụng rộng rãi trong các ứng dụng khác nhau.
2.5.2.3 Cách thức hoạt động của mạng nơ-ron
Mang neural (Neural network) hoạt động dựa trên các phép tính số học được thực
hiện trên một số lượng lớn các đơn vi tính toán, được gọi là neuron Mang neural
bao gôm nhiêu lớp neuron liên kêt với nhau đề thực hiện các tác vụ khác nhau.
Mỗi neuron nhận đầu vào từ các neuron trong lớp trước đó, thực hiện các phép tính
và truyền đầu ra đến các neuron trong lớp tiếp theo Các phép tính này thường bao
gồm tong trọng số các đầu vào và áp dụng một hàm kích hoạt dé tính toán đầu ra
của neuron.
Khi một tác vụ được đưa vào mạng neural, dữ liệu đầu vào sẽ được đưa vào lớp đầu
tiên của mang neural và truyền qua các lớp neuron dé đưa ra kết quả cuối cùng
Mang neural sẽ sử dung các kết quả trước đó dé tinh chỉnh các trọng số giữa các
neuron trong quá trình huấn luyện, từ đó cải thiện khả năng dự đoán và đưa ra kết
quả chính xác hơn.
Quá trình này được gọi là "backpropagation" và là một phương pháp quan trọng để
huân luyện mang neural Trong quá trình huan luyện, các dau vào và dau ra mong
14
Trang 38muôn đã biệt trước được cung cap cho mang neural đê tinh chỉnh các trọng sô va
câu trúc mạng neural đê cải thiện khả năng dự đoán.
Tóm lại, mang neural hoạt động băng cách két nôi các lớp neuron đê thực hiện các
phép tính sô học trên các dau vào va đưa ra kêt quả dự đoán Quá trình huân luyện
mang neural bao gôm cập nhật các trọng sô giữa các neuron dé tôi ưu hóa kêt quả
2.5.2.4 Những loại mang no-ron
Có nhiều loại mạng neural khác nhau, mỗi loại được thiết kế dé giải quyết một loại
vân đê khác nhau Dưới đây là một sô loại mạng neural phô biên:
- Mang neural truyén thang (Feedforward Neural Network): Đây là loại
mang neural cơ bản nhất, trong đó dữ liệu chi truyền một chiều từ đầu vàođến đầu ra mà không có phản hồi Mạng neural truyền thăng thường được sử
dụng trong các bài toán phân loại và dự đoán.
- Mang neural tích chập (Convolutional Neural Network - CNN): Được sử
dụng rộng rãi trong xử lý ảnh và video, mạng neural tích chập là một loại
15
Trang 39mạng neural được thiết kế để nhận diện các đặc trưng cục bộ của dữ liệu đầuvào, như các đường biên và các đối tượng trên hình ảnh.
Mạng neural tái tạo (Autoencoder Neural Network): Được sử dụng đểgiảm chiều dữ liệu, mạng neural tái tạo là một loại mạng neural có khả nănghọc cách biểu diễn dữ liệu đầu vào dưới dạng một sỐ lượng nhỏ các đặctrưng, giảm thiểu thông tin không cần thiết và tăng tốc xử lý
Mạng neural phản hồi (Recurrent Neural Network - RNN): Loại mạngneural này có khả năng lưu giữ thông tin liên quan đến quá khứ và sử dụng
nó đề đưa ra dự đoán về tương lai Mạng neural phản hồi được sử dụng trongcác bài toán liên quan đến chuỗi thời gian, như dịch máy hoặc phân tích tín
hiệu.
Mang neural tự học (Self-Organizing Maps - SOM): Được sử dụng dé tao
ra các ban đồ đa chiều của dữ liệu, mang neural tự học có kha năng phân loại
dữ liệu theo các nhóm tương tự nhau và thể hiện chúng trên một bản đồ hai
chiều, giúp người dùng đễ dàng quan sát và hiểu dữ liệu
Ngoài ra còn nhiều loại mạng neural khác như Long Short-Term Memory (LSTM),
Gated Recurrent Unit (GRU), Deep Belief Network (DBN), Generative Adversarial
Network (GAN), và nhiều loại mang neural khác được thiết kế dé giải quyết các bài
toán khác nhau.
2.5.2.5 Đào tạo mạng nơ-ron
Dé dao tạo một mang neural, chúng ta cân thực hiện các bước sau đây:
Chuan bi dữ liệu: Dữ liệu đầu vào là yếu tố quan trọng trong quá trình đào
tạo mạng neural Cần xác định và chuẩn bị dữ liệu đầu vào, cũng như chuẩn
bị dữ liệu đầu ra tương ứng cho mỗi dữ liệu đầu vào
Chọn kiến trúc mạng neural: Chọn loại mạng neural phù hợp với bài toán cầngiải quyết, xác định số lượng các lớp, số lượng neuron trong mỗi lớp, cũngnhư hàm kích hoạt và thuật toán tối ưu phù hợp
16
Trang 40Khởi tao mạng neural: Khởi tạo các trọng số ngẫu nhiên va bias dé bắt đầu
quá trình đào tạo mạng neural.
Huấn luyện mang neural: Sử dụng dữ liệu huấn luyện dé điều chỉnh trọng số
và bias của các lớp trong mạng neural Quá trình huấn luyện này bao gồmcác bước tiền xử lý dữ liệu, chia dữ liệu thành tập huấn luyện và tập kiểm tra,
và sử dụng các thuật toán tối ưu như Stochastic Gradient Descent đề tối thiểu
suât của mạng neural trên dữ liệu mới.
Quá trình đào tạo mạng neural là một quá trình lặp đi lặp lại, đòi hỏi sự tập trung và
thử và sai đê tìm ra các siêu tham sô tôi ưu nhât cho bài toán cân giải quyết.
2.6 Natural Language Processing (NLP)
2.6.1 Giới thiệu về NLP
Natural Language Processing (NLP) là một lĩnh vực của trí tuệ nhân tạo (AI) và
khoa học máy tính (Computer Science) tập trung vào việc giúp máy tính hiểu và tao
ra ngôn ngữ tự nhiên (natural language) như con người Nó liên quan đến khả năng
xử lý và hiêu ngôn ngữ phô biên của con người, bao gôm cả tiêng nói va văn bản.
2.6.2 Ứng dụng của NLP
NLP được sử dụng rộng rãi trong nhiều ứng dụng, bao gồm:
- _ Xử lý ngôn ngữ tự nhiên: NLP giúp máy tính hiểu và tạo ra các câu và văn
bản tự nhiên, cho phép máy tính tương tác với con người bằng ngôn ngữ tự
nhiên.
17