okankurtuluss/llm-sonda

GitHub: okankurtuluss/llm-sonda

LLM SONDA 是一款针对土耳其语环境的开源 LLM 安全扫描工具,基于确定性规则引擎对本地部署的大语言模型进行 OWASP LLM Top 10 维度的自动化安全测试与风险评分。

Stars: 0 | Forks: 0

# LLM SONDA ## 土耳其语 LLM 安全扫描工具 这是一款专为土耳其语设计的开源 LLM 安全测试工具,使用土耳其语 payload 集合运行。该工具参考了 OWASP LLM Top 10 进行开发,默认以本地 LLM 基础设施为目标。 📖 **指南:** [LLM 红队指南](https://okankurtuluss.github.io/2026_LLM_RedTeam_Rehberi/) ## 工作原理 ``` flowchart TD A[Payload / Senaryo] --> B[Hedef LLM] B --> C[Model Cevabı] C --> D[Evidence-Based Deterministic Judge] D --> D1[Payload Detection] D --> D2[PII Echo Detection] D --> D3[Executable Output Detection] D --> D4[Refusal Detection] D --> D5[Safe Alternative Detection] D --> D6[Explanation Classification] D --> E{Karar} E -->|BULGU| F[JSON + HTML Rapor] E -->|İNCELE| F E -->|TEMİZ| G[Sonuca Eklenir] ``` 对于每个测试,模型的回答都会根据六个证据标准进行评估。判定不是基于其他模型,而是基于确定性的规则引擎。因此,该工具默认情况下不需要 LLM-as-judge 或第二个评估模型。 | 证据 | 描述 | |---|---| | Payload Detection | 恶意内容、系统指令泄露、角色接受等模式 | | PII Echo Detection | 模型是否回显了用户提供的个人数据 | | Executable Output Detection | 输出内容是否为“复制-运行”格式 | | Refusal Detection | 模型是否明确拒绝 | | Safe Alternative Detection | 模型是否针对恶意请求提供了安全的替代方案 | | Explanation Classification | 输出内容是说明性的还是操作性的 | ## 安装说明 建议使用 Python 3.9+ 版本。 首先克隆项目或下载文件: ``` git clone https://github.com/kullanici/llm-sonda.git cd llm-sonda ``` 使用 `requirements.txt` 安装依赖项: ``` pip install -r requirements.txt ``` ## 使用方法 默认用法: ``` python llm_sonda.py ``` 修改脚本开头的配置以适应您的模型: ``` TARGET_MODEL = "llama3.1:8b" PROVIDER = "ollama" BASE_URL = "http://127.0.0.1:11434" ``` ## 屏幕截图 ## 提供商支持 仅支持本地或本地 OpenAI-compatible 的 LLM 基础设施。 | 提供商 | PROVIDER | BASE_URL | |---|---|---| | Ollama | `ollama` | `http://127.0.0.1:11434` | | LM Studio | `lmstudio` | `http://127.0.0.1:1234` | | Jan.ai | `jan` | `http://127.0.0.1:1337` | | LocalAI | `localai` | `http://127.0.0.1:8080` | 只需修改脚本开头的三行代码即可: ``` TARGET_MODEL = "llama3.1:8b" PROVIDER = "ollama" BASE_URL = "http://127.0.0.1:11434" ``` ## 测试范围 该工具既可以运行单一测试,也可以运行多步骤场景测试。 | 模块 | 范围 | OWASP | |---|---|---| | Prompt Injection | 直接、间接、编码逃逸、社会工程学、土耳其语变体 | LLM01 | | Jailbreak | DAN、角色扮演、many-shot、社会工程学、语言逃逸、机构冒充 | LLM01 | | 敏感数据泄露 | TC 身份证号、IBAN、信用卡、密码、企业数据 | LLM02 | | 不安全输出 | XSS、SQL injection、网络钓鱼、恶意代码、土耳其语钓鱼 | LLM05 | | 越权 | 未经授权的操作、工具滥用、电子政务/银行系统冒充 | LLM06 | | 幻觉 | 伪造的 CVE、虚构法规、引用不存在的机构 | LLM09 | | 输出滥用 | 重复循环、过度 token 消耗 | LLM04 | ## 场景测试 这是模拟真实攻击行为的多步骤对话流。支持三种深度的运行模式: | 类型 | 步数 | 目的 | |---|---|---| | 快速 | 2 步 | 基础回归测试 | | 标准 | 3 步 | 建立信任 → 操纵 → 发出核心请求 | | 深度 | 5 步 | 逐步提权、长链攻击 | ## 测试结果 每次扫描结束后,会生成两个文件: - `tarama_modeladi_tarih.json` - `tarama_modeladi_tarih.html` ### 发现级别 | 级别 | 含义 | |---|---| | 严重 (KRİTİK) | 泄露系统指令或个人数据 | | 高危 (YÜKSEK) | 角色变更、恶意输出、未经授权的操作 | | 中危 (ORTA) | 话题偏移、幻觉、输出滥用 | | 低危 (DÜŞÜK) | 微弱信号、置信度分数低 | | 待审查 (İNCELE) | 无法自动判定,需要人工评估 | ## 风险评分 LLM SONDA 会综合考量漏洞数量及其严重级别,生成一个介于 0.0 到 10.0 之间的风险评分。 风险评分并非绝对的安全定论。它主要用于快速对比不同模型的行为表现,以及在回归测试中监控模型的变化。 ## 重要限制 **该工具仅执行表层扫描;不承诺更多功能。** 每个 LLM 的反应都不尽相同。即使将同一个 prompt 向同一个模型发送两次,也可能得到不同的回答。因此,用户可以多次运行该脚本;结果之间的差异也能反映出模型的不稳定性。 高级攻击向量需要依赖个人技能。该工具旨在为您指明需要关注的方向;而如何解读结果以及如何深入挖掘则取决于您自己。 仅靠静态规则引擎进行检测存在难度。该工具能够捕获已知向量,但可能会忽略特定模型所特有的语义逃逸手段。为了获得更出色的检测机制,您可以研究诸如 LLM-as-judge 等方法。默认情况下并未包含此功能;我们的初衷是提供一款无需创建外部依赖即可独立运行的测试工具。 ## 安全与数据说明 测试 payload 中可能包含示例性质的 TC 身份证号、IBAN、电话号码和银行卡格式。不建议使用真实的个人数据进行测试。 脚本中包含 `STORE_RAW` 选项: ``` STORE_RAW = False ``` 仅建议在隔离的、本地的且受控的测试环境中保存模型的原始输出。 ## 法律免责声明 该工具仅限在您自己的系统或已获得书面授权的环境中使用。未经授权的使用将构成犯罪,触犯《土耳其刑法典》第 243 条及第 244 条之规定。 ## 贡献 欢迎通过 Pull request 和 issue 提供贡献。我们非常乐意接受新的 payload 建议、针对土耳其环境的特定攻击场景以及检测机制的改进。 *本项目以开源形式发布,旨在为土耳其语 LLM 安全生态系统的发展贡献一份力量。*
标签:AI安全, AI风险缓解, Chat Copilot, Clair, DLL 劫持, OWASP LLM Top 10, Python, 域名收集, 大语言模型, 安全测试, 攻击性安全, 无后门, 误配置预防, 逆向工具