0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

Dastardly: Công Cụ Scan Lỗ Hổng Bảo Mật Tự Động Miễn Phí Từ PortSwigger

Đăng vào 2 tuần trước

• 3 phút đọc

Mở Đầu

Dastardly là một công cụ dò quét lỗ hổng bảo mật hoàn toàn miễn phí, được phát triển bởi PortSwigger, cùng nhà phát triển của Burp Suite. Với engine quét mạnh mẽ tương tự như Burp Scanner, Dastardly được thiết kế để tích hợp dễ dàng vào CI/CD pipeline của các dự án phát triển phần mềm, nhằm tự động hóa việc phát hiện các lỗ hổng bảo mật trong ứng dụng web trong quá trình phát triển và triển khai. Phiên bản đầu tiên ra mắt vào năm 2022 và đến nay đã được nâng cấp lên phiên bản 2024.2 vào ngày 28/3/2024, với nhiều tính năng và cải tiến đáng chú ý. Bài viết dưới đây sẽ đánh giá các khả năng, ưu nhược điểm của công cụ này.

Tính Năng

Tổng Quan

Dastardly là công cụ Dynamic Application Security Testing (DAST), cho phép truy cập vào các đường dẫn ứng dụng, thực hiện crawling các đường dẫn và tự động sinh payload để kiểm tra lỗ hổng bảo mật. Phương pháp này giúp giảm thiểu tối đa tình trạng false-positive (các lỗi không phải lỗi).

Quan trọng là, khi sử dụng Dastardly, người dùng vẫn cần cẩn trọng, vì có thể gây ảnh hưởng đến ứng dụng do các payload/request đặt biệt. Đọc kỹ tài liệu hướng dẫn trước khi sử dụng, sao lưu hệ thống, và chỉ nên sử dụng trên môi trường Dev hoặc Staging để tránh rủi ro không mong muốn.

Một điểm cần lưu ý là Dastardly không hỗ trợ authenticated scan, tức là không kiểm tra lỗ hổng với vai trò người dùng đã đăng nhập vào hệ thống, do đó các kết quả chỉ phản ánh từ góc nhìn của một hacker bên ngoài.

Dastardly sử dụng Chromium trong docker để thực hiện các request và scan, đồng thời hỗ trợ quét API dựa trên OpenAPI spec.

Các Lỗ Hổng Bảo Mật

Dastardly hỗ trợ kiểm tra nhiều loại lỗ hổng bảo mật, trong đó đáng chú ý nhất là lỗ hổng Cross-site Scripting (XSS) (reflected). Công cụ cũng có khả năng phát hiện các thư viện JavaScript có lỗ hổng bảo mật.

Tích Hợp

Dastardly có thể dễ dàng tích hợp vào các CI/CD pipeline phổ biến như TeamCity, Jenkins, và GitHub Actions. Với việc đóng gói vào docker container, Dastardly có thể chạy trên bất kỳ nền tảng nào. Dưới đây là hình thức quét nhanh một ứng dụng mẫu.

Thử Nghiệm

Thử Nghiệm 1: Quét Trang Demo

Chúng ta sẽ quét trang demo nổi tiếng của Acunetix: http://testphp.vulnweb.com/

Câu lệnh docker để quét trang này là:

Copy
docker run --user $(id -u) --rm -v $(pwd):/dastardly -e BURP_START_URL=http://testphp.vulnweb.com/ -e BURP_REPORT_FILE_PATH=/dastardly/testphp.vulnweb.com-dastardly-report.xml public.ecr.aws/portswigger/dastardly:latest

Hai biến môi trường bắt buộc:

  • BURP_START_URL: Đường dẫn URL ban đầu để Dastardly truy cập.
  • BURP_REPORT_FILE_PATH: Đường dẫn lưu file báo cáo kết quả quét.

Sau khoảng 4 phút, quá trình quét hoàn tất và chúng ta nhận được báo cáo định dạng JUnit XML.

Thử Nghiệm 2: Quét Trang Demo Khác

Quét thử với trang demo của PortSwigger: https://ginandjuice.shop/

Kết quả sau 10-15 phút là rất khả quan với nhiều PoC hữu ích.

Thử Nghiệm 3: Quét API

Chúng ta sẽ thử nghiệm quét API với repo: https://github.com/erev0s/VAmPI.

Câu lệnh setup:

Copy
docker network create demo-network
docker run -it -p 5000:5000 --rm --name vampi --network demo-network erev0s/vampi:latest
docker run --user $(id -u) --network demo-network --rm -v $(pwd):/dastardly -e BURP_START_URL=http://vampi:5000/ -e BURP_REPORT_FILE_PATH=/dastardly/vampi-dastardly-report.xml public.ecr.aws/portswigger/dastardly:latest

Nhận thấy rằng Dastardly chỉ quét nếu ứng dụng tự động tạo request đến các endpoint API cùng miền tầng xuất phát.

Kết Luận

Dastardly là một công cụ hữu ích, nhưng không nên hoàn toàn dựa vào để thực hiện việc kiểm tra bảo mật. Cần kết hợp với các công cụ khác và kiểm tra bằng tay để đảm bảo an toàn tuyệt đối. Với khả năng tích hợp dễ dàng, thời gian quét nhanh, và hoàn toàn miễn phí, Dastardly là một tài nguyên quý giá cho các dự án phát triển phần mềm. Nên tích hợp vào quy trình từ đầu để tối ưu hóa nguồn lực bảo mật.

Tham Khảo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào