تكوين فحص التعليمات البرمجية بدون عامل (معاينة)

يوفر فحص التعليمات البرمجية بدون عامل في Microsoft Defender for Cloud تغطية أمان سريعة وقابلة للتطوير لجميع المستودعات في Azure DevOps وGitHub. يقوم تلقائيا بمسح الكود، والتبعيات مفتوحة المصدر، والبنية التحتية ككود (IaC) لتحديد الثغرات والإعدادات الخاطئة. لا تحتاج إلى تغيير خطوط البناء أو النشر. يبسط مسح الشيفرة بدون وكيل الإعداد والصيانة بموصل Azure DevOps أو GitHub واحد ويوفر تغطية واسعة، ورؤى مستمرة، ونتائج أمنية قابلة للتنفيذ. يتيح ذلك لفرق الأمن والتطوير التركيز على إصلاح المخاطر دون مقاطعة سير العمل في التطوير.

يمكنك تخصيص الماسحات الضوئية التي سيتم تشغيلها وتحديد المؤسسات أو المشاريع أو المستودعات التي يجب تضمينها أو استبعادها من الفحص.

المتطلبات الأساسية

قبل تفعيل مسح الشيفرة بدون وكيل، تأكد من استيفاء المتطلبات التالية:

الأدوار والأذونات:

  • لإعداد الموصل وتكوينه:

    • مسؤول مجموعة المشاريع: مطلوب في Azure DevOps لتنفيذ الإعداد الأولي.
    • المساهم في الاشتراك: مطلوب في اشتراك Azure لإنشاء الموصل وتكوينه.
  • لعرض نتائج الأمان:

    • مسؤول الأمان: يمكنه إدارة إعدادات الأمان والنهج والتنبيهات ولكن لا يمكنه تعديل الموصل.
    • قارئ الأمان: يمكنه عرض التوصيات والتنبيهات والنهج ولكن لا يمكنه إجراء أي تغييرات.

المزايا الرئيسية

يوفر مسح الشيفرة بدون وكيل في Microsoft Defender for Cloud الفوائد التالية:

  • إدارة المخاطر الاستباقية: تحديد المخاطر في وقت مبكر من عملية التطوير. التعرف المبكر على المخاطر يمكن ممارسات الترميز الآمنة ويقلل من الثغرات قبل وصولها إلى مرحلة الإنتاج. 
  • الإعداد دون عناء: الإعداد بسرعة بأقل قدر من التكوين وبدون تغييرات في البنية الأساسية لبرنامج ربط العمليات التجارية. 
  • الإدارة المركزية على نطاق المؤسسة: مسح التعليمات البرمجية تلقائيا عبر مستودعات متعددة باستخدام موصل واحد. توفر الإدارة المركزية تغطية واسعة للبيئات الكبيرة. 
  • رؤى سريعة لمعالجة سريعة: احصل على رؤى قابلة للتنفيذ حول الثغرات الفورية بعد التوظيف، مما يسمح بإصلاحات سريعة ويقلل من وقت التعرض. 
  • سهلة المطورين وسلسة: تعمل بشكل مستقل عن البنية الأساسية لبرنامج ربط العمليات التجارية للتكامل المستمر والنشر المستمر (CI/CD)، دون الحاجة إلى تغييرات أو مشاركة المطور المباشرة. العمل بشكل مستقل عن خطوط أنابيب CI/CD يسمح بمراقبة أمنية مستمرة دون التأثير على إنتاجية المطور أو سير العمل.
  • التغطية والتحكم المرنين: اختر الماسحات الضوئية التي يتم تشغيلها وما يتم مسحه ضوئيا. يمكنك تغطية كل شيء بشكل افتراضي أو تخصيص الإعدادات لتضمين أو استبعاد مؤسسات أو مشاريع أو مستودعات معينة. تتيح لك هذه الخيارات المخصصة مطابقة تغطية الأمان مع ملف المخاطر واحتياجاتك التشغيلية، دون تعقيد إضافي.
  • إنشاء فاتورة المواد البرمجية (SBOM): إنشاء SBOM تلقائيا في كل مسح يمنح الفرق جردا دقيقا وقابلا للاستعلام من التبعيات والإصدارات عبر مستودعاتهم، دون تغييرات إضافية في سير العمل. يتيح ذلك تحليل التأثير السريع، والاستجابة الأسرع للثغرات الجديدة، واتخاذ قرارات واثقة عند تقييم التعرض لحزم أو إصدارات محددة.

