所有文章 > API安全 > 使用Hacking APIs GPT 进行 API 安全测试
使用Hacking APIs GPT 进行 API 安全测试

使用Hacking APIs GPT 进行 API 安全测试

ChatGPT 于 2022 年成为主流以来,人工智能已经彻底改变了 API 的格局。 开发人员已经在使用人工智能为他们的 API 从零开始生成代码。 API 还允许开发人员和用户与 大型语言模型 (LLM) 进行交互。 因此,人工智能和应用程序接口的发展密不可分。

最近,人们对人工智能和 API 的扩散可能带来的安全问题发出了警报。 Wallarm 最近发布了一份报告,即《2024 API ThreatStats 报告》,其中讨论了人工智能和 API 带来的一些安全风险,从单纯拥有更多 API 的固有风险到人工智能被用于编写恶意代码。 人工智能能否提高 API 安全性?

2024 年 1 月,《Hacking APIs》一书的作者、网络安全专家科里-J-波尔(Corey J. Ball)在一条推特上宣布,用于评估和增强 API 安全性的人工智能助手 Hacking APIs GPT 即将面世,这在 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
Example: https://http.cat/404.jpg
This endpoint returns a cat image representing the specified HTTP status code.
**Potential Vulnerabilities and Mitigations**:
1. URL Manipulation:
* Description: Since the endpoint directly takes a status code in the URL, improper handling could lead to unintended behavior.
* 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**:

1. **Endpoint 1**: GET /hello

Description: This endpoint returns a static welcome message.
Potential Vulnerabilities:

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.

2. **Endpoint 2**: POST /data

Description: This endpoint accepts JSON data via POST and returns it.
Potential Vulnerabilities:

Input Validation: Ensure that the incoming JSON data is validated. Without validation, malicious data could lead to unexpected behavior.

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.

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:

Description: Access tokens are critical for securing user data and ensuring proper permissions.

Mitigation: Ensure tokens are stored securely and refreshed regularly. Implement scopes to restrict token usage to necessary permissions only.
OAuth and Authorization:

Description: The OAuth flow needs to be secure to prevent unauthorized access.

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:**

Lack of Authentication and Authorization:

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 API security principles​ (APISecurity.io)​​ (SidSecure Cyber Security)​.

No Rate Limiting:

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)​.

Use of Shadow-IT Systems:

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**
:
Basic Information:
OpenAPI Version: 3.0.0
Title: Sample API
Version: 0.1.9
Servers:
Production: http://api.example.com/v1
Staging: http://staging-api.example.com

**Endpoint Analysis**

Endpoint: /users
* Method: GET
* Summary: Returns a list of users.
* Response:
* 200: A JSON array of user names
* Response Schema: An array of strings
* Security Considerations:
* Authentication and Authorization:

Issue: The specification does not mention any form of authentication or authorization for accessing the /users endpoint.

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**:

1. Insufficient Authentication:

* 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.

2. Token Exposure:

* 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.

3. Data Sensitivity:

* 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.

4. Rate Limiting Bypass:

* 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 的经验,它都值得你一试。

原文链接:Using Hacking APIs GPT For API Security Testing

#你可能也喜欢这些API文章!