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

Phân Tích Hệ Thống Kiểm Thử Web Tự Động ROGUE

Đăng vào 5 tháng trước

• 5 phút đọc

Giới thiệu

Trong bài viết này, chúng ta sẽ khám phá hệ thống kiểm thử web tự động ROGUE, một dự án thú vị trong lĩnh vực an ninh mạng, đặc biệt là kiểm thử thâm nhập (pentesting). Chúng ta sẽ phân tích các tính năng của hệ thống, cách hoạt động, và những vấn đề mà nó gặp phải trong quá trình kiểm thử.

Mục lục

  1. Bộ công nghệ
  2. Mô tả cách hoạt động của hệ thống
  3. Kiểm thử thực tế
  4. Tóm tắt
  5. Câu hỏi thường gặp

1. Bộ công nghệ

Dự án này không có số phiên bản rõ ràng, vì vậy chúng ta sẽ sử dụng phiên bản mới nhất từ commit ngày 18 tháng 6 năm 2025. Theo mô tả của dự án, ROGUE được định vị như một đại lý để quét web tự động, nhắm đến các ứng dụng web. Hệ thống được viết bằng Python và sử dụng OpenAI như một mô hình ngôn ngữ lớn. Mô hình gpt-4o và o4-mini được sử dụng, và tuy có ý định sử dụng mô hình của Anthropic, nhưng chỉ dừng lại ở việc khai báo lớp.

Các công cụ của hệ thống được định nghĩa trong tệp tools.py, bao gồm phần gọi đến chức năng của Playwright, phương thức chạy mã Python được tạo ra bởi mô hình ngôn ngữ, và các chức năng chưa hoàn thiện. Các prompt hệ thống thay đổi tùy thuộc vào từng bước. Prompt mô tả vai trò của đại lý an ninh, cung cấp kiến thức về SQL injection và các mẹo hack khác.

2. Mô tả cách hoạt động của hệ thống

Khi tệp run.py được khởi động, một đối tượng Agent được tạo ra. Khi nó được khởi tạo, một cơ sở tri thức đơn giản được tạo dựa trên dữ liệu từ các trang web bên thứ ba. Dữ liệu này được truyền đến đối tượng LLM, và cuối cùng, Reporter được khởi tạo.

Dựa trên trang đã phân tích, phương thức self.scanner.scan(url) sẽ tạo ra một trang để phân tích thông qua Summarizer. Quá trình này bao gồm hai giai đoạn: phân tích đơn giản và phân tích cuối cùng thông qua LLM, nơi cố gắng tìm các yếu tố cần thiết.

Kế hoạch quét được tạo ra và thực hiện cho đến khi hoàn thành tất cả các bước trong kế hoạch. Hệ thống sẽ phân tích, sử dụng các công cụ và tạo một bản tóm tắt trung gian. Cuối cùng, một báo cáo cuối cùng được tạo ra.

3. Kiểm thử thực tế

3.1 Môi trường kiểm thử

Cho nghiên cứu này, tôi đã sử dụng dự án Metasploitable 2, bao gồm mutillidae - một ứng dụng web để kiểm tra các lỗ hổng web. Tôi đã chọn lỗ hổng XSS đơn giản nhất. Để kiểm thử, tôi khởi động một máy trên mạng kín và chọn trang sau: http://192.168.127.166/mutillidae/index.php?page=add-to-your-blog.php

html Copy
// Lỗ hổng đơn giản tại đây
<script>alert("a")</script>

3.2 Kỹ thuật khởi động

Khởi động bằng lệnh:

bash Copy
python run.py -u http://192.168.127.166/mutillidae/index.php?page=add-to-your-blog.php

Mô hình LLM mặc định là o4-mini.

3.3 Quan sát và phân tích quá trình

Hệ thống đã chọn mô hình o4-mini và dữ liệu từ RAG bị vô hiệu hóa. Hệ thống nhận thấy rằng JS đã được kích hoạt và nhận ra cần thực hiện kiểm tra XSS, nhưng ngay lập tức bắt đầu thực hiện các kiểm tra phức tạp và đi vào lối đi sai. Có những nỗ lực thực hiện Stored XSS Injection thông qua Client-Side Filter Evasion nhưng không thành công với lỗ hổng đơn giản này.

Trong quá trình quét, hệ thống đã mất thời gian từ 10-15 phút cho mỗi trang, và nếu cần quét 20-30 trang, thời gian sẽ kéo dài hàng giờ. Trong thực tế, bạn nhận được một mạng lưới của khách hàng với nhiều dịch vụ web và một số dịch vụ khác cần phải được quét trong thời gian hợp lý, không ai sẽ chờ đợi một tuần.

Báo cáo cuối cùng hoàn toàn không có giá trị, mặc dù tôi đã thấy rằng cuộc tấn công đã thành công khi mã được thực thi, nhưng không được ghi lại và báo cáo trở nên trống rỗng về các lỗ hổng.

Lần thứ hai, hệ thống được khởi động với RAG đơn giản và tôi đã thấy XSS mong muốn.

Nhưng kết quả không thay đổi nhiều và thậm chí trở nên tồi tệ hơn. Lỗ hổng được phát hiện thậm chí không được kiểm tra lần này ở cùng một giai đoạn, chỉ ở cuối cùng. Hệ thống yêu cầu các hành động từ người dùng, nhưng cũng không giúp ích gì, báo cáo cuối cùng đã trống rỗng dữ liệu hữu ích.

Tóm tắt

  • Hệ thống không hoàn toàn tự động.
  • Hệ thống chỉ sử dụng OpenAI.
  • Nó không thể kiểm thử hoàn toàn các ứng dụng web; nó cố gắng thực hiện XSS, CSF và SQL injection, nhưng không thành công.
  • Ngay cả với các phòng thí nghiệm kiểm thử đơn giản nhất, mà ngay cả một tester mới vào nghề cũng có thể xử lý, hệ thống đã thất bại.
  • Dự án đã bị bỏ rơi mà không đạt được một kết luận hợp lý nào.
  • Đã có những nỗ lực sử dụng các công cụ, Playwright và một số Summarizer, nhưng đều không có tác dụng.

Trong các bài học sắp tới, chúng tôi sẽ trình diễn cách hệ thống SxipherAI xử lý các trang web như vậy, đặc biệt là cách SxipherAI xử lý các lỗ hổng XSS, và phát triển một đại lý đơn giản của riêng chúng tôi để kiểm tra các lỗ hổng XSS.

Câu hỏi thường gặp

Hệ thống ROGUE có hoàn toàn tự động không?

Hệ thống này không hoàn toàn tự động, cần có sự tương tác của người dùng trong một số giai đoạn.

Hệ thống có sử dụng mô hình nào khác ngoài OpenAI không?

Hiện tại, hệ thống chỉ sử dụng OpenAI và không hỗ trợ các mô hình khác.

Có thể sử dụng hệ thống này trong môi trường thực tế không?

Hệ thống gặp nhiều vấn đề trong việc ghi nhận các hành động thành công và không thể kiểm thử hiệu quả các ứng dụng web một cách tự động.

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