hyosua/hellmet
GitHub: hyosua/hellmet
一个将自然语言编码意图转换为安全加固 Prompt 的工具,根据技术领域自动注入 OWASP Top 10 约束,帮助开发者在设计阶段就引入安全考量。
Stars: 1 | Forks: 0
# Hellmet
**一个面向 LLM 开发者的安全 Prompt 构建器。**
hellmet 接收一段自然语言编写的编码意图,将其转换为结构化且经过安全加固的 Prompt,并自动注入与检测到的技术领域相关的 OWASP Top 10 约束。
## 目录
- [为何在设计阶段引入 OWASP](#why-owasp-at-design-time)
- [工作原理](#how-it-works)
- [示例](#examples)
- [功能特性](#features)
- [安装说明](#installation)
- [运行测试](#running-tests)
- [Lire en français](README.fr.md)
## 为何在设计阶段引入 OWASP
在设计阶段解决安全漏洞的成本显著降低。OWASP Top 10 是业界公认的 Web 应用程序最关键安全风险分类标准——然而在实践中,它很少被参考,直到发生事故或进行审计之后。
当开发者使用 LLM 生成代码时,他们通常提供简短且以目标为导向的 Prompt:*“创建一个登录端点”*、*“向 API 添加文件上传功能”*。这些 Prompt 不包含任何安全上下文。模型生成的代码虽然具有功能性,但安全约束完全取决于运气或事后审查。
Hellmet 从源头填补了这一空白。在 Prompt 发送给任何 LLM 之前,它会根据检测到的技术领域,自动注入精确的 OWASP 约束。开发者无需记忆 OWASP 规范——工具会自动完成映射,并将其作为机器可读的约束块注入。
原则很简单:**如果安全要求包含在 Prompt 中,模型就被强制考虑这些要求**。
## 工作原理
1. 开发者输入一段自由文本形式的编码意图。
2. Hellmet 检测编程语言和技术领域(认证、数据库、文件上传、API、前端、密码学)。
3. 相关的 OWASP 规则会被选中并按严重程度排序(关键级别优先)。
4. 意图被重写为结构化的 Prompt,支持两种格式:Claude XML 和 GPT Markdown。
5. 可选地,Prompt 可以由 Groq 托管的 LLM(Llama 3.3 70B)进一步优化,该模型严格充当 Prompt 重写器——而非代码生成器。
## 示例
### 输入
### 检测到的领域
`api`, `upload`, `auth`
### 注入的 OWASP 规则
| 规则 | 严重程度 | 约束条件 |
|------|----------|-----------|
| A01 — 访问控制 | critical (严重) | 在执行任何操作前验证身份认证和授权。 |
| A02 — 密码学失效 | critical (严重) | 所有传输均使用 TLS;绝不在日志或响应中暴露凭证。 |
| A04 — 不安全设计 | high (高) | 验证文件的真实 MIME 类型,而不仅仅是扩展名。强制执行文件大小限制。 |
| A07 — 身份识别与认证失败 | high (高) | 在每次请求时验证会话 Token;在注销时使其失效。 |
| A08 — 软件和数据完整性失效 | high (高) | 验证上传文件的完整性;拒绝可执行内容。 |
| A06 — 易受攻击和过时的组件 | medium (中) | 审计此功能中使用的所有第三方依赖项。 |
### 生成的 Claude XML Prompt
```
Create a Node.js route that handles file uploads from authenticated users and stores them on S3.
[A01 — Access Control] Verify authentication and authorization before any action.
[A02 — Cryptographic Failures] Use TLS for all transfers; never expose credentials in logs or responses.
[A04 — Insecure Design] Validate the real MIME type of the file, not just the extension. Enforce maximum file size.
[A07 — Identification and Auth] Validate the session token on every request; invalidate it on logout.
[A08 — Software and Data Integrity] Verify the integrity of uploaded files; reject executable content.
[A06 — Vulnerable Components] Audit all third-party dependencies used in this feature.
Reply only with secure code that satisfies all the constraints above.
Explicitly acknowledge each constraint in a comment at the top of the file.
```
### 另一个示例
**输入:** *“添加一个带电子邮件验证的密码重置表单”*
**检测到的领域:** `auth`, `frontend`
**关键注入规则:** A02(使用 bcrypt 对密码进行哈希处理,强制执行最小熵值),A07(对重置尝试进行速率限制,Token 在 15 分钟后过期),A03(在渲染前清理所有用户输入)。
开发者将生成的 Prompt 直接粘贴到 Claude、ChatGPT 或 Cursor 中。模型接收到的安全要求是硬性约束,而非可选建议。
## 功能特性
- 基于自由文本的自动领域检测(语言 + 技术上下文)
- 覆盖全部 OWASP Top 10 (2021) 并包含严重程度级别
- 通过切换按钮进行手动规则覆盖
- 两种输出格式:Claude XML 和 GPT Markdown
- FR / EN 输出语言选择器
- 通过 Groq (Llama 3.3 70B) 进行 AI 增强 —— 仅重写不执行
- 会话历史记录(最近 5 个 Prompt,本地存储)
- 键盘快捷键:`Ctrl+Enter` 生成
## 安装说明
**环境要求:** Node.js 20+, npm 10+
```
git clone https://github.com/your-org/hellmet.git
cd hellmet
npm install
```
复制环境文件并添加你的 Groq API Key(仅 AI 增强功能需要 —— 核心 Prompt 构建器无需此 Key 即可工作):
```
cp .env.example .env.local
```
```
GROQ_API_KEY=your_key_here
```
启动开发服务器:
```
npm run dev
```
打开 [http://localhost:3000](http://localhost:3000)。
## 运行测试
```
npm test
```
测试套件涵盖所有核心模块(`detector`、`prompt-builder`、`owasp-map`)以及条件逻辑 UI 组件(`OutputPanel`、`Toggles`)。
```
npm run test:watch # watch mode
```
标签:DevSecOps, GitHub Advanced Security, MITM代理, Sysdig, XML 请求, 上游代理, 云安全监控, 人工智能, 代码生成, 威胁情报, 安全加固, 安全开发, 安全编码, 开发者工具, 提示词工程, 渗透测试工具, 漏洞预防, 用户模式Hook绕过, 策略决策点, 结构化查询, 自动化安全, 自动化攻击, 自动化攻击, 防御提示注入, 静态分析