قدرات اكتشاف المخاطر

يحسن مسح الشيفرة بدون وكيل الأمان من خلال تقديم توصيات مستهدفة وقابلة للتنفيذ عبر كود التطبيق، وقوالب البنية التحتية كرمز (IaC)، والتبعيات من طرف ثالث. وهذا بالإضافة إلى توصيات إدارة وضعية أمان السحابة المقدمة من خلال الموصل. تتضمن قدرات الكشف الرئيسية ما يلي:

  • نقاط الضعف في التعليمات البرمجية: ابحث عن أخطاء الترميز الشائعة وممارسات الترميز غير الآمنة والثغرات الأمنية المعروفة في لغات برمجة متعددة.
  • التكوينات الخاطئة للبنية الأساسية كتعليمية: الكشف عن التكوينات الخاطئة للأمان في قوالب IaC التي قد تؤدي إلى عمليات نشر غير آمنة.
  • الثغرات الأمنية في التبعية: تحديد الثغرات الأمنية المعروفة في الحزم مفتوحة المصدر وحزم نظام التشغيل المكتشفة في المستودعات.
  • فاتورة المواد البرمجية (SBOM): تولد تلقائيا جردا شاملا وقابلا للاستعلام من التبعيات وإصداراتها لكل مستودع.

يؤدي إنشاء الموصل إلى تحسين الأمان من خلال توفير توصيات إدارة وضع أمان السحابة الأساسية للمستودعات وخطوط الأنابيب واتصالات الخدمة.

أدوات المسح المدعومة

يستخدم مسح الشيفرة بدون وكلاء أدوات مفتوحة المصدر للعثور على الثغرات والإعدادات الخاطئة في قوالب الكود والبنية التحتية ككود (IaC):

Tool IaC/اللغات المدعومة الترخيص
محلل القالب قوالب ARM IaC، قوالب Bicep IaC رخصة محلل القوالب في MIT
Checkov قوالب Terraform IaC، ملفات خطط Terraform، قوالب AWS CloudFormation، ملفات بيان Kubernetes، ملفات مخططات Helm، ملفات Dockerfiles، قوالب Azure Resource Manager (ARM)، قوالب Azure Bicep IaC، قوالب AWS SAM (نموذج التطبيق بدون خادم)، ملفات Kustomize، قوالب إطار عمل بدون خادم، ملفات مواصفات OpenAPI ترخيص Checkov Apache 2.0
قطاع الطرق Python رخصة Bandit Apache 2.0
ESLint JavaScript، TypeScript، JSX، TSX رخصة ESLint MIT
تافه فحص الثغرات الأمنية لحزمة التبعية ونظام التشغيل من بيانات المستودع وملفات التأمين (وضع نظام الملفات) رخصة Trivy Apache 2.0
سيفت Alpine (apk)، حزم Bitnami، C (conan)، C++ (conan)، Dart (pubs)، Debian (dpkg)، Dotnet (deps.json)، Objective-C (cocoapods)، Elixir (مزيج)، Erlang (rebar3)، Go (go.mod، Go binaries)، GitHub (سير العمل، الإجراءات)، Haskell (cabal، stack)، Java (jar، ear، war، par، sar، nar، rar، native-image)، JavaScript (npm، yarn)، إضافات Jenkins (jpi، hpi)، أرشيفات نواة لينكس (vmlinuz)، وحدات نواة لينكس (ko)، Nix (المخرجات في /nix/store)، PHP (مؤلف، PECL، Pear)، Python (عجلة، بيضة، شعر، requirements.txt، UV)، ريد هات (rpm)، روبي (جواهر)، Rust (cargo.lock، ثنائي قابل للتدقيق)، Swift (cocoapods، swift-package-manager)، إضافات ووردبريس، مزودي Terraform (.terraform.lock.hcl) رخصة Syft Apache 2.0

تدعم أدوات المسح المدرجة في الجدول السابق مجموعة واسعة من اللغات وأطر عمل البنية التحتية كبرمجة (IaC)، مما يضمن تحليلا أمنيا شاملا عبر قاعدة الشيفرة.

