การกระทำของ GitHub นี้ช่วยให้คุณใช้สแกนเนอร์ชั้นนำของอุตสาหกรรม Security Security (Scan Scan) เพื่อค้นหาช่องโหว่ในรหัสของคุณ การกระทำเปรียบเทียบการวิเคราะห์การสแกนรหัสของ PR กับการวิเคราะห์การสแกนรหัสสุดท้ายของสาขาปลายทาง GitHub ล้มเหลวในการตรวจสอบว่ามีการแนะนำช่องโหว่ใหม่หรือไม่
หากคุณไม่คุ้นเคยกับการกระทำของ GitHub อ่านเอกสารการกระทำของ GitHub เพื่อเรียนรู้ว่าการกระทำของ GitHub คืออะไรและจะตั้งค่าได้อย่างไร หลังจากนั้นทำตามขั้นตอนต่อไปนี้:
กำหนดค่าความลับของ gitHub ต่อไปนี้ crosptr._api_key, contract_organization_id, crosptract_auth_header และ clistinch_api_url

CodeSec โดยผู้ใช้ความปลอดภัยด้านความคมชัด: ดึงรายละเอียดการรับรองความถูกต้องสำหรับความลับโดยใช้ CLI
คำแนะนำการติดตั้งที่นี่: https://www.contrastsecurity.com/developer/codesec
หากคุณเป็นผู้ใช้ใหม่ให้สร้างบัญชีด้วยคำสั่ง 'Auth Auth'
เรียกใช้คำสั่ง 'contract config' ใน CLI เพื่อรวบรวมข้อมูลรับรองที่ต้องการ

ผู้ใช้ด้านความปลอดภัยที่ได้รับอนุญาตที่ได้รับอนุญาต: รับรายละเอียดการรับรองความถูกต้องของคุณสำหรับความลับจากเมนู 'การตั้งค่าผู้ใช้' ในเว็บอินเตอร์เฟสคอนทราสต์: คุณจะต้องมีสิ่งต่อไปนี้

คัดลอกตัวอย่างเวิร์กโฟลว์ด้านล่างและสร้างสาขาของรหัสของคุณเพื่อเพิ่มการสแกนความปลอดภัยที่ตรงกันข้าม สาขานี้มักจะอยู่ที่ .github/workflows/build.yml
อัปเดตไฟล์เวิร์กโฟลว์เพื่อระบุว่าการดำเนินการควรเรียกใช้เมื่อใด (ตัวอย่างเช่นบน pull_request บน push)
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 ในไฟล์เวิร์กโฟลว์เพื่อ specfy ตำแหน่งของสิ่งประดิษฐ์ที่สร้างขึ้นหรือไฟล์เพื่อสแกน
with :
artifact : mypath/target/myartifact.jar การล้มเหลวบนพื้นฐานของความรุนแรงของช่องโหว่ที่พบความรุนแรง (วิกฤต/สูง/ปานกลางหรือต่ำ) และล้มเหลวในการเป็นจริง
severity : high
fail : true เพื่อให้ GitHub แสดงรายการช่องโหว่ในแท็บ ความปลอดภัย ของ repo การกระทำที่ตรงกันข้ามจะต้องมาพร้อมกับการกระทำของ GitHub นี้
- name : Upload SARIF file
uses : github/codeql-action/upload-sarif@v2
with :
sarif_file : results.sarif ค่าของ sarif_file จะต้อง เป็น results.sarif ซึ่งเป็นชื่อที่การกระทำการสแกนความคมชัดจะเขียน sarif ไป
หลังจากกระทำแล้วให้สร้างคำขอดึง (PR) เพื่อรวมการอัปเดตกลับไปที่สาขาหลักของคุณ การสร้าง PR ทริกเกอร์การสแกนให้ทำงาน การตรวจสอบ "การสแกนรหัส" เพิ่มเติมจะปรากฏใน PR
เนื่องจากเป็นไปได้ว่าจะมีการค้นพบใหม่เมื่อคุณเพิ่มการสแกนคอนทราสต์เราจึงไม่ต้องการล้มเหลวและบล็อกการรวม PR ที่เพิ่มการสแกนความคมชัดบังคับให้เจ้าของ 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: สแกนระหว่างการสร้างอย่าใช้การกระทำของสแกนความคมชัด