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 vagy pull_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.
  • 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#-et languagea .
    • 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.

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:

  1. A GitHub-adattárban válassza a Műveletek navigációs lehetőséget.

  2. 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.
  3. Válassza az Állapotjelvény létrehozása menüt.

    GitHub: Create status badge

  4. Válassza a Másolás állapotjelvény Markdown gombját.

    GitHub: Copy status badge Markdown

  5. 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
GitHub: CodeQL passing badge GitHub: CodeQL failing badge GitHub: CodeQL no-status badge

Lásd még

Következő lépések