الأنظمة وأنواع الملفات المدعومة

الأنظمة المتعلقة بالتحكم في الإصدار

يدعم مسح الشيفرة بدون وكيل أنظمة التحكم في الإصدارات التالية:

  • Azure DevOps: دعم كامل للمستودعات المتصلة عبر موصل Azure DevOps.

  • GitHub: دعم كامل للمستودعات المتصلة عبر موصل GitHub.

لغات البرمجة

يدعم مسح الشيفرة بدون وكيل لغات البرمجة وأنظمة الاعتماد التالية:

  • تحليل الكود الثابت: بايثون. JavaScript / TypeScript.

  • النظم البيئية للتبعية (عبر Trivy): Node.js (npm ، غزل ، Python) ، Python (pip ، Pipenv ، Poetry) ، Java (Maven ، Gradle) ، .NET (NuGet) ، وحدات Go ، Ruby (RubyGems) ، PHP (Composer) ، Rust (Cargo) ، وغيرها من اللغات المدعومة والأنظمة البيئية للحزم عبر البيانات وملفات القفل.

الأنظمة الأساسية والتكوينات للبنية الأساسية كتعليمية (IaC)

الجدول التالي يسرد منصات وأنواع الملفات في IaC التي يدعمها مسح الشيفرة بدون وكلاء:

منصة IaC أنواع الملفات المعتمدة ملاحظات
Terraform .tf، .tfvars يدعم قوالب Terraform IaC بلغة HCL2، بما في ذلك الملفات المتغيرة في .tfvars.
خطة Terraform ملفات JSON يتضمن ملفات JSON التي تمثل التكوينات المخطط لها، وتستخدم للتحليل والمسح الضوئي.
تشكيل سحاب AWS ملفات JSON وYAML يدعم قوالب AWS CloudFormation لتعريف موارد AWS.
كوبرنيتيس ملفات YAML وJSON يدعم ملفات بيان Kubernetes لتعريف التكوينات في المجموعات.
دومان بنية دليل مخطط Helm، ملفات YAML يتبع هيكل المخطط القياسي لهيلم ويدعم ملفات مخططات هيلم v3.
Docker الملفات المسماة Dockerfile يدعم Dockerfiles لتكوينات الحاوية.
قوالب Azure ARM ملفات JSON يدعم قوالب Azure Resource Manager (ARM) IaC بتنسيق JSON.
Azure Bicep .bicep الملفات يدعم قوالب Bicep IaC، وهي لغة خاصة بالمجال (DSL) ل ARM.
AWS سام ملفات YAML يدعم قوالب نموذج تطبيق AWS بلا خادم (SAM) للموارد بلا خادم.
Kustomize ملفات YAML يدعم ملفات التكوين لتخصيص Kubernetes (Kustomize).
إطار عمل بلا خادم ملفات YAML يدعم القوالب لإطار عمل بلا خادم في تعريف البنيات بلا خادم.
OpenAPI ملفات YAML وJSON يدعم ملفات مواصفات OpenAPI لتعريف واجهات برمجة التطبيقات RESTful.

تمكين فحص التعليمات البرمجية بدون عامل على مؤسسات Azure DevOps وGitHub

يمكنك توصيل كل من مؤسسات Azure DevOps وGitHub ب Defender for Cloud لتمكين فحص التعليمات البرمجية بدون عامل. لإعداد الاتصال، استخدم أحد هذه الأدلة:

مخطط يظهر مرشدا متحركا لإعداد موصل Defender for Cloud يتيح مسح الشيفرة بدون وكيل ل Azure DevOps و GitHub.

تخصيص تغطية الماسح الضوئي ونطاقه

لكل من GitHub وAzure DevOps، يمكنك التحكم في الماسحات الضوئية التي يتم تشغيلها وتحديد المستودعات التي يتم تضمينها أو استبعادها بالضبط من الفحص بدون عامل.

