
مدقق أمان كود أصيل بالذكاء الاصطناعي على AgentField يُثبت قابلية الاستغلال مع أحكام وتتبعات وأدلة قابلة للتنفيذ.
الأدوات الأخرى ترصد الأنماط. SEC-AF يثبت قابلية الاستغلال: كل نتيجة تأتي مع حكم، ومسار لتدفق البيانات، وأدلة يمكنك التصرف بناءً عليها. مجاني، مفتوح المصدر، استدعاء API واحد. تدقيق كامل مع 30 نتيجة متحقق منها يكلف حوالي 1.40 دولارًا في استدعاءات LLM.
شغّلها عبر CLI af (يتطلب af ≥ 0.1.87) — يبث تقدمًا مباشرًا ويطبع النتيجة:```bash
af call sec-af.audit --in '{"repo_url": "https://github.com/dolevf/Damn-Vulnerable-GraphQL-Application"}'
هل تفضّل HTTP الخام؟ استدعِ API مباشرة عبر curl:```bash
curl -X POST http://localhost:8080/api/v1/execute/async/sec-af.audit \
-H "Content-Type: application/json" \
-d '{"input": {"repo_url": "https://github.com/dolevf/Damn-Vulnerable-GraphQL-Application"}}'
هذا اكتشاف حقيقي من تدقيق SEC-AF لتطبيق DVGA (تطبيق GraphQL ضعيف عمدًا):```jsonc { "title": "OS Command Injection in run_cmd Helper Function", "severity": "critical", "verdict": "confirmed", // not "maybe" — confirmed exploitable "evidence_level": 5, "cwe_id": "CWE-78",
"rationale": "Tracer confirms complete data flow from GraphQL parameters (host, port, path, scheme, cmd, arg) to os.popen(cmd).read() sink. Sanitization functions are bypassable in Easy mode...",
"proof": { "verification_method": "composite_subagent_chain:sast", "data_flow_trace": [ { "description": "core/views.py:203 — GraphQL args defined (host, port, path, scheme)", "tainted": true }, { "description": "core/views.py:210 — URL constructed from user input", "tainted": true }, { "description": "core/views.py:211 — helpers.run_cmd(f'curl {url}') called", "tainted": true }, { "description": "core/helpers.py:9 — os.popen(cmd).read() executes input", "tainted": true } ] },
"location": { "file_path": "core/helpers.py", "start_line": 9, "code_snippet": "def run_cmd(cmd):\n return os.popen(cmd).read()" } }
كل اكتشاف يتضمن **حكمًا** (`confirmed` / `likely` / `inconclusive` / `not_exploitable`)، و**كائن إثبات** يحتوي على أثر التلوث الكامل، وموقع الكود الدقيق. ليس "قد تكون هذه مشكلة." يتتبع SEC-AF البيانات من المصدر إلى الوجهة (sink) ويُثبت ما إذا كانت قابلة للاستغلال فعلاً.
> إخراج المعيار الكامل (30 اكتشافًا): [`exampl/dvga-benchmark-result.json`](https://github.com/agent-field/sec-af/blob/main/exampl/dvga-benchmark-result.json) | تحليل الأداء: [`exampl/benchmark-analysis.json`](https://github.com/agent-field/sec-af/blob/main/exampl/benchmark-analysis.json)
## المعيار: DVGA
نُشغّل SEC-AF ضد [Damn Vulnerable GraphQL Application](https://github.com/dolevf/Damn-Vulnerable-GraphQL-Application)، وهو تطبيق ضعيف عمدًا مع 21 سيناريو أمني موثقًا.
| المقياس | القيمة |
|---|---|
| الاكتشافات الأولية المكتشفة | 106 |
| بعد إزالة التكرار بالذكاء الاصطناعي | 61 |
| **بعد التحقق العدائي** | **28 مؤكدة** |
| غير حاسم (يتطلب مراجعة يدوية) | 1 |
| غير قابل للاستغلال (تم رفضه بشكل صحيح) | 1 |
| تقليل الضوضاء | 94% |
| حواف DAG (استدعاءات المُستنطِق) | 82 |
| استدعاءات الوكيل | ~166–255 |
| الاستراتيجيات المُنفَّذة | 11 |
| الوقت الفعلي المستغرق | ~78 دقيقة |
| التكلفة التقديرية (Kimi K2.5) | ~$0.18–$0.90 |
<details>
<summary><strong>تفصيل: 30 اكتشافًا مُتحقَّقًا منه حسب الفئة</strong></summary>
| الفئة | العدد | أمثلة |
|---|---|---|
| غياب المصادقة | 8 | ImportPaste, delete_all_pastes, system_debug, CreateUser, رفع الملفات |
| حقن الأوامر | 4 | `os.popen(cmd)` عبر ImportPaste, system_debug, system_diagnostics |
| حقن SQL | 3 | `filter` غير مُعقّم في `resolve_pastes`، حقن نمط LIKE، تسجيل الدخول |
| تجاوز المصادقة | 3 | توقيع JWT معطّل، تجاوز تفويض JWT، مصادقة كلمة مرور مكسورة |
| بيانات اعتماد نصية واضحة | 3 | تخزين كلمة المرور كنص واضح، مقارنة كنص واضح، كلمة المرور في التشخيصات |
| SSRF | 2 | تحويلة ImportPaste تتبع عناوين URL يقدمها المستخدم من جهة الخادم |
| منطق الأعمال / تعقيم عناوين URL | 2 | تعقيم عناوين URL غير كافٍ، حذف جماعي غير مصادَق |
| رفض الخدمة / استنزاف الموارد | 3 | غياب الترقيم (pagination) في استعلامات users/audits، simulate_load غير المنضبط |
| التكوين / الأسرار | 2 | أسرار JWT/Flask ثابتة في الكود، وضع التصحيح مفعّل في الإنتاج |
</details>
<details>
<summary><strong>أنماط التصميم: كيف يعمل تحليل الأمان المعتمد على الذكاء الاصطناعي</strong></summary>
يطبّق SEC-AF عدة أنماط معمارية أصبحت ممكنة بشكل فريد من خلال دمج العديد من وكلاء الذكاء الاصطناعي المتخصصين بدلاً من تشغيل فحص واحد ضخم. تعالج هذه الأنماط تحديات أساسية في تحليل الأمان القائم على الذكاء الاصطناعي.
**1. التوتر العدائي بين الوكلاء (HUNT مقابل PROVE)**
معظم أدوات الأمان بالذكاء الاصطناعي تطرح على نموذج واحد سؤال "هل هذا ضعيف؟" وتقبل الإجابة. يفصل SEC-AF هيكليًا بين وكلاء _الاكتشاف_ ووكلاء _الدحض_. يُحفَّز الصيادون على إيجاد الثغرات؛ ويُحفَّز المُفنِّدون على دحضها. يمر كل اكتشاف بسلسلة تحقق من 4 وكلاء — متتبع يعيد بناء تدفق البيانات، ومحلل تعقيم يبحث عن تخفيفات ربما فاتت الصياد، ومفترِض استغلال يبني سيناريو هجوم ملموسًا، ووكيل حكم يزن كل الأدلة المتضاربة. هذا التوتر العدائي بين الوكلاء هو ما يقود تقليل الضوضاء بنسبة 94% — فالمعمارية نفسها ترمّز الشك.
**2. شلال الإشارة مع التضييق التدريجي**
بدلاً من إغراق المستخدم بجميع الاكتشافات، يضغط خط الأنابيب الإشارة في كل مرحلة: 106 اكتشافات أولية ← 61 بعد إزالة التكرار بالذكاء الاصطناعي ← 30 بعد التحقق العدائي. كل مرحلة هي مُرشِّح. هذا يعكس كيفية فرز فرق الأمان البشرية للنتائج — اكتشاف واسع أولاً، ثم تدقيق أكثر صرامة تدريجيًا. الرؤية الأساسية هي أن كل مُرشِّح هو _نوع مختلف_ من التفكير بالذكاء الاصطناعي: تشابه دلالي لإزالة التكرار، وتحليل تلوث للتحقق، وبناء استغلال للتأكيد.
**3. اقتصاد المعلومات عبر تقليم السياق**
نماذج اللغة الكبيرة (LLMs) تهذي أكثر عندما تُعطى سياقًا غير ذي صلة. يمرر SEC-AF فقط المعلومات التي يحتاجها كل وكيل: صياد الحقن يستلم سياق الاستطلاع مقلمًا إلى خرائط تدفق البيانات ونقاط دخول المدخلات، بينما يستلم صياد التشفير أشجار الاعتماديات وأنماط إدارة المفاتيح. يستلم المدققون عروض اكتشاف مُسقطة تحتوي فقط على الحقول اللازمة لطريقة التحقق الخاصة بهم. هذا التقليم السياقي لكل استراتيجية يقلل من الهلوسة والتكلفة معًا — لا يمكن للوكلاء أن يربكوا أنفسهم بمعلومات لا يرونها أبدًا.
**4. تداخل المراحل بالتدفق**
خطوط الأنابيب التقليدية تعمل بالتتابع: إنهاء الاستطلاع، ثم بدء الصيد، ثم بدء الإثبات. يتداخل SEC-AF بين المراحل عبر `asyncio.Queue` — يبدأ الصيادون في استهلاك مخرجات الاستطلاع فور وصولها، وتعالج إزالة التكرار الاكتشافات مع اكتمال كل صياد. يبدأ المدققون في التحقق من أول الاكتشافات المُزالة تكرارها بينما لا يزال صيادون لاحقون يعملون. هذه المعمارية المتدفقة تقلل الوقت الفعلي دون التضحية بشلال الإشارة — كل اكتشاف ما زال يمر عبر كل مُرشِّح، ولكن في وقت أبكر.
**5. التوجيه الديناميكي عبر بوابات الذكاء الاصطناعي**