Chính vì vậy, trong khóa luận này, chúng tôi hướng tới việc nghiên cứu, xây dựng một công cụ có thể thực hiện được công việc kiểm thử hệ thống một cách hoàn toàn tự động, kết hợp với phư
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA MẠNG MAY TÍNH VÀ TRUYEN THONG
NGUYEN XUAN NHƯ
LE VAN HOANG
KHOA LUAN TOT NGHIEP
NGHIÊN CỨU XÂY DUNG CONG CỤ KIEM THU’
THAM NHAP TU DONG SU DUNG PHUONG PHAP
HOC TANG CUONG
FULLY AUTOMATED PENETRATION TESTING TOOL USING
DEEP REINFORCEMENT LEARNING
KY SU NGANH AN TOAN THONG TIN
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA MẠNG MAY TÍNH VÀ TRUYEN THONG
NGUYEN XUAN NHƯ - 18521215
LE VAN HOANG - 18520780
KHOA LUAN TOT NGHIEP
NGHIEN CUU XAY DUNG CONG CU KIEM THU
THAM NHAP TU DONG SU DUNG PHUONG PHAP
HOC TANG CUONG
FULLY AUTOMATED PENETRATION TESTING TOOL USING
DEEP REINFORCEMENT LEARNING
KY SU NGANH AN TOAN THONG TIN
GIANG VIEN HUONG DAN
THS PHAN THE DUY
TP HO CHi MINH, 2022
Trang 3Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số
¬ eee eee eee eee een eeee ngây của Hiệu trưởng Trường Đại hoc Công
nghệ Thông tin.
Trang 4Chúng tôi xin gửi lời tri ân và biết ơn đến ThS Phan Thế Duy đã trực tiếp quan tâm,
đồng hành và hướng dẫn tận tình trong suốt quá trình chúng tôi tìm hiểu và thực hiện đề
tài.
Bên cạnh đó, với tình cảm sâu sắc va chân thành, chúng tôi cũng xin cảm ơn các thầy
cô, anh chị đang công tác tại Phòng thí nghiệm An toàn thông tin - InSecLab vì đã luôn tạo
điều kiện về cơ sở vật chất với hệ thống máy chủ hiện đại Đặc biệt, chúng tôi cũng xin gửi lời cảm ơn chân thành đến anh Nghi Hoàng Khoa, anh đã luôn sẵn sàng nhiệt tình hỗ trợ chúng tôi về chuyên môn lẫn kinh nghiệm trong các hoạt động nghiên cứu và thực hiện
khoá luận.
Cuối cùng, do kiến thức chuyên môn còn hạn chế nên khóa luận chắc chắn không tránh khỏi những thiếu sót Rất mong nhận được nhận xét, ý kiến đóng góp, phê bình từ quý thầy cô trong hội đồng để khóa luận được hoàn thiện hơn.
Nhóm thực hiện.
Trang 5[TÓM TẮT KHOÁ LUẬN
1_ TỔNG QUAN DE TÀI
1.1 Lý do chọn đề tài| ẶccẶcẶẶ.
1.2 Phương pháp nghiên
cứu| -1.3 Mục tiêu nghiên
cứu| [L4 Phạm vi và Đồi tượng nghiên cứu|
-1.5 Cấu trúc Khóa luận tốt nghiệp|
-2_ CƠ SỞ LÝ THUYÊỄT]| 2.1 Kiểm thửthâmnhập|
2.11 Tổng quan|
2.1.2 Phương pháp tiếp
cận| 2.13 Công cụhô trợi
2.2 _
ReinforcementLearning| -2.2.1 Tổng quan|L - c So [2.2.2 Các thành phan chính|
2.2.3 Các hình thức tiếp cận|
2.31 O-Learnmng]
2.3.2
DeepQ-Learning] -2.3.3 DeepQ-Network|[ ẶẶẶ ee eee 2.3.4 Asynchronous Advantage Actor-Critic|
2.4 Tình hình nghiên cứu và các công trình liên quan|
Trang 63.2 Phương pháp xây dựng| - 3
3.2.1 Luông hoạt động chính| 37
3.2.2 Ung dung Metasploit Framework| - 38
8.2.3 Tao mô hình hoc may] 39
{3.2.4 Luông hoạt động chi tiết| 43
4 HIỆN THỰC VÀ ĐÁNH GIÁ, THẢO LUẬN) 45 41 Hiện thực -.- - cc , 45
4.11 Xây dựng công cụ| - 45
[Thu thập thông tin mục tiêu|} 45
[Khai thác) 46
Mạng nơron| - 46
[Parameter 5erver| - 4
Woker Thread|] - 4
12 Môi trường thực nghiệm| 51
[42 Kết quả thực nghiệm và thảo luận| 52
4.21 Kichbản thựcnghiệm| 52
[4.2.2 Các kết quả thực nghiệm| 54
_T : 4@V / › ằôằẰ 60
5 KẾT LUẬN VÀ HUONG PHAT TRIỂN 62
5.1 Kếtluận| eee 62
5.2 Huong phattrién) 2 eee 63
vi
Trang 7E1 Hình ảnh mô tả OWASP Top 10 năm 2017 và sự thay đổi trong năm
2.7 Hình ảnh mô tả vị trí của học tăng cường trong lĩnh vực hoc may| 15
2.8 Hình ảnh mô tả cho vi dụ chú chuột hoạt động trong mê cung] 15
2.9 Hình ảnh mô tả các thực thể chính của RI| 18
[210 Hình ảnh mô tả cho việc sử dung mạng nơ-ron đơn giản thay cho
bang giá trị trong Q-Learning] -. 26
2.13 Hình ảnh mô hình kiến trúc của công cụ trong nghiên cứu của
Trang 8thâm nhập tự động| - 40 3.3 Hình anh mô tả mô hình học phân tán của công cụ| 42
Luong hoạt động của công cụ ở chế độ huan luyện| 44
B5 Luéng hoạt động của công cụ ở chế độ kiểm thử] Lee 44
[41 Hình ảnh kết qua khai thác của công cụ| - 55
[42 Hình ảnh kết quả khai thác của công cụ| 56
viii
Trang 9[42 Bang thông tin cấu hình máy ảo cài đặt công cụ| 52
[43 Bảng danh sách cau hình mang no-ron thử nghiệm| 53
4.4 Bảng danh sách thread và số lần thử| - 54
[4.5 Bang kết qua dao tạo trường hợp 20 threads và 6000 lần thu] 57
[4.7 Bảng kết quả dao tạo trường hợp 20 threads và 10000 lần thử| 58
máy UbÑNfu| 6Ã Ae %Ạ 6⁄./ sees 59
ID 9 Bảng kết quả đào tạo trường hợp 10 threads và 10000 lần thử| 59
Trang 10Danh mục từ viết tắt
DQN Deep Q-Network MDP Markov Decision Processes
RL Reinforcement Learning
Trang 11Giá trị mat mát
Hành động Hành động tham lam Hàm giá trị
Học tăng cường sâu Kinh nghiệm
Lớp đầu vào Lớp đầu ra Lớp ẩn
Trạng thái
Loss value
Action Greedy action Value function
Activation function Loss function
Advantage Function Reinforcement learning
Supervised learning
Unsupervised learning Deep learning
Deep Reinforcement learning
Experience
Input layer Output layer Hidden layer
Trang 12Trọng số mạng Weight
Van dé hồi quy Regression problem
xii
Trang 13Khoa học - công nghệ ngày càng phát triển, việc sử dụng cơ sở hạ tầng hệ thống thông tin ngày càng trở nên phổ biến cho các cá nhân, tổ chức và doanh nghiệp.
Di cùng với đó là những nguy cơ tiềm ẩn vẻ việc trở thành mục tiêu của những cuộc tấn công mạng với những mục đích khác nhau.
Khi đó, một trong những biện pháp được áp dụng phổ biến để đánh giá tính bảo
mật, rủi ro an toàn thông tin của hệ thống là kiểm thử thâm nhập (Penetration
Testing) Mặc dù hiện nay đã có các công cụ hỗ trợ kiểm thử khác nhau và chúng
cũng đem lại hiệu quả to lớn cho lĩnh vực này, tuy nhiên các công cụ này vẫn còn
dua vào con người với yêu cầu trình độ năng lực nhất định Tuy nhiên nhân lực trình độ cao hiện nay về an toàn thông tin là chưa đủ, đồng thời con người thì
không thể tránh khỏi những sai sót Chính vì vậy, trong khóa luận này, chúng tôi hướng tới việc nghiên cứu, xây dựng một công cụ có thể thực hiện được công
việc kiểm thử hệ thống một cách hoàn toàn tự động, kết hợp với phương pháp
học tăng cường để tăng độ chính xác và tính hiệu quả Sau cùng là phần đánh giá
hiệu suất trên các môi trường thử nghiệm va dé xuất hướng mở rộng để có thể phát triển công cụ xa hơn trong tương lai.
Trang 14Chương 1
TỔNG QUAN ĐỀ TÀI
Tóm tat chương
Trong chương này, chúng tôi xin trình bày tóm tắt vẻ bài toán tự động hóa kiểm
thử thâm nhập Đồng thời đưa ra mục tiêu, phạm vi nghiên cứu, cũng như cầu
trúc của khóa luận.
11 Lý do chọn dé tài
Ngày nay, với sự phát triển mạnh mẽ của khoa học và công nghệ, sự kết nối ngày càng tăng của thế giới kỹ thuật số thông qua việc sử dụng Internet đã thay đổi
cách thức hoạt động của các cá nhân, doanh nghiệp và chính phủ, tạo nên những
lợi ích về kinh tế và xã hội đáng kể Tuy nhiên, đi cùng với đó là sự tăng lên về
mặt cơ hội cho tội phạm mạng thực hiện các cuộc tấn công độc hại với hy vọng có được quyển truy cập vào dữ liệu nhạy cảm với những mục đích khác nhau [4].
Trong bối cảnh đó, một trong những phương pháp được áp dụng phổ biến nhất
để đánh giá tính bảo mật của hệ thống máy tính là Kiểm thử thâm nhập
(Penetra-tion Testing) 1Ì Các công cụ hỗ trợ kiểm thử thâm nhập bao gồm các máy quét
mạng và lỗ hổng bảo mật cũng như các thư viện về những lỗ hổng bảo mật đã
biết Chẳng hạn như Metasploit Framework — một công cụ mã nguồn mở được
phát triển từ năm 2003, nó chứa một thư viện phong phú về cách khai thác lỗ
hổng hệ thống đã biết cùng với các công cụ quét hữu ích khác nhằm thu thập
Những công cụ như thế này cho phép các Pentester làm thông tin về mục tiêu
việc nhanh hơn, bằng cách chủ yếu tập trung vào việc tìm kiếm lỗ hổng và lựa
Trang 15chọn cách khai thác phù hợp (15) Mặc dù chắc chắn đã mang lại hiệu quả lớn cho
lĩnh vực an ninh mạng, tuy nhiên nhiên các công cụ này vẫn dựa vào con người,
những người dùng được đào tạo, có kiến thức và kỹ năng nhất định Ngoài ra khi các hệ thống ngày càng phức tạp, nhiệm vụ đánh giá bảo mật theo cách thủ công
sẽ trở nên khó thực hiện hơn rất nhiều, chưa kể đến rủi ro sai sót do con người.
Từ những điều trên, chúng tôi nhận thấy việc tự động hóa quá trình kiểm thử
thâm nhập là một nhu cầu cần thiết Vì vậy chúng tôi muốn xây dựng được một
công cụ có thể thực hiện quá trình này một cách hoàn toàn tự động, nhằm tiết kiệm thời gian mà vẫn đảm bảo được sự hiệu quả, đáp ứng được nhu cầu về nguôn nhân lực an toàn thông tin hiện nay.
12 Phương pháp nghiên cứu
Tìm hiểu quy trình kiểm thử xâm nhập, từ đó xây dựng thành công công cụ kiểm
thử thâm nhập hoàn toàn tự động, kết hợp ứng dụng phương pháp học tăng cường (Reinforcement Learning) với mô hình và thuật toán phù hợp để tăng tính
hiệu quả của việc khai thác như giảm thời gian khai thác, tăng tỉ lệ khai thác
thành công, tích lũy dữ liệu khai thác thành công cho những lần khai thác tiếp theo Bên cạnh đó, chúng tôi tiền hành triển khai, đánh giá thực tế hiệu suất của
công cụ và đưa ra hướng mở rộng phù hợp trong tương lai.
13 Mục tiêu nghiên cứu
Khóa luận gồm hai mục tiêu chính như sau:
1 Xây dựng công cụ kiểm thử thâm nhập tự động.
2 Ứng dụng học tăng cường sâu nhằm tăng hiệu quả khai thác.
1.4 Phạm vi và Đối tượng nghiên cứu
Chúng tôi thực hiện tìm hiểu và xây dựng công cụ dựa trên công cụ DeepExploit
(Được công bồ tại hội nghị Black Hat USA 2018 Asernal) của tác giả Isao
Trang 16Chương 1 TỔNG QUAN ĐỀ TÀI
Takaesu Công cụ của chúng tôi tập trung vào quá trình quét và khai thác lỗ hổng trực tiếp trên máy chủ mục tiêu thông qua Metasploit-Framework trong điều kiện
lý tưởng Trong đó, sử dụng phương pháp học tăng cường sâu với mô hình DON
kết hợp thuật toán A3C để tiến hành huấn luyện và lưu trữ dữ liệu khai thác Đồng thời, sau quá trình kiểm thử, công cụ sẽ hỗ trợ xuất báo cáo vẻ các lỗ hổng
đã khai thác được một cách trực quan, hỗ trợ người dùng có thể đễ dàng quan sát
và đánh giá Ngoài ra, nghiên cứu này còn tập trung vào những môi trường chứa
lỗ hổng, chẳng hạn như Metasploitable2.
1.5 Câu trúc Khóa luận tot nghiệp
Khóa luận được tổ chức trong 6 chương như sau:
* Chuong|i} TONG QUAN ĐỀ TÀI
Trình bay khái quát định hướng nghiên cứu của khóa luận mà chúng tôi
muốn hướng tới.
* Chương |D} CƠ SỞ LÝ THUYET
Trình bày các định nghĩa, khái niệm cũng như những kiến thức nền tảng để
có thể thực hiện được nghiên cứu Déng thời trình bày sơ lược một số công
trình liên quan có cùng hướng nghiên cứu.
« Chương|| PHƯƠNG PHÁP THUC HIEN
Là phần trọng tâm của khoá luận, trình bày những nội dung chính về phương
pháp thực hiện và mô hình được sử dụng.
s Chuong|4} HIỆN THUC, ĐÁNH GIÁ VÀ THẢO LUẬN
n quá trình hiện thực hóa phương pháp dé cập ở Chương] Sau đó
trình bày phương pháp thực nghiệm, đánh giá kết quả và thảo luận chung.
iv] ®: ies 8,as) a Om»
* Chuong|5} KET LUẬN VÀ HƯỚNG PHÁT TRIỂN
Đưa ra kết luận về đẻ tài, đề xuất một số hướng phát triển mở rộng cho các
nghiên cứu trong tương lai.
Trang 17CƠ SỞ LÝ THUYET
Tóm tat chương
Trong chương này, chúng tôi sẽ trình bày cơ sở lý thuyết cần thiết của khóa luận Bao gồm cái nhìn chung vẻ kiểm thử thâm nhập và phương pháp tiếp cận Bên cạnh đó là cơ sở lý thuyết về học tăng cường, các hình thức, mô hình và ưu nhược điểm cho những bài toán khác nhau Đồng thời, chúng tôi trình bày tóm tắt về
những công trình nghiên cứu liên quan đến tự động hóa kiểm thử thâm nhập và
những điểm khác của khóa luận này với những nghiên cứu trước đây.
2.1 Kiểm thử thâm nhập
2.1.1 Tổng quan
Ngày nay, bao mật thông tin là vô cùng quan trọng Bởi, xã hội ngày nay được
gọi là xã hội thông tin, ngày càng có nhiều những thông tin bí mật được lưu trữ dưới dạng điện tử trên các hệ thống máy tính và các hệ thống đó thường được
kết nối với mang máy tính [3] Những thông tin này bao gồm rất nhiều lĩnh vực
khác nhau như kinh tế, tài chính, y tế, giáo dục, khoa học, thậm chí là quân sự Chính vì vậy giá trị của một số thông tin là không thể đo lường Điều này thể
hiện những thách thức mới đối với những người làm việc trong lĩnh vực công
nghệ thông tin Họ phải đảm bảo rằng các hệ thống đó càng an toàn càng tốt và thông tin bí mật sẽ không bị tiết lộ Nếu dữ liệu được lưu trữ trong một hệ thống
Trang 18Chương 2 CƠSỞ LY THUYẾT
hành các bài kiểm tra thâm nhập thường xuyên, được gọi là kiểm thử thâm nhập,
ví dụ như mô phỏng lại hoạt động độc hại của một kẻ tấn công mạng.
2.1.2 Phương pháp tiếp cận
Mặc dù kiểm thử thâm nhập là một cách tiếp cận để tăng cường và củng cố an ninh hệ thống thông tin, nhưng nó chắc chắn không nói lên rằng hệ thống là hoàn toàn an toàn và không thể bi hacker tấn công Kiểm thử thâm nhập có thể phát hiện các van dé bảo mật đã biết công khai, những lỗ hổng đã được tiết lộ và công.
bố trước đó [14].
Có rất nhiều phương pháp hỗ trợ kiểm thử thâm nhập nên đôi khi có thể sẽ khó khăn để có thể lựa chọn một phương pháp phù hợp Người kiểm thử càng có nhiều kinh nghiệm, càng có nhiều kiến thức tốt hơn về môi trường được kiểm tra thì càng có thể đưa ra lựa chọn chính xác hơn về một phương pháp phù hợp,
chang hạn như Open Source Security Testing Methodology Manual do ISECOM
tạo và duy trì hoặc Open Web Application Security Project (OWASP) đối với các
ứng dụng web và phần mềm.
Đối với OWASP, đây là một dự án được tạo ra và duy trì bởi tổ chức OWASP Một tổ chức phi lợi nhuận gồm có nhiều thành viên là các chuyên gia từ ngành phát triển ứng dụng web hoặc các chuyên gia trong lĩnh vực phần mềm OWASP
-hướng tới phương pháp xây dựng những ứng dụng và dịch vụ web một cách an
toàn, bang cách mô tả những gì cần làm tại mỗi giai đoạn phát triển phan mềm
để có thể đạt được mục tiêu là sự an toàn nhất có thể cho sản phẩm Ngoài ra, OWASP cũng cung cấp một báo cáo được cập nhật thường xuyên về các nguy cơ bảo mật đối với bảo mật ứng dụng web, tập trung vào 10 rủi ro, lỗ hổng quan trọng và phổ biến nhất, được gọi là OWASP TOP 10.
Trang 192017
A02:2017-Broken Authentication
‘A03:2017-Sensitive Data Exposure
‘A05:2017-Broken Access Control
A06:2017-Security Misconfiguration
‘A09:2017-Using Components with Known Vulnerabilities
‘A10:2017-Insufficient Logging & Monitoring
A06:2021-Vulnerable and Outdated Components
‘A07:2021-Identification and Authentication Failures
Poona {New} AOB:2021-Software and Data Integrity Failures
.A09:2021-Security Logging and Monitoring Failures* (New) A10:2021-Server-Side Request Forgery (SSRF)*
* From the Survey
HINH 2.1: Hình ảnh mô tả OWASP Top 10 năm 2017 và sự thay đổi
trong năm 2021
Những phương pháp tiếp cận vừa được chúng tôi đề cập thường đưa ra gợi ý về một quy trình hoặc cấu trúc của một bài kiểm tra thâm nhập, thường chia làm
nhiều giai đoạn, trong đó mỗi đầu ra từ giai đoạn này sẽ là đầu vào cho giai đoạn
tiếp theo Tuy nhiên, khi áp dụng cho một mạng cụ thể, những giai đoạn này sẽ được chia làm một chuỗi các bước khác nhau để đánh giá một cách logic hệ thống được kiểm tra fig.
"ý / / Gathering /
Gathering of Launch remote |Gather relevant Attempt to Use compromised Erase all evidence
relevant information| |exploits in order to information about penetrate further |computer and |of penetration in
|about the target, compromise the successfully into compromised | |escalated privileges| |order to avoid
including IP target system |compromised computer using |to launch attacks detection.
system and order to gain network Repeating
thu thập thông tin, trong đó mục đích là tìm ra lỗ hổng (một 16 hổng trong hệ
thống) trong mạng Sau đó là tấn công và thâm nhập lỗ hổng được phát hiện sau khi bị khai thác Tiếp đến là sử dụng quyên truy cập mới có được để lặp lại qua trình này, cho đến khi đạt mục tiêu mong muốn và cuối cùng là xóa dau vết của quá trình thâm nhập để tránh bị phát hiện.
Trang 20Chương 2 CƠSỞ LY THUYẾT
Hệ quả của cách tiếp cận như vậy là các giai đoạn khác nhau của bài kiểm tra sẽ
phù hợp với các loại công cụ hỗ trợ khác nhau Chẳng hạn tại bước thu thập thông
tin thường liên quan đến sử dụng các công cụ như giám sát lưu lượng, quét cổng
và phát hiện hệ điều hành để thu thập thông tin liên quan có thể được sử dụng
để xác định xem hệ thống có chứa lỗ hổng bảo mật có thể bị khai thác hay không Đối với giai đoạn tấn công và thâm nhập liên quan đến việc thực hiện một khai
thác đã biết, có thé là một chương trình hoặc dữ liệu nhất định nhằm tận dung lỗ
hổng đã phát hiện và gây ra hành vi không mong muốn trong hệ thống với mục đích cuối cùng là xâm phạm mục tiêu và giành được quyên truy cập đặc quyền vào nó Mặc dù các môi trường được kiểm tra có thể khác nhau khá nhiều, tuy nhiên trong mỗi trường hợp, các bước chung thường giống nhau và được thực hiện đầy đủ Chính vì vậy, đã có những công cụ và framework được phát triển để
hỗ trợ cho việc kiểm thử thâm nhập được hiệu quả hơn {16}.
2.1.3 Công cụ hỗ trợ
Ngành công nghiệp an ninh mạng là một ngành rat lớn và có tiém năng phát triển,
có rất nhiều công cụ khác nhau hỗ trợ cho quá trình kiểm thử thâm nhập Ở đây,
chúng tôi sẽ tập trung vào các công cụ được sử dụng phổ biến nhất, tương ứng với từng giai đoạn kiểm thử thâm nhập cho một môi trường mạng được kiểm tra như đã đề cập trong phần trước đó.
Đối với giai đoạn thu thập thông tin, mục đích là tìm thông tin hữu ích về mạng mục tiêu Điều này thường được thực hiện bằng cách sử dụng các máy quét mạng, với máy quét mạng tốt nhất mà chúng tôi biết đến là Nmap Nmap cung cấp cho người dùng các thông tin như hệ điều hành, các cổng đang mở và các dịch vụ hiện đang chạy trên hệ thống Sau đó, những thông tin này có thể được sử dụng
để kiểm tra bat kỳ lỗ hổng nào trong hệ thống bằng cách sử dung các trình quét
lỗ hổng như Nessus hoặc OpenVAS
thực sự tổn tại hay không thì cần phải sử dụng các biện pháp khai thác phù hợp.
Tuy nhiên, để xác định xem lỗ hổng có
Mặc dù vậy, rõ ràng quy trình quét và phân tích ban đầu tiết lộ rất nhiều thông tin có giá trị cho người kiểm thử, bao gồm các ý tưởng cơ bản về mô hình mạng hoặc các dịch vụ (có thể là cả phiên bản của chúng) được sử dụng trong mạng.
Trang 21root@kali:~# nmap -PS 192.168.1.96/27 -O
Starting Nmap 6.46 ( http://nmap.org )
Nmap scan report for 192.168.1.107
Host is up (@.9@010s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
MAC Address: @@:0C:29:6F:41:69 (VMware)
Device type: general purpose
OS details: Microsoft Windows
2099 SP@ - SP4 or
Windows XP SP@ - SP1
Network Distance: 1 hop
HINH 2.3: Hình ảnh mô tả thông tin trả về trong một vi du sử dung
Nmap
Chính vi vậy, đây có thể cũng là một rủi ro trong trường hợp kẻ tan công lợi dung nhằm thu thập thông tin để chuẩn bị cho một cuộc tan công có chủ đích Bài báo của tác giả Kalia và Singh [7] đề cập đến việc giới thiệu các kỹ thuật quét mạng
Trang 22Chương 2 CƠSỞ LY THUYẾT
và triển khai các biện pháp chống lại việc tiết lộ thông tin về hệ điều hành bằng
các kỹ thuật quét mạng này.
Sau khi thông tin về lỗ hổng trên hệ thống đã được thu thập, giai đoạn tiếp theo khi thực hiện kiểm thử thâm nhập là cố gắng khai thác các lỗ hổng Mục đích của giai đoạn này là thực thi những đoạn mã khai thác nhằm xâm phạm và thực thi những lệnh tùy ý trên hệ thống được kiểm tra Đây là một giai đoạn tốn nhiều
công sức và yêu cầu người kiểm thử phải có hiểu biết, kỹ năng cũng như kinh
nghiệm nhất định Tuy nhiên, Metasploit framework - một dự án mã nguồn mở được bắt đầu từ năm 2003 có thể giúp công việc này được thực hiện một cách dễ
đàng hơn Kể từ khi ra mắt, Metasploit phát triển nhanh chóng và được mua lại bởi Rapid7 vào năm 2009, sau đó được tài trợ và phát triển cho tới hiện tại 6].
Metasploit có kiến trúc được phát triển theo hướng mô-đun hóa và khả năng mở
rộng [3] Metasploit có một hệ thống mô-đun khai thác đa dang với rất nhiều
những payload (các tác vụ được thực hiện sau khi khai thác thành công hệ thống đích) thực hiện các tác vụ nhất định (ví dụ: tạo người dùng mới) trên nhiều môi
trường khác nhau.
10
Trang 23HINH 2.4: Hình ảnh mô tả cấu trúc tổng quát của Metasploit
Các tác vụ thông thường như giao tiếp qua mạng hoặc giữa các tệp sẽ được lập
trình sẵn trong các thư viện Thông qua các giao diện sử dụng, người dùng có
thể kiểm soát được hoạt động cốt lõi của Metasploit Chính vì thé, kết hợp với
việc các bộ công cụ khai thác thường xuyên được cập nhật của mình, Metasploit
framework giúp người dùng có thể sử dụng thông tin thu thập được để tìm kiếm
và khởi chạy các module khai thác một cách dé dang và hiệu quả, bằng cách chi cần tập trung vào hoạt động khởi chạy khai thác, thay vì nắm rõ kỹ thuật để tìm
và phát triển khai thác.
Một số giao diện của Metasploit có thể kể đến như Msfcli, Msfconsole, hoặc thậm
Trang 24Chương 2 CƠ SỞ LY THUYET
chí còn có GUI phù hợp cho nhưng người dùng không có nhiều kinh nghiệm về
dong lệnh, được gọi là Armitage.
Msfcli được sử dụng trực tiếp từ dòng lệnh Nó giúp người dùng hiểu cách hoạt
động bên trong của Metasploit, vì vậy nó phù hợp cho người mới bắt đầu và
những người mới làm quen với Metasploit.
Msfconsole là một giao diện khác có sẵn để tương tác với Metasploit So với
Msfcli, Msfconsole mạnh mẽ hơn, có khả năng mở rộng hơn Nó cho phép xác
định các biến toàn cục, thực hiện tra cứu trong cơ sở dữ liệu khai thác và cònrất nhiều thứ hữu ích khác Khi thực hiện khai thác thành công, các phiên Me-terpreter sẽ được duy trì trong một Msfconsole duy nhất Cách sử dụng củaMsfconsole được hướng dẫn chi tiết tại trang hướng dẫn mở của Metasploit
(https:/ /www.offensive-security.com/metasploit-unleashed /msfconsole /).
Khi sử dụng Metasploit, người dùng có thể quản lý các mô đun khai thác mộtcách hiệu quả (chẳng hạn tra cứu) hoặc có thể lựa chọn rất nhiều các payloadkhác nhau được xếp hạng nhất định, sao cho phù hợp với mục tiêu của mình
msf > search dcom
i = fb ưMatching Mo
_—
u
Disclosure Date: 2003-07-16 Rank: great
Description: MS@3-@26 Microsoft RPC DCOM
Interface Overflow
HINH 2.5: Hình ảnh mô tả kết qua tim kiếm mô-đun khai thác ứng
với từ khóa dcom
Khi thực thi một khai thác, trình tự các bước cần thiết được Metasploit xử lý để
thiết lập kênh giao tiếp hai chiều giữa người kiểm thử với hệ thống được kiểmthử để có thể điều khiển hệ thống từ xa được mô tả như sau:
12
Trang 25Tester sends I*t stage payload
System connects back to Metasploit
2nd stage payload with DLL is sent
Connection is established
Phan quan trọng nhất của quá trình này là việc truyền thư viện DLL đặc biệt
với Meterpreter Shelf sử dụng kỹ thuật DLL Injectior?| Chúng tôi sẽ không mô
tả chỉ tiết quá trình này, kết quả khi tất cả các bước trên được hoàn thành là người dùng có quyền kiểm soát không giới hạn đối với hệ thống đích thông qua
Meterpreter Shell này Bao gồm các khả năng thao tác như: Liệt kê danh sách thư
mục, tải lên hoặc tải xuống các tệp, chỉnh sửa tệp, xóa nhật ký sự kiện và rất nhiều
thứ khác.
Sự tự động hóa ở mức độ kỹ thuật như vậy của Metasploit cho phép tăng hiệu
quả rất lớn trong quá trình kiểm thử thâm nhập Tuy nhiên, để thực hiện một lần thâm nhập thành công vẫn cần một lượng kiến thức chuyên môn và thời gian
không hé nhỏ Với nhu cầu ngày càng tăng đối với các chuyên gia bảo mật, các
Thttps:/ /www.sciencedirect.com/topics /computer-science /meterpreter-shell
2https: //sec.vnpt.vn/2019/01/dll-injection/
Trang 26Chương 2 CƠSỞ LY THUYẾT
phương pháp tiếp cận mới là thực sự cần thiết để đảm bảo có thể đáp ứng các
nhu cầu đánh giá bảo mật.
2.2 Reinforcement Learning
2.2.1 Tổng quan
Hoc tăng cường là một lĩnh vực con của hoc máy, kết hợp một cách nguyên bản
một thứ nguyên bổ sung (thường là thời gian) vào các phương trình học tập nhằm giải quyết van dé tự động học các quyết định tối ưu theo thời gian Học tăng
cường là một hướng tiếp cận gan với nhận thức của con người về trí tuệ nhân tao
và đây cũng là một phương pháp phổ biến được nghiên cứu trong nhiều lĩnh vực khoa học và kỹ thuật khác nhau (9.
Đối với hoc có giám sát - một ky thuật học máy được biết và nghiên cứu rộng rãi,
câu hỏi cơ bản của nó là làm thế nào để tự động xây dựng một hàm ánh xạ từ dữ liệu huấn luyện Dữ liệu huấn luyện bao gồm các cặp gồm đối tượng dau vào và đầu ra mong muốn Đầu ra của hàm có thể là một giá trị liên tục hoặc có thể là
dự đoán nhãn phân loại cho một đối tượng đầu vào Nhiệm vụ của chương trình học có giám sát là dự đoán giá trị của hàm cho một đối tượng bat kì là đầu vào
hợp lệ sau khi đã xem xét một số ví dụ huấn luyện (nghĩa là các cặp đầu vào và
đầu ra tương ứng) Để đạt được điều này, chương trình học phải tổng quát hóa
từ các dir liệu sẵn có để dự đoán được những tình huống chưa gặp phải theo một
cách "hợp ly".
Ở một khía cạnh khác, chúng ta có một kỹ thuật khác gọi là học không giám sát.
Học không giám sát không có bat kỳ nhãn nào được gan cho dit liệu, mục tiêu là tìm hiểu một số cầu trúc ẩn của tập di liệu hiện có, điển hình là bài toán phân cụm dữ liệu Học không giám sát khác với học có giám sát ở chỗ đầu ra đúng tương ứng cho mỗi đầu vào là không biết trước Chúng ta sẽ xem các đối tượng đầu vào như một tập các biến ngẫu nhiên, sau đó tìm cách xây dựng một mô hình mật độ kết hợp cho tập dữ liệu đó Một phương pháp học tập không giám sát khác đang ngày càng trở nên phổ biến là mạng sinh đối kháng (GANs).
14
Trang 27Hoc tăng cường của chúng ta là một phương pháp nằm ở đâu đó giữa học có
giám sát và học không giám sát Nó có thể sử dụng nhiều phương pháp học có
giám sát đã được thiết lập tốt chẳng hạn như mạng nơ-ron sâu để học cách biểu
diễn dữ liệu hoặc áp dụng chúng theo những cách khác nhau (91.
Reinforcement
npervised Learning
HÌNH 2.7: Hình ảnh mô tả vị trí của học tăng cường trong lĩnh vực
học máy
Hãy tưởng tượng rằng chúng ta đang có một tác nhân hoạt động trong một môi
trường cụ thể nào đó, chẳng hạn chú chuột robot trong một mê cung.
HÌNH 2.8: Hình ảnh mô tả cho ví dụ chú chuột hoạt động trong mê
cung
Trang 28Chương 2 CƠ SỞ LY THUYET
Môi trường của nó là một mê cung với thức ăn và tia điện ở một vài vị trí khác
nhau Tác nhân của chúng ta - chuột robot, có thể thực hiện các hành động như
rẽ trái, rẽ phải hoặc di chuyển về phía trước Cuối cùng, tại mọi thời điểm, nó có
thể quan sát toàn bộ trạng thái của mê cung này và đưa ra quyết định về các hànhđộng mà nó có thể thực hiện
Mục tiêu của chuột robot là tìm được càng nhiều thức ăn càng tốt, đồng thời tránh
bị điện giật bat cứ khi nào có thể Các tín hiệu về tia điện và thức ăn được xem
như phần thưởng tích cực hoặc tiêu cực do môi trường trao cho chuột robot dướidang phản hồi về các hành động của nó Phan thưởng là một khái niệm rất quan
trong trong học tăng cường, chúng tôi sẽ dé cập sau Tuy nhiên, hiện tại đủ đểhiểu rằng, mục tiêu của tác nhân là đạt được càng nhiều phần thưởng càng tốt
Đồng thời, trong ví dụ này, chuột robot dĩ nhiên có thể bị điện giật một chút để
đến được nơi có nhiều thức ăn, như vậy sẽ tốt hơn là đứng yên một chỗ mà không
thu được gì.
Câu hỏi đặt ra là làm sao để chuột robot có thể thực hiện tốt nhiệm vụ của mình.Chúng ta không thể lập trình sẵn cho nó hiểu về toàn bộ môi trường và tất cảnhững hành động tốt nhất cần thực hiện tại mọi vị trí khác nhau Điều này tốn rấtnhiều công sức và sẽ trở nên vô nghĩa néu như có sự thay đổi của môi trường Thứchúng ta cần là một phương pháp giúp chuột robot tự học được cách di chuyển
thông minh trong mê cung này.
Hoc tăng cường chính là phương pháp có thể giải quyết van dé này Khác với các
phương pháp học máy có giám sát khác, chúng ta không thể gán nhãn cho mỗi
quan sát của về môi trường tại các mốc thời gian khác nhau là tốt hay xấu để chuột
robot có thể đưa ra hành vi di chuyển của mình Thay vào đó, học tăng cường hoạt
động theo cách thử và sửa, dựa trên một hệ thống phan thưởng nhất định Phan
thưởng sẽ đạt được sau mỗi lần chuột robot thực hiện hành động di chuyển, có
thể là tích cực khi đạt được thức ăn, tiêu cực khi trúng tia điện hoặc trung tính khikhông có gì đặc biệt xảy ra Qua việc quan sát hệ thống phần thưởng đạt được và
liên hệ với các hành động đã thực hiện, chuột robot sẽ học cách thực hiện hành vi
tốt hơn để thu thập nhiều thức ăn hơn, đồng thời ít bị trúng tia điện hơn
Nhìn chung, học tăng cường hướng đến phương pháp nghiên cứu cách thức một
tác nhân hoạt động trong một môi trường nên chọn thực hiện những hành động
16
Trang 29nào tại các thời điểm khác nhau để tối đa hóa một khoản phần thưởng nào đó về
lâu dài, bằng cách cô gắng xây dựng một chiến lược ánh xạ các trạng thái của môi
trường với các hành động mà tác nhân nên chọn đồi với trạng thái đó [18].
Chính vi sự tổng quát và linh hoạt này nên hoc tăng cường cũng di kèm với một
mức giá nhất định Nó có những thách thức lớn hơn nhiều so với các hình thứchọc tập có giám sát hoặc không giám sát trong cách tiếp cận và triển khai để đạt
được hiệu quả nhất định [9].
Thứ nhất, sự quan sát trạng thái của môi trường trong học tăng cường phụ thuộcvào hành vi của tác nhân và ở một mức độ nào đó, nó chính là kết quả của hành
vi này Nếu tác nhân quyết định thực hiện một hành vi không hiệu quả thì những
quan sát sẽ không cho chúng ta biết gì về những gì tác nhân đã làm sai và những
gì nên lam để cải thiện kết quả Đồng thời, nêu tác nhân ngoan có và liên tục mắcsai lầm, thì những quan sát có thể tạo ra những kinh nghiệm sai lầm, rằng không
có cách nào để nhận được phần thưởng lớn hơn
Điều thứ hai làm cho việc đạt hiệu quả đối với học tăng cường trở nên khó khănhơn là các tác nhân không chỉ cần khai thác những hành động mà nó học được,
mà còn phải tích cực khám phá môi trường Bởi vì, biết đâu bằng một chút thayđổi, tác nhân có thể đạt được kết quả thậm chí tốt hơn Vấn đề là việc thăm dòquá nhiều cũng có thể làm giảm phần thưởng một cách nghiêm trọng (chưa kể
tác nhân có thể bị mat kinh nghiệm về những thứ đã học được trước đó), vì thé
bằng cách nào đó, chúng ta cần tìm sự cân bằng giữa hai hoạt động này để đạtđược hiệu quả tốt nhất
Yếu tô phức tạp thứ ba là việc phần thưởng thực tế có thể bi trì hoãn so với thời
điểm thực hiện các hành động Chẳng hạn một nước di sai trong một ván cờ vua
có thể thay đổi hoàn toàn cục điện về sau Trong quá trình học, để tối đa hóa đượcphần thưởng của mình, tác nhân cần phát hiện ra những điều như vậy và thựchiện những hành động đúng dan
Mặc dù có những khó khăn và thách thức như vậy, trong những năm gần đây, học
tăng cường đã có những cải tiến to lớn và ngày càng trở nên tích cực hơn trong
các lĩnh vực nghiên cứu và ứng dụng thực tế
Trang 301;jÌ-Chương 2 CƠ SỞ LY THUYET
2.2.2 Các thành phan chính
Mọi lĩnh vực khoa học và kỹ thuật đều có những giả định và hạn chế riêng Chúngtôi không muốn nói việc học có giám sát là tốt hay không tốt, tuy nhiên có nhữngvan dé mà học giám sát không thể giải quyết hiệu quả, thay vào đó là học tăng
cường.
Trong học tăng cường, không có các cặp đữ liệu đầu vào và đầu ra đúng, các hành
động tối ưu cũng không được đánh giá đúng sai một cách tường mình, thay vào
đó là hệ thống phần thưởng nhất định [9] Hoạt động trực tiếp của tác nhân là
thứ được quan tâm Các van dé của học tăng cường liên quan đến việc học những
gì cần làm thông qua việc ánh xa tình huống thành hành động để tối đa hóa phanthưởng bằng SỐ, trong đó có việc tìm kiếm sự cân bằng giữa khám phá (nhữngkiến thức mới chưa được học) và khai thác (những kiến thức đã được học) Nhìnchung, học tăng cường bao gồm 2 thực thể chính là Tác nhân và Môi trường,
tương tác với nhau thông qua các kênh giao tiếp của chúng là Hành động, Phần
thưởng và Quan sát.
ENVIRONMENT AGENT
STATE
|]
transition i ACTION : decide } |
HINH 2.9: Hình anh mô tả các thực thể chính của RL
Tác nhân, là một ai đó hoặc một cái gì đó, tương tác với môi trường thông qua
việc thực hiện những hành động nhất định, quan sát và nhận về phần thưởng
cuối cùng cho việc này
Môi trường, là những thứ bên ngoài tác nhân hay nói cách khác là phạm vi hoạt động của tác nhân.
18
Trang 31Hành động, là những điều mà tác nhân có thể thực hiện bên trong môi trường.
Quan sát, là những mẩu thông tin về môi trường mà tác nhân có thể nhận được.Đôi khi chúng có thể trùng nhau, tuy nhiên chúng ta cần phân biệt giữa Quansát và Trạng thái của môi trường Lý thuyết về học tăng cường được dựa trênquy trình quyết định Markov đưa ra một định nghĩa chính thức về trang thái Đó
là trạng thái phải có thuộc tính Markov Điều này có nghĩa là, đối với học tăngcường hoạt động theo lý thuyết, khi biết trạng thái, tương đương với việc biếtmọi thứ có thể để xác định phản hồi của môi trường đối với một hành động Mọi
thứ còn lại là hoàn toàn ngẫu nhiên và không biết về nguyên tắc cho đến khi kết
thúc hành động.
Các hệ thống như hệ thống xác định, các trò chơi theo hướng xác suất hoặc những
mô phỏng do máy tính điều khiển có thể được thiết kế để có các trạng thái dễquan sát có thuộc tính nay Chang hạn đồi với môi trường Inverted Pendulum,một bài toán cổ điển để sử dụng học tăng cường Một con lắc ngược thực sự sẽhoạt động khác nhau tùy thuộc vào nhiệt độ của nó, tùy thuộc vào các khớp nối
và bộ truyền động hoặc sự thay đổi về lực ma sát, Tuy nhiên, tác nhân học tăng
cường thường chỉ xem xét chuyển động và vị trí hiện tại của xe đẩy và con lắc.
Trong trường hợp này, việc quan sát 4 đặc điểm là đủ tốt và trạng thái dựa trên 4đặc điểm này gần như có thuộc tính Markov
Bên cạnh đó, có các quan sát không đủ để tạo dữ liệu trạng thái có thể sử dụng cho
hệ thống học tăng cường Chẳng hạn một khung hình bị mắt dữ liệu về chuyểnđộng Điều này có thể được giải quyết bằng cách lấy bốn khung hình liên tiếp vàkết hợp chúng để tạo thành một trạng thái duy nhất Lúc này, ta có thể hiểu rằng
mỗi khung hình là một quan sát, và bón quan sát phải được kết hợp để tạo ra một
trạng thái có ích.
Phần thưởng, là thành phần quan trọng của học tăng cường, nó là một giá trị vô
hướng mà tác nhân có thể nhận được từ môi trường bằng cách duy nhất là thông
qua những hành động của nó Có thể là âm hoặc dương, lớn hoặc nhỏ, chỉ là một
con số Mục đích của phần thưởng là giúp tác nhân biết nó đã thực hiện những
hành vi tốt hay không tốt Tác nhân có thể nhận được phần thưởng sau mỗi lầntương tác với môi trường hoặc sau một mốc thời gian cố định, tùy vào định nghĩa
Trang 32Chương 2 CƠ SỞ LY THUYET
của người lập trình sao cho phù hợp với ngữ cảnh của bài toán Phần thưởng chỉmang tính chất cục bộ, nó phản ánh sự thành công sau những hành động gần đây
của tác nhân, chứ không phải tất cả những thành công mà tác nhân đạt được từ
trước đến nay hoặc sau này Việc tác nhân có thể nhận được nhiều phần thưởngsau một vài hành động không có nghĩa là ngay sau đó nó sẽ không phải đối mặt
với những hậu quả nghiêm trọng từ những quyết định trước đó (9] Chang han
việc ăn được một quân của đối thủ trong một ván cờ vua, nhưng biết đâu điều đódẫn đến một thế cờ chiếu bí mà đối thủ dành cho bạn
Ngoài ra, tín hiệu về phần thưởng cũng là cơ sở chính để thay đổi chính sách Nếu
một hành động được chính sách chọn mà kết quả theo sau là phần thưởng thấp,
thì chính sách có thể được thay đổi để chọn một số hành động khác trong tìnhhuống đó trong tương lai Mặt khác, nếu phan thưởng chỉ mang tính chất cục bộ,
tức thời, thì Ham giá trị sé chỉ định điều gi là tốt về lâu dai Giá trị của một trạng
thái là tổng số phần thưởng mà một tác nhân có thể mong doi tích lũy trong tươnglai Thay vì xác định ngay lập tức kết quả của các trạng thái môi trường như phần
thưởng, các hàm giá trị sẽ xác định những khả năng tích lũy phần thưởng lâu dài
trong tương lai sau khi tính đến những trạng thái có khả năng sẽ tuân theo mộtchuỗi lặp lại và phần thưởng có sẵn trong những trạng thái đó Mặc dù vậy, phầnthưởng vẫn mang một ý nghĩa nhất định và được xem là thành phần chính trong
hệ thống học tăng cường Không có phần thưởng sẽ không có giá trị và mục đíchduy nhất của việc ước tính giá trị là để đạt được nhiều phần thưởng hơn
Về cơ bản, các thành phần trên là những van đề tồn tại trong một vòng lặp kín bởi
vì các hành động của tác nhân sẽ ảnh hưởng đến các đầu vào sau này của nó Hơn
nữa, tác nhân không được cho biết phải thực hiện hành động như thế nào, thayvào đó, nó phải khám phá ra hành động nào mang lại nhiều phần thưởng nhất
bằng cách thử chúng Trong một số trường hợp, các hành động có thể ảnh hưởngkhông chỉ đến phần thưởng trước mắt mà còn ảnh hưởng đến các tình huống tiếp
theo và theo sau đó là tat cả phần thưởng tiếp theo như chúng tôi đã dé cập trước
đó Bên cạnh đó, tùy thuộc vào bài toán sử dụng mà có thể áp dụng những mô
hình học tăng cường khác nhau, có thể là đơn tác nhân hoặc đa tác nhân nhưng
nhìn chung, các tác nhân trong học tăng cường sẽ phải cải thiện được hành vi của
mình dựa vào phần thưởng mà nó đạt được Một tác nhân hoạt động tốt trong
20
Trang 33học tăng cường sẽ đạt được một lượng phần thưởng tích lũy lớn sau một chuỗi
hành động mà nó thực hiện.
Quy trình quyết định Markov
Trước tiên, chúng ta hãy bắt đầu với Quy trình Markov, còn được gọi là Chuỗi
Markov Ta biết, tat cả các trạng thái có thể có đối với một hệ thống tạo thành một
tập hợp được gọi là không gian trạng thái Trong quy trình Markov, chúng tôi yêu
cầu tập hợp các trạng thái này là hữu hạn Các quan sát về chúng tạo thành một
chuỗi các trạng thái Đồng thời, để gọi một hệ thống như vậy là chuỗi Markov,
nó cần đáp ứng thuộc tính Markov, có nghĩa là chuyển động của hệ thống trong
tương lai từ bất kỳ trạng thái nào cũng chỉ phụ thuộc vào trạng thái đó Điểm
chính của thuộc tinh Markov là làm cho mọi trạng thái có thể quan sát được khép
kín để mô tả tương lai của hệ thống, hay nói cách khác là các trạng thái của hệthống phải được phân biệt với nhau và là duy nhất
Quy trình quyết định Markov là một phan mở rộng của chuỗi Markov, sự khác
biệt nằm ở việc bổ sung các lựa chọn hành động, phần thưởng [20] Tại mỗi bước,
quá trình này ở một trang thái s, người ra quyết định có thể chọn bat kỳ hành
động a nào có sẵn trong trạng thái s Quá trình này phản hồi ở bước tiếp theo
bằng cách di chuyển ngẫu nhiên vào trạng thái mới s’, trao cho người quyết địnhmột phan thưởng tương ứng Ra(s, 5”) Xác suất mà quá trình di chuyển vào trạngthái mới s’ của nó bị ảnh hưởng bởi hành động đã chọn Cụ thể, nó được đưa rabởi phân phối xác suất chuyển đổi trang thái Pa(s, s7) Do đó, trạng thái tiếp theo
của quá trình phụ thuộc vào tình trạng hiện tại s và hành động a.
2.2.3 Các hình thức tiếp cận
Về mặt hình thức, một mô hình học tăng cường sẽ bao gồm các thành phần sau:
e Tập các trạng thái của môi trường: S
e Tập các hành động: A
© Tập phan thưởng tích lũy: R
Trang 34Chương 2 CƠ SỞ LY THUYET
Tác nhân RL tương tác với môi trường theo thời gian Tại mỗi thời điểm í, tác
nhân thấy được trạng thái của môi trường là s¿ € S và tập các hành động mà tácnhân có thể thực hiện là A(s¿) Nó chọn và thực hiện một hành động a € A(S¢)
tuân theo chính sách 7r(đ:|st) và nhận được từ môi trường trang thái mới St+1
theo xác suất chuyển đổi trang thái P(S¿+1|St, at), đồng thời nhận một khoản
thưởng r:;1 Dựa trên các tương tác này, chính sách 1: S > A có tác dung tối
đa hóa lượng R = rọ + rị + +rn với các quy trình quyết định Markov có một
trang thái kết thúc, hoặc lượng R = X¿ŸÏ: với các quy trình quyết định Markovkhông có trạng thái kết thúc Trong đó Y là một hệ số chiết khấu "phần thưởng
trong tương lai" nào đó, với giá trị € (0, 1] [18].
Dựa vào đây, ta thấy rõ ràng để triển khai một hệ thống học tăng cường đạt hiệuquả thì điều đầu tiên là cần xác định tốt chính sách hành vi 7r, tức là cách lựa chọnhành vi tại mỗi trạng thái môi trường khác nhau, đồng thời cân bằng giữa việc
khai thác và khám phá - một thách thức trong RL [9], nhằm giúp tác nhân học
tăng cường tránh việc liên tục lựa chọn lại những hành động đã đạt được phần
thưởng mà không tích cực khám phá môi trường.
Trước tiên, chúng tôi ký hiệu giá trị thực tế của hành động a là q(a) và giá trị ước
tính của nó ở bước thời gian £ là Q¢(a) Bên cạnh đó, một hành động tham lam là một
hành động được đưa ra dựa vào những kinh nghiệm đã được học của tác nhân,
tức là nó đang khai thác kiến thức hiện tại Và hành động khám phá, là một hành
động có mục đích khám phá môi trường Trong học tăng cường, phương pháp
đơn giản nhất để xác định hành vi cho tác nhân đó là lựa chọn hành vi có giá trị
ước tinh cao nhất Điều này gây nên sự mắt cân bằng giữa việc khai thác và khám
phá Khi đó, giải pháp thay thế đơn giản đó là lựa chọn những hành động thamlam ở hầu hết các mốc thời gian, nhưng đôi khi sẽ lựa chọn ngẫu nhiên những
hành động có xác suất tương đương nhau Phương pháp này gọi là €— greedy
Hiểu một cách đơn giản, mỗi hành động tác nhân có thể thực hiện tại thời điểm
t có thể được dự đoán với một xác suất chuyển đổi trạng thái nhất định Phươngpháp £— greedy cho phép chúng ta khai báo một giá trị €, nếu xác suất hành
động được chọn nhỏ hơn giá trị £, chúng ta sẽ chọn một hành động ngẫu nhiên
thay vì hành động trước đó Ngược lại ta tiếp tục chọn hành động tham lam
22
Trang 35Ham giá trị, như chúng tôi da dé cập trước đó, là một dự đoán về phần thưởng
dự kiến, tích lũy, chiết khẩu trong tương lai, đo lường mức độ tốt của mỗi trạng
thái hoặc cặp hành động - trạng thái.
Giá trị trang thái V„(S) là giá trị kỳ vọng cho việc tuân theo chính sách 7 từ trạng
thái s Nó có thể được thể hiện bằng phương trình Bellman như sau:
Vn(S) = 5aTt(d|s)>s⁄,rp(s”, r|s, g)[r + YVn(5°)]
Khi đó, giá trị trạng thái tối ưu V+ (S) =max„V„(S) là giá trị trạng thái lớn nhất
có thể đạt được từ bất kỳ chính sách nào đối với trạng thái s, được thể hiện qua
phương trình Bellman:
Vx(s) = maxa3s:,rp(s/, r|s, g)|[r + YVx (S”)]
Giá trị hành động q„(s, g) là giá trị kỳ vọng cho hành động a ở trang thái s va
tuân theo chính sách 1 Được thể hiện qua phương trình Bellman:
qx(s, g) = >s⁄,rp(s/, r|s, a)|r -++ y5œTr(a“|s”)q„(s/, a’)|
Ham giá trị hành động tối ưu qx (Ss, a) là giá trị hành động lớn nhất có thể đạt
được bằng bất kỳ chính sách nào cho trạng thái s và hành động a, được thể hiện
qua phương trình Bellman:
qx(s,g) = >s⁄,rp(s”, rls, a)[r + ymaxa„/qx (S/, q°)]
Từ đó, tùy vào mục đích học tập khác nhau mà sẽ có những phương pháp tương
ứng khác nhau, có thể là đơn tác nhân hoặc đa tác nhân Chẳng han TemporalDifference - TD, SARSA hay Q-Learning Những phương pháp này có cách tiếpcận đơn giản nhất là dưới dạng những bảng giá trị (tức là một hàm giá trị hoặc
một chính sách sẽ được lưu dưới dạng bảng để thực hiện việc dò tìm) Không
những thế, chúng cũng có nhiều biến thể khác nhau nhằm tối đa hóa hệ thốngphần thưởng ở nhiều bước trong tương lai bằng cách sử dụng phương pháp tiếp
cận Monte-Carlo 8l Trong đó đặc biệt được sử dụng phổ biến là SARSA và
Q-Learning bởi tính hiệu quả và dé dàng triển khai Ngoài ra, thay vì sử dung
những bảng giá trị như vậy, vẫn còn một hướng tiếp cận khác, đó là sử dụng
phương pháp xấp xỉ hàm Xấp xỉ hàm là một cách để tổng quát hóa khi trạng tháihoặc không gian hành động là rất lớn hoặc liên tục (Đây là điểm yếu khi sử dụng
Trang 36Chương 2 CƠ SỞ LY THUYET
phương pháp tiếp cẩn theo dạng bảng giá trị, sẽ rất tiêu tốn tài nguyên) Mục đíchcủa xấp xỉ hàm là tổng quát hóa từ các ví dụ của một hàm để xây dựng một giá
trị gần đúng của toàn bộ hàm đó Mặc dù vậy, trong học tăng cường, xấp xi hàm
thường gặp phải các van dé dẫn đến sự không ổn định
2.3 Từ Reinforcement Learning đến Deep
Reinforce-ment Learning
Trong học tăng cường, khi một vấn dé thỏa mãn thuộc tinh Markov, nó có thểđược biểu diễn bởi bộ 4 thuộc tính (S, A, P, R) Trong đó, S là tập các trạng thái, A
là tập các hành động, R là phần thưởng nhận được mỗi khi trạng thái chuyển đổi
và P là xác suất chuyển đổi trạng thái
2.3.1 Q-Learning
Q-Learning - một thuật toán học tăng cường không có mô hình, nhằm mục đích
tìm giá trị của một hành động trong một trạng thái cụ thể của môi trường Bằngcách sử dụng một giá trị gọi là Q-Value, được tính bằng công thức:
Q(s,a) =r(s,a) +ymaxQ(s’, a’)
Trong đó Q(s, a) là gia trị cua Q-Value khi thực hiện hành động a ở trạng thai s,
r(s, a) là phần thưởng nhận được đối với hành động a, s’ là trạng thái tiếp theo
của môi trường và Y là một hệ số chiết khâu phần thưởng trong tương lai (thường
được triển khai với giá trị 0,99) nhằm đảm bảo đối với những trạng thái càng xa
trong tương lai, Q-value càng nhỏ.
Ta thay, Q-value của hành động a tại trạng thái s sẽ bang phần thưởng nhận đượccộng thêm Q-value lớn nhất của các trạng thái s’ tiếp theo Chính vì vậy, phươngpháp tiếp cận đơn giản nhất của Q-Learning là xây dựng một bảng giá trị Từ đó,tại mỗi trạng thái khác nhau, tác nhân chỉ cần dò tìm những hành động nào cóQ-value lớn nhất và thực hiện chúng Quá trình cập nhật giá trị Q-value này được
thể hiện như sau:
1 Bắt đầu với một bảng trống, gồm 2 cột trạng thái và hành động ánh xạ với
nhau.
24
Trang 372 Bang cách tương tác với môi trường, nhận được (s, a, r, s) tương ứng.
3 Cập nhật giá trị Q-value sử dụng xấp xi Bellman, đồng thời kết hợp thêm
hệ số học tập ơ để tăng tính ổn định:
Q(s,a) — (1—ø)Q(s, a) + a(r + ymaxQ(s’,a’)
4 Kiểm tra điều kiện hội tụ, nếu chưa đạt, lặp lại từ bước 2
Mặc dù vậy, Q-learning khi sử dụng bang giá tri vẫn có những van dé nhất định.Thứ nhất, thông tin trạng thái đầu vào cần phải được rời rạc hóa để có thể triển
khai một ma trận bảng Tuy nhiên với những thuộc tính có giá trị liên tục chẳng
hạn như quãng đường hoặc vận tốc, việc chia khoảng như vậy là chưa thật sựhiệu quả Điều này có thể làm giảm độ chính xác và tốc độ hội tụ của mô hình
Bởi, rõ ràng việc chia càng nhỏ những khoảng giá trị khác nhau càng có lợi, và
bạn không biết phải chia nhỏ đến mức nào Thứ hai, đối với những dix liệu trạngthái đầu vào khó biểu diễn, chẳng hạn như hình ảnh, chúng ta sẽ không thể nhậpđược Cuối cùng, giả sử với một bài toán có không gian trạng thái và hành động
cực kỳ lớn, chắc chắn lượng tài nguyên tiêu tốn để có thể xây dựng nên một bảng
giá trị đạt điều kiện hội tụ là rất lớn Ví dụ đối với CartPole trong môi trường
AlGym chỉ có 4 thuộc tính trạng thái và 2 hành động cho tác nhân Tùy thuộc
vào việc chia nhỏ thuộc tính của trạng thái, tuy nhiên tối thiểu để tác nhân có thểhọc hiệu quả, bảng giá trị của chúng tôi đã có kích thước [1296x2] Như vậy, đối
với bài toán hiện tại của chúng tôi, đó là tự động hóa kiểm thử thâm nhập, sự đa
dạng của môi trường và payload khai thác cho thay việc sử dụng Q-Learning như
vậy là chưa hợp lý.
2.3.2 Deep Q-Learning
Một giải pháp cho van dé trên của Q-Learning đó sử dung một biểu diễn phituyến ánh xạ cả trạng thái và hành động vào một giá trị Trong học máy, điều nàyđược gọi la “van dé hồi quy” Có thể có nhiều cách khác nhau để thực hiện đượcđiều này, tuy nhiên, đối với học tăng cường, chúng tôi muốn dé cập đến việc sử
dụng một mạng nơ-ron Đây cũng là một sự lựa chọn phổ biến, đồng thời, cũng
là cơ sở để chúng tôi đề cập đến một khái niệm khác là Học tăng cường sâu trong
nghiên cứu của mình.
Trang 38Chương 2 CƠ SỞ LY THUYET
Khi thay đổi từ bang giá trị sang mạng nơ-ron đối với Q-Learning, mọi thứ trởnên đơn giản hơn rất nhiều
State-Action
HINH 2.10: Hình ảnh mô tả cho việc sử dung mang no-ron đơn giản
thay cho bảng giá trị trong Q-Learning
Một mạng nơ-ron đơn giản sẽ gồm một lớp input, một lớp output và các lớp ẩnkhác nhau Số lượng nút ở mỗi lớp là không cé định Trong hoc tăng cường, rõràng mục tiêu của chúng ta là chọn ra các hành động tối ưu tại các trạng thái môi
trường khác nhau Mạng nơ-ron hoàn toàn phù hợp để có thể giải quyết vấn dé
này với lớp input gồm các nút chứa thông tin của trạng thái, lớp output gồm cácnút tương ứng với những hành động cô định mà tác nhân có thể thực hiện va cáclớp ẩn đảm nhiệm vai trò tính toán với số nút tùy chỉnh
Trong mạng nơ-ron này, có một tham số gọi là Ø (cũng thường được biết đến như
trọng số Weight của mạng nơ-ron), nhằm ước tinh các Q*-value sao cho xấp xỉ
với giá trị Q(s,a) được mô tả trước đó khi sử dụng Q-Learning bảng giá trị Tức là
Q(s,d,6) Q(s,g) Điều này có thể được thực hiện bang cách giảm thiểu giátrị của Hàm mắt mát ở mỗi bước:
L¡(6¡) = Es,a,s,r([(r + ymaxạ/Q(s/, a’; Bi-1)| — Q(s, a; 6;))?
26
Trang 39kỹ thuật và phương pháp học máy khác nhau như cây quyết định Tuy nhiên, đối
với hoc tăng cường sâu, phần “sâu” được dé cập đến ở đây đó là sử dung mộtmạng nơ-ron trong mô hình học máy, chẳng hạn như mô hình Deep Q-Network
(DQN).
Có một điều cần lưu ý rằng, mặc dù đều sử dung mạng no-ron, Q-Learning sử
dụng mạng nơ-ron thay cho bảng giá trị chúng tôi trình bày ở trên chưa được xem
là học tăng cường sâu Thực tế, DỌN cho phép tác nhân học tăng cường học tập
6n định thông qua một vài kỹ thuật.
Experience Replay - Khi một mô hình học máy sử dụng mạng nơ-ron, có một
van dé là tương quan thời gian Chính vì thế, việc học từng bước một theo các
chuỗi nơ-ron là chưa hiệu quả Để khắc phục van dé này, thay vì học tuần tự theo
hàm xấp xi Q, chúng ta sẽ lưu trữ nhiều bộ (s,a,r,s') trong bộ nhớ và có thể sử
dụng chúng để học lại một cách ngẫu nhiên Phương pháp này gọi là Experience
Replay.
Fixed Target Q-Network - Thay vì chỉ sử dung một mạng nơ-ron mục tiêu, chúng
ta sẽ sử dụng thêm một mạng nơ-ron riêng biệt, gọi là mang chính sách với trọng
số mạng có định Sau một số bước thời gian nhất định, Gradient Descent sẽ cập
nhật trọng số mạng trên mang muc tiêu để làm giảm thiểu giá trị mất mát, sau đótrọng số mang này được cập nhật lên mang chính sách
Chính vì những điều này, DỌN đạt được một hiệu quả học tập vượt trội hơn sovới các phương pháp tiếp cận học tăng cường thông thường Cuối cùng, thuật
toán DỌN cơ bản gồm những bước sau [13}:
1 Khởi tạo dung lượng bộ nhớ phat lại.