يتيح لك إجراء GitHub استخدام الماسح الضوئي الرائدة في صناعة Security Security (فحص التباين) للعثور على نقاط الضعف في الكود الخاص بك. يقارن الإجراء تحليل مسح الكود للعلاقات العامة مع تحليل مسح الكود الأخير لفرع الوجهة. يفشل Github في التحقق مما إذا كانت نقاط الضعف الجديدة قد تم تقديمها.
إذا لم تكن على دراية بإجراءات github ، فاقرأ وثائق إجراءات github لمعرفة ماهية إجراءات github وكيفية إعدادها. بعد ذلك ، أكمل الخطوات التالية:
قم بتكوين الأسرار github التالية Constars_api_key ، contrast_organization_id ، contrast_auth_header و convers_api_url

CODESEC على النقيض من مستخدمي الأمان: استرداد تفاصيل المصادقة للأسرار باستخدام CLI.
تعليمات التثبيت هنا: https://www.contrastsecurity.com/developer/codesec
إذا كنت مستخدمًا جديدًا ، فقم بإنشاء حساب مع أمر "Auth Auth"
قم بتشغيل الأمر "Contraving Config" في CLI لجمع بيانات الاعتماد المطلوبة

مستخدمو أمان التباين المرخصين: احصل على تفاصيل المصادقة الخاصة بك للأسرار من قائمة "إعدادات المستخدم" في واجهة الويب على التباين: ستحتاج إلى ما يلي

نسخ نموذج سير العمل أدناه وإنشاء فرع من الكود الخاص بك لإضافة مسح أمان التباين. يقع هذا الفرع عادة في .github/workflows/build.yml
قم بتحديث ملف سير العمل لتحديد متى يجب تشغيل الإجراء (على سبيل المثال على pull_request ، على الضغط)
on :
# Trigger analysis when pushing to main or an existing pull requests. Also trigger on
# new pull requests
push :
branches :
- main
pull_request :
types : [opened, synchronize, reopened]قم بتحديث FilePath في ملف سير العمل لتوحيد موقع القطع الأثرية المدمجة أو الملف للمسح الضوئي
with :
artifact : mypath/target/myartifact.jar أن تفشل بناءً على شدة الثغرة الأمنية التي وجدت شدة (حرجة/عالية/متوسطة أو منخفضة) وفشل في صحيح
severity : high
fail : true لكي يسرد Github نقاط الضعف في علامة التبويب الأمان لإلى الريبو ، يجب أن يكون إجراء التباين مصحوبًا بعملة Github
- name : Upload SARIF file
uses : github/codeql-action/upload-sarif@v2
with :
sarif_file : results.sarif يجب أن تكون قيمة sarif_file results.sarif .
بعد الالتزام ، قم بإنشاء طلب سحب (PR) لدمج التحديث مرة أخرى إلى فرعك الرئيسي. يؤدي إنشاء العلاقات العامة إلى تشغيل الفحص لتشغيله. يظهر فحص "مسح الكود" الإضافي في العلاقات العامة
نظرًا لأنه من المحتمل أن تكون هناك نتائج جديدة عند إضافة مسح التباين ، فإننا لا نريد الفشل وحظر دمج العلاقات العامة التي تضيف فحص التباين ، مما يجبر مالك العلاقات العامة على إصلاح جميع نقاط الضعف المكشوفة حديثًا التي كانت موجودة بالفعل في قاعدة الكود.
بعد تشغيل التباين على الفرع الرئيسي ، تفشل جميع PRS الجديدة التي تقوم بإنشائها حيث يتم تشغيل مسح التباين ، تحقق من فحص الكود إذا كانوا يقدمون نقاط ضعف جديدة تتجاوز خط الأساس الذي أنشأته للتو.
يجب تكوين جميع أسرار الحساب المتعلقة بالتباين على أنها أسرار GitHub وسيتم نقلها إلى الماسح الضوئي عبر متغيرات البيئة في عداء GitHub. سير عمل بسيط للذهاب هو:
on :
# Trigger analysis when pushing to main or an existing pull requests. Also trigger on
# new pull requests
push :
branches :
- main
pull_request :
types : [opened, synchronize, reopened]
name : Contrast Security Scan
jobs :
build_and_scan :
permissions :
contents : read # for actions/checkout
security-events : write # for github/codeql-action/upload-sarif
actions : read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
runs-on : ubuntu-latest
# check out project
steps :
- uses : actions/checkout@v2
# steps to build the artifact you want to scan
# -name: Build Project
# ...
# Scan Artifact
- name : Contrast Scan Action
uses : Contrast-Security-OSS/[email protected]
with :
artifact : mypath/target/myartifact.jar
apiKey : ${{ secrets.CONTRAST_API_KEY }}
orgId : ${{ secrets.CONTRAST_ORGANIZATION_ID }}
authHeader : ${{ secrets.CONTRAST_AUTH_HEADER }}
severity : high
fail : true
# To list vulnerabilities in the GitHub Security Tab of the repo include GitHub upload-sarif action
# The value of `sarif_file` must be `results.sarif`
- name : Upload SARIF file
uses : github/codeql-action/upload-sarif@v2
with :
sarif_file : results.sarif هذا العمل github والمكون الإضافي المتباين Maven ينجز نفس الشيء. لا يمكنك استخدام كليهما في نفس الوقت. على سبيل المثال ، إذا كنت تستخدم Maven لإنشاء الكود الخاص بك وقمت بتشغيل org.contrastsecurity.maven: المسح أثناء الإنشاء ، لا تستخدم إجراء GitHub Scense.