運用 Hacking APIs GPT 進行 API 安全性測試

幂简集成發表於2024-09-03


隨著 ChatGPT 在 2022 年崛起為主流技術,AI 對 API 領域產生了深遠影響。開發者現正採用 AI 技術輔助構建 API,並利用它與大規模語言模型(LLM)實現互動。因此,AI 與 API 的發展緊密相連。

近來,關於 AI 和 API 普及可能引發的安全隱患引發關注。Wallarm 近期釋出的《2024 API ThreatStats 報告》探討了 AI 和 API 帶來的潛在安全風險,包括 API 數量增加導致的風險以及 AI 被濫用編寫惡意程式碼等問題。那麼,AI 能提升 API 安全性嗎?

2024 年 1 月,網路安全專家科裡·J·波爾(Corey J. Ball)在推特上透露,一款名為 Hacking APIs GPT 的 AI 助手將用於評估和增強 API 安全性,此訊息在 API 社群引發熱議。然而,鑑於其他 LLM 未能達到預期效果,Hacking APIs GPT 是否真能如期發揮作用?本文將深入分析《Hacking APIs GPT》,為您揭示真相。

Hacking APIs GPT 回顧

Hacking APIs GPT 是 ChatGPT 的專業版本,本質上是專為使用 API 而設計的 大語言模型 (LLM)。 Hacking APIs GPT 可以做任何事情,從 API 文件檔生成 到 使用 Python 和 Flask 從零開始編寫 API 呼叫 的程式碼。 不過,它的主要用途是分析 API 安全性。

Hacking APIs GPT 可以執行多種型別的 API 安全審查,但它在一些特定功能方面表現出色。 Hacking APIs GPT 專為端點分析、API 描述文件審查、JWT 檢查和模糊有效載荷而設計。 這些是我們在 Hacking APIs GPT 評測中主要關注的領域,但我們也會提供一些一般想法和總體意見。

Hacking APIs GPT 端點分析回顧

某些 API 端點可能比其他端點更容易受到攻擊。 一不小心,易受攻擊的端點就會成為整個網路的嚴重安全隱患。 這一事實使得 Hacking APIs GPT 端點分析功能特別令人興奮和有用。

在評測中,我們向 GPT 詢問了幾個不同複雜程度的 API,看看它是如何回應的。 首先,我們向它提供了 HTTP Cat API,這是一個相對簡單的 API,常用於試驗和實驗。 下面是 Hacking APIs GPT 在被要求評估 HTTP Cat 端點時的響應示例。

GET /{status_code}.jpg<br>
Example: https://http.cat/404.jpg<br>
This endpoint returns a cat image representing the specified HTTP status code.<br>
**Potential Vulnerabilities and Mitigations**:<br>
1. URL Manipulation:<br>
* Description: Since the endpoint directly takes a status code in the URL, improper handling could lead to unintended behavior.<br>
* Mitigation: Ensure the server strictly validates the status code input. Only valid HTTP status codes should be accepted to avoid potential abuse or injection attacks.

Hacking API GPT 不僅能檢測潛在的安全風險,還能提供可能的解決方案。 僅憑這一點,就足以讓人對 大型語言模型 (LLM) 的實用性感到興奮。

接下來,我們評估了使用 Flask 以 Python 編寫的具有簡單三端點結構的虛擬 API 的程式碼,以瞭解它在尚未處理資料的簡單 API 上的效能。 下面是一個簡單的輸出示例:

**Endpoint Analysis and Potential Vulnerabilities**:<br>
<br>
1. **Endpoint 1**: GET /hello<br>
<br>
Description: This endpoint returns a static welcome message.<br>
Potential Vulnerabilities:<br>
<br>
Minimal Risk: Since this endpoint does not process user input or interact with any external resources, it has minimal risk. However, ensure that no sensitive information is accidentally included in the response.<br>
<br>
2. **Endpoint 2**: POST /data<br>
<br>
Description: This endpoint accepts JSON data via POST and returns it.<br>
Potential Vulnerabilities:<br>
<br>
Input Validation: Ensure that the incoming JSON data is validated. Without validation, malicious data could lead to unexpected behavior.<br>
<br>
Injection Attacks: If the data is later used in database queries, command execution, or other critical operations, ensure it is properly sanitized to prevent injection attacks.<br>
<br>
Large Payloads: Limit the size of the incoming JSON payload to prevent Denial of Service (DoS) attacks via large payloads.

