العودة إلى التحديثات
New releaseAug 17, 2026

augustus v0.14.20

إطار اختبار أمني لنماذج اللغة الكبيرة (LLM) لكشف حقن الأوامر (prompt injection) والاختراقات (jailbreaks) والهجمات المعادية (adversarial attacks) — أكثر من 190 مسبارًا، 28 مزودًا، ملف ثنائي واحد بلغة Go.

مشاركة

Augustus - ماسح ضعف نماذج اللغة الكبيرة لاختبار حقن التعليمات، وكسر الحماية، والهجمات الخصومية

Augustus - ماسح ضعف نماذج اللغة الكبيرة

اختبر نماذج اللغة الكبيرة ضد أكثر من 210 هجوم خصومي تغطي حقن التعليمات، وكسر الحماية، واستغلال الترميز، واستخراج البيانات.

CI Go Version License Go Report Card GitHub Release

Augustus هو ماسح ضعف لنماذج اللغة الكبيرة مبني بلغة Go يُستخدم من قبل متخصصي الأمن. يختبر نماذج اللغة الكبيرة ضد مجموعة واسعة من الهجمات الخصومية، ويتكامل مع 28 مزودًا لنماذج اللغة الكبيرة، وينتج تقارير قابلة للتنفيذ حول نقاط الضعف.

على عكس الأدوات البحثية، صُمم Augustus لاختبار الأمان الإنتاجي — المسح المتزامن، وتحديد المعدل، ومنطق إعادة المحاولة، ومعالجة المهلات تأتي بشكل مدمج.

جدول المحتويات

لماذا Augustus

الميزةAugustusgarakpromptfoo
اللغةGoPythonTypeScript
ثنائي واحدنعملالا
المسح المتزامنتجمّعات Goroutineتجمّعات المعالجة المتعددةنعم
مزوّدو نماذج اللغة الكبيرة2835+80+
أنواع التحقيقات210+160+119 إضافة + 36 استراتيجية
تركيز مؤسسينعمبحثينعم

الميزات

الميزةالوصف
أكثر من 210 كشف نقاط ضعف47 فئة هجوم: كسر الحماية، حقن التعليمات، أمثلة خصومية، استخراج البيانات، معايير الأمان، هجمات الوكلاء، والمزيد
28 مزودًا لنماذج اللغة الكبيرةOpenAI، Anthropic، Azure، Bedrock، Vertex AI، Ollama، و22 آخرين مع 43 متغيرًا للمولّد
أكثر من 90 كاشفًامطابقة الأنماط، نماذج اللغة الكبيرة كقاضي، HarmJudge (arXiv:2511.15304)، Perspective API، كشف المحتوى غير الآمن
7 تحويلات Buffالترميز، إعادة الصياغة، الشعر (5 صيغ، 3 استراتيجيات)، الترجمة بلغة منخفضة الموارد، تحويلات الحالة
مخرجات مرنةصيغ جدول، JSON، JSONL، وتقارير HTML
جاهز للإنتاجالمسح المتزامن، تحديد المعدل، منطق إعادة المحاولة، معالجة المهلات
ثنائي واحدأداة بلغة Go تُجمّع في ملف تنفيذي واحد محمول
قابل للتوسيعتسجيل على نمط الإضافات عبر دوال init() في Go

فئات الهجوم

  • هجمات كسر الحماية: DAN، DAN 11.0، AIM، AntiGPT، Grandma، ArtPrompts
  • حقن التعليمات: Encoding (Base64، ROT13، Morse)، Tag smuggling، FlipAttack، Prefix/Suffix injection
  • أمثلة خصومية: GCG، PAIR، AutoDAN، TAP (Tree of Attack Prompts)، TreeSearch، DRA
  • هجمات متعددة الجولات: Crescendo (التصعيد التدريجي)، GOAT (تبديل الاستراتيجية التكيفي)
  • استخراج البيانات: تسريب مفاتيح API، هلوسة الحزم، استخراج المعلومات الشخصية، LeakReplay
  • التلاعب بالسياق: تسميم RAG، تجاوز السياق، هجمات متعددة الوسائط، الاستمرارية، الانحراف
  • استغلال الصيغ: حقن Markdown، هجمات تحليل YAML/JSON، هروب ANSI، حقن الويب (XSS)
  • أساليب التهرب: التعتيم، استبدال الأحرف، هجمات قائمة على الترجمة، الصياغة، ObscurePrompt
  • معايير الأمان: DoNotAnswer، RealToxicityPrompts، Snowball، LMRC
  • هجمات الوكلاء: التلاعب متعدد الوكلاء، استغلال التصفح
  • اختبار الأمان: تجاوز الحواجز الواقية، فحص الفيروسات/البريد العشوائي، الاستغلال (SQLi، تنفيذ الكود)، BadChars

تحذير: يستخدم تحقيق lmrc لغة بذيئة ومهينة كجزء من اختبار كسر الحماية. استخدمه فقط في بيئات الاختبار المصرح بها.

بداية سريعة

التثبيت

يتطلب Go 1.25.3 أو أحدث.```bash go install github.com/praetorian-inc/augustus/cmd/augustus@latest

أو قم بالبناء من المصدر:```bash
git clone https://github.com/praetorian-inc/augustus.git
cd augustus
make build

الاستخدام الأساسي```bash

export OPENAI_API_KEY="your-api-key" augustus scan openai.OpenAI
--probe dan.Dan_11_0
--detector dan.DAN
--verbose

### مثال على المخرجات```
+--------------+-------------+--------+-------+--------+
| PROBE        | DETECTOR    | PASSED | SCORE | STATUS |
+--------------+-------------+--------+-------+--------+
| dan.Dan_11_0 | dan.DAN     | false  | 0.85  | VULN   |
| dan.STAN     | dan.STAN    | true   | 0.10  | SAFE   |
| dan.AntiDAN  | dan.AntiDAN | true   | 0.05  | SAFE   |
+--------------+-------------+--------+-------+--------+

قائمة القدرات المتاحة```bash

List all registered probes, detectors, generators, harnesses, and buffs

augustus list

## المزودون المدعومون

يتضمن Augustus 28 فئة من مزودي LLM مع 43 متغيرًا من المولدات:

| المزود           | اسم (أسماء) المولد         | ملاحظات                          |
|--------------------|---------------------------|--------------------------------|
| OpenAI             | `openai.OpenAI`, `openai.OpenAIReasoning` | نماذج GPT-3.5 وGPT-4 وGPT-4 Turbo وo1/o3 للتفكير |
| Anthropic          | `anthropic.Anthropic`     | Claude 3/3.5/4 (Opus, Sonnet, Haiku) |
| Azure OpenAI       | `azure.AzureOpenAI`       | نماذج OpenAI المستضافة على Azure     |
| AWS Bedrock        | `bedrock.Bedrock`         | نماذج Claude وLlama وTitan    |
| Google Vertex AI   | `vertex.Vertex`           | نماذج PaLM وGemini            |
| Cohere             | `cohere.Cohere`           | نماذج Command وCommand R      |
| Replicate          | `replicate.Replicate`     | نماذج مفتوحة المصدر مستضافة على السحابة       |
| HuggingFace        | `huggingface.InferenceAPI`, `huggingface.InferenceEndpoint`, `huggingface.Pipeline`, `huggingface.LLaVA` | API الاستنتاج لـ HF، نقاط النهاية، الأنابيب، متعدد الوسائط |
| Together AI        | `together.Together`       | استنتاج سريع لنماذج المصدر المفتوح  |
| Anyscale           | `anyscale.Anyscale`       | استضافة Llama وMistral      |
| Groq               | `groq.Groq`               | استنتاج LPU فائق السرعة       |
| Mistral            | `mistral.Mistral`         | نماذج API لـ Mistral             |
| Fireworks          | `fireworks.Fireworks`     | منصة استنتاج إنتاجية  |
| DeepInfra          | `deepinfra.DeepInfra`     | استنتاج GPU بدون خادم       |
| NVIDIA NIM         | `nim.NIM`, `nim.NVOpenAICompletion`, `nim.NVMultimodal`, `nim.Vision` | نقاط نهاية NVIDIA AI، متعدد الوسائط |
| NVIDIA NeMo        | `nemo.NeMo`               | إطار NVIDIA NeMo          |
| NVIDIA NVCF        | `nvcf.NvcfChat`, `nvcf.NvcfCompletion` | وظائف سحابية من NVIDIA   |
| NeMo Guardrails    | `guardrails.NeMoGuardrails` | حواجز NVIDIA NeMo       |
| IBM watsonx        | `watsonx.WatsonX`         | منصة IBM watsonx.ai        |
| LangChain          | `langchain.LangChain`     | غلاف LLM لـ LangChain          |
| LangChain Serve    | `langchain_serve.LangChainServe` | نقاط نهاية LangChain Serve |
| Rasa               | `rasa.RasaRest`           | الذكاء الاصطناعي التحادثي لـ Rasa         |
| GGML               | `ggml.Ggml`               | استنتاج النماذج المحلية لـ GGML     |
| Function           | `function.Single`, `function.Multiple` | مولدات دوال مخصصة |
| Ollama             | `ollama.Ollama`, `ollama.OllamaChat` | استضافة نماذج محلية    |
| LiteLLM            | `litellm.LiteLLM`         | وكيل API موحد              |
| REST API           | `rest.Rest`               | نقاط نهاية REST مخصصة (دعم SSE) |
| Test               | `test.Blank`, `test.Repeat`, `test.Lipsum`, `test.Nones`, `test.Single`, `test.BlankVision` | الاختبار والتطوير |

جميع المزودين متاحون في الملف الثنائي المُجمَّع. يمكن التكوين عبر متغيرات البيئة أو ملفات تكوين YAML. انظر [التكوين](#configuration) للحصول على تفاصيل الإعداد.

## الاستخدام

### مسبار فردي```bash
# Test for DAN jailbreak
augustus scan openai.OpenAI \
  --probe dan.Dan_11_0 \
  --detector dan.DAN \
  --config-file config.yaml \
  --verbose

