
ماسح SAST مدعوم بالذكاء الاصطناعي يكتشف تجاوز المصادقة، IDOR، والأخطاء المنطقية التي يغفل عنها Semgrep/CodeQL. إجراء GitHub مجاني. يدعم Python، JS/TS، Go، PHP، Ruby.
ماسح أمان للكود يعمل بالذكاء الاصطناعي ويكتشف الثغرات التي تفوتها أدوات Semgrep وCodeQL.
البدء السريع • إجراء GitHub • المقارنة • اللغات • الأسئلة الشائعة
أدوات SAST التقليدية تعتمد على مطابقة الأنماط وقواعد AST. إنها بارعة في اكتشاف أنماط الثغرات المعروفة، لكنها لا تستطيع أساساً التفكير في النية.
إذا كان لدى واجهتك (API) 20 نقطة نهاية و 19 منها تتحقق من الترخيص قبل تنفيذ إجراء على أحد الموارد، فإن Semgrep لا يملك طريقة للإبلاغ عن النقطة التي لا تفعل ذلك - لأنه لا يوجد نمط يطابقه. الثغرة هي غياب النمط.
يقوم VulnHawk بتحليل الكود بالذكاء الاصطناعي، وبالنسبة لكل جزء من الكود يفحصه، يضمّن كوداً ذا صلة من أجزاء أخرى من قاعدة الكود كسياق. تتيح خطوة الإثراء هذه للذكاء الاصطناعي مقارنة كيفية تعامل المكونات المماثلة مع الأمان - واكتشاف المكون الذي لا يفعل ذلك.
pip install vulnhawk
اختر الخلفية (backend):
# Claude Code CLI - مجاني للمشتركين (موصى به)
vulnhawk scan ./src -b claude-code
# Codex CLI - مجاني للمشتركين في ChatGPT Pro/Plus
vulnhawk scan ./src -b codex
# Claude API
export ANTHROPIC_API_KEY=sk-ant-...
vulnhawk scan ./src
# OpenAI API
vulnhawk scan ./src -b openai -m gpt-4o
# Ollama - مجاني، محلي، خاص بالكامل
vulnhawk scan ./src -b ollama -m llama3.1
لا ملفات تكوين. لا قواعد للكتابة. لا قاعدة بيانات لبنائها.
خلفيتا Claude Code و Codex مجانيتان للمستخدمين ذوي الاشتراكات الحالية. يقوم VulnHawk بتوجيه الأوامر (prompts) عبر CLI المحلي الخاص بك، لذا لا توجد تكاليف إضافية على واجهة API.
*مجاني مع Claude Code أو Codex CLI أو Ollama. خلفيات API تكلف حوالي 0.50-2.00 دولار لكل مسح.
صُمم VulnHawk ليكون طبقة مكملة، وليس بديلاً:
| الطبقة | الأداة |
|---|
vulnhawk scan ./src # مسح كامل (افتراضي)
vulnhawk scan ./src --mode auth # تجاوز الترخيص، تحقق مفقود، ثغرات الجلسة
vulnhawk scan ./src --mode injection # SQLi، حقن أوامر، SSTI، XSS
vulnhawk scan ./src --mode secrets # مفاتيح ورموز وكلمات مرور مثبتة في الكود
vulnhawk scan ./src --mode config # وضع التصحيح، CORS متساهل، كعكات غير آمنة
vulnhawk scan ./src --mode crypto # تجزئة ضعيفة، مفاتيح ثابتة، RNG سيء
vulnhawk scan ./src -o json -f results.json # JSON
vulnhawk scan ./src -o sarif -f results.sarif # SARIF (GitHub Code Scanning)
vulnhawk scan ./src -o markdown -f report.md # تقرير Markdown
vulnhawk scan ./src --severity high # حرجة + عالية فقط
vulnhawk scan ./src --severity info # كل شيء
قم بتغذية إخراج Semgrep أو CodeQL أو أي أداة تنتج SARIF إلى VulnHawk. يستخدم هذه النتائج كسياق إضافي للتحقق منها، توسيعها، وربطها في ثغرات أعمق.
# شغّل Semgrep أولاً، ثم أثرِ باستخدام VulnHawk
semgrep --config auto ./src -o semgrep.sarif --sarif
vulnhawk scan ./src --sarif-input semgrep.sarif
ما يتيحه هذا:
vulnhawk info ./src # معاينة الملفات والمقاطع وتحليل اللغات
يعمل VulnHawk كـ مسح أساسي على الفرع الافتراضي وبشكل تدريجي على كل طلب سحب (Pull Request).
name: VulnHawk Security Scan
on:
push:
branches: [main, master]
pull_request:
permissions:
security-events: write
contents: read
jobs:
vulnhawk:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: momenbasel/vulnhawk@main
with:
target: '.'
backend: 'claude-code'
claude-code-oauth-token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
severity: 'medium'
fail-on-findings: 'true'
يتم رفع النتائج تلقائياً إلى تبويب Security > Code Scanning في GitHub عبر SARIF.
steps:
- uses: actions/checkout@v4
- name: Semgrep (فحص سريع للأنماط)
uses: returntocorp/semgrep-action@v1
with:
config: auto
generateSarif: true
- name: VulnHawk (تحليل عميق بالذكاء الاصطناعي)
uses: momenbasel/vulnhawk@main
with:
target: '.'
backend: 'claude-code'
claude-code-oauth-token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
sarif-input: 'semgrep.sarif'
قاعدة الكود ──> اكتشاف ──> تقسيم ──> إثراء ──> تحليل ──> تحقق ──> تقرير
│ │ │ │ │
يحترم دوال كود ذو LLM مع إزالة
.gitignore فئات صلة من استفسارات تكرار +
.vulnhawk- مسارات نفس الدليل أمان تسجيل ثقة
ignore وحدات + أنماط
خطوة الإثراء هي الفارق الجوهري. لكل قطعة كود، يضمّن VulnHawk ما يلي:
يمنح هذا الذكاء الاصطناعي السياق الذي يحتاجه لتحديد التناقضات.
استبعاد المسارات من المسح (بناء جملة gitignore):
generated/
vendor/
third_party/
*.gen.go
| المتغير | الوصف |
|---|---|
CLAUDE_CODE_OAUTH_TOKEN | مصادقة Claude Code CLI (مجاني للمشتركين) |
ANTHROPIC_API_KEY | مفتاح Claude API |
OPENAI_API_KEY | مفتاح OpenAI API |
تشمل اشتراكات Claude Code (Max بسعر 100-200 دولار/شهر، أو خطط Team) استخدام CLI غير محدود. يستدعي VulnHawk الأمر claude --print داخلياً، ويوجّه استفسارات التحليل عبر اشتراكك الحالي. لا حاجة لمفتاح API. ولا فاتورة لكل رمز (per-token).
شغّل claude config get oauth_token على جهازك المحلي. أضف الناتج كسر من أسرار GitHub Actions باسم CLAUDE_CODE_OAUTH_TOKEN.
كلاهما. مسحات الدفع إلى الرئيسي تحدد خط الأساس الأمني الخاص بك وتملأ تبويب الأمان. مسحات طلبات السحب تكتشف الثغرات الجديدة قبل الدمج. يقوم إعداد سير العمل الموصى به بتكوين كلا المشغّلين.
نعم - يتم إرسال قطع الكود إلى موفر LLM المُكوّن (Anthropic أو OpenAI). للمسح الخاص بالكامل والمُعزول، استخدم خلفية Ollama التي تعمل بالكامل على جهازك المحلي.
لا. VulnHawk هو طبقة مكملة. Semgrep و CodeQL ممتازان فيما يفعلانه (مطابقة الأنماط وتتبع التيّارات). يكتشف VulnHawk ثغرات منطق الأعمال، وفجوات الترخيص، والتناقضات التي لا تستطيع القواعد التعبير عنها. استخدم الثلاثة معاً لأقوى تغطية.
نعم. يشمل VulnHawk تقسيماً مدركاً للإطار (framework-aware chunking) لكليهما. يكتشف تعريفات Route::get() في Laravel، وفئات PHP و traits وواجهات، وتعريفات مسارات Rails (get, post, resources)، وفئات Ruby ووحدات. كما يستخرج الاستيرادات الخاصة بالإطار (use, require, include).
يمكنك تغذية VulnHawk بملف SARIF منتج بواسطة أي ماسح آخر (Semgrep, CodeQL, Snyk, إلخ). يستخدم VulnHawk هذه النتائج كسياق إضافي أثناء التحليل - بالتحقق منها، وإيجاد المشكلات ذات الصلة قريباً، وبناء سلاسل هجوم متعددة الخطوات تربط النتائج عبر الأدوات.
انظر CONTRIBUTING.md.
git clone https://github.com/momenbasel/vulnhawk.git
cd vulnhawk
uv venv .venv && source .venv/bin/activate
uv pip install -e ".[dev]"
pytest
إذا كان VulnHawk مفيداً لك، ففكر في رعاية المشروع لدعم التطوير المستمر.
يُبنى ويُصان VulnHawk بواسطة GreyCore Labs، وهي شركة أمن هجومي مسجلة في الولايات المتحدة. تريد نفس العين على منتجك الخاص؟
VulnHawk هو متاح المصدر بموجب ترخيص VulnHawk.
مجاني للجميع - الأفراد والفرق والشركات الناشئة والمؤسسات يمكنهم استخدام VulnHawk دون تكلفة للمسح الأمني الداخلي، بشرط أن يتم تثبيته من قناة توزيع رسمية:
لا يجوز لك بيع البرنامج، أو تقديمه كخدمة منافسة، أو إعادة توزيع الفروع كمنتج. الفروع مسموح بها فقط لتقديم طلبات سحب (pull requests) إلى هذا المستودع. انظر LICENSE للشروط الكاملة.
| الإمكانية | VulnHawk | Semgrep | CodeQL | Snyk Code | Checkmarx | SonarQube |
|---|
| طريقة الكشف | استدلال (reasoning) بالذكاء الاصطناعي | أنماط AST | تدفق بيانات QL | تعلم آلي + قواعد | أنماط + تدفق | أنماط |
| ثغرات منطق الأعمال | نعم | لا | محدود | محدود | محدود | لا |
| سياق عبر الملفات | تلقائي | قواعد مخصصة | استعلامات مخصصة | جزئي | طبقة مدفوعة | محدود |
| تعقيد الإعداد | بدون تكوين | تكوين قواعد | بناء قاعدة بيانات + QL | ملف تكوين | معقد | إعداد خادم |
| قواعد مخصصة مطلوبة | لا | نعم (YAML) | نعم (QL) | جزئي | نعم | نعم |
| إصلاحات واعية بالسياق | نعم | عامة | عامة | عامة | عامة | عامة |
| وضع محلي/خاص | Ollama | نعم | نعم | لا | لا | استضافة ذاتية |
| تكامل CI/CD | إجراء من سطر واحد | إجراء | إجراء | إجراء | إضافة | إضافة |
| إدخال SARIF (ربط الأدوات) | نعم | لا | لا | لا | لا | لا |
| التسعير | مجاني* | مجاني/مدفوع | مجاني/مدفوع | مجاني/$$$ | $$$$$ | مجاني/$$$ |
| فئة الثغرة | لماذا تفوتها الأدوات القائمة على القواعد |
|---|
| تفويض مفقود في 1 من نقاط N | لا يوجد نمط للمطابقة - الخلل هو غياب التحقق |
| IDOR / BOLA | يتطلب فهم أن معرف المستخدم في JWT يجب أن يطابق المعرف في عنوان URL |
| التلاعب بمبلغ الدفع | منطق أعمال - لا ينبغي الوثوق بحقل المبلغ القادم من العميل |
| التحقق غير المتسق من الإدخال | 5 معالجات تقوم بالتعقيم، السادس لا يفعل - يحتاج مقارنة عبر الملفات |
| سوء استخدام الإدخال المخزن | الإدخال محفوظ بأمان، ولكن يتم استخدام eval() أو SQL خام على بعد 3 ملفات |
| حالات السباق (race conditions) في تحديثات الحالة | تعديلات متزامنة للرصيد دون تأمين (locking) |
| الغرض |
|---|
| 1 | Semgrep | بوّابة سريعة وحتمية على الأنماط السيئة المعروفة |
| 2 | CodeQL | تتبع عميق للتيّارات (taint) عبر سلاسل الاستدعاءات المعقدة |
| 3 | VulnHawk | منطق الأعمال، فجوات الترخيص، IDOR، والتناقضات التي لا تستطيع القواعد التعبير عنها |
| الخلفية | الإعداد |
|---|---|
| Claude Code (مجاني) |
احصل على رمزك: |
| Codex (مجاني) |
يتطلب |
| Claude API |
|
| OpenAI API |
|
| اللغة | الامتدادات | كشف الإطار (Framework) |
|---|
| Python | .py | Django, Flask, FastAPI |
| JavaScript | .js .jsx | Express, Fastify, Next.js |
| TypeScript | .ts .tsx | Express, NestJS, Fastify |
| Go | .go | معالجات net/http |
| Java | .java | تقسيم الفئات والطرق |
| PHP | .php | مسارات Laravel، فئات، traits، واجهات |
| Ruby | .rb .erb | مسارات Rails، فئات، وحدات |
| الخلفية | لكل مسح (~100 ملف) | المتطلب |
|---|
| Claude Code CLI | مجاني | اشتراك Claude Code Max أو Team |
| Codex CLI | مجاني | اشتراك ChatGPT Pro أو Plus |
| Claude API | ~0.50$ - 2.00$ | أرصدة Anthropic API |
| OpenAI API | ~1.00$ - 4.00$ | أرصدة OpenAI API |
| Ollama | مجاني | جهاز محلي بذاكرة VRAM 8GB+ |