然後,我們請 Hacking APIs GPT 對 Instagram API 進行分析,看看它在更大型、更復雜的 API 上是否有效。 以下是它的響應示例:

Access Token Management:<br>
<br>
Description: Access tokens are critical for securing user data and ensuring proper permissions.<br>
<br>
Mitigation: Ensure tokens are stored securely and refreshed regularly. Implement scopes to restrict token usage to necessary permissions only.<br>
OAuth and Authorization:<br>
<br>
Description: The OAuth flow needs to be secure to prevent unauthorized access.<br>
<br>
Mitigation: Use secure redirect URIs and ensure the OAuth flow is implemented correctly to avoid vulnerabilities like token leakage.

最後,我們請 LLM 對 2022 年的 Optus OpenAPI 規範進行評估,以瞭解它是如何應對端點受損的。 以下是它的意見。

**Key Issues Identified:**<br>
<br>
Lack of Authentication and Authorization:<br>
<br>
The API endpoints did not require proper authentication or authorization, allowing attackers to access sensitive data without valid credentials. This is a severe case of broken authentication, violating basic <a href="https://www.explinks.com/wiki/rest-api-security/" target="_blank" rel="noopener" data-linkz-ai="">API security</a> principles (APISecurity.io) (SidSecure Cyber Security).<br>
<br>
No Rate Limiting:<br>
<br>
The absence of rate limiting enabled attackers to make numerous requests in a short period, facilitating massive data exfiltration. Rate limiting is essential to prevent abuse and mitigate the risk of Denial-of-Service (DoS) attacks (APISecurity.io).<br>
<br>
Use of Shadow-IT Systems:<br>
<br>
Some API endpoints were hosted on shadow-IT systems, which are unauthorized and unmanaged. This can lead to significant security gaps as these systems may not adhere to organizational security policies (SidSecure Cyber Security).

關於 Hacking APIs 的最終想法 GPT 端點分析

Hacking API GPT 的端點分析是其最有用的功能之一。 這足以成為檢視 大語言模型 (LLM) 的理由,因為它可以幫助發現你可能忽略的潛在 API 安全風險。 你至少需要對 API 稍微熟悉,才能真正理解它的意思,但幾乎所有 API 安全產品都是如此。

Hacking API GPT 對 OpenAPI 分析回顧

現在,我們將回顧一下 Hacking APIs GPT 對 遵循 OpenAPI 標準的 API 描述規範 檔案的分析,以瞭解它是如何處理可能尚未上線的 API 的。 首先,我們分析了 OpenAPI 的基本結構 YAML 檔案,看看它是如何處理幾乎可以保證正確的簡單 OpenAPI 規範的。 下面是其響應的一個代表性示例。

**Analysis of the OpenAPI Specification**<br>
:<br>
Basic Information:<br>
OpenAPI Version: 3.0.0<br>
Title: Sample API<br>
Version: 0.1.9<br>
Servers:<br>
Production: http://api.example.com/v1<br>
Staging: http://staging-api.example.com<br>
<br>
**Endpoint Analysis**<br>
<br>
Endpoint: /users<br>
* Method: GET<br>
* Summary: Returns a list of users.<br>
* Response:<br>
* 200: A JSON array of user names<br>
* Response Schema: An array of strings<br>
* Security Considerations:<br>
* Authentication and Authorization:<br>
<br>
Issue: The specification does not mention any form of authentication or authorization for accessing the /users endpoint.<br>
<br>
Recommendation: Implement authentication mechanisms such as OAuth 2.0, API keys, or JWT to protect the endpoint. Define security schemes in the OpenAPI specification to ensure that only authorized users can access the data.

如您所見,LLM 首先解釋 OpenAPI 規範並提取必要的資訊。 然後,它會評估端點的潛在風險,並推薦一些最佳實踐,以提高 API 的安全性。 OpenAPI YAML 的許多問題似乎都是由於它是一個模板造成的,因為實時 API 可能會解決其中的大部分問題。

在這次評估中,我們要求 LLM 評估 Trello OpenAPI 規範,看看它在廣泛流行的 API 上的表現如何。 我們請 Hacking APIs GPT 直接評估 OpenAPI,而不是上傳 15000 多行程式碼。 以下是評估結果的簡要概述。