مسابير متعددة```bash

Use glob patterns to run related probes

augustus scan openai.OpenAI
--probes-glob "dan.,goodside.,grandma."
--detectors-glob "
"
--config-file config.yaml
--output batch-results.jsonl

Run all probes against Claude

augustus scan anthropic.Anthropic
--all
--config '{"model":"claude-3-opus-20240229"}'
--timeout 60m
--output comprehensive-scan.jsonl
--html comprehensive-report.html

### Buff Transformations

قم بتطبيق تحويلات المطالبة لاختبار تقنيات التهرب:```bash
# Apply base64 encoding buff to all probes
augustus scan openai.OpenAI \
  --all \
  --buff encoding.Base64 \
  --config '{"model":"gpt-4"}'

# Apply poetry transformation
augustus scan anthropic.Anthropic \
  --probes-glob "dan.*" \
  --buff poetry.MetaPrompt \
  --config '{"model":"claude-3-opus-20240229"}'

# Chain multiple buffs
augustus scan openai.OpenAI \
  --all \
  --buffs-glob "encoding.*,paraphrase.*" \
  --output buffed-results.jsonl

تنسيقات المخرجات```bash

Table format (default) - human-readable

augustus scan openai.OpenAI --probe dan.Dan_11_0 --format table

JSON format - structured output

augustus scan openai.OpenAI --probe dan.Dan_11_0 --format json

JSONL format - one JSON object per line, ideal for piping

augustus scan openai.OpenAI --probe dan.Dan_11_0 --format jsonl

HTML report - visual reports for stakeholders

augustus scan openai.OpenAI --all --html report.html

### نقاط النهاية REST المخصصة```bash
# Test proprietary LLM endpoint (OpenAI-compatible API)
augustus scan rest.Rest \
  --probe dan.Dan_11_0 \
  --detector dan.DAN \
  --config '{
    "uri": "https://api.example.com/v1/chat/completions",
    "method": "POST",
    "headers": {"Authorization": "Bearer YOUR_API_KEY"},
    "req_template_json_object": {
      "model": "custom-model",
      "messages": [{"role": "user", "content": "$INPUT"}]
    },
    "response_json": true,
    "response_json_field": "$.choices[0].message.content"
  }'

# Test with proxy interception (Burp Suite, mitmproxy)
augustus scan rest.Rest \
  --probes-glob "goodside.*" \
  --config '{
    "uri": "https://internal-llm.corp/generate",
    "proxy": "http://127.0.0.1:8080",
    "headers": {"X-API-Key": "$KEY"},
    "api_key": "your-key-here",
    "req_template": "{\"prompt\":\"$INPUT\",\"max_tokens\":500}",
    "response_json": true,
    "response_json_field": "output"
  }'

مفاتيح تكوين REST:

  • uri: نقطة نهاية API المستهدفة (مطلوب)
  • method: طريقة HTTP (الافتراضي: POST)
  • headers: رؤوس HTTP كأزواج مفتاح-قيمة
  • req_template: نص الطلب الخام مع عنصر نائب $INPUT
  • req_template_json_object: نص طلب JSON (يتم تنسيقه تلقائيًا، استخدم $INPUT في السلاسل النصية)
  • response_json: تحليل الاستجابة كـ JSON (الافتراضي: false)
  • response_json_field: مسار JSONPath للاستخراج (مثل $.data.text أو اسم حقل بسيط)
  • api_key: مفتاح API لاستبدال العنصر النائب $KEY
  • proxy: عنوان URL لوكل HTTP لتفتيش حركة المرور

خيارات متقدمة```bash

Adjust concurrency (default: 10)

augustus scan openai.OpenAI --all --concurrency 20

Increase timeout for complex probes like TAP or PAIR

augustus scan openai.OpenAI --probe tap.TAPv1 --timeout 60m

Use a specific harness strategy

augustus scan openai.OpenAI --all --harness batch.Batch

Test local model with Ollama (no API key needed)

augustus scan ollama.OllamaChat
--probe dan.Dan_11_0
--config '{"model":"llama3.2:3b"}'

## كيفية العمل

يستخدم Augustus بنية خط أنابيب لاختبار LLMs ضد الهجمات العدائية:```mermaid
flowchart LR
    A[Probe Selection] --> B[Buff Transform]
    B --> C[Generator / LLM Call]
    C --> D[Detector Analysis]
    D --> E{Vulnerable?}
    E -->|Yes| F[Record Finding]
    E -->|No| G[Record Pass]

    subgraph Scanner
        B
        C
        D
        E
    end

مسار الفحص

  1. اختيار المسابر: اختر المسابر حسب الاسم، نمط glob، أو --all
  2. تحويل Buff: اختيارياً تحويل المطالبات (تشفير، إعادة صياغة، ترجمة، شعرنة)
  3. استدعاء المولد: إرسال المطالبات العدائية إلى LLM المستهدفة عبر تكامل المزود الخاص بها
  4. تحليل الكاشف: تحليل الردود باستخدام مطابقة الأنماط، LLM كحكم، أو كاشفات متخصصة
  5. تسجيل النتائج: تسجيل كل محاولة وإخراج النتائج بالتنسيق المطلوب
  6. محرك الهجوم: بالنسبة للمسابر التكرارية (PAIR, TAP)، يقوم محرك الهجوم أحادي الدورة بتحسين المطالبات عبر التكرارات مع تقليم المرشحين والتصنيف القائم على الحكم
  7. محرك متعدد الأدوار: بالنسبة للمسابر الحوارية (Crescendo, GOAT)، يحافظ المحرك متعدد الأدوار على سجل المحادثة الكامل مع الهدف عبر الأدوار، مع كشف الرفض والتكيف الديناميكي

