Rövid útmutató: Biztonsági vizsgálat létrehozása GitHub-munkafolyamat
Ebben a rövid útmutatóban megtudhatja, hogyan hozhat létre CodeQL GitHub-munkafolyamatot a .NET-kódbázis biztonsági réseinek felderítésének automatizálásához.
A CodeQL-ben a kód adatokként lesz kezelve. A biztonsági rések, hibák és egyéb hibák a kódból kinyert adatbázisokon végrehajtható lekérdezésekként modellezhetők.
Előfeltételek
- Egy GitHub-fiók.
- .NET-forráskódtár.
Munkafolyamat-fájl létrehozása
A GitHub-adattárban adjon hozzá egy új YAML-fájlt a .github/workflows könyvtárhoz. Válasszon egy értelmezhető fájlnevet, amely egyértelműen jelzi a munkafolyamat célját. További információ: Munkafolyamat-fájl.
Fontos
A GitHub megköveteli, hogy a munkafolyamat-összeállítási fájlokat a .github/workflows könyvtárba kell helyezni.
A munkafolyamat-fájlok általában egy vagy több GitHub-művelet összetételét határozzák meg a jobs.<job_id>/steps[*]
. További információ: A GitHub Actions munkafolyamat-szintaxisa.
Hozzon létre egy codeql-analysis.yml nevű új fájlt, másolja és illessze be a következő YML-tartalmat:
name: "CodeQL"
on:
push:
branches: [main]
paths:
- '**.cs'
- '**.csproj'
pull_request:
branches: [main]
paths:
- '**.cs'
- '**.csproj'
schedule:
- cron: '0 8 * * 4'
jobs:
analyze:
name: analyze
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
language: ['csharp']
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 2
- run: git checkout HEAD^2
if: ${{ github.event_name == 'pull_request' }}
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
- name: Autobuild
uses: github/codeql-action/autobuild@v1
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
Az előző munkafolyamat-összeállításban:
A
name: CodeQL
"CodeQL" név a munkafolyamat állapotjelvényeiben jelenik meg.name: "CodeQL"
A
on
csomópont a munkafolyamatot kiváltó eseményeket jelöli:on: push: branches: [main] paths: - '**.cs' - '**.csproj' pull_request: branches: [main] paths: - '**.cs' - '**.csproj' schedule: - cron: '0 8 * * 4'
- Akkor aktiválódik, amikor egy
push
vagypull_request
több olyan ág jelenik meg,main
amelyben a fájlok a .cs vagy a .csproj fájlkiterjesztéssel végződnek. - Cron-feladatként (ütemezés szerint) – minden csütörtökön 8:00-kor (UTC) fut.
- Akkor aktiválódik, amikor egy
A
jobs
csomópont összeállítja a munkafolyamat lépéseit.jobs: analyze: name: analyze runs-on: ubuntu-latest strategy: fail-fast: false matrix: language: ['csharp'] steps: - name: Checkout repository uses: actions/checkout@v3 with: fetch-depth: 2 - run: git checkout HEAD^2 if: ${{ github.event_name == 'pull_request' }} - name: Initialize CodeQL uses: github/codeql-action/init@v1 with: languages: ${{ matrix.language }} - name: Autobuild uses: github/codeql-action/autobuild@v1 - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v1
- Egyetlen feladat van elnevezve
analyze
, amely az Ubuntu legújabb verzióján fog futni. - A
strategy
C#-etlanguage
a . - A
github/codeql-action/init@v1
GitHub-művelet a CodeQL inicializálására szolgál. - A
github/codeql-action/autobuild@v1
GitHub Action létrehozza a .NET-projektet. - A
github/codeql-action/analyze@v1
GitHub-művelet elvégzi a CodeQL-elemzést.
- Egyetlen feladat van elnevezve
További információ: GitHub Actions: Kódvizsgálat konfigurálása.
Munkafolyamat állapotjelvényének létrehozása
A GitHub-adattárak általános elnevezése, hogy egy README.md fájl található az adattár könyvtárának gyökerében. Hasonlóképpen, jó, ha a különböző munkafolyamatok legújabb állapotát jelenti. Minden munkafolyamat létrehozhat egy állapotjelvényt, amely vizuálisan vonzó a README.md fájlban. A munkafolyamat állapotjelvényének hozzáadása:
A GitHub-adattárban válassza a Műveletek navigációs lehetőséget.
Az összes adattár-munkafolyamat megjelenik a bal oldalon, válassza ki a kívánt munkafolyamatot és a három pont (...) gombot.
- A három pont (...) gomb kibontja a kijelölt munkafolyamat menübeállításait.
Válassza az Állapotjelvény létrehozása menüt.
Válassza a Másolás állapotjelvény Markdown gombját.
Illessze be a Markdownt a README.md fájlba, mentse a fájlt, véglegesítse és küldje el a módosításokat.
További információ: Munkafolyamat-állapotjelvény hozzáadása.
Példa CodeQL-munkafolyamat állapotjelvénye
Elhaladó | Sikertelen | Nincs állapot |
---|---|---|