الأدوات

‎/lagune-prove: إثبات مفهوم للدفاع فقط

حوّل كل ملاحظة مكتشفة إلى إثبات مفهوم (PoC) قابل للتشغيل، للدفاع فقط، مع نشرة أمنية من أجل الإفصاح المسؤول.

🧪 حوّل كل ملاحظة مكتشفة إلى دليل قابل للتشغيل، للدفاع فقط، من أجل الإفصاح المسؤول.

لكل ملاحظة في خريطة detect، يكتب نشرة أمنية مكتفية بذاتها واختبارًا يتحقق من المسار الآمن، فيفشل الاختبار ما دامت المشكلة قائمة وينجح بعد إصلاح الكود.

تلميح

تبقى اختبارات Lagune معزولة تحت .lagune/، بعيدًا عن مجموعة اختباراتك.

طريقة الاستخدام​

/lagune-prove

آلية العمل​

يقرأ الكود المصدري الذي تشير إليه كل ملاحظة، ويكتب مجلدًا لكل ملاحظة مُثبتة تحت .lagune/proofs/، يحتوي على ملفين بالضبط:

الملفما هو
report.test.mjs (أو .cjs)الاختبار. يعمل على Poku إن كان مشروعك يستخدمه بالفعل، وإلا فعلى مشغّل الاختبارات الأصلي في Node.js، فلا يحتاج إلى تثبيت أي شيء.
report.mdنشرة أمنية مكتفية بذاتها: الخطورة، والأثر، وطريقة إعادة إنتاج المشكلة، وأمر التشغيل، ويمكن قراءتها وحدها.

الإثباتات مكتوبة دائمًا بلغة JavaScript، فتبقى قابلة للنقل أيًا كانت لغة مشروعك. ويربط فهرس README.md كل الإثباتات ويوفّر أمرًا واحدًا لتشغيلها كلها.

تلميح
  • إنه اختياري ومستقل: ليس من المراحل الخمس، ولا جزءًا من سلسلة التتبع.
  • لا يكتب إلا داخل .lagune/proofs/ ولا يمسّ أبدًا مُخرَجات المراحل أو الكود، الذي يقرؤه فقط.
  • الملاحظة التي لا يعيد اختبارها إنتاج المشكلة لا تحصل على إثبات، ويخبرك بأن تشغّل /lagune-detect على ذلك الموضع لمواءمته مع الواقع الحالي.
  • تشغيله مجددًا يوائم الإثباتات مع الواقع الحالي: يُحذف مجلد الملاحظة التي زالت أو لم تعد تُعاد إنتاجها.
important

لا يعمل إلا عندما تستدعيه: لا يبدؤه الوكيل من تلقاء نفسه أبدًا.

يبني على detect

يقرأ prove خريطة detect الناتجة عن /lagune-detect، لذلك شغّل detect أولًا.

للدفاع فقط، وبتصريح​

قبل توليد أي شيء، يتأكد من أنك مصرّح لك باختبار الهدف، ويرفض أي طلب لأداة استغلال عاملة أو payload هجومي أو تهرّب من الاكتشاف. يُظهر الإثبات السلوك الآمن، ولا يُخرج أبدًا مدخلًا هجوميًا.

من الإثبات إلى الإفصاح​

ملفا كل ملاحظة مُثبتة مكانهما معًا في GitHub Gist خاص للإبلاغ عن الثغرة. فهما دليل على مشكلة قائمة لم يُفصح عنها، لذلك يُبقيهما ملف .gitignore داخل .lagune/proofs/ خارج كل commit: شاركهما عبر ذلك الـ Gist فقط حتى يحلّ المشرفون المشكلة.

ويبقى إغلاق الملاحظة في سلسلة Lagune مهمة /lagune-harden و /lagune-verify: ينتج prove الأدلة، ولا يُغلق شيئًا.

الأسئلة الشائعة

لا. يكتب ‎/lagune-prove أدلة للدفاع فقط: اختبارًا يتحقق من المسار الآمن، فيفشل ما دامت المشكلة قائمة وينجح بعد إصلاح الكود، إضافة إلى نشرة أمنية من أجل الإفصاح المسؤول.

ملفين لكل ملاحظة: اختبارًا (report.test.mjs أو ‎.cjs) ونشرة أمنية (report.md).

يكتب prove نشرة أمنية مكتفية بذاتها يمكنك مشاركتها عبر قناة خاصة مثل GitHub Gist خاص، وفق مبادئ الإفصاح المسؤول.