لقطة شاشة لإعدادات مسح الشيفرة بدون وكلاء تعرض إعدادات المسح الضوئي وخيارات النطاق المخصصة للمؤسسات والمشاريع والمستودعات.

  • حدد الماسحات الضوئية: قم بتشغيل كل رمز وماسح ضوئي للبنية الأساسية كتعليمية (IaC) أو إيقاف تشغيله بناء على احتياجاتك.

  • تعيين نطاق الفحص: حدد ما إذا كنت تريد مسح جميع المستودعات ضوئيا بشكل افتراضي، أو حدد نطاقا مخصصا لتضمين أو استبعاد مؤسسات أو مشاريع أو مستودعات معينة.

    • وضع الاستبعاد: امسح كل شيء ضوئيا باستثناء ما تقوم بإدراجه.
    • وضع التضمين: افحص ما تقوم بإدراجه فقط.
  • خيارات النطاق المخصصة:

    • بالنسبة إلى GitHub، قم بتعيين النطاق حسب المالك أو المستودع.
    • بالنسبة إلى Azure DevOps، قم بتعيين النطاق حسب المؤسسة أو المشروع أو المستودع.
  • الاكتشاف التلقائي للمستودعات الجديدة: يقتصر الاكتشاف التلقائي للمستودعات الجديدة دائما على المؤسسات أو المشاريع المضمنة في نطاق الموصل. يتم تمكينه بشكل افتراضي عند استخدام وضع الاستبعاد ولا يتم تعيين قائمة نطاق مخصصة. يتم فحص المستودعات التي تم إنشاؤها حديثا تلقائيا.

    لا يتوفر الاكتشاف التلقائي في وضع التضمين، لأنه يتم مسح المستودعات المدرجة فقط ضوئيا.

    تتيح لك خيارات تكوين المنظار مطابقة المسح مع احتياجاتك الأمنية، والحفاظ على تحديث التغطية مع نمو بيئتك، وتجنب المسح أو الفجوات غير الضرورية.

كيفية عمل فحص التعليمات البرمجية بدون عامل

يعمل فحص التعليمات البرمجية بدون عامل بشكل مستقل عن مسارات CI/CD. يستخدم موصل Azure DevOps أو GitHub لفحص التعليمات البرمجية وتكوينات البنية الأساسية كتعلم برمجية (IaC) تلقائيا. لا تحتاج إلى تعديل البنية الأساسية لبرنامج ربط العمليات التجارية أو إضافة ملحقات. استخدام الموصل دون تعديلات في خط الأنابيب يتيح تحليلا أمنيا واسعا ومستمرا عبر مستودعات متعددة. تتم معالجة النتائج وعرضها مباشرة في Microsoft Defender for Cloud.

رسم تخطيطي يوضح بنية مسح التعليمات البرمجية بدون عامل.

عملية مسح الشيفرة بدون وكيل

بمجرد تمكين ميزة فحص التعليمات البرمجية بدون عامل داخل موصل، تتضمن عملية الفحص الخطوات التالية:

  1. اكتشاف المستودع: يحدد النظام تلقائيا جميع المستودعات المرتبطة من خلال موصل Azure DevOps وGitHub مباشرة بعد إنشاء الموصل ثم كل 8 ساعات.

  2. استرجاع التعليمات البرمجية: يسترد بشكل آمن أحدث التعليمات البرمجية من الفرع الافتراضي (الرئيسي) لكل مستودع للتحليل ، في البداية بعد إعداد الموصل ثم يوميا.

  3. Analysis: يستخدم النظام أدوات مسح مدمجة تدير وتحدثها Microsoft Defender for Cloud. تكتشف هذه الأدوات الثغرات والتكوينات الخاطئة في القوالب البرمجية والبنية التحتية ككود (IaC). كما ينشئ النظام SBOM لدعم استعلامات الحزم.

  4. معالجة النتائج: يعالج نتائج الفحص من خلال الواجهة الخلفية ل Defender for Cloud لإنشاء توصيات أمان قابلة للتنفيذ.

  5. تسليم النتائج: يعرض النظام النتائج في Defender for Cloud كتوصيات أمنية. للحصول على تفاصيل حول توصيات أمان DevOps، راجع مرجع توصيات الأمان في DevOps.

تكرار المسح الضوئي ومدته

