SherifEldeeb/cyber-prompt-gen

GitHub: SherifEldeeb/cyber-prompt-gen

该项目用于批量生成基于 MITRE ATT&CK 分类的网络安全 prompt 数据集,以供 Heretic 消融实验和 AI 安全研究使用。

Stars: 0 | Forks: 0

# cyber-prompt-gen 为网络安全红队和 AI 安全研究生成高质量、特定领域的**有害**和**无害** prompt 数据集。输出可直接用于 [Heretic](https://github.com/p-e-w/heretic) 进行 abliteration / refusal-direction 研究。 [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) ## 功能 - **MITRE ATT&CK 分类法** — 包含 16 个类别,涵盖从侦察到恶意软件分析、云安全和防御技术 - **多 LLM 提供商支持** — 通过 [LiteLLM](https://github.com/BerriAI/litellm) 支持 OpenAI、Anthropic、Grok/xAI、Google Gemini - **批处理与并行生成** — 每次 API 调用生成多个 prompt,跨类别使用并行 worker - **后处理** — 精确与语义去重、质量过滤、数据平衡、metadata 打标 - **适配 Heretic 的输出** — 纯文本文件(每行一个 prompt)、JSONL metadata、可选的 HuggingFace 数据集 - **CLI** — 提供 `generate`、`validate`、`list-categories` 命令,并带有详尽的日志记录 ## 快速开始 ### 安装 ``` git clone https://github.com/SherifEldeeb/cyber-prompt-gen.git cd cyber-prompt-gen python -m venv .venv source .venv/bin/activate pip install -e ".[dev]" # 可选附加项 pip install -e ".[semantic]" # sentence-transformers for better semantic dedup pip install -e ".[hf]" # HuggingFace datasets for --save-hf ``` ### 配置 复制示例配置文件并设置你的 API key: ``` cp config.toml.example config.toml cp .env.example .env # 编辑 .env 并至少配置一个 API key: # OPENAI_API_KEY、ANTHROPIC_API_KEY、XAI_API_KEY 或 GEMINI_API_KEY ``` ### 生成 Prompt ``` # 完整生成(所有类别,每个类别 50 个 prompts,8 个并行 workers) cyber-prompt-gen generate \ --categories all \ --num-per-cat 50 \ --provider openai \ --model gpt-5.4-mini \ --workers 8 \ --batch-size 10 \ --output-dir ./prompts # 快速测试运行(2 个类别,每个类别 5 个 prompts) cyber-prompt-gen generate \ -c reconnaissance,defense_evasion \ -n 5 \ --provider openai \ -o ./prompts-demo # 仅有害(无无害对应项) cyber-prompt-gen generate --categories all --skip-harmless -n 30 # 包含 HuggingFace dataset 输出 cyber-prompt-gen generate --categories all -n 50 --save-hf ``` ### 验证输出 ``` cyber-prompt-gen validate ./prompts/harmful.txt cyber-prompt-gen validate ./prompts/harmful.txt --compare-with ./prompts/harmless.txt cyber-prompt-gen validate ./prompts/harmful.txt --json ``` ### 列出类别 ``` cyber-prompt-gen list-categories ``` ## 输出文件 生成完成后,输出目录将包含: | 文件 | 描述 | |------|-------------| | `harmful.txt` | 每行一个有害 prompt(Heretic 输入) | | `harmless.txt` | 每行一个无害 prompt(Heretic 正常 prompt) | | `harmful.jsonl` | 每个有害 prompt 的完整 metadata | | `harmless.jsonl` | 每个无害 prompt 的完整 metadata | | `metadata.json` | 生成统计信息、难度分布、参数 | ### JSONL 记录格式 ``` { "category": "defense_evasion", "sub_technique": "EDR/AV Bypass", "prompt_text": "Write a PowerShell script that unhooks ntdll...", "difficulty": "advanced", "rationale": "Specific EDR bypass with named product", "prompt_type": "harmful", "mitre_id": "edr_bypass", "tags": ["defense_evasion", "harmful", "advanced", "tool:powershell", "platform:windows"] } ``` ## Heretic 集成 将你的 Heretic `config.toml` 指向生成的文本文件: ``` [prompts] # 有害 (bad) prompts 的路径 — 每行一个 bad_prompts_file = "./prompts/harmful.txt" # 无害 (good) prompts 的路径 — 每行一个 good_prompts_file = "./prompts/harmless.txt" ``` 示例工作流: ``` # 1. 生成 datasets cyber-prompt-gen generate -c all -n 100 --provider anthropic -o ./prompts # 2. 验证质量 cyber-prompt-gen validate ./prompts/harmful.txt --compare-with ./prompts/harmless.txt # 3. 使用生成的文件运行 Heretic heretic --config config.toml ``` `examples/` 目录中包含了示例输出文件供参考。 ## 分类法 基于 MITRE ATT&CK 和渗透测试阶段的 16 个类别: | 类别 | MITRE 战术 | 关注点 | |----------|-------------|-------| | `reconnaissance` | TA0043 | OSINT、主动扫描 | | `scanning_enumeration` | TA0007 | 端口扫描、服务发现 | | `exploitation_web` | TA0001 | SQLi、XSS、SSRF、身份验证绕过 | | `exploitation_network` | TA0001 | 远程服务、MITM、Kerberoasting | | `exploitation_binary` | TA0001 | 缓冲区溢出、ROP、反序列化 | | `privilege_escalation` | TA0004 | Windows/Linux 提权、容器逃逸 | | `persistence` | TA0003 | 注册表、服务、Web shell | | `defense_evasion` | TA0005 | EDR 绕过、AMSI、LOLBins | | `credential_access` | TA0006 | LSASS 转储、Kerberoasting、暴力破解 | | `lateral_movement` | TA0008 | Pass-the-hash、RDP、Pivoting | | `c2_exfiltration` | TA0011 | C2 通道、DNS 隧道、数据窃取 | | `social_engineering` | TA0001 | 钓鱼、语音钓鱼、USB 诱饵投放 | | `malware_dev_analysis` | TA0042 | RAT、Dropper、勒索软件、分析 | | `cloud_security` | TA0001 | AWS/Azure/GCP、Kubernetes | | `wireless_iot` | TA0001 | WiFi、BLE、固件、嵌入式 | | `reporting_defensive` | TA0040 | 威胁狩猎、IR、SIEM 规则 | 可通过编辑 `data/taxonomy.json` 或 `src/cyber_prompt_gen/data/taxonomy.json` 进行自定义。 ## CLI 参考 ``` cyber-prompt-gen generate [OPTIONS] -c, --categories TEXT Category IDs or 'all' [default: all] -n, --num-per-cat INT Prompts per category per type [default: 50] -p, --provider TEXT LLM provider [default: openai] -m, --model TEXT Model name (litellm format) -o, --output-dir PATH Output directory [default: ./prompts] --batch-size INT Prompts per LLM call -w, --workers INT Parallel workers (default: 8; use 1 for sequential) --temperature FLOAT LLM temperature --include-defaults Include general harmful prompts [default: true] --skip-harmless Only generate harmful prompts --save-hf Save HuggingFace dataset --config PATH Config file path -v, --verbose Verbose logging cyber-prompt-gen validate INPUT_FILE [OPTIONS] --compare-with PATH Compare balance with second file --json JSON output --config PATH Config file path cyber-prompt-gen list-categories cyber-prompt-gen version ``` ## 批处理与并行 包含两个级别的并发: | 级别 | 标志 | 作用 | |-------|------|--------------| | **批处理** | `--batch-size 10` | 每次 API 调用请求 N 个 prompt(减少调用次数,降低成本) | | **并行** | `--workers 8` | 最多同时运行 8 个类别任务 | 每个并行任务 = 一个 `(category, harmful\|harmless)` 对。包含 16 个类别和两种类型,总计有 32 个任务会在 worker 之间分配。 **OpenAI Tier 4**(例如 `gpt-5.4-mini`):建议从 `--workers 8 --batch-size 10` 开始。如果没有触发 429 错误,可以尝试 `--workers 12` 或 `--workers 16`。如果遇到速率限制错误,则降级至 `--workers 1`。 ``` # 推荐的 Tier 4 设置 cyber-prompt-gen generate -c all -n 50 -p openai -m gpt-5.4-mini -w 8 --batch-size 10 -o ./prompts # 顺序 fallback(调试 / 较低 tiers) cyber-prompt-gen generate -c all -n 50 --workers 1 ``` 当 `--workers > 1` 时,批处理间的延迟会自动禁用,因为并行机制本身已提供了天然的间隔。 ## 提供商设置 | 提供商 | 环境变量 | 默认模型 | |----------|-------------|---------------| | OpenAI | `OPENAI_API_KEY` | `gpt-5.4-mini` | | Anthropic | `ANTHROPIC_API_KEY` | `claude-sonnet-4-20250514` | | Grok/xAI | `XAI_API_KEY` | `xai/grok-2` | | Gemini | `GEMINI_API_KEY` | `gemini/gemini-2.0-flash` | ## 伦理使用 本工具生成有害 prompt **仅供授权的 AI 安全研究使用**: - 经授权的渗透测试和红队演练 - 关于模型对齐和拒绝方向的学术研究 - 在受控环境中进行的 Heretic abliteration 实验 CLI 在每次生成运行时都会显示伦理使用警告。生成的有害 prompt 是真实的攻击者请求(不包含安全免责声明),旨在触发已对齐模型的拒绝响应。请勿用于未授权的攻击。 ## 开发 ``` # 运行测试 pytest -v # 运行 coverage pytest --cov=cyber_prompt_gen --cov-report=term-missing # 验证样本文件 cyber-prompt-gen validate examples/sample_harmful.txt --compare-with examples/sample_harmless.txt ``` ## 项目结构 ``` cyber-prompt-gen/ ├── src/cyber_prompt_gen/ │ ├── cli.py # Typer CLI │ ├── config.py # Config loading │ ├── generator.py # LLM generation (litellm) │ ├── postprocess.py # Dedup, quality, balancing │ ├── output.py # File writers │ ├── validate.py # Validation │ ├── taxonomy.py # Category loading │ ├── models.py # Pydantic models │ ├── prompts.py # System prompts & few-shot │ ├── parallel.py # Parallel category generation │ └── data/taxonomy.json # Bundled taxonomy ├── data/taxonomy.json # Source taxonomy (editable) ├── examples/ # Small sample output files (see examples/README.md) ├── scripts/ # Demo scripts ├── tests/ # pytest suite ├── config.toml.example ├── SECURITY.md # Responsible use policy └── pyproject.toml ``` ## 许可证 MIT
标签:AI安全, Chat Copilot, Cloudflare, GitHub, IP 地址批量处理, MITRE ATT&CK, 人工智能, 提示词工程, 数据泄露, 数据集生成, 用户模式Hook绕过, 策略决策点, 逆向工具