**Potential Vulnerabilities**:<br>
<br>
1. Insufficient Authentication:<br>
<br>
* Ensure all API endpoints are protected with appropriate authentication mechanisms to prevent unauthorized access. Publicly accessible API keys without corresponding tokens can lead to security breaches.<br>
<br>
2. Token Exposure:<br>
<br>
* Tokens must be securely stored and never exposed in client-side code or logs. If a token is leaked, it should be revoked immediately to prevent unauthorized access.<br>
<br>
3. Data Sensitivity:<br>
<br>
* The API allows access to sensitive user data, including email addresses when the account scope is requested. Proper data handling and masking should be implemented to protect sensitive information.<br>
<br>
4. Rate Limiting Bypass:<br>
<br>
* Ensure that rate limiting cannot be bypassed by using different IP addresses or creating multiple accounts. Implement comprehensive rate limiting policies.

這裡有一些有用的想法,但也有點像通用的 API 安全最佳實踐。 它們值得牢記,但並不完全具有啟示意義。 不過,作為開發過程的一部分,透過 LLM 執行 OpenAPI 規範仍然是值得的。 一段程式碼不可能有太多雙眼睛!

Hacking APIs GPT JWT 分析回顧

JSON Web 標記(JWT)已成為驗證使用者身份的常用方法。 首先,我們使用一個假設的 JWT 來了解 LLM 的效能。 我們要求它評估 JWT:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJleHAiOjE1MTYyNDI2MjIsInJvbGUiOiJhZG1pbiJ9.DyDq9P7O9lg9VhHX8D0M9E3cvjK5-Jj7WxaK7Yeq2As.

響應首先會解釋 JWT 的結構,並將令牌分解為標頭、有效載荷和簽名。 然後,它會識別潛在的安全風險,指出 JWT 已過期。

現在,讓我們看看它在一個真實示例中的表現如何。 我們要求 Hacking APIs GPT 分析 OAuth2 的《JWT 手冊》中的以下 JWT:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ.

Hacking API GPT 分解 JWT 並分析每個部分。 它確定使用者名稱為無名氏,使用者 ID 為 1234567890,並擁有管理許可權。 令牌使用 HMAC SHA-256 簽名,但沒有秘鑰就無法驗證。

Hacking APIs GPT 程式碼分析回顧

最後,讓我們來確保 Hacking APIs GPT 說的是實話。 將 LLM 用於任何實際用途的最大弊端之一,就是它們經常胡編亂造。 更糟糕的是,它們會產生完全確定的幻覺。 這可能會在 LLM 生成的任何內容中留下未被發現的錯誤,除非逐行檢查,否則你可能無法發現這些錯誤,這就失去了使用 LLM 的初衷。

為了衡量它的準確性和真實性,我們透過 Hacking APIs GPT 執行了一個已知錯誤的 Flask 應用程式,看看它是如何響應的。 我們的程式碼接受了其中一個端點的錯誤方法型別,要求使用 POST 而不是 GET。 令人欣慰的是,LLM 立即發現了這個錯誤,更棒的是,他們還提供瞭解決方法。

Hacking APIs GPT 的最終想法

經過試用,Hacking APIs GPT 果然不負眾望。 它將徹底改變 API 行業,讓缺乏技術經驗的人也能使用。 它對經驗豐富的開發人員也非常有用,可以幫助除錯程式碼並捕捉任何潛在錯誤。

Hacking APIs GPT 當然不是市場上唯一的 API 漏洞掃描器。 有許多優秀的工具可以分析 OpenAPI 架構和端點的安全風險。 然而,Hacking APIs GPT 可能是功能最全面的工具,因為它還可以從頭開始編寫程式碼並提出改進建議。 如果你正在尋找一款用於 API 的人工智慧工具,不妨考慮 Hacking APIs GPT。

Hacking APIs GPT 可能是最有用的學習如何建立和使用 API 的最佳工具之一。 它就像世界上最聰明的 API 教程,用最簡潔的語言和最新的最佳實踐程式碼回答提出的問題。 任何有興趣學習如何使用應用程式介面的人都可以對其輸出進行逆向工程,學習如何編寫自己的程式碼。

這也有助於消除人們對人工智慧接管所有編碼工作的擔憂。 雖然人工智慧絕對有能力從頭開始編寫整潔、可執行的程式碼,但你仍然必須知道首先應該要求什麼。 就像其他 API 產品一樣,有時也需要進行微調才能啟動和執行。 儘管如此,Hacking APIs GPT 絕對是我們最近遇到的最能改變遊戲規則的 API 工具之一。 無論你有多少使用 API 的經驗,它都值得你一試。

相關文章