
Claude Skill تقوم بتدقيق مشاريعك بحثًا عن أخطاء إعدادات RLS، والمفاتيح المكشوفة، وتجاوزات المصادقة، وثغرات التخزين. 27 نمطًا مضادًا مصدرها CVE-2025-48757 و10 دراسات أمنية. آمنة للاستخدام في الإنتاج.
مهارة Claude تُدقّق قواعد البيانات الخلفية لديك بحثًا عن الثغرات الأمنية.
ضعها في Claude Code أو Cursor أو أي بيئة تعمل بتقنية Claude. قل "دقّق قاعدة بياناتي" واحصل على تقرير أمني شامل مع كود إصلاح دقيق — في دقائق، لا أيام.
تم اختراق أكثر من 170 تطبيق Lovable. كُشف 20.1 مليون صف عبر شركات YC الناشئة. تُركت نحو 87,000 نسخة MongoDB عرضة لثغرة MongoBleed (CVE-2025-14847, CISA KEV). تسرّبت 1.8 مليون كلمة مرور Firebase في حادثة واحدة عام 2025. يُدخل 45% من الكود المُولَّد بالذكاء الاصطناعي ثغرات OWASP Top 10. يختبر Database Sentinel ما إذا كان تكوينك الأمني يعمل فعلًا — وليس فقط ما إذا كان موجودًا.
ينفّذ Database Sentinel تدقيقًا أمنيًا من 7 خطوات على أيٍّ من الخلفيات التي يستخدمها مشروعك:
tx=rollback, مجموعات كناري, كاشف MongoBleed اختياري)يكشف الاستدلال عبر الخلفيات مشكلات لا تلتقطها الماسحات أحادية الخلفية (على سبيل المثال، معرّف Firebase Auth UID تثق به واجهة Postgres API دون التحقق من JWT).
كان Database Sentinel يُعرف سابقًا باسم Supabase Sentinel (أحادي الخلفية). حدث تغيير الاسم خلال المرحلة 1 من التوسع متعدد الخلفيات. يحافظ غلاف التوافق الخلفي في compat/supabase-sentinel/ على اسم المهارة القديم حتى الإصدار الفرعي التالي على الأقل — لا يرى المستخدمون الحاليون أي تراجع.
انسخ المهارة إلى دليل مهارات مشروعك، أو إلى دليل مركزي:
git clone https://github.com/Farenhytee/database-sentinel.git ~/claude-skills/database-sentinel
ثم اطلب من Claude:
Audit my database
سيكتشف Database Sentinel الخلفية (الخلفيات) التي يستخدمها مشروعك، وينفّذ عمليات التدقيق ذات الصلة، وينتج تقريرًا موحدًا. إذا وُجدت خلفيات متعددة (Firebase Auth + بيانات Postgres، إلخ)، سيتضمن التقرير قسم التفاعلات عبر الخلفيات بمجرد اكتمال المرحلة 6.
إذا أردت تدقيق خلفية معينة فقط، اطلب صراحة:
Audit my Supabase project
Audit my MongoDB instance
يضيّق المُوجّه (dispatcher) نطاق التدقيق.
انسخ محتويات SKILL.md بالإضافة إلى ملف backends/<name>/workflow.md ذي الصلة إلى موجّه النظام لديك. مرّ بالخطوات السبع مستخدمًا بيانات اعتمادك.
يُشحن الفحص الشبكي لـ MongoBleed (backends/mongodb/mongobleed-probe.md) بكاشف حزمة واحدة يؤكد قابلية الاستغلال وقت التشغيل — تم التحقق منه ضد mongo:7.0.20 (قابل للاستغلال) و mongo:7.0.28 (مصحَّح). إنه للقراءة فقط، ومقيد بموافقتين اختياريتين، ولا يستخرج المحتوى أبدًا.
╔════════════════════════════════════════════════════════╗
║ SENTINEL SECURITY AUDIT ║
╠════════════════════════════════════════════════════════╣
║ Backends: supabase, mongodb ║
║ Scanned: 2026-04-30 14:30 UTC ║
║ Score: 0/100 🔴 ║
║ Summary: 2 backends, 8 findings (3C / 4H / 1M) ║
╚════════════════════════════════════════════════════════╝
─────────────────────────────────────────────────────────
Supabase 35/100 🔴
─────────────────────────────────────────────────────────
🔴 CRITICAL — public.users: RLS Disabled [SB-001]
Risk: Anyone on the internet can read your entire users table.
Attack: Open browser DevTools → copy anon key → curl the API → dump
all emails, names, and metadata.
Proof: curl returns [{"id":"...","email":"[email protected]",...}]
Source: CVE-2025-48757 / Splinter 0013_rls_disabled_in_public
Fix:
ALTER TABLE public.users ENABLE ROW LEVEL SECURITY;
CREATE POLICY "users_select_own"
ON public.users FOR SELECT TO authenticated
USING ((SELECT auth.uid()) = id);
─────────────────────────────────────────────────────────
MongoDB 0/100 🔴
─────────────────────────────────────────────────────────
🔴 CRITICAL — mongod 7.0.20: MongoBleed (CVE-2025-14847) [MG-SH-001]
Risk: A single TCP packet leaks fragments of MongoDB's memory —
including credentials, queries, and document data — without
requiring any login.
Attack: Public PoC available since Dec 26 2025; CISA KEV. Repeated
requests progressively dump more of the working set.
Proof: buildInfo.version = "7.0.20" (vulnerable; patched in 7.0.28)
zlib compression enabled (default): true
Active probe returned: vulnerable (opCode=2012, 163 bytes)
Source: CVE-2025-14847 / CISA KEV / MongoDB Server Security Update Dec 2025
Fix:
Upgrade to 7.0.28+. Same-day mitigation if upgrade is blocked:
net.compression.compressors = "snappy,zstd" in mongod.conf
✅ PASSING — Supabase: orders, payments, invoices, subscriptions
database-sentinel/
├── SKILL.md # Dispatcher — detects backends, routes audits (~2K tokens)
├── DECISIONS.md # Locked architecture decisions (D1-D4 + supersessions)
├── core/
│ ├── workflow.md # Universal 7-step audit workflow
│ ├── detection.md # Backend detection + JSON manifest
│ ├── scoring.md # Per-backend weights, min-aggregation
│ ├── reporting.md # Unified report format (text + JSON)
│ └── credentials.md # Public-vs-privileged key handling
├── backends/
│ ├── supabase/ # Phase 1 — implemented
│ │ ├── workflow.md # 7-step audit specialized for Supabase
│ │ ├── audit-queries.md # 20 SQL queries for schema introspection
│ │ ├── anti-patterns.md # 27 patterns (SB-001..SB-027)
│ │ └── fix-templates.md # SQL fix templates (7 RLS patterns + more)
│ └── mongodb/ # Phase 2 — implemented
│ ├── workflow.md # 7-step audit specialized for MongoDB
│ ├── introspection.md # mongosh + Atlas Admin API + IaC scan
│ ├── anti-patterns.md # 20 patterns (MG-SH-001..014, MG-AT-001..006)
│ ├── mongobleed-probe.md # Safe CVE-2025-14847 single-packet detector
│ ├── fix-templates.md # Version matrix + mongod.conf + validators + Atlas TF
│ └── test-recipe.md # Document-only end-to-end test recipe
├── compat/
│ └── supabase-sentinel/ # Backwards-compat shim (forces backend=supabase)
│ └── SKILL.md
├── references/
│ ├── vibe-coding-context.md # CVE-2025-48757, breach studies — cross-backend
│ └── cve-feed.md # Cross-backend CVE list (MongoBleed seeded)
├── assets/
│ └── ci/
│ ├── github-action-supabase.yml # 1 job — security audit
│ └── github-action-mongodb.yml # 3 jobs — static IaC, live audit, MongoBleed probe
├── README.md # this file
├── LICENSE # MIT
├── DECISIONS.md
└── sentinel-implementation-plan.md # Multi-backend expansion roadmap
كيف يعمل الكشف التدريجي: يحمّل Claude SKILL.md فقط (~2K توكن) بالإضافة إلى core/* في البداية. عندما يحدد الكشف وجود خلفية، تُحمَّل ملفات backends/<name>/workflow.md المطابقة والملفات المرجعية عند الطلب. لا يتحمّل تدقيق Supabase فقط تكلفة محتوى MongoDB؛ وستتبع توسعات Firebase / Postgres / MySQL المستقبلية النمط نفسه.
تأتي كل خلفية مطبَّقة مع قالب سير عمل CI:
| الخلفية | سير العمل | أوضاع الوظائف |
|---|---|---|
| Supabase | assets/ci/github-action-supabase.yml | وظيفة واحدة — تدقيق أمني (استكشاف + فحوصات ديناميكية) |
تُطلق سير العمل عند تغيير الملفات ذات الصلة (الترحيلات، ملفات القواعد، IaC، ملفات التبعيات)، وعبر cron أسبوعي (الاثنين 06:00 UTC)، والإطلاق اليدوي. تنشر تعليقات على طلبات السحب (PR)، وترفع ملفات التقرير (artifacts)، وتُفشل البناء عند وجود نتائج حرجة.
فقط اطلب: "أعدّ مراقبة أمنية مستمرة لهذا المشروع."
قاعدة بيانات الأنماط المضادة في Database Sentinel مصدرها:
$where في Mongooseراجع references/vibe-coding-context.md و references/cve-feed.md لمجموعة الاستشهادات الكاملة.
صُمم Database Sentinel ليكون آمنًا للاستخدام في الإنتاج:
pg_tables, pg_policies, getCmdLineOpts, إلخ). لا DDL أو DML افتراضيًا.Prefer: tx=rollback (أصلي في PostgREST؛ لا تُعدَّل أي بيانات)BEGIN…ROLLBACK (DDL تعاملي)abortTransaction()/_sentinel_probe/{random}_sentinel_probe + DROP DATABASE (اختياري، إتلافي — تحذير صريح)المساهمات مرحب بها. المساهمات الأكثر قيمة:
backends/<name>/anti-patterns.md المناسب مع الخطورة واستعلام الكشف وكود الإصلاح والأدلة الواقعية (CVE / اختراق / Splinter / CIS).backends/<name>/fix-templates.md.backends/mongodb/mongobleed-probe.md).backends/mongodb/ و backends/supabase/. تحتوي خطة التنفيذ (sentinel-implementation-plan.md) على عقد العمل لكل منها.git checkout -b add-new-pattern)mysql_native_password للإصدار 8.4+)BACKENDS.md، وجدول زمني لإهمال غلاف supabase-sentinelnpx database-sentinel audit للبيئات غير القائمة على Claudeما زال اسم مهارة supabase-sentinel يعمل عبر غلاف التوافق في compat/supabase-sentinel/. يقيّد التدقيق على Supabase فقط وينتج مخرجات لا يمكن تمييزها عن v1. تاريخ الإيقاف: غير محدد (TBD)؛ حتى الإصدار الفرعي التالي على الأقل.
MIT — استخدمه كيفما تشاء، تجاريًا أو غير ذلك.
صُنع لعصر vibe-coding.
لأن "إنه يعمل" و"إنه آمن" شيئان مختلفان تمامًا.
| المرحلة | الخلفية | الحالة |
|---|
| 1 | Supabase | ✅ صدرت |
| 2 | MongoDB (مستضاف ذاتيًا + Atlas) | ✅ صدرت |
| 3 | Firebase (Firestore / RTDB / Storage / Functions / Remote Config) | 🚧 مخطط لها |
| 4 | PostgreSQL (مستضاف ذاتيًا، بما في ذلك pgBouncer) | 🚧 مخطط لها |
| 5 | MySQL (مستضاف ذاتيًا) | 🚧 مخطط لها |
| 6 | تحليل التفاعلات عبر الخلفيات | 🚧 مخطط لها |
| 7 | التوزيع والتحسين النهائي | 🚧 مخطط لها |
| الخطورة | النمط | الوصف |
|---|
| 🔴 حرجة | SB-001 RLS_DISABLED | جداول بدون أمان مستوى الصف (RLS) — مكشوفة بالكامل للإنترنت |
| 🔴 حرجة | SB-002 SERVICE_ROLE_EXPOSED | مفتاح service_role في كود الواجهة الأمامية — يتجاوز كل الأمان |
| 🔴 حرجة | SB-003 POLICIES_BUT_NO_RLS | سياسات مكتوبة لكن RLS غير مفعّل — أمان زائف |
| 🔴 حرجة | SB-005 WRITE_USING_TRUE | INSERT/UPDATE/DELETE مع USING(true) — يمكن لأي شخص تعديل البيانات |
| 🟠 عالية | SB-006 USING_TRUE_SELECT | جميع الصفوف قابلة للقراءة من المستخدمين المجهولين على الجداول الحساسة |
| 🟠 عالية | SB-007 VIEW_NO_SECURITY_INVOKER | العروض تتجاوز RLS وتعمل بصلاحيات المستخدم الخارق |
| 🟠 عالية | SB-008 SECURITY_DEFINER_EXPOSED | دوال في مخطط public تتجاوز RLS وقابلة للاستدعاء عبر API |
| 🟠 عالية | SB-009 USER_METADATA_IN_POLICY | سياسات تشير إلى بيانات وصفية يمكن للمستخدم تعديلها — تصعيد صلاحيات |
| 🟠 عالية | SB-010 UPDATE_NO_WITHCHECK | سياسات UPDATE بدون WITH CHECK — خطر الإسناد الجماعي |
| 🟠 عالية | SB-011 GHOST_AUTH | تسجيلات بالبريد غير المؤكد تمنح جلسات مصادقة |
| 🟠 عالية | SB-012 STORAGE_NO_RLS | Bucket تخزين بدون سياسات تحكم بالوصول |
| 🟠 عالية | SB-013 JWT_SECRET_EXPOSED | تسريب سر توقيع JWT — يمكن تزوير توكن أي مستخدم |
| 🟡 متوسطة | + 15 نمطًا إضافيًا | راجع backends/supabase/anti-patterns.md |
| الخطورة | النمط | الوصف |
|---|
| 🔴 حرجة | MG-SH-001 MongoBleed (CVE-2025-14847, CISA KEV) | كشف ذاكرة الكومة (Heap) قبل المصادقة عبر حزمة مضغوطة مُصمَّمة بعناية. نحو 87 ألف نسخة مكشوفة وقت الإفصاح. |
| 🔴 حرجة | MG-SH-002 المصادقة معطلة | mongod يعمل بدون مصادقة — سطح هجوم برمجية الفدية Meow |
| 🔴 حرجة | MG-SH-003 mongod موجّه للإنترنت | --bind_ip_all + منفذ 27017 قابل للوصول — يقترن مع MG-SH-002 لاختراق كامل |
| 🔴 حرجة | MG-AT-001 قائمة السماح في Atlas 0.0.0.0/0 | مجموعة Atlas قابلة للوصول من أي مكان على الإنترنت |
| 🟠 عالية | MG-SH-004 تجاوز مصادقة localhost + تنفيذ في الحاوية | enableLocalhostAuthBypass true + وصول docker exec |
| 🟠 عالية | MG-SH-005 JavaScript من جانب الخادم مفعّلة | $where / $function / mapReduce قابلة للوصول — سطح هجوم NoSQL-RCE |
| 🟠 عالية | MG-SH-006 TLS غير مطلوب | حركة مرور نصية واضحة عبر الشبكة |
| 🟠 عالية | MG-SH-007 دور متميز على مستخدم التطبيق | يتصل التطبيق كـ root / dbAdminAnyDatabase إلخ |
| 🟠 عالية | MG-SH-008 مستند دور قابل للتعديل ذاتيًا | findByIdAndUpdate(id, req.body) + بدون مُتحقِّق + حقل دور |
| 🟠 عالية | MG-AT-002 دالة Atlas كعبور لقاعدة البيانات | حقن NoSQL عبر HTTPS — انتشر بعد إهمال Data API |
| 🟠 عالية | MG-AT-003 Data API من Atlas ما زالت في الكود | مُهمَلة في 30 سبتمبر 2025؛ معطَّلة ومن المرجح أن الاعتماد انتقل إلى Functions أقل تدقيقًا |
| 🟡 متوسطة | MG-SH-009 Mongoose < 8.9.5 | CVE-2024-53900 / CVE-2025-23061 — حقن populate-match $where |
| 🟡 متوسطة | + 8 أنماط إضافية | راجع backends/mongodb/anti-patterns.md |
| MongoDB | assets/ci/github-action-mongodb.yml | ثلاث وظائف — فحص IaC ثابت (يعمل دائمًا، بدون أسرار)، تدقيق مباشر (مقيد بـ vars.AUDIT_LIVE == 'true')، فحص MongoBleed (مقيد بـ vars.MONGOBLEED_PROBE == 'true' + تأكيد الملكية) |
| الخلفية | الأداة المدمجة | ما تفوته | ما يغطيه Database Sentinel |
|---|
| Supabase | Splinter (16 لنتة) | ما إذا كانت السياسات تمنع الوصول غير المصرح به فعليًا | اختبار مباشر tx=rollback لكل مسار CRUD ضد كل جدول |
| Supabase | Splinter | Ghost-auth (تجاوز تأكيد البريد الإلكتروني) | فحص تسجيل بنطاق .invalid |
| Supabase | Splinter | الإسناد الجماعي عبر UPDATE بدون WITH CHECK + أعمدة حساسة | إسناد مرجعي لأسماء الأعمدة مع شكل السياسة |
| Supabase | Splinter | فحص قاعدة الكود | إيجاد مفاتيح service_role في كود الواجهة الأمامية وJWTs مكتوبة صراحةً وملفات .env ملتزمة في git |
| MongoDB | Atlas Advisor | تأكيد MongoBleed وقت التشغيل | كاشف على مستوى البروتوكول بحزمة واحدة (تم التحقق منه ضد 7.0.20 + 7.0.28) |
| MongoDB | Atlas Advisor | مستندات الأدوار القابلة للتعديل ذاتيًا | تحقق متقاطع من نمط المصدر + مُتحقِّق المجموعة |
| MongoDB | Trivy / Aikido | إعدادات Atlas الخاصة (قوائم السماح، IAM، CMK) | تدقيق مباشر عبر Atlas Admin API |
| MongoDB | mongoaudit (مُهجَر منذ 2018) | نشط في 2025 وما بعده | كتالوج أنماط مُحدَّث مع CVEs للأعوام 2025–2026 |
.invalid