يستخدم مسح الشيفرة بدون وكيل الجدول الزمني التالي:

  • تردد المسح:

    • يتم تقييم الوضع الأمني للمستودعات والتدفقات واتصالات الخدمة عند إنشاء الموصل ثم كل ثماني ساعات.
    • يقوم النظام بفحص قوالب التعليمات البرمجية والبنية التحتية كتعليمات برمجية (IaC) بحثا عن الثغرات الأمنية بعد إنشاء الموصل ثم يوميا.
  • مدة الفحص: تنتهي عمليات الفحص عادة في غضون 15 إلى 60 دقيقة، اعتمادا على حجم المستودع وتعقيده.

عرض نتائج الفحص وإدارتها

بعد انتهاء عمليات الفحص، يمكنك الوصول إلى نتائج الأمان داخل Microsoft Defender for Cloud.

عرض نتائج مسح الشيفرة بدون وكيل

للوصول إلى النتائج:

  1. في Microsoft Defender for Cloud، اذهب إلى تبويب توصيات الأمن: توصيات الأمان المفتوح.

  2. راجع التوصيات لكل من مستودعات Azure DevOps وGitHub، مثل:

  3. للاطلاع على مجموعة كاملة من التوصيات المدعومة لكلا المنصتين، راجع Azure DevOps وتوصيات الأمان GitHub.

    تشمل توصيات الأمان في Azure DevOps وGitHub عناصر مثل طلب موافقات متعدد المراجعين، وتقييد الوصول السري، وتطبيق أفضل الممارسات لكل من Azure DevOps وGitHub.

    حدد أي توصية لعرض تفاصيل حول الملفات المتأثرة وخطوات الخطورة والمعالجة.

الفرق بين مسح التعليمات البرمجية بدون عامل ومسح البنية الأساسية لبرنامج ربط العمليات التجارية

الفحص بدون وكيل مقابل المسح داخل خط الأنابيب

يوفر مسح الشيفرة بدون وكلاء والمسح داخل خط الأنابيب مع إضافة الأمان من Microsoft DevOps كلاهما مسحا أمنيا في Azure DevOps وGitHub. تخدم احتياجات مختلفة ويمكن أن تكمل بعضها البعض. يلخص الجدول التالي الفروقات الرئيسية حتى تتمكن من اختيار الخيار الأنسب لبيئتك.

جانب فحص التعليمات البرمجية بدون عامل المسح الضوئي في البنية الأساسية لبرنامج ربط العمليات التجارية
احتواء حالة الاستخدام يوفر تغطية واسعة مع الحد الأدنى من التعطيل للمطورين يوفر عمليات فحص مفصلة ومتكاملة مع عناصر تحكم قابلة للتخصيص
نطاق الفحص والتغطية يركز على البنية التحتية كتعليمات برمجية (IaC) والثغرات الأمنية في التعليمات البرمجية وثغرات التبعية مفتوحة المصدر على أساس مجدول (يوميا) يوفر تغطية واسعة النطاق، بما في ذلك الثنائيات وصور الحاويات، التي يتم تشغيلها في كل تشغيل للبنية الأساسية لبرنامج ربط العمليات التجارية
الإعداد والتكوين لا يتطلب أي إعداد إضافي بعد إنشاء الموصل يتطلب التثبيت والتكوين اليدوي في كل مسار CI/CD
تكامل البنية الأساسية لبرنامج ربط العمليات التجارية يعمل بشكل مستقل عن خطوط أنابيب CI/CD دون تعديل سير العمل يتكامل داخل البنية الأساسية لبرنامج ربط العمليات التجارية CI/CD، مما يتطلب تكوينا في كل مسار
تخصيص الماسح الضوئي يسمح لك بتحديد الماسحات الضوئية التي يتم تشغيلها يسمح بالتخصيص باستخدام ماسحات ضوئية وفئات ولغات ومستويات حساسية وأدوات غير تابعة ل Microsoft
النتائج والملاحظات يوفر الوصول إلى النتائج داخل Defender for Cloud يقدم ملاحظات في الوقت الفعلي تقريبا داخل مسار CI/CD، مع ظهور النتائج أيضا في Defender for Cloud
معايير التعطل والفشل لا يمكن كسر البنيات يمكن تكوينه لكسر البنيات استنادا إلى خطورة نتائج الأمان

قابلية التوسع وتأثير الأداء