استراتيجيات الهجوم متعدد الأدوار

تحافظ الهجمات متعددة الأدوار على محادثة مستمرة مع LLM المستهدفة، مستغلة حقيقة أن النماذج قد تكشف عن المعلومات بشكل تدريجي عبر الأدوار التي قد ترفضها في مطالبة واحدة. يستخدم المحرك متعدد الأدوار ثلاثة نماذج LLM: مهاجم (يولد الأسئلة)، هدف (النظام قيد الاختبار)، وحكم (يسجل التقدم ويكشف الرفض).

Crescendo

يستخدم Crescendo التصعيد التدريجي (تقنية القدم في الباب) لتحويل المحادثة ببطء من مواضيع غير ضارة نحو هدف محظور.

  • الورقة: Russinovich et al., 2024
  • المنهج: يبدأ بأسئلة تعليمية غير ضارة حقاً ويزيد الخصوصية تدريجياً عبر العديد من الأدوار
  • نمط التصعيد: السياق التاريخي → الآليات التقنية → التفاصيل المحددة → الطلبات المباشرة المؤطرة كمتابعات طبيعية
  • القوة: فعال ضد النماذج التي تتبع نغمة المحادثة — التحول التدريجي يتجنب تشغيل مرشحات الأمان```bash augustus scan rest.Rest
    --probe crescendo.Crescendo
    --config-file crescendo.yaml
    --html report.html -v
#### GOAT (مُختبر العوامل الهجومية التوليدي)

يستخدم GOAT نهجًا هجوميًا تكيفيًا مع 7 تقنيات عدائية واستدلال سلسلة الهجوم (Chain-of-Attack-Thought) لتغيير الاستراتيجيات ديناميكيًا بناءً على ما ينجح أو يفشل.

- **الورقة البحثية**: [Pavlova et al., 2024](https://arxiv.org/abs/2410.01606)
- **المنهج**: يستهدف الهدف من الجولة الأولى باستخدام تأطير غير مباشر، ولا يذكر الهدف مباشرة للهدف
- **7 تقنيات** عبر 3 فئات:
  - *Output Manipulation*: Refusal Suppression, Response Priming
  - *Safe Response Distractors*: Dual Response, Topic Splitting, Opposite Intent
  - *Fictional Scenarios*: Persona Modification, Hypothetical
- **Chain-of-Attack-Thought**: في كل جولة، يقوم المهاجم بالاستدلال عبر Observation → Thought → Strategy → Response قبل صياغة رسالته
- **تكديس التقنيات**: يمكن دمج تقنيات متعددة في جولة واحدة لتعزيز التأثير
- **القوة**: يحقق معدلات نجاح عالية في عدد أقل من الجولات (عادة 3-5) عن طريق التبديل العدواني بين المناهج المختلفة جذريًا```bash
augustus scan rest.Rest \
  --probe goat.Goat \
  --config-file goat.yaml \
  --html report.html -v

Hydra

Hydra يحافظ على مسار محادثة واحد ويتراجع عن الأدوار الكاملة عندما يرفض الهدف، ويطلب من المهاجم اتباع نهج مختلف تمامًا. على عكس Crescendo/GOAT (الذي يعيد الصياغة عند الرفض)، فإن التراجع في Hydra يزيل الأدوار المرفوضة تمامًا من منظور الهدف.

  • النهج: مسار واحد مع التراجع على مستوى الأدوار — يتم مسح الأدوار المرفوضة واستبدالها
  • التقنيات: التفكيك (تقسيم الهدف إلى أسئلة فرعية بريئة)، الاستفادة من السياق (البناء على كلمات الهدف نفسه)، محاكاة السلطة، التأطير العاطفي، التطبيع التدريجي
  • الميزة الرئيسية: max_backtracks يتحكم في عدد المرات التي يمكن فيها لـ Hydra مسح وإعادة محاولة دور
  • الوضع ذو الحالة: اضبط stateful: true للأهداف التي لا يمكن فيها إلغاء إرسال الرسائل (يعطل التراجع)
  • القوة: يحافظ على نظافة تاريخ محادثة الهدف — لا يرى الهدف أبدًا النهج الفاشلة، مما يمنع التصعيد الدفاعي```bash augustus scan rest.Rest
    --probe hydra.Hydra
    --config-file hydra.yaml
    --html report.html -v
#### المستخدم المشاكس

يحاكي المستخدم المشاكس شخصًا بريئًا وفضوليًا يختبر حدود الذكاء الاصطناعي بمهارة من خلال محادثة طبيعية. وعلى عكس الاستراتيجيات العدائية، فإن شخصية المهاجم هي مستخدم عادي ينحرف تدريجيًا نحو مواضيع محظورة من خلال تفاعل يبدو بريئًا.

- **مستوحى من**: [Tau-bench](https://github.com/sierra-research/tau-bench) واستراتيجية المستخدم المشاكس من promptfoo
- **النهج**: مرحلة بناء العلاقة ← استكشاف الحدود ← الدفع بحزم
- **7 تقنيات**: فضول ساذج، سوء فهم متعمد، دليل اجتماعي، انحراف تدريجي، جاذبية عاطفية، إذن مفترض، إعادة صياغة السياق
- **كتب اللعب الخاصة بالأهداف**: نصوص مدمجة لاستخراج تعليمات النظام، والعثور على الأسرار/الأعلام، وتجاوز سياسة المحتوى
- **العدد الافتراضي للخطوات**: 5 (أقل من الاستراتيجيات الأخرى — فالنهج الخفي إما أن يعمل بسرعة أو لا يعمل على الإطلاق)
- **القوة**: فعال ضد النماذج المدربة على مقاومة الأنماط العدائية الواضحة — فشخصية المستخدم العادي تتجاوز الاستدلالات الخاصة بـ"كشف الهجوم"```bash
augustus scan rest.Rest \
  --probe mischievous.MischievousUser \
  --config-file mischievous.yaml \
  --html report.html -v

