HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA CƠNG NGHỆ THƠNG TIN 1
Học phần: An tồn mạng
Đề tài: Tìm hiểu cơng cụ rà qt lỗ hổng Acunetix
Nhóm lớp: 02
Giảng viên hướng dẫn: TS. Đặng Minh Tuấn
Sinh viên thực hiện: Kiều Văn Thành
Mã sinh viên: B18DCAT234
Lớp: D18CQAT02-B
Số điện thoại: 0383516870
Hà Nội, 12/2021
MỤC LỤC
DANH MỤC TỪ VIẾT TẮT ....................................................................................... 1
DANH MỤC HÌNH VẼ................................................................................................ 3
LỜI MỞ ĐẦU ............................................................................................................... 6
CHƯƠNG 1: BÁO CÁO THỐNG KÊ LỖ HỔNG BẢO MẬT TRÊN ỨNG DỤNG
WEB NĂM 2020 CỦA ACUNETIX ........................................................................... 7
1. Remote Code Execution (RCE) ........................................................................... 10
2. SQL Injection (SQLi) ........................................................................................... 11
3. Blind SQL Injection ............................................................................................. 11
4. Local File Inclusion and Directory Traversal ...................................................... 12
5. Cross-site Scripting .............................................................................................. 13
6. Vulnerable JavaScript Libraries ........................................................................... 14
7. Weak Passwords and Missing Brute-Force Protection ........................................ 14
8. Reserved Information Disclosure ......................................................................... 15
9. Source Code Disclosure ....................................................................................... 15
10. Server-side Request Forgery (SSRF) ................................................................. 16
11. Overflow Vulnerabilities .................................................................................... 16
12. WordPress (and Other CMS) Vulnerabilities .................................................... 17
13. Web Server Vulnerabilities and Misconfigurations ........................................... 17
CHƯƠNG 2: GIỚI THIỆU VỀ ACUNETIX .......................................................... 19
1. Sự cần thiết của các công cụ rà quét lỗ hổng bảo mật tự động ............................ 19
2. Công cụ rà quét lỗ hổng Acunetix........................................................................ 19
2.1. Cách thức hoạt động của Acunetix ............................................................. 20
2.2. Acunetix AcuSensor Technology ............................................................... 22
2.3. Các thành phần của Acunetix ..................................................................... 24
CHƯƠNG 3: CÀI ĐẶT VÀ SỬ DỤNG ACUNETIX ............................................. 28
1. Cài đặt Acunetix ................................................................................................... 28
1.1. Cài đặt trên Windows ................................................................................. 29
1.2. Cài đặt trên Linux ....................................................................................... 32
1.3. Cài đặt trên MacOS Mojave và MacOS Catalina ....................................... 33
1.4. Cài đặt thơng qua dịng lệnh ....................................................................... 33
1.5. Kích hoạt bản quyền Acunetix ................................................................... 34
1.6. Một số thiết lập ........................................................................................... 35
2. Sử dụng Acunetix ................................................................................................. 36
2.1. Configuring Targets (Thiết lập mục tiêu) ................................................... 36
2.2. Launching Scans (Thực hiện rà quét) ......................................................... 39
2.3. Deploying AcuSensor (Triển khai AcuSensor) .......................................... 41
2.4. Reviewing Scan Result (Kiểm tra kết quả rà quét) .................................... 41
2.5. Generate Reports (Tạo báo cáo) ................................................................. 47
2.6. Managing Vulnerabilities (Quản lý các lỗ hổng) ....................................... 48
2.7. Configuring Users (Thiết lập tài khoản người dùng) ................................. 50
2.8. Configuring Scan Profiles (Thiết lập cấu hình quét) .................................. 52
3. So sánh Acunetix và Nessus ................................................................................ 53
CHƯƠNG 4: THỬ NGHIỆM CÔNG CỤ ACUNETIX ......................................... 57
1. Rà quét lỗ hổng trên trang sử dụng công cụ Acunetix ... 57
2. Rà quét lỗ hổng SQL Injection sử dụng công cụ Acunetix ................................. 61
KẾT LUẬN ................................................................................................................. 64
DANH MỤC TÀI LIỆU THAM KHẢO .................................................................. 65
DANH MỤC TỪ VIẾT TẮT
Từ viết tắt
2FA
API
CVSS
CWE
Thuật ngữ tiếng anh
Thuật ngữ tiếng việt
Two-factor Authentication
Xác thực 2 yếu tố
Application Programming
Interface
Common Vulnerability Scoring
System
Common Weakness
Enumeration
Giao diện lập trình ứng dụng
Hệ thống chấm điểm lỗ hổng phổ
biến
Danh sách các lỗ hổng phổ biến
DOM
Document Object Model
Là một giao diện lập trình ứng
dụng
HTML
Hypertext Markup Language
Ngơn ngữ Đánh dấu Siêu văn bản
HTTP
Hypertext Transfer Protocol
Giao thức truyền tải siêu văn bản
HTTPS
Hypertext Transfer Protocol
Secure
IIS
Internet Information Services
Giao thức truyền tải siêu văn bản
bảo mật
Dịch vụ thông tin Internet của
Microsoft
ISO
International Organization for
Standardization
Tổ chức tiêu chuẩn hóa quốc tế
LFI
Local File Inclusion
Kĩ thuật tấn công đọc file trong hệ
thống
Multi-factor Authentication
Xác thực đa yếu tố
MFA
OpenVAS
OTP
Open Vulnerability Assessment
Một công cụ rà quét lỗ hổng
Scanner
One Time Password
Mật khẩu sử dụng một lần
Open Web Application
Security Project
Payment Card Industry Data
Security Standard
Dự án bảo mật ứng dụng web mã
nguồn mở
Bộ tiêu chuẩn bảo mật dữ liệu thẻ
thanh toán
PHP
PHP: Hypertext Preprocessor
Ngơn ngữ lập trình kịch bản
RAM
Random Access Memory
Bộ nhớ truy cập ngẫu nhiên
RCE
Remote Code Execution
Thực thi mã từ xa
OWASP
PCI DSS
1
SCA
Software Composition Analysis Phân tích thành phần ứng dụng
SPA
Single-page Application
Ứng dụng web tương tác 1 trang
SQL
Structured Query Language
Ngôn ngữ truy vấn mang tính cấu
trúc
SQLi
Structured Query Language
Injection
Kĩ thuật tấn cơng chèn mã SQL
SSRF
Server-side request forgery
Kĩ thuật giả mạo yêu cầu phía máy
chủ
User Interface
Giao diện người dùng
URL
Uniform Resource Locator
Địa chỉ web
WAF
Web Application Firewall
Tường lửa ứng dụng web
XSS
Cross-site scripting
Kĩ thuật tấn công chèn mã độc phía
client
UI
2
DANH MỤC HÌNH VẼ
Hình 1. 1. Tỉ lệ lỗ hổng ở mức cao và trung bình giảm dần qua từng năm .................... 7
Hình 1. 2. Mức độ phổ biến của các ngơn ngữ lập trình server-side qua các năm ........ 8
Hình 1. 3. Tỉ lệ phần trăm các lỗ hổng được phát hiện trong các nền tảng khác nhau .. 9
Hình 1. 4. Tỉ lệ phần trăm các lỗ hổng bảo mật có mức độ nguy hiểm cao ................... 9
Hình 1. 5. Tỉ lệ phần trăm các lỗ hổng bảo mật có mức độ trung bình ........................ 10
Hình 1. 6. Tỉ lệ ứng dụng web chứa lỗ hổng RCE ....................................................... 11
Hình 1. 7. Tỉ lệ ứng dụng web chứa lỗ hổng SQLi ...................................................... 11
Hình 1. 8. Tỉ lệ ứng dụng web chứa lỗ hổng Blind SQLi so với Union/error SQLi .... 12
Hình 1. 9. Tỉ lệ ứng dụng web chứa lỗ hổng LFI và Directory Traversal .................... 13
Hình 1. 10. Tỉ lệ ứng dụng web chứa lỗ hổng XSS...................................................... 14
Hình 1. 11. Tỉ lệ các thư viện JavaScript chứa lỗ hổng................................................ 14
Hình 1. 12. Tỉ lệ các thơng tin bị lộ .............................................................................. 15
Hình 1. 13. Tỉ lệ phần trăm các ứng dụng web bị lộ mã nguồn ................................... 16
Hình 1. 14. Tỉ lệ phần trăm các ứng dụng web chứa lỗ hổng SSRF ............................ 16
Hình 1. 15. Tỉ lệ phần trăm các ứng dụng web chứa lỗ hổng Overflow ...................... 17
Hình 1. 16. Tỉ lệ các ứng dụng web xây dựng trên WordPress và các nền tảng CMS
chứa lỗ hổng ................................................................................................................. 17
Hình 1. 17. Tỉ lệ phần trăm lỗ hổng trên các nền tảng web server ............................... 18
Hình 2. 1. Công cụ rà quét lỗ hổng bảo mật tự động Acunetix .................................... 20
Hình 2. 2. Cấu trúc trang web ....................................................................................... 21
Hình 2. 3. Danh sách các cảnh báo ............................................................................... 21
Hình 2. 4. Ví dụ lỗ hổng của một website .................................................................... 22
Hình 2. 5. AcuSensor Technology ............................................................................... 23
Hình 2. 6. Thống kê lỗ hổng qua 12 tháng ................................................................... 25
Hình 2. 7. Thống kê lỗ hổng trên mục tiêu ................................................................... 25
Hình 2. 8. Thống kê số ngày khắc phục lỗ hổng .......................................................... 25
Hình 2. 9. Thống kê số lỗ hổng tìm thấy trong 12 tháng qua ....................................... 26
Hình 2. 10. Thống kê số ngày phát hiện cho đến khi khắc phục lỗ hổng..................... 26
Hình 3. 1. Tải Acunetix từ trang chủ ............................................................................ 29
Hình 3. 2. Trình cài đặt Acunetix ................................................................................. 29
Hình 3. 3. License Agreement ...................................................................................... 30
Hình 3. 4. Cung cấp thơng tin đăng nhập cho tài khoản người quản trị....................... 30
Hình 3. 5. Thiết lập cách truy cập Acunetix ................................................................. 31
Hình 3. 6. Kiểm tra lại các tác vụ và chọn "Install" để bắt đầu quá trình cài đặt ......... 31
Hình 3. 7. Quá trình cài đặt .......................................................................................... 32
Hình 3. 8. Q trình cài đặt kết thúc............................................................................. 32
Hình 3. 9. Ví dụ trình cài đặt sử dụng dịng lệnh ......................................................... 34
Hình 3. 10. Kích hoạt Acunetix .................................................................................... 35
3
Hình 3. 11. Menu Targets phía sidebar ........................................................................ 36
Hình 3. 12. Giao diện thêm mục tiêu mới .................................................................... 37
Hình 3. 13. Chọn Import CSV ...................................................................................... 37
Hình 3. 14. Configuring Basic Target Options............................................................. 38
Hình 3. 15. Chọn "Scan" từ danh sách mục tiêu .......................................................... 39
Hình 3. 16. . Hộp thoại "Scanning Option” .................................................................. 40
Hình 3. 17. Acunetix yêu cầu can thiệp thủ cơng từ phía người dùng ......................... 40
Hình 3. 18. Chọn "Resolve this issue".......................................................................... 41
Hình 3. 19. Tải về AcuSensor ...................................................................................... 41
Hình 3. 20. Vulnerabilities ........................................................................................... 42
Hình 3. 21. Site Structure ............................................................................................. 43
Hình 3. 22. Scan Statistics ........................................................................................... 44
Hình 3. 23. Event .......................................................................................................... 45
Hình 3. 24. SCA phát hiện các gói dễ bị tấn cơng đang được sử dụng ........................ 46
Hình 3. 25. Chi tiết gói mở rộng chứa lỗ hổng ............................................................. 47
Hình 3. 26. Tạo báo cáo ................................................................................................ 47
Hình 3. 27. Tạo báo cáo tại trang Scan......................................................................... 48
Hình 3. 28. Trang Vulnerabilities ................................................................................. 49
Hình 3. 29. Lọc lỗ hổng ................................................................................................ 49
Hình 3. 30. Nhập lỗ hổng vào WAF ............................................................................. 50
Hình 3. 31. Thêm mới tài khoản ................................................................................... 51
Hình 3. 32. Quản lý tài khoản....................................................................................... 52
Hình 3. 33. Thiết lập cấu hình qt tùy chỉnh .............................................................. 53
Hình 3. 34. Cơng cụ rà quét lỗ hổng bảo mật tự động Acunetix .................................. 54
Hình 3. 35. Cơng cụ dành cho đúng chun mơn ........................................................ 55
Hình 3. 36. Tính linh hoạt và tốc độ hàng đầu ............................................................. 55
Hình 3. 37. DeepScan Engine ....................................................................................... 56
Hình 4. 1. Thêm mục tiêu mới...................................................................................... 57
Hình 4. 2. Thiết lập một số cài đặt cơ bản cho mục tiêu .............................................. 57
Hình 4. 3. Thiết lập 3 options trước khi scan ............................................................... 58
Hình 4. 4. Bắt đầu phiên rà quét ................................................................................... 58
Hình 4. 5. Mục Scan Information ................................................................................. 58
Hình 4. 6. Mục Vulnerabilities ..................................................................................... 59
Hình 4. 7. Mục Site Structure ....................................................................................... 59
Hình 4. 8. Mục Scan Statistics ...................................................................................... 59
Hình 4. 9. Mục Event.................................................................................................... 59
Hình 4. 10. Thơng tin chi tiết về lỗ hổng...................................................................... 60
Hình 4. 11. Gán nhãn lỗ hổng....................................................................................... 60
Hình 4. 12. Thêm mục tiêu mới.................................................................................... 61
Hình 4. 13. Thiết lập một số cài đặt cơ bản .................................................................. 61
4
Hình 4. 14. Tại Options Scan Profile chọn "SQL Injection"........................................ 62
Hình 4. 15. Bắt đầu phiên rà quét ................................................................................. 62
Hình 4. 16. Kết quả sau khi quét xong ......................................................................... 62
Hình 4. 17. Chi tiết lỗ hổng SQL Injection .................................................................. 63
Hình 4. 18. Trang web đã trả về kết quả ...................................................................... 63
5
LỜI MỞ ĐẦU
Khi Tim Berners – Lee lần đầu giới thiệu về cơng nghệ World Wide Web
(WWW), có lẽ anh cũng chưa bao giờ tưởng tượng được công nghệ này sẽ đi xa đến
đâu. Thuở ban đầu, các trang web chỉ dùng để hiển thị, cung cấp các nội dung một cách
dễ dàng. Thế nhưng giờ đây, với sự phát triển của Internet, không một công ty nào bỏ
qua sự hiển diện của mình trên mơi trường web cả. Và khơng cịn một trang web nào
chỉ đơn thuần là logo và biểu mẫu liên lạc của công ty cả [1].
Trong báo cáo của Forbes có tên “60 Cybersecurity Predictions for 2019”, Zane
Lackey của khoa “Signal Sciences” đã nói rằng “Tầng ứng dụng ngày xưa chỉ là các tài
nguyên tĩnh như các trang web tiếp thị, … Thế nhưng cho đến ngày nay, tầng ứng dụng
đang trở thành cách tương tác chính giữa doanh nghiệp và khách hàng. Sự thay đổi lớn
về chức năng này dẫn đến sự thay đổi lớn khơng kém về rủi ro”.
Số lượng các trang web có xu hướng phát triển theo cấp số nhân từ năm này qua
năm khác. Theo như Internet Live Stats, số lượng trang web trong năm 2017 gần như
gấp đôi so với năm 2016. Hiện tại, có khoảng 2 tỉ trang web đang hoạt động trên Internet.
Điều này có nghĩa là có đến 2 tỉ mục tiêu xâm nhập tiềm tàng cho tội phạm mạng.
Ngồi số lượng tăng theo thời gian thì độ phức tạp của các trang web cũng tăng
theo thời gian, đồng nghĩa với việc chúng khó được bảo mật hơn. Các hệ thống càng
ngày càng tích hợp sâu ứng dụng web và đang có xu hướng chuyển lên cloud để có thể
kết nối nhiều hệ thống với nhau. Điều này khiến cho một cuộc tấn công vào ứng dụng
web có khả năng dẫn đến nguy cơ mất điều khiển toàn bộ hệ thống.
Đứng trước những nguy cơ tiềm tàng như vậy, việc bảo mật ứng dụng web là
cấp bách hơn bao giờ hết. Có thể nói ứng dụng web là tương lai, việc bảo mật ứng dụng
web chính là bảo vệ tương lai. Acunetix là một trong những công cụ ra đời để đảm bảo
an toàn bảo mật cho ứng dụng web. Ngay từ ngày đầu, Acunetix đã được định hình là
tập trung tuyệt đối vào việc rà quét lỗ hổng bảo mật trên các ứng dụng web, do vậy mà
Acunetix có nhiều điểm vượt trội so với các công cụ rà quét khác. Bài báo cáo sau đây
em sẽ trình bày những thơng tin mà mình tìm hiểu được về công cụ này. Bài báo cáo
gồm 4 chương là:
− CHƯƠNG 1: BÁO CÁO THỐNG KÊ LỖ HỔNG BẢO MẬT TRÊN ỨNG DỤNG
WEB NĂM 2020 CỦA ACUNETIX
− CHƯƠNG 2: GIỚI THIỆU VỀ ACUNETIX
− CHƯƠNG 3: CÀI ĐẶT VÀ SỬ DỤNG ACUNETIX
− CHƯƠNG 4: THỬ NGHIỆM CÔNG CỤ ACUNETIX
6
CHƯƠNG 1: BÁO CÁO THỐNG KÊ LỖ HỔNG BẢO MẬT TRÊN ỨNG
DỤNG WEB NĂM 2020 CỦA ACUNETIX
Mỗi năm, Acunetix phân tích dữ liệu thu thập được từ Acunetix Online và tổng
hợp lại thành một bản báo cáo tổng quan. Báo cáo này phản ánh tình trạng an tồn bảo
mật của các ứng dụng Web trong năm đó. Trong bài tiểu luận này, em sẽ trình bày về
bản báo cáo của năm 2020. Báo cáo năm 2020 phân tích dữ liệu thu thập được trong 12
tháng từ tháng 3 năm 2019 cho đến tháng 2 năm 2020. Nội dung bài báo cáo tập trung
chủ yếu vào các lỗ hổng mức độ cao và trung bình tồn tại trong các ứng dụng Web. [2]
Trong khi mọi người nghĩ rằng các ứng dụng web nói chung đang dần trở nên
bảo mật thì sự thật lại khơng như vậy. Nhóm phân tích đã chỉ ra rằng chỉ những ứng
dụng web bảo vệ bởi các phần mềm rà qt lỗ hổng mới an tồn, cịn các ứng dụng khác
thì khơng như vậy mà cịn tồn tại nhiều lỗ hổng hơn. Đây là một điều đáng lo ngại từ
góc độ bảo mật. Nó có nghĩa là các nhà phát triển ứng dụng mới chưa có kiến thức cần
thiết để vá hay tránh các lỗ hổng bảo mật. Đồng nghĩa với việc họ đang phát triển và
làm việc trong môi trường kém bảo mật và không an tồn.
Nhóm phân tích phát hiện lỗ hổng Cross-site Scripting (XSS), các thư viện
JavaScript khơng an tồn và các vấn đề với nền tảng WordPress chiếm 25% trong danh
sách các lỗ hổng. Điều này chứng tỏ các ứng dụng web vẫn dễ bị khai thác, tuy nhiên
con số này đã thấp hơn 30% so với năm ngoái. Tương tự, các số liệu về lỗ hổng SQL
Injection cũng giảm dần qua các năm.
Hình 1. 1. Tỉ lệ lỗ hổng ở mức cao và trung bình giảm dần qua từng năm
Do nhu cầu sử dụng các ứng dụng web tương tác ngày càng tăng nên việc ứng
dụng các cơng nghệ phía client (client-side technologies) cũng tăng dần qua thời gian.
7
Điều này dẫn đến số lượng các thư viện JavaScript ngày một nhiều và khơng phải tồn
bộ các thư viện đó đều an tồn. Số liệu cho thấy khoảng 25% ứng dụng web đang sử
dụng các thư viện JavaScript chứa lỗ hổng.
Dữ liệu thu thập được cũng cho thấy PHP vẫn là ngơn ngữ lập trình server-side
phổ biến nhất. Ngơn ngữ phổ biến thứ hai là ASP.NET. Trái ngược với độ phổ biến,
phần trăm lỗ hổng PHP đã giảm đi rất nhiều còn phần trăm lỗ hổng ASP hay ASP.NET
lại tăng lên đáng kể. Ngoài ra, phần trăm lỗ hổng trong Apache/Nginx cũng giảm đi rất
nhiều cịn với IIS thì lại có chiều hướng tăng.
Hình 1. 2. Mức độ phổ biến của các ngơn ngữ lập trình server-side qua các năm
Dựa vào điều này, chúng ta có thể đưa ra giả thiết rằng các nền tảng sử dụng
PHP và Apache/Nginx đang ngày càng bảo mật và được mọi người ưa dùng. Trong khó
các nền tảng sử dụng ASP/ASP.NET và ISS đang mất dần tính bảo mật và độ phổ biến
của mình trên thị trường. PHP có thể phổ biến đến vậy là vì rất nhiều trang web PHP là
các trang xây dựng trên WordPress. Các trang này không đảm bảo an toàn tuyệt đối
nhưng lại dễ cài đặt và sử dụng đối với người dùng.
8
Hình 1. 3. Tỉ lệ phần trăm các lỗ hổng được phát hiện trong các nền tảng khác nhau
Dưới đây là biểu đồ thể hiện tỉ lệ phần trăm các lỗ hổng bảo mật có mức độ nguy
hiểm cao.
Hình 1. 4. Tỉ lệ phần trăm các lỗ hổng bảo mật có mức độ nguy hiểm cao
9
Và biểu đồ thể hiển tỉ lệ phần trăm các lỗ hổng bảo mật có mức độ nguy hiểm
trung bình.
Hình 1. 5. Tỉ lệ phần trăm các lỗ hổng bảo mật có mức độ trung bình
1. Remote Code Execution (RCE)
Remote Code Execution (RCE) hay thực thi mã từ xa là lỗ hổng có mức độ nguy
hiểm cao nhất. Kẻ tấn cơng có thể khai thác lỗ hổng này để thực thi mã từ xa trên ứng
dụng web. Nếu như kẻ tấn cơng có thể thực thi mã trên ứng dụng web, hắn có thể thực
hiện hành vi nguy hiểm hơn là thực thi câu lệnh trên hệ thống máy chủ. Kẻ tấn cơng có
thể chiếm quyền điều khiển hồn tồn hệ thống.
Tỉ lệ các ứng dụng web có lỗ hổng RCE khá thấp (3%), nhưng lại cao hơn so với
năm ngoái (2%). Tuy vậy điều này vẫn đáng lo ngại lo RCE có thể dẫn đến những thiệt
hại nghiêm trọng. Vì thế nên lỗ hổng này phải được ưu tiên vá đầu tiên
10
Hình 1. 6. Tỉ lệ ứng dụng web chứa lỗ hổng RCE
2. SQL Injection (SQLi)
SQL Injection (SQLi) hay lỗ hổng chèn mã SQL là lỗ hổng khi người phát
triển/lập trình không kiểm tra hay lọc đầu vào từ người dùng. Điều này dẫn đến kẻ tấn
cơng có thể khai thác và chèn câu lệnh SQL gửi lên hệ thống và được thực thi ngay trên
cơ sở dữ liệu của hệ thống. Tùy theo câu SQL mà kẻ tấn cơng có thể thêm, sửa, xóa dữ
liệu, thậm chí có thể dẫn đến lỗ hổng RCE như ở trên.
SQLi đã xuất hiện được một thời gian dài và là một trong số những lỗ hổng phổ
biến và nghiêm trọng nhất. Đã có nhiều công cụ và kĩ thuật ngăn chặn lại kiểu tấn cơng
này nhưng hacker cũng ngày càng có nhiều cơng cụ để khai thác lỗ hổng này.
Hình 1. 7. Tỉ lệ ứng dụng web chứa lỗ hổng SQLi
3. Blind SQL Injection
11
Blind SQL Injection là kĩ thuật tấn công SQL Injection phức tạp hơn. Hacker sử
dụng kĩ thuật này khi các kĩ thuật tấn công SQLi truyền thống không hiệu quả. Tuy
nhiên, việc thực hiện kĩ thuật này lại tốn rất nhiều thời gian và tạo ra lượng lớn yêu cầu
đến hệ thống nạn nhân. Vì thế nên quản trị viên có thể phát hiện cuộc tấn cơng Blind
SQL Injection thơng qua việc giám sát log.
“Blind” trong Blind SQL Injection có nghĩa là “mù”. Bởi vì kẻ tấn cơng khơng
thể trực tiếp khiến cho ứng dụng web trả về thông tin mong muốn mà hắn chỉ có thể
dựa vào các thành phần điều kiện trong câu lệnh SQL, ví dụ như câu truy vấn chỉ có thể
trả về hai kết quả là đúng hoặc sai, nếu như ứng dụng web có những hành vi khác nhau
trong 2 trường hợp trên thì hacker có thể dựa vào đó để thu thập từng chút thơng tin
một.
Hình 1. 8. Tỉ lệ ứng dụng web chứa lỗ hổng Blind SQLi so với Union/error SQLi
4. Local File Inclusion and Directory Traversal
Local File Inclusion (LFI) và Directory Traversal (Path Traversal) cho phép kẻ
tấn công truy cập trái phép vào hệ thống file của hệ thống mục tiêu. Với lỗ hổng
Directory Traversal (Path Traversal), kẻ tấn cơng có thể đọc được các file mà người
dùng thông thường không có quyền đọc. Ví dụ nếu như hệ điều hành nạn nhân là Linux
hay UNIX thì kẻ tấn cơng có thể sử dụng thư mục /proc để truy cập các thành phần của
phần mềm, thiết bị phần cứng, mạng, … Hay có thể truy cập thư mục /etc để xem các
thơng tin nhạy cảm như usernames, password, …
Cịn đối với lỗ hổng LFI, kẻ tấn cơng khơng những có thể đọc file mà cịn có thể
“include” code từ chúng, từ đó dẫn đến việc thực thi mã trên web server.
12
Mặc dù 2 lỗ hổng này khá là phổ biến và lâu đời, thế nhưng vẫn có một lượng
ứng dụng web chứa 2 lỗ hổng này.
Hình 1. 9. Tỉ lệ ứng dụng web chứa lỗ hổng LFI và Directory Traversal
5. Cross-site Scripting
Cross-site Scripting (XSS) xảy ra khi kẻ tấn công chèn mã độc vào trong 1 trang
web, thường là mã JavaScript. Các trang web tương tác hiện nay cần thực thi mã trên
trình duyệt web của người dùng và đây chính là cơ sở để hacker thực hiện tấn cơng
XSS. Có 3 kiểu tấn cơng XSS chính là Reflected XSS, DOM-based XSS và Stored XSS.
Có đến 25% ứng dụng web trong danh sách của nhóm phân tích chứa lỗ hổng
XSS, tuy ít hơn năm ngối nhưng đây vẫn là một con số đáng báo động, Các template
và framework JavaScript liên tục tăng lên từng ngày nhưng rất nhiều trong số đó có
chứa lỗ hổng XSS
13
Hình 1. 10. Tỉ lệ ứng dụng web chứa lỗ hổng XSS
6. Vulnerable JavaScript Libraries
Các thư viện JavaScript giúp cho việc phát triển ứng dụng nhanh hơn và dễ hơn,
tuy nhiên một vài thư viện lại chứa các lỗ hổng chưa được vá. Một vài ứng dụng web
sử dụng các thư viện JavaScript cũ và có thể bị kẻ tấn cơng khai thác để thực hiện các
hình thức tấn cơng XSS.
Hình 1. 11. Tỉ lệ các thư viện JavaScript chứa lỗ hổng
7. Weak Passwords and Missing Brute-Force Protection
14
Các mật khẩu yếu là các mật khẩu ngắn, sử dụng các cụm từ dễ đốn và hồn
tồn có thể bị khai thác bằng cách đoán hoặc sử dụng kĩ thuật vét cạn. Thống kê 200
mật khẩu phổ biến nhất năm 2020 của NordPass [3] cho thấy đến 80% trong số này có
thể bị bẻ khóa dưới 1 giây.
8. Reserved Information Disclosure
Một số thơng tin nên giữ bí mật thay vì tiết lộ ra bên ngồi. Tùy theo thơng tin
bị tiết lộ mà mức độ nguy hiểm cũng thay đổi theo, trong đó, việc bị lộ thơng tin nhận
dạng cá nhân là nguy hiểm nhất.
Hình 1. 12. Tỉ lệ các thông tin bị lộ
9. Source Code Disclosure
Việc mã nguồn của ứng dụng web bị lộ có thể khiến cho kẻ tấn cơng dễ dàng
khai thác và tìm ra lỗ hổng hơn. Kẻ tấn cơng có thể tìm kiếm thơng tin nhân dạng hay
các thông tin nhạy cảm như chứng chỉ hay API Keys trong mã nguồn … Hắn cũng có
thể tìm kiếm lỗ hổng trong mã nguồn bằng cách phân tích cách thức lập trình viên phát
triển và xây dựng nên từng phần của ứng dụng. Việc tiết lộ mã nguồn là hồn tồn
khơng nên kể cả đó là mã nguồn của cá nhân hay tổ chức.
15
Hình 1. 13. Tỉ lệ phần trăm các ứng dụng web bị lộ mã nguồn
10. Server-side Request Forgery (SSRF)
Server-side Request Forgery (SSRF) là lỗ hổng xảy ra khi kẻ tấn cơng có thể
khiến cho ứng dụng web gửi dữ liệu đã đóng gói đến máy chủ khác. Chỉ có 1% ứng
dụng web có chứa lỗ hổng này
Hình 1. 14. Tỉ lệ phần trăm các ứng dụng web chứa lỗ hổng SSRF
11. Overflow Vulnerabilities
Lỗ hổng tràn bộ đệm xảy ra khi kẻ tấn cơng có thể nhập vào q nhiều dữ liệu,
khiến cho bộ nhớ bị tràn. Lỗ hổng này thường xảy ra trên các ứng dụng được viết bằng
C hay C++ do trong 2 ngôn ngữ này, việc quản lý bộ nhớ hồn tồn được thực hiện bởi
lập trình viên chứ không phải bản thân ngôn ngữ. 2 dạng lỗ hổng tràn bộ đệm phổ biến
là Stack Overflow và Heap Overflow.
16
Hình 1. 15. Tỉ lệ phần trăm các ứng dụng web chứa lỗ hổng Overflow
12. WordPress (and Other CMS) Vulnerabilities
Số liệu cho thấy tới tháng 1 năm 2020, có hơn 35% tổng số trang web được xây
dựng trên WordPress. Điều này đã thu hút rất nhiều các hacker. WordPress có 2 thành
phần chính là WordPress Core, UI Themes và các plugins. Việc vá các lỗ hổng trong
WordPress Core được đội ngũ phát triển thực hiện liên tục và kịp thời. Thế nhưng với
themes và plugins thì lại ngược lại, đây là mối đe dọa nghiêm trọng đối với các trang
web sử dụng WordPress. Nếu như hacker phát hiện lỗ hổng trong một themes hay một
plugin thì hắn có thể tấn cơng hàng nghìn trang web sử dụng theme và plugins đó.
Hình 1. 16. Tỉ lệ các ứng dụng web xây dựng trên WordPress và các nền tảng CMS chứa lỗ hổng
13. Web Server Vulnerabilities and Misconfigurations
17
Lỗ hổng trên Web Server có 2 loại chính là lỗ hổng trong phần mềm và lỗ hổng
trong khâu cài đặt. Lỗ hổng phần mềm web server đến từ các nhà cung cấp và thường
được chính họ phát hiện ra và sửa lỗi dưới dạng các bản cập nhật, các bản vá. Lỗ hổng
trong khâu cài đặt có thể dẫn khiến cho web server dễ dàng bị tấn công.
Một số lỗ hổng trên web server có thể kể đến từ việc lộ thông tin cho đến lỗ hổng
tràn bộ đệm hay nghiêm trọng nhất là lỗ hổng cho phép thực thi mã từ xa. Theo thống
kê thì Web server sử dụng nền tảng IIS tồn tại nhiều lỗ hổng nhất.
Hình 1. 17. Tỉ lệ phần trăm lỗ hổng trên các nền tảng web server
18
CHƯƠNG 2: GIỚI THIỆU VỀ ACUNETIX
Chương 1 đã cho thấy cái nhìn tổng quan về an tồn bảo mật ứng dụng web hiện
nay. Thế nhưng trên thực tế, việc đảm bảo an toàn bảo mật cho ứng dụng web đang bị
xem thường và không nằm trong danh mục ưu tiên của các doanh nghiệp, tổ chức. Điểm
mạnh của ứng dụng web là chúng có thể truy cập 24/7 song các ứng dụng web khơng
đảm bảo an tồn cũng có thể bị tấn công bất cứ lúc nào.
Các ứng dụng web được thiết kế để người dùng có thể thu thập hoặc gửi lên các
thông tin cá nhân bao gồm cả các thông tin nhạy cảm. Nếu những ứng dụng web này
khơng đảm bảo an tồn bảo mật thì tồn bộ cơ sở dữ liệu lưu trữ thông tin nhạy cảm
của người dùng sẽ đứng trước nguy cơ bị tấn công. Một vài nghiên cứu đã chỉ ra rằng
khoảng 75% vụ tấn công mạng được thực hiện ngay trên ứng dụng web. Đứng trước
nguy cơ này, cần có các phương pháp giúp đảm bảo an toàn bảo mật cho ứng dụng web.
Các phương pháp này thường là các kĩ thuật rà quét và phát hiện các lỗ hổng bảo mật
trong ứng dụng web, từ đó người quản trị có thể vá các lỗ hổng đó trước khi hacker khai
thác để thực hiện tấn công.
1. Sự cần thiết của các công cụ rà quét lỗ hổng bảo mật tự động
Việc rà quét lỗ hổng bảo mật thủ công rất phức tạo và tốn thời gian vì nó thường
u cầu xử lý lượng dữ liệu lớn và u cầu trình độ chun mơn cao. Ngồi ra, tin tặc
cũng liên tục tìm ra những cách mới để khai thác lỗ hổng trong ứng dụng web của người
dùng, điều đó có nghĩa là người dùng sẽ phải liên tục theo dõi các cộng đồng bảo mật
và tìm ra các lỗ hổng mới trong ứng dụng web trước khi tin tặc phát hiện ra chúng.
Trái lại với đó, các cơng cụ rà qt lỗ hổng bảo mật tự động giúp người dùng tiết
kiệm thời gian và công sức rất nhiều. Người dùng chỉ cần tập trung vào công việc xây
dựng và phát triển ứng dụng web, cịn hầu hết các vấn đề về bảo mật có thể để công cụ
rà quét tự động chịu trách nhiệm. Các công cụ này liên tục theo dõi và cập nhật các hình
thức tấn cơng mới nhất. Chúng có thể rà quét mã nguồn ứng dụng và phát hiện các lỗ
hổng tồn tại trong đó. Và tất nhiên những tác vụ này hoàn toàn tự động và chỉ trong một
khoảng thời gian rất ngắn, giúp cho người dùng có thể dồn hết thời gian vào việc phát
triển ứng dụng.
2. Công cụ rà quét lỗ hổng Acunetix
Acunetix là công cụ rà quét lỗ hổng bảo mật tự động cho phép người dùng kiểm
tra các lỗ hổng nghiêm trọng trên ứng dụng web như SQL Injection, XSS hay các lỗ
hổng khác. Acunetix có thể qt bất kì trang web hoặc ứng dụng web nào mà có thể
truy cập thơng qua trình duyệt web và sử dụng giao thức HTTP/HTTPS.
Acunetix cung cấp một giải pháp mạnh mẽ và độc nhất để phân tích các ứng
dụng web tùy chỉnh và có sẵn, bao gồm cả những ứng dụng web sử dụng JavaScript,
19
AJAX và Web 2.0. Acunetix có một trình thu thập thơng tin nâng cao và có thể tìm thấy
hầu hết mọi đường dẫn, tệp tin trên web. Đây là một điều khá quan trọng vì những
đường dẫn, tệp tin khơng tìm thấy thì khơng thể kiểm tra có chứa lỗ hổng bảo mật hay
khơng.
Hình 2. 1. Cơng cụ rà qt lỗ hổng bảo mật tự động Acunetix
2.1. Cách thức hoạt động của Acunetix
Acunetix hoạt động theo luồng chính như sau: [4]
Acunetix DeepScan phân tích tồn bộ trang web bằng cách truy vết tất cả các
liên kết trên trang web, bao gồm các liên kết được xây dựng tự động bằng JavaScript
và các liên kết được tìm thấy trong tệp robots.txt và sitemap.xml (nếu có). Kết quả là
một bản đồ của trang web, mà Acunetix sẽ sử dụng để khởi chạy các kiểm tra được
nhắm mục tiêu đối với từng phần của trang web.
20
Hình 2. 2. Cấu trúc trang web
Nếu Acunetix AcuSensor Technology (kỹ thuật hỗ trờ rà quét mã nguồn của
Acunetix) được cài đặt, bộ thu thập (Sensor) sẽ lấy danh sách tất cả các tệp có trong thư
mục ứng dụng web và thêm các tệp mà trình thu thập thơng tin khơng tìm thấy vào đầu
ra của trình thu thập thơng tin. Các tệp như vậy thường khơng được trình thu thập thơng
tin phát hiện vì chúng khơng thể truy cập được mày chủ web hoặc không được liên kết
thông qua trang web chẳng hạn như web.config.
Sau quá trình thu thập dữ liệu, máy quét sẽ giả lập như một hacker, tự động khởi
chạy một loạt các kiểm tra lỗ hổng trên mỗi trang được tìm thấy. Acunetix cũng phân
tích từng trang chó thấy những nơi có thể nhập dữ liệu và sau đó thử tất cả khả năng
đầu vào độc hại. Đây là Giai đoạn quét tự động. Nếu AcuSensor Technology được bật,
các mẫu kiểm tra lỗ hổng bổ sung sẽ được đưa ra đối với trang web.
Hình 2. 3. Danh sách các cảnh báo
21
Các lỗ hổng được xác định được hiển thị trong Scan Result. Các thông tin về lỗ
hổng như data trong một request POST được sử dụng, mục bị ảnh hưởng, phản hồi
HTTP của máy chủ và các thông tin khác được cung cấp chi tiết trong mỗi cảnh báo lỗ
hổng. Các thơng tin này trong hầu hết trường hợp có thể giúp cho người quản trị có thể
dựng lại kịch bản tấn cơng và dễ dàng vá lỗi hơn, ví dụ như trong lỗ hổng sau của một
website.
Hình 2. 4. Ví dụ lỗ hổng của một website
Nếu AcuSensor Technology được sử dụng, các chi tiết như số dòng mã nguồn
dẫn đến lỗ hổng được liệt kê. Các khuyến nghị về cách khắc phục lỗ hổng cũng được
hiển thị.
Sau khi việc dị qt hồn tất, Acunetix có thể tạo ra các báo cáo như Executive
Summary, Developer Report hay các báo cáo tuân theo các tiêu chuẩn PCI DSS hoặc
ISO 270001.
2.2. Acunetix AcuSensor Technology
AcuSensor Technology là công nghệ độc quyền của Acunetix cho phép người
dùng tìm được nhiều lỗ hổng bảo mật hơn so với các hệ thống rà quét khác, đồng thời
cải thiện mức độ chắc chắn về lỗ hổng hơn. Acunetix AcuSensor cho biết chính xác lỗ
hổng bảo mật nằm ở đâu trong mã nguồn ứng dụng của người dùng và báo cáo thông
tin chi tiết gỡ lỗi cho người dùng. [5]
AcuSensor Technology có thể tăng độ chính xác khi rà quét các ứng dụng web
xây dựng bằng PHP, .NET và Java lên rất nhiều nhờ việc kết hợp kĩ thuật rà quét hộp
đen (Black box scanning) và phản hồi từ các cảm biến đặt trong mã nguồn ứng dụng.
Rà quét hộp đen là kĩ thuật rà quét mà không biết thông tin, mã nguồn của ứng dụng
22