Autoswagger - 揭露隱藏API授權缺陷的開源利器
在當今快速變遷的數位環境中,應用程式介面(API)已成為現代軟體應用的核心骨幹,驅動著從行動應用到雲端服務的一切運作。然而,API的普及也伴隨著資安威脅的急劇增加。
根據Verizon的報告,與API相關的資料洩露事件在過去一年中增長了近40%,其中「破損的授權」(Broken Authorization)被列為最常被利用的漏洞之一。傳統的API檢測工具往往成本高昂、效率低下,或需要大量手動操作,這使得許多組織在應對這些複雜且不斷演進的威脅時,面臨著嚴峻的挑戰。
正是在這樣的背景下,知名的攻擊面管理公司Intruder推出了一款名為「Autoswagger」的全新開源命令列工具。這款工具專為偵測OpenAPI(過去稱為Swagger)文件化的API中的隱藏授權缺陷而設計,為資安專業人員和開發團隊提供了一個免費且高效的解決方案,以應對日益嚴峻的API安全挑戰。
Autoswagger的運作機制與核心功能
Autoswagger的設計宗旨是
自動化地發現、解析並測試API端點是否存在未經授權的存取問題。其運作流程包含多個階段,確保能全面地偵測潛在的資安弱點:
- 多重發現階段 (Multiple Discovery Phases):
- 直接規範偵測 (Direct Spec):如果提供以
.json
、.yaml
或.yml
結尾的完整URL,Autoswagger將直接解析該文件。 - Swagger UI偵測 (Swagger UI):工具會嘗試解析已知的Swagger UI路徑(例如
/swagger-ui.html
),並從HTML或JavaScript中提取API規範。它甚至能偵測嵌入在程式碼中的配置,如window.swashbuckleConfig
。 - 暴力破解直接規範 (Direct Spec by Bruteforce):如果上述兩種方法未能找到API規範,Autoswagger將嘗試透過暴力破解常用OpenAPI schema位置(例如
/swagger.json
、/openapi.json
等)來發現,直到找到有效的規範或所有嘗試失敗為止。
- 平行端點測試 (Parallel Endpoint Testing):
- 一旦載入API規範,Autoswagger會提取其中所有路徑和HTTP方法(預設只測試GET請求,但可選擇性地測試POST、PUT、PATCH、DELETE等方法)。
- 它能填寫路徑和查詢參數的預設值或範例值,並可根據API規範中的
requestBody
(OpenAPI 3)或body parameters
(Swagger 2)構建請求主體。 - 為了提高效率,工具支援多執行緒並行測試大量端點,並可設定請求速率限制,確保測試在可控範圍內進行。
- 敏感資訊偵測 (PII & Secrets Detection):
- Autoswagger不僅檢測授權缺陷,還會分析API的響應,以偵測是否有敏感資訊外洩。
- 它利用Presidio進行個人身份資訊(PII)的偵測,包括電話號碼、電子郵件、地址和姓名等,並透過上下文驗證減少誤報。
- 此外,它還使用一組正則表達式(regex patterns)來偵測令牌(tokens)、金鑰(keys)和調試產物(如環境變數),有效識別潛在的機密資訊洩露。
- 對於包含100個以上JSON元素或大型XML結構的響應,或原始大小超過特定閾值(如100KB)的響應,工具會將其標記為「有趣」的響應,提示進一步檢查。
- 參數值暴力破解 (Brute-Force of Parameter Values):
- 透過啟用
--brute
標誌,Autoswagger可以嘗試使用各種資料類型和少數範例值來繞過參數特定的驗證。這有助於發現那些要求特定資料格式或值,但可能因為錯誤配置而拒絕通用輸入的端點中的漏洞。
- 輸出報告 (Output Report):
- 在預設模式下,Autoswagger將結果以表格形式顯示。使用者也可以選擇以JSON格式輸出,方便進一步的自動化處理。
- 「產品模式」(
-product
mode)則可過濾輸出,僅顯示包含PII、機密或大型響應的結果,幫助團隊聚焦於最關鍵的問題。
Autoswagger的關鍵意義
Autoswagger的推出具有多重關鍵意義:
- 填補市場空白:現有市場上缺乏免費且高效的工具來自動化偵測API的破損授權問題。Autoswagger的出現彌補了這一空白,使更多組織能夠進行必要的API安全測試。
- 應對日益嚴峻的威脅:API已成為組織攻擊面的重要組成部分。許多API漏洞,特別是授權缺陷,即使是技術水平較低的攻擊者也能輕易利用。Autoswagger提供了一個主動式的方法來識別這些易受攻擊的點。
- 推動資安左移:將API安全檢測整合到開發生命週期中,使開發團隊能夠在程式碼部署到生產環境之前發現並修復問題,符合DevSecOps的理念。
- 強化防禦深度:如同Intruder的安全主管Daniel Andrew所言,公開API文件實際上增加了攻擊面。因此,除了定期在每個開發迭代後進行API掃描外,除非有明確的業務需求,否則不應公開API文件。Autoswagger作為防禦深度的一部分,可有效協助組織應對此類挑戰。
- 開源社群的力量:作為一個開源工具,Autoswagger不僅提供免費使用,也鼓勵全球資安社群共同參與開發、改進和驗證。這將有助於其快速演進,並適應不斷變化的威脅格局。
- 實務應用案例:在Intruder團隊對Autoswagger的研究和測試中,他們成功地在一家大型跨國科技公司發現了暴露的Salesforce紀錄(包含PII),並在一家跨國飲料公司發現了一個暴露的內部員工培訓應用程式,該應用程式允許潛在攻擊者對資料庫執行查詢。這些實例證明了Autoswagger在實際應用中的有效性。
結論
API安全不再是可選項,而是企業數位韌性的基石。Autoswagger這款免費且開源的工具,為企業提供了一個強大的武器,能有效揭露OpenAPI文件化API中常見但危險的授權缺陷。台灣應用軟件建議所有仰賴API運作的企業,應積極導入Autoswagger,並將其整合至持續整合/持續部署(CI/CD)流程中,搭配定期安全審查和滲透測試,以建立更全面的API安全防線。透過Autoswagger,組織能更主動地識別並修復這些漏洞,從而顯著降低資料外洩的風險,保護其寶貴的數位資產。
資料來源:https://www.helpnetsecurity.com/2025/07/24/autoswagger-open-source-tool-expose-hidden-api-authorization-flaws/