دليل اختيار الاستراتيجية

الاستراتيجيةعدد الأدوارالأسلوبالأفضل لـالتكلفة
crescendo.Crescendo10التصعيد التدريجيالنماذج التي تستخدم مرشحات أمان تتبع النغمةمتوسطة (10 أدوار × 3 استدعاءات LLM)
goat.Goat10التبديل العدواني للتقنياتنتائج سريعة، نماذج ضعيفة أمام حيل التأطيرمتوسطة-عالية (تكلفة التفكير التقني الإضافية)
hydra.Hydra10التراجع عند الرفضالنماذج العنيدة التي ترفض بشكل متكررعالية (التراجع يضيف إعادة محاولات)
mischievous.MischievousUser5استكشاف الشخصية العاديةالنماذج المدربة ضد الأنماط العدوانيةمنخفضة (5 أدوار، نهج دقيق)

قرار سريع:

  • ابدأ بـ Crescendo — إنها الاستراتيجية الأكثر عمومية
  • جرب GOAT إذا كان Crescendo بطيئًا جدًا (ينجح GOAT عادة في 3-5 أدوار)
  • استخدم Hydra إذا كان الهدف يرفض بشكل متكرر (يحافظ التراجع على نقاء المحادثة)
  • استخدم Mischievous للأهداف ذات الكشف القوي للأنماط العدوانية (الشخصية تتجاوز الاستدلالات)

تكوين متعدد الأدوار

جميع الاستراتيجيات الأربع تشترك في نفس هيكل التكوين:```yaml generators: rest.Rest: uri: "https://your-llm-endpoint/chat" method: POST req_template: '{"input": "$INPUT"}' response_json: true response_json_field: "response"

judge: generator_type: openai.OpenAI config: model: gpt-4 api_key: "${OPENAI_API_KEY}"

probes: attacker_generator_type: openai.OpenAI attacker_config: model: gpt-4 api_key: "${OPENAI_API_KEY}" settings: crescendo.Crescendo: # or goat.Goat, hydra.Hydra, mischievous.MischievousUser goal: "your test objective" max_turns: 10 success_threshold: 0.8 use_secondary_judge: true

| الإعداد | الافتراضي | الوصف |
|---------|-----------|--------|
| `goal` | (مطلوب) | الهدف الذي يحاول المهاجم تحقيقه |
| `max_turns` | 10 | الحد الأقصى لعدد جولات المحادثة قبل التوقف |
| `success_threshold` | 0.8 | درجة الحكم (0.0-1.0) التي تؤدي إلى الخروج المبكر |
| `max_refusal_retries` | 10 | محاولات إعادة الصياغة لكل جولة عند رفض الهدف |
| `attack_max_attempts` | 5 | إعادة المحاولات لفشل تحليل JSON للمهاجم LLM |
| `use_secondary_judge` | true | تفعيل الحكم الثانوي لالتقاط النتائج السلبية الكاذبة |
| `max_backtracks` | 10 | التراجع على مستوى الجولة عند الرفض (خاص بـ Hydra) |
| `enable_fast_refusal` | true | اكتشاف الرفض القائم على النمط قبل استدعاء حكم LLM |
| `enable_scan_memory` | false | التعلم عبر حالات الاختبار (مشاركة التكتيكات عبر البروبات) |
| `stateful` | false | تعطيل التراجع للأهداف ذات الحالة |
| `exclude_target_output` | false | إخفاء ردود الهدف عن تغذية المهاجم الراجعة (وضع الخصوصية) |
| `attacker_model` | (تلقائي) | تجاوز اسم نموذج المهاجم لضبط حجم نافذة السياق |

#### استكشاف الأخطاء وإصلاحها في الجولات المتعددة

| الأعراض | السبب المحتمل | الإصلاح |
|---------|---------------|---------|
| `no turns completed (attacker_parse_failures=N)` | إرجاع LLM للمهاجم JSON غير صالح | استخدم نموذج مهاجم أقوى (GPT-4، Claude Opus). زد `attack_max_attempts`. |
| `no turns completed (target_empty=N)` | إرجاع الهدف استجابات فارغة/null | تحقق من استجابة نقطة نهاية الهدف. تحقق من قالب تكوين REST. |
| جميع الجولات تسجل 0.0 | الهدف غامض جدًا أو المهاجم لا يتفاعل | اجعل `goal` أكثر تحديدًا. جرب استراتيجية مختلفة. |
| درجات عالية ولكن لا نجاح | `success_threshold` مرتفع جدًا | اخفض `success_threshold` من 0.8 إلى 0.6-0.7 |
| التشغيل طويل جدًا/مكلف | عدد كبير جدًا من الجولات والمحاولات | قلل `max_turns` (جرب 5). عيّن `enable_fast_refusal: true`. |
| يستمر Hydra في التراجع | الهدف يرفض كل شيء | جرب `stateful: true` أو انتقل إلى استراتيجية Mischievous |```
cmd/augustus/          CLI entrypoint (Kong-based)
pkg/
  attempt/            Probe execution lifecycle and result tracking
  buffs/              Buff interface for prompt transformations
  config/             Configuration loading (YAML/JSON) with profiles
  detectors/          Public detector interfaces and registry
  generators/         Public generator interfaces and registry
  harnesses/          Harness interface for execution strategies
  lib/http/           Shared HTTP client with proxy support
  lib/stego/          LSB steganography for multimodal attacks
  logging/            Structured slog-based logging
  metrics/            Prometheus metrics collection
  prefilter/          Aho-Corasick keyword pre-filtering
  probes/             Public probe interfaces and registry
  ratelimit/          Token bucket rate limiting
  registry/           Generic capability registration system
  results/            Result types and multi-format output
  retry/              Exponential backoff with jitter
  scanner/            Scanner orchestration with concurrency
  templates/          YAML probe template loader (Nuclei-style)
  types/              Canonical shared interfaces (Prober, Generator, Detector)
