Kiểm tra thâm nhập thủ công hoặc đơn giản là kiểm tra thâm nhập là một đánh giá tỉ mỉ về cơ sở hạ tầng bảo mật của hệ thống, được thực hiện bởi các nhà nghiên cứubảo mật có năng lực, trả
Trang 1ĐẠI HỌC QUOC GIA TP HO CHI MINH
TRAN DUC HUNG
KHOA LUAN TOT NGHIEP
XAY DUNG KHUNG KIEM THU BAO MAT
CHO PURPLE TEAM
BUILDING AUTOMATIC PENETRATION TESTING
FRAMEWORK FOR PURPLE TEAMS
KY SU NGANH AN TOAN THONG TIN
TP HO CHi MINH, 2022
Trang 2ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA MẠNG MAY TÍNH VÀ TRUYEN THONG
TRAN ĐỨC HUNG - 18520810
KHOA LUAN TOT NGHIEP
XAY DUNG KHUNG KIEM THU BAO MAT CHO
PURPLE TEAM
BUILDING AUTOMATIC PENETRATION TESTING
FRAMEWORK FOR PURPLE TEAMS
KY SU AN TOAN THONG TIN
GIANG VIEN HUONG DAN
TS PHAM VAN HAU
THS PHAN THE DUY
TP HO CHi MINH, 2022
Trang 3THONG TIN HỘI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng chấm khoá luận tốt nghiệp, thành lập theo quyết định số
Ngày của Hiệu trưởng trường Đại học Công Nghệ Thông Tin
Trang 4LOI CAM ON
Nhóm thực hiện khóa luận chân thành cảm ơn thầy TS Pham Văn Hậu và thay
ThS Phan Thế Duy đã theo sát quá trình thực hiện đề tài, đóng góp những ý
kiến hữu ích để nhóm có thể hoàn thành đề tài khóa luận một cách hoàn chỉnh
nhất.
Nhóm xin gởi lời cảm ơn đến gia đình và bạn bè đã động viên, khuyến khích
nhóm hoàn thành khoá luận.
Nhóm cũng xin cảm ơn đến tất cả quý thầy cô trường Đại học Công nghệ Thông
tin - ĐHQG TP.HCM, đặt biệt là thầy cô ở phòng thí nghiệm an toàn thông tin và
khoa Mạng máy tính và Truyền Thông đã giúp đỡ và hỗ trợ nhóm
Xin chân thành cảm ơn!
TP.Hồ Chí Minh, ngày 1 tháng 07 năm 2022
Nhóm tác giả
Trang 5Mục lục
1 Tổng quan đề tài
11 Ly dochọn để tai} eee
1.2 Mục tiêu nghiên ctu) 2 eee 1.3 Phạm vinghiêncứu| ẶẶẶẶ
15 Phương pháp thựchiện|
1.6 Câu trúc Khóa luận tốtnghiệp|
2_ Tổng quan tình hình nghiên cứu 2.1 Tinh hình nghiên cứu và các công trình liên quan|
2.2 Tính mới và tính khoa học của dé tài|
TÓM TẮT KHOÁ LUẬN 3.11 Tổng quan về Kiểm thử xâm nhập 3.1.2 Các hình thức thực hiện pentest|
3.1.3 Lý do cần phải thực hiện kiểm thử xâm nhập 3.1.5 Tự động hoá quá trình kiểm thử xâm nhập 3.2 Top 10 lỗ hổng OWASP| c
321 Tân công
injection| -3.2.2 Xác thực bi hong (Broken Authentication)|
3.2.3 Lộ dữ liệu nhạy cảm|
3.2.4 XML ExternalEntHHesl
3.2.5 Kiểm soát truy cập bị hỏng (Broken Access Control)|
Trang 6326 Cấuhìnhsail
3.2.7 Insecure Deserialization|
3.2.11 Các lỗ hổng và sự phơi nhiễm phổ biến (CVE)
3.3 Các công cụ hỗ trợ kiểm thử xâm nhập
3.3.1 NMATPI|
¬
3.3.3 Các công cụ hỗ trợ tìm kiếm lỗ hổng bảo mat web]
3.3.4 Tường lửa ứng dụng web Mod Security|
¬ se ee eee ee
4 Phuong phap thuc hién
4.1 Xây dựng bộ khung tự động hóa quá trình kiểm thử xâm nhap) .
4.2 Tìm kiếm thông tin| cSSSSS
4.3 Tìm kiếm lỗ hổng bảo mật
Trang 8Danh sách bảng
2.1 Bảng So sáng kiểm thử xâm nhập tự động và kiểm thử xâm nhập
ne 6
5.2 Bảng cau hình các công cu kiểm thử xâm nhập được sử dung}
5.3 Bảng so sánh kiểm thử xâm nhập tự động với các công cụ trên thị
trường trên nên tang DVWA| 51
5.4 Bảng so sánh kiểm thử xâm nhập tự động với các công cụ trên thị
trường trên nên tang bWAPP| 52
5.5 Bảng so sánh kiểm thử xâm nhập tự động với các công cụ trên thị
trường trên nẻ tang online testphp.vulnweb.com| 52
viii
Trang 9Danh mục từ viết tắt
2FA Two-Factor Aauthentication CVE Common Vulnerabilities and Exposures DOM Document Object Model
JSON JavaScript Object Notation
LFI Local File Injection
OSI Operating System Injection
SQLI Structured Query Language Injection
WAF Wcb Application Firewall XML_ Xxtensible Markup Language
1x
Trang 10Danh mục tu tạm dịch
Chứng chỉ Cert Khai thác Exploits
Kiểm thử xâm nhập Penetration testing
Lỗ hổng Vulnerabilities
May chu Server Tai trong Payload
Ma thông báo Token
Tan công tiêm tải trong Injection attack
Trinh sat Recon
Tường lửa Firewall
Uy quyén Authorization
Xác thực Indetity
Trang 11TÓM TẮT KHOÁ LUẬN
Khi xây dựng ứng dụng công nghệ như web hay mobile, một trong những bước
không thể thiếu để gia tăng bảo mật cho sản phẩm là kiểm thử xâm nhập Kiểm
tra thâm nhập thủ công hoặc đơn giản là kiểm tra thâm nhập là một đánh giá tỉ
mỉ về cơ sở hạ tầng bảo mật của hệ thống, được thực hiện bởi các nhà nghiên cứubảo mật có năng lực, trải qua nhiều bước, có thể mất nhiều ngày sau đó để hoàn
thành các bản kiểm thử thủ công Trong nghiên cứu này, chúng tôi sẽ tự động hoá quá trình kiểm thử xâm nhập giúp phát hiện lỗ hổng có trong ứng dụng và xử lý
lỗ hổng vừa được phát hiện một cách tự động
Trang 12gọi là các nhà kiểm thử bảo mật(penetration tester) Công việc kiểm thử bảo mật
đòi hỏi người thực hiện phải có một lượng lớn kiến thức về bảo mật, trải quanhiều bước kiểm thử, có thể mắt nhiều ngày để hoàn thành các bản kiểm thử thủcông, tuy nhiên quá trình này đòi hỏi sự kiên nhẫn cũng như tính tỉ mỉ để tránh
bỏ sót dữ liệu và lỗ hổng vì vậy sẽ gây ra sự nhàm chán cũng như dễ dàng bỏ sót
các thông tin quan trọng.
Hiện nay, rất nhiều công cụ được dựng lên để hỗ trợ công việc kiểm thử bảo mậtđược dễ dàng hơn, tự động hoá một số bước trong quá trình, được xem là mộtđịnh hướng chuyển đổi trong tương lai, khi các nhà kiểm thử bảo mật sẽ tự động
hoá hoàn toàn quá trình kiểm thử xâm nhập Tuy nhiên, các công cụ hiện có trên thị trường chỉ tập trung vào một bước hoặc một vài bước trong quá trình kiểm thử
bảo mật và hầu hết chi tập trung vào phát hiện lỗ hổng, không hề có hành độngtiếp theo sau khi phát hiện lỗ hổng Vì thé tôi quyến định xây dựng bộ khung tự
Trang 13Chương 1 Tổng quan dé tài
động hoá quá trình kiểm thử bảo mật có khả năng xử lý các lỗ hổng sau khi phát
hiện.
Từ những ly do trên, tôi quyến định chon dé tài "Xây dung khung kiểm thử bảomật tự động cho purple team" để làm dé tài nghiên cứu cho khoá luận
1.2 Mục tiêu nghiên cứu
Xây dựng công cụ tự động hóa quá trình kiểm thử xâm nhập cho đội tím nhằmphát hiện sớm lỗ hổng và tự động hóa xử lý khẩn cấp lỗ hổng giúp giảm tải khối
lượng công việc cũng như tăng độ chính xác cho quá trình kiểm thử xâm nhập.
1.3 Pham vi nghiên cứu
- Các phương thức thực hiện và phát hiện lỗ hổng trong môi trường bảo mật web
- Các phương pháp xử lý lỗ hổng hậu phát hiện
- Nghiên cứu khả năng mở rộng và tối ưu hoá tài nguyên máy tính sử dụng chomục đích kiểm thử xâm nhập
1.4 Tính ứng dụng
Nghiên cứu của chúng tôi có thể áp dụng cho các doanh nghiệp đang có nhu cầu
cải thiện khả năng phát hiện lỗ hổng và xử lý lỗ hổng hậu phát hiện hoặc pentester
có như cầu tự động hoá quá trình kiểm thử xâm nhập, quá trình pentest được xâydựng chỉ tiết, dé dang mở rộng và phát triển theo như cầu
1.5 Phương pháp thực hiện
- Tìm hiểu các kiến thức nền tảng về các đối tượng nghiên cứu trong đề tài
- Tìm hiểu các công trình nghiên cứu đã được thực hiện trong và ngoài nước
- Đưa ra phương pháp xây dựng và triển khai hệ thống
Trang 14Chương 1 Tổng quan dé tài
1.6 Cau trúc Khóa luận tốt nghiệp
Qua những gì đã giới thiệu về tổng quan của đề tài thực hiện trong khoá luận tốtnghiệp, tôi xin đưa ra nội dung của Khoá luận tốt nghiệp sẽ được tổ chức như
sau:
° Chương] Tổng quan đề tài.
° Chương Tổng quan vẻ tình hình nghiên cứu
° Chương] Cơ sở lý thuyết của khóa luận.
° Chương Phương pháp thực hiện trong khóa luận
° Chương] Hiện thực và thực nghiệm
e Chương |6| Kết luận và hướng phát triển của khóa luận.
Trang 15Chương 2
Tổng quan tình hình nghiên cứu
2.1 Tình hình nghiên cứu và các công trình liên quan
Trong thời gian gần đây, van dé an toàn thông tin trong doanh nghiệp đang đượcchú trọng và dau tư, đặc biệt sau các vụ tan công mạng, các doanh nghiệp vừa
và nhỏ phải biết bảo vệ khỏi nguy cơ tân công vào cơ sở hạ tầng Năm 2021, phát
hiện 811.902 nguy cơ tắn công mạng, tăng 5,5% so với năm 2020, trong đó 757.064
là các tấn công mạng khai thác lỗ hổng bảo mật, nhắm vào các hệ thống cổngthông tin điện tử, các hệ thống chỉ đạo điều hành tác nghiệp Khoảng 31.013 là
các tan công mạng liên quan đến các hình thức truy cập trái phép] Do vậy, các
doanh nghiệp vừa và nhỏ phải có trang bị cần thiết để giảm thiểu nguy cơ tân
công mạng, nhưng đặc điểm ở các doanh nghiệp này thường không có đội ngũ
chuyên gia bảo mật Cho tới hiện tại, quy trình kiểm thử xâm nhập rất phức tạp
và phải thực hiện thủ công, chỉ có thể được thực hiện bởi chuyên gia với nhiều
năm kinh nghiệm Người kiểm thử phải viết bản khai thác của riêng họ , học các
làm chủ công cu khả dụng được công bố trên mang Internet, gây tẻ nhạt và tốn
thời gian Dưới đây là bảng so sánh quy trình kiểm thử tự động và thủ công.
TNguôn:
https://www.mic.gov.vn/mic_2020/Pages/TinIuc/153265/Nam-2021-phat-hien-gan-812-nghin-nguy-co-tan-cong-mang-vao-cac-mang-CNTT-trong-yeu.html
Trang 16Chương 2 Tổng quan tình hình nghiên cứu
Thủ công Tự động
Quy trình | Quy trình thủ công, phi tiêu | nhanh, quy trình chuẩn, dễ dàng
kiểm thử | chuẩn và chi phí tùy chỉnh cao | lặp lại
Bảo trì cơ sở dữ liệu là thủ công, ¬ kk „
¬ x R nn Co so dữ liệu tan công được bao Quan lý cơ | can dựa vào co sở dữ liệu công Co - l
ae tee Ce VỀ a ố QÀ 2 thì và nâng cap tự động Mã khai
sở dữ liệu | khai, cân việt lại mã tân công l 1 à
thác hoạt động cho nhieu nên
tấn công để hoạt động trên các nền tảng
mm tảng khác nhau
khác nhau 5
Báo cáo Yêu cầu thu thập liệu thủ công | Báo cáo tự động và tùy chỉnh
BANG 2.1: Bảng So sáng kiểm thử xâm nhập tự động và kiểm thử
tác giả Ajmal [1| Cụ thể, trong nghiên cứu BÌ, nhóm tác giả Hu sử dụng công
cụ shodan để thu thập dữ liệu máy chủ có liên quan nhằm xây dựng cấu trúc liênkết mạng thực tế và sử dụng phân tích lỗ hổng đa tầng đa máy chủ (MulVAL) đểtạo cây tan công cho cấu trúc liên kết đó; các thuật toán tìm kiếm truyền thốngđược sử dụng để tìm tất cả các đường tấn công có thể có trong cây đó và để xây
dựng biểu diễn ma trận khi cần bằng các thuật toán học tăng cường sâu Ở giai
đoạn thứ hai, nhóm tác giả sử dụng phương pháp Deep Q-Learning Network
(DQN) để khám phá con đường tấn công dễ khai thác nhất từ các ứng viên cóthể Cách tiếp cận này được đánh giá bằng cách tạo ra hàng nghìn kịch bản đầuvào và DỌN có thể tìm ra đường dẫn tối ưu với độ chính xác 0,86, đồng thời cungcấp các giải pháp hợp lệ trong các trường hợp khác
Trang 17Chương 2 Tổng quan tình hình nghiên cứu
DQN
Deep Reinforcement Learning Model
PenetrationTools
Environment
HÌNH 2.1: Cấu trúc của khung kiểm thử tu dộng
Với cách tiếp cận như Hình |2.1| của nhóm tác giả, giả định tấn công va tìm
ra con đường khai thác khả thi nhất, điều này có thể dẫn tới việc phát hiện cáctrường hợp dương tính giả, vì cách này không đánh giá khả năng tắn công dựavào điều kiện thực tế mà đánh giá dựa vào giả định, tìm tất cả khả năng và chọn
ra khả năng dễ bị tấn công nhất vậy nên trong thực tế việc máy chủ có thể có hoặckhông có lỗ hổng này, nên cách tiếp cận của nhóm tác giả không hiệu quả, tuynhiên việc đánh giá tat cả khả năng có thể tan công vào máy chủ giúp tránh đượcviệc bỏ sót trường hợp mà máy chủ có thể bị tấn công hơn
Trong nghiên cứu ùl, nhóm tác giả đưa ra giải pháp sử dụng hệ thống mỗi nhử
với nhiều node là các Honeynet, Nova, honeyd Khi kẻ tấn công gửi yêu cầu vàomạng, bộ điều khiển sẽ chuyển yêu cau tới node phù hợp Hành động của kẻ tâncông sẽ được ghi lại với hệ thống nhật ký và được phân tích để xác định kết nốiđộc hại hoặc mối đe dọa Nhóm tác giả đã đưa ra giải pháp tạo ra hệ thống mỗi
nhứ linh hoạt trong mạng SCADA Hệ thống SCADA như hình 2.2|là một mạng
lưới các thành phần khác nhau Hệ thống SCADA thu thập và phân tích dữ liệu
Trang 18Chương 2 Tổng quan tình hình nghiên cứu
từ các thiết bị truyền động khác nhau để giám sát thời gian thực SCADA bao
gồm các thành phần, chẳng hạn như PLC (bộ điều khiển logic có thể lập trình),
HMI (tương tác giữa người và máy), MTU (Thiết bị đầu cuối chính) và RTU (Điềukhiển từ xa thiết bị đầu cuối) Chúng kết hợp và xây dựng một mạng lưới hoànchỉnh PLC giao tiếp với HMI thông qua RTU và MTU
Remote Controller
Mininet - 7 h
' xế Node 1 Node 2` Node 3 `
Í u }
Ovs sở L
ATTACK Engagement Need Based
le) i — Decoys Orchestrating
m win || required | | Conpot, Nova "> cuca”
{Siemens ge Artillery
| Isolated PLC's HML | | \ honeypots / ,
E Vai Modbus Modbus | | | 8 ;
— : A) | Admin Can control the
creation of new decoys
Threat hunters can
deeply monitor each
activity
HINH 2.2: Mạng mỗi nhử SCADA
Với cách tiếp cận này, nhóm tác giả đã xây dựng được một hệ thống mỗi nhửvới day đủ các giao thức phổ biến hiện nay như: HTTP, FTP, SSH, cơ chế hoạtđộng linh hoạt khi có thể thêm bớt các note trong mạng, dé dàng cau hình hệthống điều khiển mang đến khả năng mở rộng cao Thế nhưng mô hình này làmột mô hình bị động khi phải chờ tin tặc tấn công vào, rồi phân tích để xác địnhmối de doa với việc phân tích nhật ký, việc này có thể vượt qua bằng các kỹ thuậtcao như sử dụng mã hóa, ẩn kết nối phía sau kết nối hợp lệ, Sau khi hệ thốngxuất báo cáo cho người quản trị, người quản trị cần có rất nhiều kinh nghiệm đểxem xét, đánh giá và đưa ra quyết định đối với các hệ thống có chứa những lỗhổng tương tự trong mạng môi nhử Điều này dẫn tới việc để vận hành hệ thốngnày cần có một đội ngũ chuyên gia để phân tích mối đe dọa đã được thống kê Sựkhông chủ động, chờ đợi kẻ tan công vô tình tấn công vào hệ thống mỗi nhử để
8
Trang 19Chương 2 Tổng quan tình hình nghiên cứu
biết được những lỗ hổng tiém tàng trong hệ thống là không an toàn khi nhữngtiêu chí về bảo mật càng ngày càng được nâng cao Ngoài ra, tôi còn tham khảo
các nghiên cứu của nhóm tác giả Al Shebli (ol, Stefinko [7] va Hakluke [2] dé xay
dựng công cu tự động hóa quá trình kiểm thử xâm nhập.
2.2 Tính mới và tính khoa học của đề tài
Theo các nghiên cứu đã trình bày ở mục trên, chưa có nhiều công trình nghiêncứu phát triển công cụ tự động hoàn toàn các bước trinh thám, tan công, đến xử
lý 16 hổng sau khi phát hiện, các nghiên cứu trên chi tập trung vào việc phát hiệnkhả năng xâm nhập vào máy chủ dựa vào trí tuệ nhân tạo, tạo ra nhiều kịch bảnnhất có thể và đánh giá con đường khả thi nhất, dẫn đến việc bỏ sót lỗ hổng vàtạo ra nhiều trường hợp dương tính giả Do đó, dé tài nghiên cứu nay sẽ xây dựng
một giải pháp giúp tự động hóa quy trình kiểm thử xâm nhập và xử lý lỗ hổng
hiệu quả hơn phương pháp sử dụng trí tuệ nhân tạo bằng cách xây xựng các tải
trọng tuỳ chỉnh, giảm thiểu các trường hợp dương tính giả.
Nghiên cứu này xoay quanh van dé tự động hóa các quy trình kiểm thử, giảmthời gian xử lý cũng như tăng hiệu năng của quá trình kiểm thử xâm nhập Bằngcách sử dụng mô hình phân tán để thực hiện các công việc của từng module, giúptăng năng suất của hệ thống Song song với việc tìm kiếm và phát hiện lỗ hổng,nghiên cứu này còn tập trung vào việc xử lý lỗ hổng ngay khi phát hiện bằngcách sử dụng tường lửa ứng dụng web và honeypot để bảo vệ hệ thống máy chủ
Ngoài ra, nghiên cứu cũng tập trung vào sự mở rộng dựa trên điện toán đám
mây, tự động mở rộng khi cần thiết, làm tăng khả năng bảo trì, và giám sát quá
trình một cách dé dàng.
Đề tài tập trung vào xây dựng một quá trình tự động hóa kiểm thử xâm nhập và
xử lý lỗ hổng, giúp hệ thống giảm thiểu rủi ro từ các cuộc tan công mang mộtcách triệt để nhưng không yêu cầu nhiều nhân lực để triển khai
Trang 20Chương 3
Cơ sở lý thuyết
3.1 Kiểm thử xâm nhập và tự động hoá quá trình kiểm
thử xâm nhập
3.1.1 Tổng quan về Kiểm thử xâm nhập
Pentest, viết tắt của penetration testing (kiểm tra xâm nhập), là hình thức đánhgiá mức độ an toàn của một hệ thống IT bằng các cuộc tấn công mô phỏng thực
tế Hiểu đơn giản, pentest có gắng xâm nhập vào hệ thống để phát hiện ra nhữngđiểm yếu tiềm tàng của hệ thống mà tin tặc có thể khai thác và gây thiệt hại
Mục tiêu của pentest là giúp tổ chức phát hiện càng nhiều lỗ hổng càng tốt, từ
đó khắc phục chúng để loại trừ khả năng bị tan công trong tương lai Người làm
công việc kiểm tra xâm nhập được gọi là pentester.
Pentest có thể được thực hiện trên hệ thống máy tính, web app, mobile app, hạtầng mạng, IOT, ứng dụng và hạ tầng cloud, phần mềm dịch vụ SaaS, API, sourcecode, hoặc một đối tượng IT có kết nối với internet và có khả năng bị tấn công nhưng phổ biến nhất là pentest web app và mobile app Những thành phần trênđược gọi là đối tượng kiểm thử (pentest target)
Khi thực hiện xâm nhập, pentester cần có được sự cho phép của chủ hệ thốnghoặc phần mềm đó Nếu không, hành động xâm nhập sẽ được coi là hack tráiphép Thực tế, ranh giới giữa pentest và hack chỉ là sự cho phép của chủ đốitượng Vì thế, khái niệm pentest có ý nghĩa tương tự như ethical hacking (hack
10
Trang 21Chương 3 Cơ sở lý thuyết
có đạo đức), pentester còn được gọi là hacker mũ trắng (white hat hacker).
Để hiểu rõ hơn về Pentest, ta cần hiểu rõ ba khái niệm cơ bản trong bảo mật là
"vulnerabilities", "exploits", va "payloads".
¢ Lỗ hổng (vulnerabilities) là những điểm yếu bảo mật của một phan mềm,
phần cứng, hệ điều hành, hay ứng dung web cho phép kẻ tấn công một cơ
sở để tấn công hệ thống Lỗ hổng có thể đơn giản như mật khẩu yếu, hay
phức tạp như lỗ hổng SQL hoặc tràn bộ nhớ đệm.
® Khai thác (exploits) là hành động lợi dụng một lỗ hổng, sự cố hay lỗi của
phần mềm, đoạn dir liệu hay một chuỗi các lệnh nhằm gây ra hành vi batthường không mong muốn xảy ra trên một hệ thống máy tính Những hành
vi đó bao gồm leo thang đặc quyền, đánh cắp thông tin nhạy cảm, tan công
thức sử dụng, hoặc source code Gray box Testing: Pentest gray box là hình thức
kiểm thử mà pentester nhận được một phần thông tin của đối tượng kiểm thử, ví
dụ URL, IP address, nhưng không có hiểu biết đầy đủ hay quyền truy cập vàođối tượng
Black box testing: Pentest black box, hay còn gọi la ‘blind testing’, là hình thức
pentest dưới góc độ của một hacker trong thực tế Với hình thức này, các chuyêngia kiểm thử không nhận được bắt kỳ thông tin nào về đối tượng trước khi tấncông Các pentester phải tự tìm kiếm và thu thập thông tin về đối tượng để tiếnhành kiểm thử Loại hình pentest này yêu cầu một lượng lớn thời gian tìm hiểu
và nỗ lực tấn công, nên chỉ phí không hề rẻ Ngoài ra còn các hình thức pentest
11
Trang 22Chương 3 Cơ sở lý thuyết
khác như: double-blind testing, external testing, internal testing, targeted testing
tuy nhiên chúng không phổ biến tại Việt Nam và chỉ được sử dụng với nhu cầuđặc thù của một số doanh nghiệp
Ở đề tài này, tôi sẽ tập trung vào pentest blackbox trong thực tế.
3.1.3 Lý do cần phải thực hiện kiểm thử xâm nhập
Ngày nay, dưới sự phát triển của công nghệ, kiểm tra thâm nhập đã trở thành
một mô-đun không thể thiếu trong hệ thống an toàn thông tin của nhiều doanh
nghiệp.
Penetration Testing (kiểm tra thâm nhập) [4] là giải pháp hiệu quả để bảo mật
cho web, mobile app, network, IOT, khỏi cuộc tan công của tin tặc Thông quacác cuộc tấn công mô phỏng thực tế, các kỹ sư kiểm thử có thể tìm ra những điểmyếu bảo mật của hệ thống Qua đó giúp doanh nghiệp vá lỗ hổng kịp thời, trướckhi tin tặc khai thác chúng và gây thiệt hại về tiền bạc, danh tiếng cho tổ chức
3.1.4 Các giai đoạn của kiểm thử xâm nhập
Quá trình kiểm thử xâm nhập có thể được chia làm 5 giai đoạn
Analysis and WAF configuration fos] 01) Planning and reconnaissance
Results are used to configure WAF Test goals are defined and intelligence
settings before testing is run again is gathered.
PENETRATION
Maintaining access TESTING STAGES Scanning
APTs are imitated to see if a vulnerability ® @ Scanning tools are used to understand
can be used to maintain access how a target responds to intrusions.
Gaining access
Web application attacks are staged to
uncover a target's vulnerabilities.
HÌNH 3.1: Hình ảnh quá trình kiểm thử xâm nhập
Giai đoạn đầu tiên bao gồm:
12
Trang 23Chương 3 Cơ sở lý thuyết
© Xác định phạm vi và mục tiêu của thử nghiệm, bao gồm các hệ thống được
giải quyết và các phương pháp thử nghiệm sẽ được sử dụng
¢ Thu thập thông tin tinh báo (ví dụ: mang và tên miễn, máy chủ thu) để hiểu
rõ hơn cách thức hoạt động của mục tiêu và các lỗ hổng tiềm ẩn của nó
Bước tiếp theo là hiểu ứng dung đích sé phản ứng như thé nào với các nỗ lực xâmnhập khác nhau Điều này thường được thực hiện bằng cách sử dụng:
¢ Phân tích tĩnh - Kiểm tra mã của ứng dụng để ước tinh cách nó hoạt động
trong khi chạy Các công cụ này có thể quét toàn bộ mã trong một lầnchuyển
¢ Phân tích động - Kiểm tra mã của ứng dụng ở trang thái đang chạy Day là
một cách quét thực tế hơn, vì nó cung cấp một cái nhìn thời gian thực vềhiệu suất của ứng dụng
Giành quyền truy cập, giai đoạn này sử dung các cuộc tân công ứng dung web,chang hạn như chèn mã phía người dùng XSS (Cross-site scripting), chèn SQL
và cửa hậu, để phát hiện ra các lỗ hổng của mục tiêu Sau đó, người kiểm tra sẽ
thử và khai thác các lỗ hổng này, thường bằng cách nâng cao đặc quyền, đánh cắp
dữ liệu, chặn lưu lượng truy cập, v.v., để hiểu những thiệt hại mà họ có thể gây ra
Duy trì quyển truy cập, mục tiêu của giai đoạn nay là xem liệu lỗ hổng có thểđược sử dụng để đạt được sự hiện diện lâu dài trong hệ thống bị khai thác haykhông, có đủ lâu để kẻ xấu có thể truy cập chuyên sâu vào cơ sở hạ tầng hay
không Ý tưởng là bắt chước các mối de dọa thường tôn tại trong hệ thống để
đánh cap dữ liệu nhạy cảm nhất của tổ chức
Kết quả của thử nghiệm thâm nhập sau đó được tổng hợp thành một báo cáo chỉtiết:
© Các lỗ hổng cụ thể đã được khai thác
¢ Dữ liệu nhạy cảm đã được truy cập.
¢ Khoảng thời gian pentester có thể ở trong hệ thống mà không bị phát hiện
13
Trang 24Chương 3 Cơ sở lý thuyết
Thông tin này được phân tích bởi nhân viên an ninh để giúp định câu hình càiđặt WAF của doanh nghiệp và các giải pháp bảo mật ứng dụng khác để vá các lỗhổng và bảo vệ khỏi các cuộc tấn công trong tương lai
3.1.5 Tự động hoá quá trình kiểm thử xâm nhập
Kiểm tra thâm nhập tự động (còn gọi là quét lỗ hổng bảo mật) là một quá trình
đánh giá rủi ro bảo mật trong hệ thống với sự trợ giúp của các công cụ bảo mật
Thực hiện kiểm tra thâm nhập và kiểm tra bảo mật bằng các phương pháp tựđộng nhanh hơn nhiều vì nó dựa vào học máy hoặc các thuật toán để phát hiệncác lỗ hổng Pentester có thể mong đợi kiểm tra thâm nhập tự động hiển thị kếtquả chỉ trong vòng vài giây đến vài phút.Trái ngược với kiểm tra thâm nhập thủ
công, kiểm tra bảo mật tự động không đào sâu hơn để tìm cách khai thác lỗ hổng
mà nó liệt kê các lỗ hổng theo điểm CVSS (điểm mức độ nghiêm trọng) của chúng.
Sau đó, một nhà nghiên cứu bảo mật sẽ xem xét kỹ lưỡng các kết quả để loại bỏcác kết quả dương tính giả Như vậy, đã hoàn thành chặng cuối cùng của kiểm
thử thâm nhập tự động.
3.2 Top 10 lỗ hổng OWASP
OWASP là viết tắt của Open Web Application Security Project là một tổ chức philợi nhuận quốc tế chuyên về bảo mật ứng dụng web Một trong những nguyêntắc cốt lõi của OWASP là tat cả các tài liệu của tổ chức đều miễn phí và dé dàng
truy cập trên trang web chính thức] giúp mọi người đặc biệt là ngành an ninh
mạng có thể cải thiện tính bảo mật của ứng dụng web Các tài liệu OWSAP cung
cấp bao gồm tài liệu, công cụ, video và diễn đàn OWASP được biết đến nhiềunhất qua OWASP Top 10
OWASP Top 10 là một báo cáo được cập nhật thường xuyên về các nguy cơ bảomậ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ọngnhất Báo cáo được tổng hợp bởi một nhóm các chuyên gia bảo mật từ khắp nơi
Thttp: / /owasp.org
14
Trang 25Chương 3 Cơ sở lý thuyết
trên thế giới OWASP đề cập đến Top 10 như một “tài liệu nâng cao nhận thức”
và họ khuyến nghị tất cả các công ty nên kết hợp báo cáo này vào các quy trìnhcủa họ để giảm thiểu rủi ro bảo mật
Dưới đây là các rủi ro bảo mật được báo cáo trong OWASP Top 10:
3.21 Tấn công injection
Tấn công injection xảy ra khi dữ liệu không đáng tin cậy được gửi đến trìnhthông dịch mã (code interpreter) thông qua việc điển các form (biểu mẫu) hoặcmột số dữ liệu khác gửi đến ứng dụng web Ví dụ, kẻ tan công có thể nhập SQLdatabase code vào một biểu mẫu yêu cầu username ở dang plaintext Nếu việcđiển các biểu mẫu đó không được bảo mật đúng cách, điều này sẽ dẫn đến việc
mã SQL đó được thực thi Day được gọi là một cuộc tan công SQL injection
Các cuộc tân công injection có thể được ngăn chặn bằng cách xác minh hoặc “khửtring” dir liệu do người dùng gửi (Xác minh nghĩa là từ chối các dữ liệu đángngờ, trong khi “khử trùng” nghĩa là làm sạch các phan dữ liệu có vẻ đáng ngờ.).Ngoài ra, quản trị viên cơ sở đữ liệu có thể thiết lập các biện pháp kiểm soát để
giảm thiểu lượng thông tin bị lộ ra qua một cuộc tấn công injection.
3.2.2 Xác thực bi hong (Broken Authentication)
Các lỗ hổng trong hệ thống xác thực (login) có thể cho phép kẻ tan công truy cậpvào tài khoản người dùng và thậm chí có khả năng xâm nhập toàn bộ hệ thốngbằng tài khoản quản trị viên Ví dụ: kẻ tấn công có thể lay một danh sách chứa
hàng nghìn tổ hợp tên người dùng/mật khẩu đã biết có được trong một lần vi
phạm dir liệu và sử dụng tập lệnh để thử tat cả các tổ hợp đó trên hệ thống đăng
nhập để xem có tổ hợp nào hoạt động không.
Một số chiến lược để giảm thiểu lỗ hổng xác thực là sử dụng xác thực 2 yếu tốtwo-factor authentication (2FA) cũng như hạn chế hoặc trì hoãn các nỗ lực đăngnhập lặp lại bằng cách sử dụng giới hạn về số lần đăng nhập và thời gian giãncách giữa các lần đăng nhập sai
15
Trang 26Chương 3 Cơ sở lý thuyết
3.2.3 Lộ dư liệu nhạy cam
Nếu các ứng dụng web không bảo vệ dữ liệu nhạy cảm như thông tin tài chính vàmật khẩu, hacker có thể giành quyền truy cập vào dữ liệu đó và sử dung cho cácmục đích bắt chính Một phương pháp phổ biến để lấy cắp thông tin nhạy cảm là
sử dụng một cuộc tân công on-path attack
Nguy cơ lộ dữ liệu có thể được giảm thiểu bang cách mã hóa (encypt) tất cả dữliệu nhạy cảm cũng như vô hiệu cache của bat kỳ thông tin nhạy cảm nào Ngoài
ra, các nhà phát triển ứng dụng web nên cẩn thận để đảm bảo rằng họ không lưutrữ bat kỳ dữ liệu nhạy cảm nào một cách không cần thiết
3.2.4 XML External Entities
Day là một cuộc tan công ứng dung web bang phân tích cú pháp đầu vào XML(parses XML input) Đầu vào này có thể tham chiếu đến một thực thể bên ngoài(external entity), đang cô gắng khai thác lỗ hổng trong trình phân tích cú pháp(parser) External entity có thể là một đơn vị lưu trữ, chẳng hạn như ổ cứng XMLparser có thể bị lừa để gửi dữ liệu đến một thực thể bên ngoài trái phép và chuyểntrực tiếp dữ liệu nhạy cảm cho kẻ tân công
Các cách tốt nhất để ngăn chặn các cuộc tấn công XXE là để các ứng dụng web
chấp nhận một loại dữ liệu ít phức tạp hơn, chẳng hạn như JSON , hoặc vô hiệuhóa việc sử dụng các thực thể bên ngoài trong một ứng dụng XML.
3.2.5 Kiểm soát truy cập bi hỏng (Broken Access Control)
Access Control hay kiểm soát truy cập dé cập đến một hệ thống kiểm soát quyển
truy cập vào thông tin hoặc chức năng Access Control chứa lỗ hổng cho phép
kẻ tấn công bỏ qua ủy quyền (authorization) và thực hiện các tác vụ như thể là
người dùng có đặc quyền, chẳng hạn như quản trị viên (admin) Ví dụ: một ứng
dụng web có thể cho phép người dùng thay đổi tài khoản mà họ đã đăng nhập
chỉ bằng cách thay đổi một phan của url mà không cần bat kỳ xác minh nào khác
16
Trang 27Chương 3 Cơ sở lý thuyết
Kiểm soát truy cập có thể được bảo mật bằng cách đảm bảo rằng ứng dụng web
sử dung authorization tokens và đặt các kiểm soát chặt chẽ đối với các token này
3.2.6 Cấu hình sai
lỗi cấu hình sai bảo mật là lỗ hổng phổ biến nhất trong danh sách và thường làkết quả của việc sử dụng cấu hình mặc định hoặc thông báo hiển thị lỗi quá nhiềuthông tin Ví dụ: một ứng dụng có thể hiển thị lỗi mô tả quá nhiều thông tin cóthể tiết lộ các lỗ hổng trong ứng dụng Điều này có thể được giảm thiểu bằngcách loại bỏ bat kỳ tính năng không sử dung nào trong code và đảm bảo rằng các
thông báo lỗi sẽ mang tính tổng quát chung hơn.
3.2.7 Insecure Deserialization
Tan công này bao gồm Serialization & Deserialization
Serialization có nghĩa là lẫy các đối tượng (object) từ mã ứng dụng (applicationcode) và chuyển đổi chúng thành một định dạng có thể được sử dụng cho mụcđích khác, chẳng hạn như lưu trữ dữ liệu vào đĩa hoặc gửi trực tuyến dữ liệu
đó.Deserialization thì ngược lại với Serialization.
Serialization giống như đóng gói đồ đạc vào các hộp trước khi chuyển đi, vàđeserialization giống như mở hộp và lắp ráp đồ đạc sau khi chuyển đi Một cuộctan công deserialization giống như việc xáo trộn nội dung của các hộp trước khi
chúng được giải nén trong quá trình di chuyển.
3.2.8 Chen mã phía người dùng XSS (Cross-Site Scripting)
Cross-Site Scripting (XSS) xảy ra khi các ứng dụng web cho phép người dùng
thêm code tùy chỉnh vào đường dẫn url hoặc vào một trang web mà những người
dùng khác sẽ nhìn thấy Lỗ hổng này có thể bị khai thác để chạy mã JavaScriptđộc hại (malicious JavaScript code) trên trình duyệt của nạn nhân Ví dụ: kẻ tấn
công có thể gửi email cho nạn nhân có vẻ là từ một ngân hàng đáng tin cậy, với
một liên kết đến trang web của ngân hàng đó Tuy nhiên, liên kết này có thể cómột số mã JavaScript độc hại được gắn thẻ vào cuối url Nếu trang web của ngân
17
Trang 28Chương 3 Cơ sở lý thuyết
hàng không được bảo vệ thích hợp chống lại Cross-Site Scripting, thì mã độc hại
đó sẽ được chạy trong trình duyệt web của nạn nhân khi họ nhấp vào liên kết
Các chiến lược giảm thiểu tấn công XSS bao gồm thoát các yêu cầu HTTP không
đáng tin cậy cũng như xác thực hoặc loại bỏ các nội dung do người dùng thêm vào Sử dụng các web development frameworks hiện đại như ReactJS và Ruby on
Rails cũng cung cấp một số tính năng bảo vệ khỏi các cuộc tấn công Cross-Site
Scripting.
3.2.9 Sử dụng các thành phan có lỗ hổng đã biết
Nhiều nhà phát triển (developer) web hiện nay sử dụng các thành phần như thưviện (libraries) và framework trong các ứng dụng web của họ Những thành phannày là những phần mềm giúp các nhà phát triển tránh công việc thừa và cung cấpchức năng cần thiết; ví dụ phổ biến bao gồm các framework front-end như React
và các thư viện nhỏ hơn được sử dụng để thêm các biểu tượng chia sẻ hoặc thửnghiệm Một số kẻ tấn công tìm kiếm các lỗ hổng trong các thành phần này màsau đó chúng có thể sử dụng để điều phối các cuộc tan công Một số thành phanphổ biến hơn được sử dụng trên hàng trăm nghìn trang web, kẻ tan công tìm thấy
lỗ hổng bảo mật trong những thành phần này có thể khiến hàng trăm nghìn trang
web bị khai thác.
Các nhà phát triển các thành phần này thường cung cấp các bản vá bảo mật vàcập nhật để bổ sung các lỗ hổng đã biết, nhưng các nhà phát triển ứng dụngweb không phải lúc nào cũng có các phiên bản được vá hoặc cập nhật mới nhất
Để giảm thiểu rủi ro khi chạy các thành phan có 16 hổng đã biết, các nhà pháttriển nên xóa các thành phần không sử dụng khỏi dự án, cũng như đảm bảo rằngđang nhận các thành phần từ một nguồn đáng tin cậy và đảm bảo chúng được
cập nhật.
3.2.10 Kiểm tra log và giám sát không hiệu quả
Nhiều ứng dụng web không thực hiện đủ các bước để phát hiện vi phạm dit liệu
Thời gian phát hiện trung bình cho một vi phạm là khoảng 200 ngày sau khi đã
xảy ra Điều này cho phép những kẻ tan công có nhiều thời gian để gây ra thiệt
18
Trang 29Chương 3 Cơ sở lý thuyết
hại trước khi có bất kỳ phản ứng nào OWASP khuyến nghị rằng các nhà pháttriển web nên thực hiện ghi log và giám sát (monitor) cũng như lên các kế hoạchứng phó sự có để đảm bảo rằng họ nhận thức được các cuộc tan công vào các ứng
dụng.
3.2.11 Cac lỗ hổng và sự phơi nhiễm phổ biến (CVE)
CVE bản chất đây là thuật ngữ được viết tắt từ cụm tiếng anh Common
Vulner-abilities and Exposures Có thể hiểu đây là danh sách các lỗi bảo mật máy tính
công khai Một khi nhắc đến CVE có nghĩa là đang nói về một lỗ hổng bảo mật
đã được gắn một số CVE ID Về cơ bản chương trình này được MITRE tiến hànhkhởi tạo vào năm 1999 Mục đích chính là nhằm xác định và phân loại các lỗ hổngthường gặp Trong đó mỗi CVE sẽ có một bản mô tả thông tin chỉ tiết và cụ thể
Các chuyên gia an ninh mạng chuyên nghiệp sẽ sử dụng bản mô phỏng này để
thảo luận và đưa ra hướng khắc phục lỗ hổng triệt để nhất
CVE phải được giải quyết một cách độc lập và được thừa nhận bởi nhà cung cấpdịch vụ Những lỗ hổng có tác động liên quan tới nhiều sản phẩm khác nhau sẽ
có có CVE riêng biệt.
3.3 Các công cụ hỗ trợ kiểm thử xâm nhập
3.3.1 NMAP
Trong khi hiện nay có rất nhiều công cụ giám sát tiên tiến đóng vai trò là nhữngtrợ thủ đắc lực giúp đỡ các nhà quản trị mạng trong việc quét cổng và phát hiện
các lỗ hổng mạng nhưng Nmap vẫn được coi là một công cụ chuẩn mực.
Các nhà quản trị mạng, quản lý công nghệ thông tin và chuyên gia bảo mật đã,
đang, và sẽ phải đối mặt với một trận chiến không bao giờ kết thúc trên chiếntrường mang tên an ninh mạng Họ sẽ phải liên tục kiểm tra rà soát hệ thốngmạng của của mình để tìm ra các tác nhân gây hại cũng như những lỗ hổng bảo
mật ẩn chứa bên trong Trong khi hiện nay có không ít các tiện ích giám sát có sẵn
hỗ trợ cho các chuyên gia trong việc việc lập bản đồ hệ thống mang và kiểm soátbảo mật, Nmap là sự lựa chọn số một về tính linh hoạt và khả năng vận hành, và
19
Trang 30Chương 3 Cơ sở lý thuyết
cũng chính những ưu điểm này đã làm cho nó trở thành một công cụ quét cổng
và lỗ hổng bảo mật tiêu chuẩn được thừa nhận rộng rãi trên toàn thế giới
Nmap (tên day đủ Network Mapper) [5] là một công cụ bảo mật được phát triểnbởi Floydor Vaskovitch Nmap có mã nguồn mở, miễn phí, dùng để quét cổng va
lỗ hổng bảo mật Các chuyên gia quản trị mạng sử dụng Nmap để xác định xemthiết bị nào đang chạy trên hệ thống của họ, cũng như tìm kiếm ra các máy chủ cósẵn và các dịch vụ mà các máy chủ này cung cấp, đồng thời dò tìm các cổng mở
và phát hiện các nguy cơ về bảo mật Nmap có thể được sử dụng để giám sát cácmáy chủ đơn lẻ cũng như các cụm mạng lớn bao gồm hàng trăm nghìn thiết bị
và nhiều mạng con hợp thành Mặc dù Nmap đã không ngừng được phát triển,cải tiến qua nhiều năm và cực kỳ linh hoạt, nhưng nên tang của nó vẫn là mộtcông cụ quét cổng, thu thập thông tin bằng cách gửi các gói dữ liệu thô đến cáccổng hệ thống Sau đó nó lắng nghe và phân tích các phản hồi và xác định xemcác cổng đó được mở, đóng hoặc lọc theo một cách nào đó, ví dụ như tường lửa.Các thuật ngữ khác được sử dụng để chỉ hoạt động quét cổng (port scanning) baogồm do tìm cổng (discovery) hoặc liệt kê cổng (enumeration)
20
Trang 31Chương 3 Cơ sở lý thuyết
i
# nmap -A -Ï4 scanme.nmap.org dÔze
Starting Nmap 4.01 ( http://www.insecure.org/nmap/ ) at 2006-03-20 15:53 PST
Interesting ports on scanme.nmap.org (205.217.153.62):
(The 1667 ports scanned but not shown below are in state: filtered)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99)
Uptime 26.177 days (since Wed Feb 22 11:39:16 2006)
Interesting ports on đÔze.internal (192.168.12.3):
(The 1664 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE VERSION
21/tcp open ftp Serv-U ftpd 4.0
25/tcp open smtp IMail NI-ESMTP 7.15 2015-2
80/tcp open_ http Microsoft IIS webserver 5.0
110/tcp open pop3 IMail pop3d 7.15 931-1
135/tcp open mstask Microsoft mstask (task server c:\winnt\system32\
139/tcp open netbios-ssn
445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds
1025/tcp open msrpe Microsoft Windows RPC
5800/tcp open vne-http Ultr@VNC (Resolution 1024x800; VNC ICP port: 5900)
MAC Address: 00:AQ:CC:51:72:7E (Lite-on Communications)
Device type: general purpose
Running: Microsoft Windows NI /2K/XP
OS details: Microsoft Windows 2000 Professional
Service Info: OS: Windows
HÌNH 3.2: Hình anh thực hiện quá trình quét cổng
Các gói dữ liệu mà Nmap gửi đi sẽ trả về các địa chỉ IP và nhiều dữ liệu liênquan khác, cho phép xác định các loại thuộc tính mạng, cung cấp cho người dùng
hồ sơ hoặc sơ đồ hệ thống mạng và cho phép tạo một bảng liệt kê, đánh giá vềphần cứng và phần mềm trong hệ thống mạng đó
Các giao thức mạng khác nhau sử dụng các loại cầu trúc gói khác nhau Nmap sửdụng các giao thức tang bao gồm TCP (giao thức điều khiển truyền), UDP (giaothức truy vấn người dùng), va SCTP (giao thức truyền dẫn điều khiển luồng),cũng như các giao thức hỗ trợ như ICMP (giao thức tin nhắn điều khiển Internet,
được sử dụng để gửi thông báo lỗi).
21
Trang 32Chương 3 Cơ sở lý thuyết
Các giao thức khác nhau phục vụ cho các các mục đích và các cổng hệ thống khácnhau Ví dụ, chi phí tài nguyên thấp của UDP rất phù hợp với hoạt động streamvideo trực tuyến theo thời gian thực, sẽ hy sinh một số gói dữ liệu bị mat để đổilây tốc độ, trong khi đó, các video được stream không theo thời gian thực trên
YouTube sẽ được lưu vào bộ đệm và sử dụng TCP chậm hơn, mặc dù giao thức
này đáng tin cậy hơn.
Cùng với nhiều tính năng khác, chức năng quét cổng cơ bản và khả năng chụpgói (packet-capture - tính năng chặn gói dữ liệu đang truyền qua hoặc di chuyểnqua một mạng máy tính cụ thể) của Nmap cũng liên tục được nâng nâng cấp, cải
thiện.
3.32 Shodan
Shodan #|là một công cu tìm kiếm được thiết kế bởi nhà phát triển web JohnMatherly Shodan là một công cụ tìm kiếm khác nhiều so với các công cụ tìmkiếm nội dung như Google, Yahoo hoặc Bing Shodan là một công cụ tìm kiếm đểtìm các thiết bị trực tuyến trên internet như: máy tính, server, webcam, các thiết
bị routers Nó hoạt động bằng cách quét toàn bộ các các thiết bị trên internet có
mở cổng public ra internet và thực hiện phân tích các dấu hiệu được phản hồi
về từ các thiết bị Sử dụng thông tin đó, Shodan có thể cho biết những thứ nhưmáy chủ web (và phiên bản) nào phổ biến nhất hoặc có bao nhiêu máy chủ FTP
ẩn danh tổn tại ở một vị trí cụ thể, hay trả về danh sách các camera có thể truycập trực tuyến qua internet Nói chung, với shodan pentester có thể tìm kiếm bắt
cứ thiết bị nào trên internet miễn là chúng đang có kết nối internet và mở cổng
Hyper-Optimized Data Access Network) hoạt động theo thuật toán sau:
® Tạo một địa chỉ IPv4 (IPV4 là gì) một cách ngẫu nhiên.
“https: / /www.shodan.io/
22
Trang 33Chương 3 Cơ sở lý thuyết
* Chọn port (cổng dich vụ) ngẫu nhiên và thực hiện gửi câu lệnh kiểm tra.
* Xem nội dung phản hồi của thiết bị (Service Banner) từ đó xác định xem đó
là loại thiết bị gì và chạy cổng gì
® Lap lại quá trình trên nhưng với ip va port mới
Điều này giúp tạo ra sự ngẫu nhiên cũng như đảm bảo tránh gây ra lượng kết nốiquá lớn tới một thiết bị một cách liên tục Các cổng dịch vụ mà shodan thường
xuyên rà quét: (Port 554 — Real Time Streaming Protocol, Port 5060 — SIP, Port 25 — SMTP, Port 161 — SNMP, Port 23 — Telnet, Port 993 - IMAP, Port 22 — SSH, Port 21
- FTP, Ports 8443, 443, 8080, and 80 - HTTPS/HTTP)
3.3.3 Các công cụ hỗ trợ tìm kiếm lỗ hổng bao mật web
Trong khóa luận này, tôi sử dụng một số công cụ như nuclei} dirsearch[f] det] Subfindey|va crt.sH’|dé hỗ trợ cho việc tự động hóa quá trình kiểm thử xâm
Crt.sh là một trang web nơi người dùng có thể tìm thấy tất cả các chứng chỉ SSLhoặc TLS của một tên miễn cụ thể, có thể lợi dụng điều này để tìm kiếm tất cả tênmiễn phụ sử dụng chứng chỉ đó
Nuclei là một ứng dụng mã nguồn mở viết bằng ngôn ngữ golang được phát triểnbởi projectdiscovery, Nuclei cho phát tìm kiếm các lỗ hổng dựa vào template củacác lỗ hổng đã được công bồ trên mạng internet Nuclei cũng cấp khả năng mạnh