يتجنب فحص التعليمات البرمجية بدون عامل إنشاء موارد في الاشتراك ولا يتطلب المسح الضوئي أثناء عملية المسار. يستخدم Azure DevOps وGitHub REST API لسحب بيانات التعريف والرمز. وهذا يعني أن استدعاءات واجهة برمجة التطبيقات تحسب في حدود معدل Azure DevOps وGitHub، ولكنك لا تتحمل تكاليف نقل البيانات المباشرة. تدير الخدمة عمليات الفحص للتأكد من بقائها ضمن حدود معدل Azure DevOps وGitHub دون مقاطعة بيئة التطوير. يوفر هذا الأسلوب فحصا فعالا وعالي الأداء عبر المستودعات دون التأثير على مهام سير عمل DevOps. لمزيد من المعلومات، راجع حدود معدل واستخدام Azure DevOpsوحدود المعدل لواجهة برمجة تطبيقات GitHub REST.

أمان البيانات والامتثال والتحكم في الوصول لفحص التعليمات البرمجية بدون عامل

خدمة مسح الشيفرة بدون وكيل من Microsoft Defender for Cloud تساعد في حماية كودك من خلال أمان البيانات وضوابط الخصوصية:

  • تشفير البيانات والتحكم في الوصول: يقوم النظام بتشفير جميع البيانات أثناء النقل باستخدام بروتوكولات قياسية في الصناعة. يمكن فقط لخدمات Defender for Cloud المعتمدة الوصول إلى التعليمات البرمجية الخاصة بك.
  • إقامة واحتجاز البيانات: تعمل عمليات المسح الجغرافية في نفس الجغرافيا مع موصلات Azure DevOps و GitHub (الولايات المتحدة أو أوروبا) لدعم متطلبات حماية البيانات. يقوم النظام بمعالجة الكود أثناء المسح ثم يقوم بحذفها بأمان. لا يحتفظ بتخزين الكود على المدى الطويل.
  • الوصول إلى المستودعات: تولد الخدمة رمز وصول آمن Azure DevOps و GitHub لتشغيل الفحوصات. يتيح هذا الرمز للخدمة استرجاع البيانات الوصفية والشيفرة المطلوبة دون إنشاء موارد في اشتراكك. فقط مكونات Defender for Cloud يمكنها استخدام هذا الوصول.
  • دعم الامتثال: تتماشى الخدمة مع المعايير التنظيمية والأمنية لمعالجة البيانات والخصوصية لدعم معالجة آمنة وإقليمية لشيفرة العملاء.

تضمن هذه التدابير عملية فحص تعليمات برمجية آمنة ومتوافقة وفعالة، مع الحفاظ على خصوصية بياناتك وسلامتها.

القيود (معاينة عامة)

أثناء مرحلة المعاينة العامة، تنطبق القيود التالية:

  • لا يوجد فحص ثنائي: يتم تنفيذ أدوات فحص التعليمات البرمجية (SAST) وIaC فقط.
  • تكرار المسح: مسح الشيفرة بدون وكيل يمسح المستودعات عند تفعيل الميزة ثم مرة واحدة يوميا.
  • حجم المستودع: يدعم مسح الشيفرة بدون وكيل مستودعات أقل من 1 جيجابايت.
  • تغطية الفرع: تغطي عمليات الفحص الفرع الافتراضي فقط (عادة main).
  • تخصيص الأداة: لا يمكنك تخصيص أدوات الفحص.

لدى Syft (SBOM) حاليا القيود التالية:

  • لا يمكن تحميل SBOMs. يمكنك الاستعلام عن نتائج Syft للعثور على حزم محددة والمستودعات التي تستخدمها. للحصول على الإرشاد، انظر فاتورة مواد برمجيات الاستعلام.

  • المستودع يحتاج إلى ملف قفل. وإلا، يتم العثور فقط على التبعيات المباشرة.

  • الحد الأقصى لحجم SBOM محدود ب 1 ميجابايت. إذا تم تحديد عدد كبير من الحزم، فإن دخولنا إلى خريطة السحابة سيفشل.

  • تمكين SBOM غير قابل للتكوين أو التحميل. يتم توليد SBOM في كل مسح بدون وكيل.

  • تم ضبط مهلة التشغيل على 15 دقيقة لتشغيل أداة SBOM.

  • تعطيل مسح الشيفرة بدون وكيل لا يحذف توصيات SBOM.

الخطوات التالية