internal/
  probes/             210+ probe implementations (47 categories)
  generators/         28 LLM provider integrations (43 variants)
  detectors/          90+ detector implementations (35 categories)
  harnesses/          3 harness strategies (probewise, batch, agentwise)
  buffs/              Buff interface for prompt transformations
  attackengine/       Iterative adversarial attack engine (PAIR/TAP backend)
  multiturn/          Multi-turn conversational attack engine (Crescendo/GOAT/Hydra/Mischievous)
  ahocorasick/        Internal Aho-Corasick keyword matching
benchmarks/           Performance benchmarks
tests/                Integration and equivalence tests
research/             Research documentation and analysis
examples/             Example configurations
docs/                 Documentation

قرارات التصميم الرئيسية

  • المسح المتزامن مع تجمعات goroutine محدودة عبر errgroup
  • تسجيل بنمط الإضافات باستخدام دوال Go init() للمسابر، والمولدات، والكاشفات، والمعززات، والأدوات المساعدة
  • محرك هجوم تكراري مع إدارة محادثة متعددة التدفقات، وتقليم المرشحين، وتسجيل قائم على الحكم لـ PAIR/TAP
  • محرك هجوم متعدد الأدوار مع تاريخ محادثة دائم، واكتشاف الرفض، وتصميم مستقل عن الاستراتيجية لـ Crescendo/GOAT
  • قوالب مسابر YAML (على غرار Nuclei) لتعريفات المسابر التقريرية إلى جانب المسابر القائمة على Go
  • الترشيح المسبق Aho-Corasick لمطابقة الكلمات المفتاحية السريعة في الكاشفات

الإعدادات

ملف إعدادات YAML

أنشئ ملف config.yaml:```yaml

Runtime configuration

run: max_attempts: 3 timeout: "30s"

Generator configurations

generators: openai.OpenAI: model: "gpt-4" temperature: 0.7 api_key: "${OPENAI_API_KEY}" # Environment variable interpolation

anthropic.Anthropic: model: "claude-3-opus-20240229" temperature: 0.5 api_key: "${ANTHROPIC_API_KEY}"

ollama.OllamaChat: model: "llama3.2:3b" temperature: 0.8

Judge configuration (required for judge.Judge, judge.Refusal, and multi-turn probes)

judge: generator_type: openai.OpenAI model: gpt-4o-mini config: api_key: "${OPENAI_API_KEY}"

Output configuration

output: format: "jsonl" path: "./results.jsonl"

Named profiles for different scenarios

profiles: quick: run: max_attempts: 1 timeout: "10s" generators: openai.OpenAI: model: "gpt-3.5-turbo" temperature: 0.5 output: format: "table"

thorough: run: max_attempts: 5 timeout: "60s" generators: openai.OpenAI: model: "gpt-4" temperature: 0.3 output: format: "jsonl" path: "./thorough_results.jsonl"

### متغيرات البيئة```bash
# API Keys
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."
export COHERE_API_KEY="..."

# Debug mode
export AUGUSTUS_DEBUG=true

تكوين الوكيل

