
ماسح ضوئي يعتمد على التعبيرات النمطية لاكتشاف بيانات الاعتماد الثابتة في قواعد الأكواد، مصمم للتكامل مع CI/CD مع دعم تعليقات القمع ومعدلات منخفضة من النتائج الإيجابية الخاطئة.
تهدف هذه الأداة إلى مسح قاعدة أكواد كبيرة ومتنوعة بحثًا عن بيانات اعتماد مبرمجة بشكل ثابت (hard-coded credentials) أو بيانات اعتماد موجودة في ملفات التهيئة. تمثل هذه البيانات مشكلة أمنية خطيرة وقد يصعب اكتشافها وإدارتها.
التركيز المحدد لهذه الأداة هو إنشاء أداة يمكن استخدامها مباشرة من قبل فرق التطوير في خط أنابيب CI/CD لإدارة عملية معالجة هذه المشكلة من خلال تنبيه الفريق عند وجود بيانات اعتماد في الكود، بحيث يمكن للفريق إصلاح المشكلات فور ظهورها.
من الممكن استخدام الأداة كماسح لحظي لهذه المشكلة، ولكن - نظرًا لأن بيانات الاعتماد من المرجح أن تتسرب مرة أخرى إلى قاعدة الأكواد بمرور الوقت - نوصي بشدة بدمج الأداة في عملية CI/CD أو آلية البناء الآلي أو أي عملية مسح آلي أخرى يتم إجراؤها بانتظام من قبل الفريق.
تمت كتابة الأداة بالأهداف التالية:
تحاول الأداة تحقيق توافق مع بعض أدوات SAST الشائعة الأخرى.
النص الموجود في بداية الملف أو بالقرب منه '# noqa file' سيكتم الإبلاغ عن أي مشكلات أخرى في ذلك الملف، وكذلك النص 'flake8: noqa'.
النص الموجود في سطر فردي '# noqa' سيكتم الإبلاغ عن المشكلات في ذلك السطر. العديد من تعليقات الكتم الشائعة الأخرى ستعمل أيضًا؛ القائمة الحالية هي:
# noinspection
# noqa
#noqa
@SuppressWarnings
DevSkim
NOLINT
NOSONAR
checkmarx
coverity
fortify
noinspection
nosec
safesql
veracode
نوصي أيضًا باستخدام التعليق '# noqa cred' لتوضيح لأعضاء الفريق أن وجود بيانات الاعتماد هو بالتحديد سبب النتيجة الإيجابية الخاطئة. العديد من الأدوات المشار إليها هنا (مثل devskim) تستخدم رموز خطأ محددة تتعلق بالأدوات المناسبة للغة أو المنصة المستخدمة، والتي تخدم نفس الغرض. من الممكن أن يحتوي نفس السطر من الكود على أخطاء متعددة من أنواع مختلفة.
نحذر من أن كتم تنبيه من أداة SAST يكون نتيجة إيجابية حقيقية يعتبر ممارسة سيئة للغاية. من الممارسات الجيدة مراجعة تعليقات كتم SAST/lint في قاعدة الأكواد بشكل دوري للتأكد من عدم كتم أي 'نتائج إيجابية حقيقية'.
تتسبب علامة سطر الأوامر '-nosuppress' في تجاهل الأداة لجميع تعليقات الكتم.