العودة إلى التحديثات
New releaseSep 4, 2026

augustus v0.14.24

إطار اختبار أمني لنماذج اللغة الكبيرة (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 كاشفًامطابقة الأنماط، LLM-as-a-judge، HarmJudge (arXiv:2511.15304)، Perspective API، كشف المحتوى غير الآمن
7 تحويلات Buffالترميز، إعادة الصياغة، الشعر (5 صيغ، 3 استراتيجيات)، الترجمة بلغات منخفضة الموارد، تحويلات حالة الأحرف
إخراج مرنصيغ تقارير جدولية وJSON وJSONL وHTML
جاهز للإنتاجفحص متزامن، تحديد معدل الطلبات، منطق إعادة المحاولة، معالجة المهلات
ملف تنفيذي واحدأداة مبنية على Go تُترجم إلى ملف تنفيذي محمول واحد
قابل للتوسعةتسجيل بنمط الإضافات عبر دوال init() في Go

فئات الهجوم

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

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

البدء السريع

التثبيت

يتطلب Go 1.27.0 أو أحدث.```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 فئة من مزوّدي نماذج اللغات الكبيرة مع 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` | HF Inference API, نقاط النهاية, خطوط الأنابيب, متعدد الوسائط |
| Together AI        | `together.Together`       | استدلال سريع لنماذج OSS  |
| Anyscale           | `anyscale.Anyscale`       | استضافة Llama و Mistral      |
| Groq               | `groq.Groq`               | استدلال LPU فائق السرعة       |
| Mistral            | `mistral.Mistral`         | نماذج Mistral API             |
| 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 Cloud Functions   |
| NeMo Guardrails    | `guardrails.NeMoGuardrails` | NVIDIA NeMo Guardrails       |
| IBM watsonx        | `watsonx.WatsonX`         | منصة IBM watsonx.ai        |
| LangChain          | `langchain.LangChain`     | غلاف LangChain LLM          |
| 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](#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

طبّق تحويلات على المطالبات لاختبار تقنيات التهرب:```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 فئات:
  - *التلاعب بالمخرجات*: قمع الرفض، التمهيد للاستجابة
  - *مشتتات الاستجابة الآمنة*: الاستجابة المزدوجة، تقسيم الموضوع، النية المعاكسة
  - *السيناريوهات الخيالية*: تعديل الشخصية، الافتراضي
- **سلسلة التفكير الهجومي**: في كل جولة، يفكر المهاجم عبر الملاحظة ← الفكر ← الاستراتيجية ← الاستجابة قبل صياغة رسالته
- **تراكم التقنيات**: يمكن دمج تقنيات متعددة في جولة واحدة لتأثير أقوى
- **القوة**: يحقق معدلات نجاح عالية في جولات أقل (عادة 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 لنموذج المهاجم |
| `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)` | نموذج المهاجم يعيد 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
  • التسجيل بنمط الإضافات باستخدام دوال init() في Go للمسحّات والمولّدات والكاشفات والمعززات والأدوات المساعدة
  • محرك هجوم تكراري مع إدارة محادثات متعددة المسارات، وتقليم المرشحين، وتقييم قائم على الحكم لـ 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 لواجهات برمجة التطبيقات الحديثة
- يتم اكتشاف وتحليل استجابات Server-Sent Events (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) (ماسح ثغرات نماذج اللغات الكبيرة المبني على Python من NVIDIA). الاختلافات الرئيسية:
- **الأداء**: ملف ثنائي Go مقابل مترجم Python — تنفيذ أسرع واستهلاك أقل للذاكرة
- **التوزيع**: ملف ثنائي واحد بدون تبعيات وقت تشغيل مقابل حزمة Python مع تثبيت عبر pip
- **التزامن**: تجمعات goroutine في Go (توازي عبر الفحوصات) مقابل تجمعات multiprocessing في 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 أربع صيغ للإخراج:

الصيغةالعلامةحالة الاستخدام
جدول--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 للاستخدام في الإنتاج مع:
- فحص متزامن مع حدود قابلة للتكوين
- تحديد المعدل لاحترام حصص واجهة برمجة التطبيقات (API)
- معالجة المهلة الزمنية للفحوصات طويلة الأمد
- منطق إعادة المحاولة للفشل المؤقت
- تسجيل منظم للمراقبة

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

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

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

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

خطأ: "context deadline exceeded" أو "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)

بيئة تطوير سحابية جاهزة للاستخدام لقياس أداء نماذج LLM متاحة عبر [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/main/CONTRIBUTING.md) ببروبات أو كاشفات أو تكاملات مزودين جديدة

[![Star History Chart](https://api.star-history.com/svg?repos=praetorian-inc/augustus&type=Date)](https://star-history.com/#praetorian-inc/augustus&Date)

## الترخيص

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

---

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

الفئات