قم بتوجيه حركة مرور HTTP عبر وكيل (مثل Burp Suite) للفحص:```bash

Method 1: Via config parameter

augustus scan rest.Rest
--probe dan.Dan_11_0
--detector dan.DAN
--config '{"uri":"https://api.example.com","proxy":"http://127.0.0.1:8080"}'
--output results.jsonl

Method 2: Via environment variables

export HTTP_PROXY=http://127.0.0.1:8080 export HTTPS_PROXY=http://127.0.0.1:8080 augustus scan rest.Rest --probe dan.Dan_11_0 --config '{"uri":"https://api.example.com"}'

- يجب تعطيل التحقق من TLS تلقائيًا لفحص البروكسي
- تمكين دعم HTTP/2 لواجهات برمجة التطبيقات الحديثة
- يتم اكتشاف وتحليل استجابات أحداث المرسل من الخادم (SSE) تلقائيًا

### مرجع CLI```
Usage: augustus scan <generator> [flags]

Arguments:
  <generator>                 Generator name (e.g., openai.OpenAI, anthropic.Anthropic)

Probe Selection (choose one):
  --probe, -p                 Probe name (repeatable)
  --probes-glob               Comma-separated glob patterns (e.g., "dan.*,goodside.*")
  --all                       Run all registered probes

Detector Selection:
  --detector                  Detector name (repeatable)
  --detectors-glob            Comma-separated glob patterns

Buff Selection:
  --buff, -b                  Buff names to apply (repeatable)
  --buffs-glob                Comma-separated buff glob patterns (e.g., "encoding.*")

Configuration:
  --config-file               Path to YAML config file
  --config, -c                JSON config for generator

Execution:
  --harness                   Harness name (default: probewise.Probewise)
  --timeout                   Overall scan timeout (default: 30m)
  --probe-timeout             Per-probe timeout (default: 5m)
  --concurrency               Max concurrent probes (default: 10, env: AUGUSTUS_CONCURRENCY)

Output:
  --format, -f                Output format: table, json, jsonl (default: table)
  --output, -o                JSONL output file path
  --html                      HTML report file path
  --verbose, -v               Verbose output

Global:
  --debug, -d                 Enable debug mode

الأوامر:```bash augustus version # Print version information augustus list # List available probes, detectors, generators, harnesses, buffs augustus scan # Run vulnerability scan augustus completion # Generate shell completion (bash, zsh, fish)

**رموز الخروج:**

| الكود | المعنى |
|------|---------|
| 0 | نجاح - اكتمل الفحص |
| 1 | خطأ في الفحص/وقت التشغيل |
| 2 | خطأ في التحقق/الاستخدام |

## الأسئلة الشائعة

### كيف يقارن Augustus بـ garak؟

Augustus هو إعادة تنفيذ أصلي بلغة Go مستوحى من [garak](https://github.com/NVIDIA/garak) (ماسح الثغرات الأمنية لنماذج LLM المبني على Python من NVIDIA). الاختلافات الرئيسية:
- **الأداء**: ثنائي Go مقابل مترجم Python - تنفيذ أسرع واستخدام أقل للذاكرة
- **التوزيع**: ثنائي واحد بدون تبعيات وقت تشغيل مقارنة بحزمة Python مع تثبيت pip
- **التزامن**: مجموعات goroutine بلغة Go (توازي عبر الفحص) مقابل مجموعات معالجة متعددة في Python (توازي داخل الفحص)
- **تغطية الفحص**: Augustus لديه أكثر من 210 فحصًا؛ garak لديه أكثر من 160 فحصًا مع سجل بحثي أطول وورقة منشورة (arXiv:2406.11036)
- **تغطية المزود**: Augustus لديه 28 مزودًا؛ garak لديه أكثر من 35 متغيرًا للمولد عبر 22 وحدة مزود

### هل يمكنني اختبار النماذج المحلية بدون مفاتيح API؟

نعم! استخدم تكامل Ollama لاختبار النموذج المحلي:```bash
# No API key needed
augustus scan ollama.OllamaChat \
  --probe dan.Dan_11_0 \
  --config '{"model":"llama3.2:3b"}'

كيف يمكنني إضافة فحوصات مخصصة؟

  1. أنشئ ملف Go جديد في internal/probes/
  2. نفذ واجهة probes.Probe
  3. سجل باستخدام registry.RegisterProbe() في دالة init()
  4. أعد البناء: make build

انظر CONTRIBUTING.md للحصول على تعليمات مفصلة.

ما هي صيغ الإخراج المدعومة؟

يدعم Augustus أربع صيغ إخراج:

الصيغةالعلمحالة الاستخدام
Table--format tableإخراج طرفية قابل للقراءة البشرية
JSON--format jsonكائن JSON واحد للتحليل
JSONL--format jsonlJSON محددة بأسطر للتدفق
HTML--html report.htmlتقارير مرئية لأصحاب المصلحة

كيف يمكنني اختبار نماذج متعددة في وقت واحد؟```bash

Test multiple models sequentially

for model in "gpt-4" "gpt-3.5-turbo"; do augustus scan openai.OpenAI
--all
--config "{"model":"$model"}"
--output "results-$model.jsonl" done

### هل يناسب Augustus بيئات الإنتاج؟

نعم، تم تصميم Augustus للاستخدام في الإنتاج مع:
- المسح المتزامن مع حدود قابلة للتكوين
- تحديد المعدل لاحترام حصص واجهة برمجة التطبيقات
- معالجة المهلة للفحوصات الطويلة
- منطق إعادة المحاولة للأعطال المؤقتة
- تسجيل منظم للمراقبة

## استكشاف الأخطاء وإصلاحها

### الخطأ: "تم تجاوز حد معدل واجهة برمجة التطبيقات"

**السبب**: عدد كبير جدًا من الطلبات المتزامنة أو الطلبات في الدقيقة.

**الحلول**:
1. تقليل التزامن: `--concurrency 5`
2. استخدام إعدادات حد المعدل الخاصة بالموفر في تكوين YAML:   ```yaml
   generators:
     openai.OpenAI:
       rate_limit: 10  # requests per minute

