
ماسح ضوئي يعتمد على CodeQL يقوم بجرد استدعاءات الدوال التشفيرية عبر المستودعات ومؤسسات GitHub، منتجًا قائمة مكونات تشفيرية (CBOM) بصيغة SARIF.
اكتشف التشفير المخفي في شفرتك قبل أن تكتشفه الحواسيب الكمومية نيابةً عنك.
يستخدم cryptoptic كلاً من CodeQL وGitHub Actions لفحص مستودع واحد أو مؤسسة GitHub بأكملها، وإنتاج جرد لكل دالة تشفيرية قيد الاستخدام، والمكتبة التي تنتمي إليها، ومكان استدعائها.
يعني الوصول المتوقع للحوسبة الكمومية ذات الصلة بالتشفير أن العديد من الخوارزميات المستخدمة على نطاق واسع اليوم لن تظل قادرة على حماية البيانات. إن مبدأ "اجمع الآن، وفكّ التشفير لاحقاً" يجعل هذا خطراً حاضراً، لا خطراً مستقبلياً.
قبل أن تتمكن أي مؤسسة من الانتقال إلى خوارزميات ما بعد الكم، تحتاج إلى فهم أين يُستخدم التشفير في شفرتها. يساعد cryptoptic في إنشاء قائمة مكونات التشفير (CBOM)، بحيث يمكن استبدال الخوارزميات الضعيفة ببدائل آمنة كمومياً أو إدارتها بشفافية.
تم بناء cryptoptic ويُستخدم داخلياً في Nationwide Building Society. وهو يُنشر هنا للمجتمع الأوسع.
استنسخ هذا المستودع وافتحه في محرر من اختيارك.
حرّر .github/workflows/org-codeql-sarif-run.yml واضبط قيم سير العمل المطلوبة.
| Setting | Description |
|---|---|
ORG | المؤسسة المراد فحصها. بالنسبة لمستودع شخصي، استخدم اسم المستخدم الخاص بك على GitHub. |
REPO | المستودع المراد فحصه. |
أرسل التغييرات وادفعها (commit and push).
انتقل إلى تبويب Actions في GitHub واختر CodeQL org run (crypto inventory) من الشريط الجانبي الأيسر.
انقر على Run workflow، واختر الفرع الذي تريد التشغيل عليه، ثم انقر على زر Run workflow الأخضر.
تُنشر الملفات الناتجة كـ artifacts في تشغيل سير العمل:
للعمل على cryptoptic نفسه، ستحتاج إلى:
المساهمات مرحّب بها، بما في ذلك الشفرة والاستعلامات والتوثيق والاختبارات وتقارير الأخطاء. يُرجى قراءة مدونة قواعد السلوك قبل المشاركة؛ فهي تنطبق على كل مساحة في المشروع.
راجع GOVERNANCE.md لمعرفة كيفية اتخاذ القرارات، وMAINTAINERS.md لمعرفة بمن تتواصل.
يُرجى عدم الإبلاغ عن الثغرات الأمنية عبر قضايا GitHub العامة. راجع SECURITY.md لمعرفة كيفية الإبلاغ بشكل خاص وما يمكن توقعه بعد ذلك.
هذا المشروع مرخّص بموجب Apache License, Version 2.0. يجب تضمين نسخة من الترخيص في المستودع في ملف باسم LICENCE أو LICENSE. ينبغي للمستخدمين مراجعة شروط الترخيص قبل استخدام المشروع أو تعديله أو توزيعه.
عند إعادة توزيع المشروع، يتطلب Apache License 2.0 الحفاظ على إشعارات حقوق النشر والبراءات والعلامات التجارية والإسناد المعمول بها، وتضمين نسخة من الترخيص، وإشعارات الملفات المعدّلة حيث ينطبق ذلك، والتعامل المناسب مع أي ملف NOTICE مضمّن مع المشروع.
إذا تضمّن المستودع ملف NOTICE، فيجب على المستخدمين وإعادة الموزّعين الحفاظ على إشعارات الإسناد الواردة في ذلك الملف وفقاً لـ Apache License 2.0. ينبغي إبقاء ملف NOTICE دقيقاً وأن يعكس الإشعارات المنطبقة على محتويات التوزيع.
لا يمنح Apache License 2.0 إذناً باستخدام أسماء Nationwide أو شعاراتها أو علاماتها التجارية أو هويتها. يجب أن يتوافق أي استخدام لهوية Nationwide أو الهوية الخاصة بالمشروع مع سياسة العلامات التجارية المنفصلة للمشروع.
كما هو موضح في Apache License 2.0، يُقدَّم المشروع على أساس "كما هو"، دون ضمانات من أي نوع. يتحمل المستخدمون مسؤولية تحديد ما إذا كان المشروع مناسباً لاستخدامهم والتحقق من صحة أي مخرجات قبل الاعتماد عليها.
| Language | Status | TARGET_LANG value |
|---|
| Python | Supported | python |
| JavaScript | Supported | javascript |
| .NET | Supported | csharp |
| Java | Planned |
TARGET_LANG | اللغة المراد فحصها، راجع اللغات المدعومة للقيم الصالحة. |