تخطٍّ إلى المحتوى
العودة إلى الوثائق
15البدء

البدء

ثبّت Fendix، وشغّل أول فحص لك، وافهم المخرجات — كل ذلك في أقل من خمس دقائق.

بداية سريعة

ثلاثة أوامر للانتقال من الصفر إلى تقرير أمان HTML كامل.

terminal
# 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 الخاطئة، وأعلام ملفات تعريف الارتباط غير الآمنة، وتجاوزات المصادقة، وكشف البيانات الحساسة، ومشكلات تحديد المعدل — كل ذلك دون إرسال أي حمولات تدميرية.

التثبيت

Homebrew (macOS / Linux)

terminal
brew tap Abdel-RahmanSaied/fendix
brew install fendix

curl (macOS / Linux)

يقوم بتنزيل أحدث ملف تنفيذي للإصدار إلى /usr/local/bin/fendix.

terminal
curl -fsSL https://get.fendix.dev/install.sh | sh

Docker

تعمل صورة Docker جاهزة للاستخدام مباشرة — تعمل فحوصات الأسرار وSemgrep (إن وُجد) وفحوصات dep-CVE جميعها أصليًا في Go. أما محرك الصندوق الأبيض المكتوب بلغة Python فهو اختياري عبر --python-engine إذا أردت أيضًا فحوصات المصادقة / الحقن / AST.

terminal
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.

terminal
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 حية. لا حاجة إلى الشيفرة المصدرية. يشغّل جميع الفحوصات السلبية.

terminal
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.

terminal
# 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 + المصادقة المشتقة من المواصفات القديمة.

terminal
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] في المخرجات.

terminal
# 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. مُعطّل افتراضيًا — يتطلب موافقة صريحة.

terminal
fendix scan --url https://api.example.com --enable-active

استخدمه فقط ضد الأنظمة التي تملكها أو لديك تفويض مكتوب باختبارها.

بوابة CI/CD

أوقف خط الأنابيب في حال اكتشاف نتائج بخطورة حرجة أو عالية. رمز الخروج 1 يعني وجود نتائج عند العتبة أو أعلى منها.

terminal
fendix scan \
  --url https://api.staging.example.com \
  --code ./src \
  --fail-on HIGH \
  --format sarif \
  --output results.sarif

وضع فروق خط الأساس

أبلِغ فقط عن النتائج الجديدة مقارنةً بفحص سابق. مثالي لسير عمل طلبات السحب (PR).

terminal
# 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

اكبت النتائج المعروفة أو استثنِ نقاط النهاية من الفحص. ضعه باسم .fendix-ignore في جذر مشروعك أو مرّره عبر --ignore.

.fendix-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 دون إعادة الفحص.

terminal
fendix report --input findings.json --format html --output report.html

الفحص من واجهة SaaS ولوحة التحكم

إلى جانب واجهة الأوامر، تتيح واجهة Fendix SaaS بدء الفحوصات برمجيًا وتجميعها في لوحة تحكم. صادِق باستخدام X-API-Key (خطة Pro فما فوق). راجع التكامل للحصول على وصفات جاهزة لخطوط الـ CI.

terminal
# 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.

terminal
# 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