Error: "context deadline exceeded" or "timeout"

السبب: تتجاوز البروبات المعقدة (مثل TAP أو PAIR) المهلة الافتراضية.

الحل:```bash augustus scan openai.OpenAI
--probe tap.TAPv1
--timeout 60m
--config-file config.yaml

### خطأ: "مفتاح API غير صالح" أو "فشل المصادقة"

**السبب**: بيانات اعتماد API مفقودة أو غير صالحة.

**الحلول**:
1. تحقق من تعيين متغير البيئة: `echo $OPENAI_API_KEY`
2. افحص ملف الإعدادات عن أخطاء إملائية
3. تأكد من أن مفتاح API لديه الأذونات المطلوبة
4. بالنسبة لـ Ollama، تأكد من تشغيل الخدمة: `ollama serve`

### خطأ: "لم يتم العثور على المسبار" أو "لم يتم العثور على الكاشف"

**السبب**: خطأ إملائي في الاسم أو المسبار غير مسجل.

**الحل**:```bash
# List all available probes and detectors
augustus list

# Use exact names from the list
augustus scan openai.OpenAI --probe dan.Dan_11_0  # Correct

المسح لا ينتج نتائج

السبب: لم يطابق الكاشف أي استجابات، أو لم يتم كتابة المخرجات.

الحلول:

  1. التشغيل باستخدام --verbose لعرض المخرجات التفصيلية
  2. التحقق من تطابق الكاشف مع نوع المسبار
  3. التحقق من أن مسار ملف المخرجات قابل للكتابة

المساهمة

نرحب بالمساهمات! راجع CONTRIBUTING.md للحصول على:

  • إضافة مسابر ضعف جديدة
  • إنشاء تطبيقات كاشف جديدة
  • إضافة تكاملات مزود LLM
  • إرشادات الاختبار
  • متطلبات نمط الكود

التطوير```bash

Run all tests

make test

Run specific package tests

go test ./pkg/scanner -v

Run equivalence tests (compare Go vs Python implementations)

go test ./tests/equivalence -v

Build binary

make build

Install to $GOPATH/bin

make install

### بيئة الاختبار المعياري (DevPod)

بيئة تطوير سحابية جاهزة للاستخدام لاختبار نماذج اللغات الكبيرة متاحة عبر [DevPod](https://devpod.sh/). وهي توفر حاوية عن بُعد تحتوي على Augustus وOllama وGo وجميع التبعيات المثبتة مسبقًا.```bash
cd devpod

# CPU-only instance (~$0.08/hr) - cloud APIs only
make devpod-up-cpu

# GPU instance with NVIDIA T4 (~$0.53/hr) - local models up to 14B
make devpod-up-gpu

# GPU Pro instance with NVIDIA L4 (~$0.80/hr) - local models up to 32B
make devpod-up-gpu-pro

داخل devpod:```bash devpod/scripts/setup.sh # Configure LLM provider API keys devpod/scripts/pull-models.sh # Pull local Ollama models (GPU only) devpod/scripts/benchmark.sh # Run benchmarks with comparison reports

تعمل البيئة أيضًا كـ [حاوية تطوير](https://containers.dev/) قياسية — افتح المستودع في VS Code أو Cursor واختر إعدادات CPU أو GPU من `.devcontainer/`.

## الأمان

تم تصميم Augustus **لاختبار الأمان المصرح به فقط**.

- يرسل Augustus مطالبات عدائية إلى نماذج LLM التي تحددها — تأكد دائمًا من حصولك على التصريح
- لا تختبر أبدًا أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها
- تولد بعض الاختبارات محتوى مسيئًا عن قصد (لاختبار مرشحات الأمان)
- قد تحتوي النتائج على محتوى ضار تنتجه نماذج LLM المستهدفة

أبلغ عن المشكلات الأمنية عبر [GitHub Issues](https://github.com/praetorian-inc/augustus/issues).

## الدعم

إذا وجدت Augustus مفيدًا، فيُرجى التفكير في:

- منحه **نجمة** على GitHub
- [فتح مشكلة](https://github.com/praetorian-inc/augustus/issues) للإبلاغ عن الأخطاء أو طلب ميزات
- [المساهمة](https://github.com/praetorian-inc/augustus/blob/HEAD/CONTRIBUTING.md) باختبارات أو كاشفات أو تكاملات مزود جديدة

[![Star History Chart](https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg)](https://star-history.com/#praetorian-inc/augustus&Date)

## الترخيص

[Apache 2.0](https://github.com/praetorian-inc/augustus/blob/HEAD/LICENSE) - Praetorian Security, Inc.

---

**بُني بواسطة [Praetorian](https://www.praetorian.com/)** - حلول أمنية هجومية

الفئات