
أداة CLI تشرح CVEs بلغة إنجليزية بسيطة وتفحص المستودعات لمعرفة التأثير. مدعومة من Claude.
"هل تؤثر هذه الثغرة CVE عليّ حقًا؟" — إجابة في ثوانٍ، وليس ساعات.
سينتينل يأخذ معرف CVE، ويجلب البيانات من NVD وOSV.dev وMITRE، ثم يستخدم Claude لإنتاج إيجاز واضح وقابل للتنفيذ مكون من 5 أقسام عن الثغرة.
cd sentinel/
pip install -e .
# Required: Anthropic API key
sentinel config set api-key sk-ant-...
# Optional: NVD API key (higher rate limits)
sentinel config set nvd-key xxxxxxxx-xxxx-...
# Or use environment variables
export ANTHROPIC_API_KEY=sk-ant-...
export NVD_API_KEY=xxxxxxxx-xxxx-...
# Explain a CVE (5-section report with colored terminal output)
sentinel cve CVE-2024-3094
# Choose output persona (see Personas below)
sentinel cve CVE-2024-3094 --format exec # Executive / CISO summary
sentinel cve CVE-2024-3094 -f engineer # Deep technical advisory
sentinel cve CVE-2024-3094 -f devops # Infrastructure-focused
sentinel cve CVE-2024-3094 -f security # Default 5-section report
# Also works with scan
sentinel scan . --cve CVE-2024-3094 --format exec
# JSON output
sentinel cve CVE-2024-3094 --json
# Markdown output
sentinel cve CVE-2024-3094 --markdown
# Brief one-paragraph summary
sentinel cve CVE-2024-3094 --brief
# Skip cache, fetch fresh data
sentinel cve CVE-2024-3094 --no-cache
# Verbose mode (show timing and source details)
sentinel cve CVE-2024-3094 -v
--format / -f)security (افتراضي) — محلل أمنيالإيجاز الكلاسيكي المكون من 5 أقسام للثغرة:
exec — تنفيذي / CISOقراءة في 10 ثوانٍ للمدراء التنفيذيين المشغولين. إشارة مرور بالألوان، تأثير تجاري، بند إجراء واحد. لا مصطلحات فنية.
🔴 حرج — CVE-2024-3094 (XZ Backdoor)
تم زرع باب خلفي في مكتبة ضغط أساسية في لينكس تُستخدم في معظم الخوادم.
يمكن للمهاجمين اعتراض وتعديل البيانات على أي نظام يشغل xz 5.6.0-5.6.1.
مطلوب تخفيض فوري — يُقدر بـ 15-30 دقيقة لكل خادم، دون توقف متوقع.
المخاطرة: اختراق سلسلة التوريد — شديدة الخطورة، استغلال نشط
التأثير: جميع البنية التحتية للينكس التي تعمل بالإصدارات المتأثرة
الإجراء المطلوب: تخفيض xz إلى 5.4.6. تحقق باستخدام `xz --version`.
engineer — مهندس برمجياتغوص تقني عميق مع إصدارات دقيقة، أوامر ترقية، أنماط grep، وخطوات اختبار:
devops — DevOps / SREمركز على البنية التحتية مع الحاويات، K8s، CI/CD، والمراقبة:
يكتشف سينتينل التبعيات في إعدادات بناء تطبيقات الجوال التي تفوتها الماسحات الضوئية العادية:
# Scan an Android project
sentinel scan ./my-android-app --cve CVE-2024-XXXX
# Scan an iOS project
sentinel scan ./my-ios-app --cve CVE-2024-XXXX
# Scan a Flutter project
sentinel scan ./my-flutter-app
الميزات:
$firebaseBomVersion) من gradle.properties وكتل ext {}libs.versions.toml)Firebase/Analytics)امسح مجموعة Kubernetes الخاصة بك بحثًا عن صور حاويات ضعيفة:
# Scan all namespaces
sentinel scan --k8s
# Scan specific namespace
sentinel scan --k8s --namespace production
# Check specific CVE across cluster
sentinel scan --k8s --cve CVE-2024-3094
# Generate SBOM for all running images
sentinel scan --k8s --sbom
# Scan a specific image (no cluster connection needed)
sentinel scan --k8s --image nginx:1.25
سينتينل يحتاج وصول للقراءة فقط. طبق ملف RBAC الأدنى:
kubectl apply -f config/k8s-rbac.yaml
هذا ينشئ حساب خدمة sentinel-readonly مع صلاحيات get وlist فقط على المجموعات: pods, namespaces, deployments, replicasets, daemonsets, statefulsets. لا صلاحيات كتابة.
حدد ما إذا كانت ثغرة CVE تؤثر فعليًا على كودك عن طريق تتبع ما إذا كانت الدوال القابلة للاستغلال يمكن الوصول إليها من نقاط الدخول:
# Full analysis with Claude interpretation
sentinel scan . --cve CVE-2024-22195 --execution-path
# Local-only (no data sent externally)
sentinel scan . --cve CVE-2024-22195 --execution-path --local-only
الأحكام:
| الوضع | البيانات المرسلة خارجيًا |
|---|---|
--local-only | لا شيء — تحليل AST محلي بحت |
| الافتراضي | فقط بيانات وصفية منظمة: أسماء الدوال، أسماء الاستيرادات، حواف الرسم البياني للاستدعاءات (قائمة عقد/حواف)، وصف CVE. أبدًا الكود المصدري. |
جميع البيانات المرسلة إلى Claude تُسجل في ~/.sentinel/audit.log للمراجعة.
sentinel cache clear # Clear all cached data
الإعدادات مخزنة في ~/.sentinel/config.json. التخزين المؤقت في ~/.sentinel/cache.db.
sentinel config set api-key <key>
sentinel config set nvd-key <key>
sentinel config set model <model-name>
sentinel config get api-key
سينتينل يتضمن خادم FastAPI يقبل الأوامر من Slack وMicrosoft Teams وTelegram وREST API عام.
sentinel server start # Default port 8080
sentinel server start --port 9090 # Custom port
sentinel server start --workers 4 # Multiple workers
sentinel server status # Check if running
# Explain a CVE
curl -X POST http://localhost:8080/api/cve \
-H "Content-Type: application/json" \
-d '{"cve_id": "CVE-2024-3094"}'
# Scan a repo
curl -X POST http://localhost:8080/api/scan \
-H "Content-Type: application/json" \
-d '{"repo_url": "https://github.com/user/repo", "cve_id": "CVE-2024-3094"}'
# Health check
curl http://localhost:8080/health
sentinel setup slack # Interactive setup guide
config/slack-manifest.ymlexport SLACK_SIGNING_SECRET=<signing-secret>
export SLACK_BOT_TOKEN=xoxb-<bot-token>
https://<your-domain>/slack/commandshttps://<your-domain>/slack/events/sentinel cve CVE-2024-3094 أو @Sentinel cve CVE-2024-3094sentinel setup teams # Interactive setup guide
https://<your-domain>/teams/webhookexport TEAMS_WEBHOOK_SECRET=<base64-hmac-secret>
@Sentinel cve CVE-2024-3094sentinel setup telegram # Interactive setup guide
export TELEGRAM_BOT_TOKEN=<bot-token>
curl -X POST "https://api.telegram.org/bot<TOKEN>/setWebhook" -d '{"url":"https://<YOUR_DOMAIN>/telegram/webhook"}'/cve CVE-2024-3094, /scan <repo> --cve CVE-XXXXcd docker/
# Set env vars in .env file or export them
docker compose up -d
# With nginx reverse proxy:
docker compose --profile with-nginx up -d
| القسم | ما يقدمه |
|---|
| 🔍 ما هي | شرح بلغة بسيطة |
| 💥 كيفية الاستغلال | متجه الهجوم، ملخص الإثبات، الصعوبة |
| 🚨 من يجب أن يقلق | البرامج المتأثرة، الإصدارات، الأنظمة البيئية |
| 🛡️ كيفية التصحيح بأمان | خطوات المعالجة، روابط التصحيح |
| ✅ ما يجب اختباره | خطوات التحقق بعد التصحيح |
| القسم | التركيز |
|---|
| 📦 المكتبات والإصدارات المتأثرة | نطاقات الإصدارات الدقيقة، سلاسل التبعيات |
| 🔧 المعالجة على مستوى الكود | أوامر ترقية محددة، تغييرات التكوين |
| 🔍 ما تبحث عنه بـ grep | أنماط للبحث في قاعدة الكود الخاصة بك |
| 🧪 كيفية اختبار الإصلاح | أوامر التحقق، اختبارات الانحدار |
| ⚠️ التغييرات الجذرية | الإهمال، الاختلافات السلوكية |
| القسم | التركيز |
|---|
| 🏗️ البنية التحتية المتأثرة | الصور الأساسية، الحاويات، الخدمات السحابية |
| 🚀 تأثير النشر | استراتيجية التحديث المتداول، تقييم وقت التوقف |
| 🔄 خطة التراجع | كيفية العودة إذا تسبب التصحيح في مشاكل |
| 📊 المراقبة والكشف | السجلات، التنبيهات، كشف الاستغلال |
| 🚨 خطوات الاستجابة للحوادث | خطوة بخطوة في حالة الاستغلال النشط |
| النظام البيئي | الملفات التي يتم تحليلها | ملف القفل (مُفضَّل) |
|---|
| Android (Gradle) | build.gradle, build.gradle.kts, gradle/libs.versions.toml | — |
| iOS (CocoaPods) | Podfile | Podfile.lock |
| iOS (Swift PM) | Package.swift | Package.resolved |
| Flutter (Dart) | pubspec.yaml | pubspec.lock |
| النقطة | الطريقة | الوصف |
|---|
/health | GET | فحص الصحة |
/api/cve | POST | REST API — شرح ثغرة CVE |
/api/scan | POST | REST API — فحص مستودع |
/slack/commands | POST | أوامر Slack المائلة |
/slack/events | POST | واجهة أحداث Slack |
/teams/webhook | POST | ويب هوك Teams الصادر |
/telegram/webhook | POST | ويب هوك بوت Telegram |