ثبّت Fendix، وشغّل أول فحص لك، وافهم المخرجات — كل ذلك في أقل من خمس دقائق.
ثلاثة أوامر للانتقال من الصفر إلى تقرير أمان HTML كامل.
# 1. Install
curl -fsSL https://get.fendix.dev/install.sh | sh
# 2. Run your first scan
fendix scan --url https://api.example.com --format html --output report.html
# 3. Open the report
open report.htmlيفحص Fendix واجهة API بحثًا عن رؤوس الأمان المفقودة، وإعدادات CORS الخاطئة، وأعلام ملفات تعريف الارتباط غير الآمنة، وتجاوزات المصادقة، وكشف البيانات الحساسة، ومشكلات تحديد المعدل — كل ذلك دون إرسال أي حمولات تدميرية.
brew tap Abdel-RahmanSaied/fendix
brew install fendixيقوم بتنزيل أحدث ملف تنفيذي للإصدار إلى /usr/local/bin/fendix.
curl -fsSL https://get.fendix.dev/install.sh | shتعمل صورة Docker جاهزة للاستخدام مباشرة — تعمل فحوصات الأسرار وSemgrep (إن وُجد) وفحوصات dep-CVE جميعها أصليًا في Go. أما محرك الصندوق الأبيض المكتوب بلغة Python فهو اختياري عبر --python-engine إذا أردت أيضًا فحوصات المصادقة / الحقن / AST.
docker pull ghcr.io/abdel-rahmansaied/fendix:latest
docker run --rm ghcr.io/abdel-rahmansaied/fendix scan --url https://api.example.comيتطلب Go 1.22+. لم تعد Python مطلوبة لمسار الفحص الافتراضي اعتبارًا من الإصدار v0.9 — فهي مطلوبة فقط إذا اخترت محرك الصندوق الأبيض المكتوب بلغة Python عبر --python-engine، وفي هذه الحالة ثبّت Python 3.9+ والاعتماديات الموجودة في python/requirements.txt.
git clone https://github.com/Abdel-RahmanSaied/Fendix.git
cd Fendix
make build
./bin/fendix version
# Default scan path needs no Python — secrets, semgrep (if installed),
# and dep-CVE checks all run as native Go. For the
# opt-in --python-engine path (auth / injection / AST checks), install
# Python deps:
# pip install -r python/requirements.txtالإصدار الحالي: v1.1.0. يوفّر المحرك محرك SAST موحدًا للمسح النصي يدعم Go/JS/IaC/Java، وتقارير قرار (BLOCK / WARN / INFO مع نطاق ثقة حتمي)، وتقارير PDF وصفحات HTML بالعربية، وتكاملات Jira / Slack / Teams، وفحوصات واعية بالفروق تعمل عند كل التزام (fendix scan --code . --diff --staged --fast)، وبوابة ما قبل الالتزام fendix hook install، وسلاسل تتبّع Proven Path المُصدَّرة كـ codeFlows بصيغة SARIF، وتحليل SCA متعدٍّ للاعتماديات في Python عبر poetry.lock / Pipfile.lock. ويضيف v1.1 معيار دقّة على مستودعات حقيقية ويُغلق أبرز فئات النتائج الإيجابية الكاذبة: على تطبيق Django فعلي انخفض سطح تحليل التتبّع في SAST من ~90 نتيجة إلى 5 مع بقاء الثغرة الحقيقية الوحيدة مرصودة، وخفّض إصلاحٌ للأداء زمن فحص مشروع حقيقي كامل من ~50 دقيقة إلى 9 ثوانٍ. على مجموعة الدقة الاصطناعية المُصنَّفة، يحقق fendix F1 = 1.000 عبر جميع فئات الكشف. راجع /performance للاطلاع على معيار البدء البارد و/accuracy للاطلاع على بطاقة درجات الدقة/الاستدعاء.
وجّه Fendix إلى واجهة API حية. لا حاجة إلى الشيفرة المصدرية. يشغّل جميع الفحوصات السلبية.
fendix scan --url https://api.example.comحلّل الشيفرة المصدرية دون إجراء أي طلبات شبكية. يشغّل المسار الافتراضي v0.9 ماسح الأسرار الأصلي في Go، وماسحات dep-CVE (لـ Go عبر govulncheck، ولـ PyPI/npm عبر OSV.dev)، ويستدعي Semgrep إن كان ضمن PATH. أما تحليل AST (أنماط المصادقة/الحقن) وفحوصات المصادقة المشتقة من المواصفات فتوجد في محرك Python — اختر تفعيلها عبر --python-engine عند الحاجة إليها. ويغذّي --spec دائمًا اكتشاف نقاط النهاية، حتى بدون --python-engine.
# Default — runs Go-native scanners
fendix scan --code ./src
# Add --spec for endpoint-discovery from an OpenAPI doc
fendix scan --code ./src --spec openapi.yaml
# Opt into the Python engine for AST + spec-derived auth checks
fendix scan --code ./src --spec openapi.yaml --python-engineالصندوق الأسود بالإضافة إلى الصندوق الأبيض، مع قيام المُرابِط بالإحالة المتبادلة بين الجانبين. تحصل النتائج المُرابَطة على خطورة مرتفعة، وتحصل النتائج المُرابَطة المُثبَتة القابلية للوصول على رفع ثانٍ ("الإسفين" — اتفق DAST + SAST ويمكننا إثبات مسار الاستغلال). تنتج ماسحات الصندوق الأبيض الأصلية في Go نتائج source: whitebox بمفردها؛ ويعمل الترابط في المسار الافتراضي. أضف --python-engine لفحوصات AST + المصادقة المشتقة من المواصفات القديمة.
fendix scan \
--url https://api.example.com \
--code ./src \
--spec openapi.yaml \
--format html \
--output report.html
# Add --python-engine if you want the legacy AST/spec auth checks
# alongside the native Go secrets + Semgrep + dep-CVE pipeline.قدّم بيانات الاعتماد لاختبار نقاط النهاية الموجودة خلف المصادقة. تُخفى بيانات اعتماد المصادقة دائمًا على هيئة [REDACTED] في المخرجات.
# Bearer token
fendix scan --url https://api.example.com --auth "Bearer eyJhbG..."
# API key with custom header
fendix scan --url https://api.example.com \
--auth "sk-live-abc123" \
--auth-type apikey \
--auth-header "X-API-Key"
# Basic auth
fendix scan --url https://api.example.com \
--auth "admin:password" \
--auth-type basicيختبر الحقن (SQL/الأوامر)، وثغرات XSS المنعكسة، وثغرات SSRF داخل النطاق، وإعادة التوجيه المفتوحة، وحقن رأس المضيف، واستكشاف GraphQL، والتلاعب بطرق HTTP. مُعطّل افتراضيًا — يتطلب موافقة صريحة.
fendix scan --url https://api.example.com --enable-activeاستخدمه فقط ضد الأنظمة التي تملكها أو لديك تفويض مكتوب باختبارها.
أوقف خط الأنابيب في حال اكتشاف نتائج بخطورة حرجة أو عالية. رمز الخروج 1 يعني وجود نتائج عند العتبة أو أعلى منها.
fendix scan \
--url https://api.staging.example.com \
--code ./src \
--fail-on HIGH \
--format sarif \
--output results.sarifأبلِغ فقط عن النتائج الجديدة مقارنةً بفحص سابق. مثالي لسير عمل طلبات السحب (PR).
# Save a baseline
fendix scan --url https://api.example.com --save-baseline baseline.json
# Later, compare against it
fendix scan --url https://api.example.com --baseline baseline.jsonاكبت النتائج المعروفة أو استثنِ نقاط النهاية من الفحص. ضعه باسم .fendix-ignore في جذر مشروعك أو مرّره عبر --ignore.
# Suppress by finding ID
ignore:
- id: SEC-014
reason: "Rate limiting handled at API gateway level"
until: 2026-12-01 # optional expiry date
# Suppress entire endpoint
- endpoint: GET /health
reason: "Public health check endpoint by design"
# Suppress by category on specific endpoints
- endpoint: GET /api/public/*
category: auth
reason: "Public endpoints intentionally unauthenticated"حوّل ملف نتائج JSON محفوظًا إلى HTML أو SARIF دون إعادة الفحص.
fendix report --input findings.json --format html --output report.htmlإلى جانب واجهة الأوامر، تتيح واجهة Fendix SaaS بدء الفحوصات برمجيًا وتجميعها في لوحة تحكم. صادِق باستخدام X-API-Key (خطة Pro فما فوق). راجع التكامل للحصول على وصفات جاهزة لخطوط الـ CI.
# Launch a scan via the API — X-API-Key (fx_ prefix, Pro plan and up)
curl -X POST https://api.fendix.dev/api/scans \
-H "X-API-Key: $FENDIX_API_KEY" \
-H 'Content-Type: application/json' \
-d '{ "mode": "blackbox", "url": "https://api.example.com", "fail_on": "high" }'
# Workspace overview: totals, severity + category breakdowns, 8-week trend
curl "https://api.fendix.dev/api/dashboard?organization=$ORG_ID" \
-H "X-API-Key: $FENDIX_API_KEY"المشغّل هو وكيل تستضيفه داخل شبكتك: يلتقط المهام المُدرجة، ويُشغّل المحرّك على الأهداف الخاصة أو الداخلية، ويُرسل التقرير إلى لوحة التحكم. يتطلّب ميزة self_hosted_runners في خطة Enterprise.
# Self-hosted runner (Enterprise): scan private/internal targets in-network
# and push results to the dashboard. Register once (org admin) → fxr_ token.
curl -X POST https://api.fendix.dev/api/runners/claim -H "X-Runner-Token: $TOKEN"
fendix scan --code /repo --format json --output report.json
curl -X POST "https://api.fendix.dev/api/runners/jobs/$SCAN_ID/result" \
-H "X-Runner-Token: $TOKEN" -H 'Content-Type: application/json' \
--data-binary @report.json