Giới thiệu về Autoswagger
Autoswagger là một công cụ dòng lệnh giúp tự động phát hiện, phân tích và kiểm thử các điểm cuối (endpoint) chưa xác thực của API dựa trên tài liệu Swagger/OpenAPI. Công cụ này được xây dựng nhằm hỗ trợ kiểm tra rò rỉ thông tin nhạy cảm (PII), tìm kiếm các secret, và phát hiện các lỗ hổng xác thực trong hệ thống API. Autoswagger thích hợp cho cả pentester lẫn các đội ngũ DevSecOps muốn rà quét, đánh giá bảo mật nhanh API nội bộ hoặc bên ngoài.
Tính năng chính của Autoswagger
Phát hiện và phân tích spec đa chiều: Autoswagger tự động dò tìm file .json, .yaml hoặc .yml chứa OpenAPI/Swagger spec ở nhiều vị trí thường gặp như /swagger.json, /openapi.json hoặc các trang /swagger-ui.html.
Trích xuất endpoint thông minh: Toàn bộ các paths và HTTP methods được lấy tự động từ spec.
Đánh giá Bảo mật Endpoint: Thực thi request vào tất cả endpoint với nhiều kiểu giá trị và method (GET là mặc định; các method khác như POST, PUT, PATCH, DELETE có thể thêm bằng flag).
Kiểm tra PII và Secret tự động: Tích hợp Presidio để phát hiện thông tin quan trọng như email, số điện thoại, địa chỉ, tên riêng; đồng thời dò các mẫu secret, key, token… qua regex.
Phát hiện phản hồi lớn (Big Response): Đánh dấu các response chứa nhiều item (ví dụ JSON có trên 100 phần tử) hoặc kích thước lớn (>100Kb), giúp xác định endpoint tiềm ẩn rủi ro về leak data.
Brute-force parameter: Cho phép thử nghiệm nhiều giá trị parameter khác nhau để bypass validation phía server.
Parallel/Concurrency: Hỗ trợ quét đồng thời với giới hạn requests mỗi giây (RPS) tùy chỉnh, tối ưu thời gian cho hệ thống lớn.
Xuất kết quả đa dạng: Chọn xuất ra console/table, JSON, hoặc chỉ in endpoint “có vấn đề”. Báo cáo có thống kê, phân nhóm endpoint/phát hiện, rất thuận tiện cho phân tích.
Quy trình hoạt động chi tiết của Autoswagger
1. Phát hiện và tải Swagger/OpenAPI Spec
Autoswagger dò tìm tài liệu API theo ba giai đoạn:
- Direct Spec: Nếu người dùng đưa hẳn một đường dẫn file spec (.json/.yaml/.yml), công cụ sẽ tải và parse trực tiếp.
- Swagger-UI Detection: Thử các path phổ biến dành cho Swagger UI (ví dụ
/swagger-ui.html). Nếu tìm thấy, tool sẽ trích xuất spec từ HTML/JavaScript nhúng trên trang. - Brute-force Spec Location: Nếu hai bước trên thất bại, Autoswagger thử hàng loạt endpoint mặc định thường thấy như
/swagger.json,/openapi.jsonđể tìm tài liệu.
2. Trích xuất và kiểm thử Endpoint
- Parse spec lấy danh sách endpoint và method từ khoá
paths. - Thực hiện request lên từng endpoint, mặc định là GET, có thể mở rộng sang POST, PUT, PATCH, DELETE với flag -risk.
- Giá trị của parameter sẽ được fill tự động với data mẫu; nếu bật -b, tool sẽ thử nhiều biến thể để kiểm tra valid input.
3. Quét thông tin nhạy cảm và rủi ro trên response
PII Detection: Sử dụng Microsoft Presidio để rà quét các trường có thể chứa thông tin PII (email, tên, địa chỉ, số điện thoại). Quét cả phần dạng CSV hoặc “key: value”.
Secret Detection: TruffleHog-like pattern đặt sẵn các regex để tìm API key, token, biến môi trường…
Big Response Detection: Endpoint có JSON trên 100 phần tử hoặc file lớn đều được đánh dấu “interesting”.
4. Output, tổng hợp kết quả
- Kết quả mặc định hiển thị bảng console.
- Có thể xuất JSON phù hợp workflow tự động/quản lý dữ liệu.
- Với flag -product, chỉ các endpoint có PII, secret, response lớn mới được in ra.
- Tùy chọn hiển thị -stats để xem tổng quan về hosts, request/phút, số endpoint/rủi ro…
Các flag và options tiêu biểu
Flag
Chức năng
urls
Danh sách base URLs hoặc file spec trực tiếp
-v, --verbose
Hiển thị verbose logging, lưu logs về thư mục người dùng
-risk
Bật kiểm thử các lệnh HTTP có thể gây thay đổi state (POST, PUT...)
-all
Báo về tất cả endpoint trả về status code (trừ 401/403); mặc định chỉ in 200
-product
Chỉ hiển thị endpoint có PII, secret hoặc response lớn
-rate <N>
Giới hạn tốc độ quét (RPS), mặc định là 30; đặt 0 để không giới hạn
-b, --brute
Brute-force nhiều giá trị cho từng parameter
-json
Xuất kết quả dưới dạng JSON
Phân tích ưu điểm khi sử dụng Autoswagger
- Tự động hóa kiểm thử bảo mật API dựa trên document chuẩn, không cần phải thu thập thủ công endpoint.
- Nhanh, tương thích đa hệ thống (API nội bộ hoặc SaaS bên ngoài), phù hợp pentest và kiểm thử thường xuyên DevSecOps.
- Hiệu quả trong phát hiện PII exposure, secret leak, chống lộ thông tin khách hàng hoặc cấu hình nguy hiểm.
- Linh hoạt xuất báo cáo: phù hợp cả đánh giá sâu thủ công lẫn quy trình CI/CD tự động.
Một số ví dụ về cách dùng Autoswagger
# Quét một API trực tiếp và hiển thị thông tin chi tiết
python3 autoswagger.py https://api.example.com -v
# Bao gồm các HTTP Method thao tác dữ liệu
python3 autoswagger.py https://api.example.com -risk
# Chỉ báo về endpoint phản hồi có PII, secret hoặc response lớn
python3 autoswagger.py https://api.example.com -product
# Tăng tốc độ quét tối đa, thử nhiều giá trị đầu vào
python3 autoswagger.py https://api.example.com -rate 0 -b
Kết luận
Autoswagger là công cụ mạnh mẽ giúp tự động hóa rà quét bảo mật API, nhanh chóng phát hiện nguy cơ rò rỉ dữ liệu và nguồn endpoint chưa bảo vệ. Với workflow thông minh, khả năng quét đồng thời, lọc dữ liệu nhạy cảm và mở rộng dễ dàng, đây là một trong những giải pháp tối ưu hóa cho các chuyên gia bảo mật, pentester hoặc đội DevSecOps.
Source link: intruder-io/autoswagger






