Megosztás a következőn keresztül:


Az Azure DevOps-hoz készült GitHub Advanced Security konfigurálása

A GitHub Advanced Security for Azure DevOps hozzáadja a GitHub Advanced Security biztonsági funkcióit az Azure-adattárakhoz.

Az Azure-hoz készült GitHub Advanced Security a következőket tartalmazza:

  • Titkos kódok leküldéses védelme: ellenőrizze, hogy a kód leküldései tartalmaznak-e titkos kulcsokat, például hitelesítő adatokat felfedő véglegesítéseket
  • Titkos kódtár vizsgálata: ellenőrizze az adattárat, és keresse meg a véletlenül lekötött titkos kulcsokat
  • Függőségek vizsgálata – ismert biztonsági rések keresése nyílt forráskód függőségekben (közvetlen és tranzitív)
  • Kódvizsgálat – a CodeQL statikus elemzőmotor használatával azonosíthatja a kódszintű alkalmazás biztonsági réseit, például az SQL-injektálást és a hitelesítés megkerülését

A GitHub Advanced Security for Azure DevOps jelenleg csak az Azure DevOps Serviceshez érhető el, és nem tervezi, hogy ezt a terméket az Azure DevOps Serverre hozza.

Az Azure DevOps GitHub Advanced Security szolgáltatása az Azure Reposszal működik. Ha GitHub Advanced Securityt szeretne használni GitHub-adattárakkal, tekintse meg a GitHub Advanced Securityt.

Előfeltételek

A Project Collection Rendszergazda istrators csoport tagjaként lefoglalt engedélyekkel kell rendelkeznie. Ha tagokat szeretne hozzáadni a Projektgyűjtemény Rendszergazda istrators csoporthoz, vagy módosítani szeretne egy projektcsoportszintű engedélyt, olvassa el a Projektcsoportszintű engedélyek módosítása című témakört.

További előfeltételek a saját üzemeltetésű ügynökök számára

Ha a szervezet saját üzemeltetésű ügynököket használ, több követelmény is van:

  • Adja hozzá ezeket az URL-címeket az Engedélyezési listához, hogy lehetővé tegye a függőségvizsgálati feladat számára a biztonságirés-tanácsadási adatok beolvasását. További információ az engedélyezett IP-címekről és a tartomány URL-címeiről.
Tartomány URL-címe Leírás
https://governance.dev.azure.com/{organization_name} Az dev.azure.com tartományt használó szervezetek számára a DevOps-példány eléréséhez
https://dev.azure.com/{organization_name} Az dev.azure.com tartományt használó szervezetek számára a DevOps-példány eléréséhez
https://advsec.dev.azure.com/{organization_name} Az dev.azure.com tartományt használó szervezetek számára a DevOps-példány eléréséhez
https://{organization_name}.governance.visualstudio.com/ A(z) {organization_name}.visualstudio.com tartományt használó szervezetek számára a DevOps-példány eléréséhez
https://{organization_name}.visualstudio.com  A(z) {organization_name}.visualstudio.com tartományt használó szervezetek számára a DevOps-példány eléréséhez
https://{organization_name}.advsec.visualstudio.com/ A(z) {organization_name}.visualstudio.com tartományt használó szervezetek számára a DevOps-példány eléréséhez
  • Futtassa a .NET-futtatókörnyezet kompatibilis verzióját (jelenleg .NET 6.0.x). Ha az ügynök nem rendelkezik kompatibilis verzióval, akkor a függőségvizsgálati buildelési feladat letölti a .NET elemet.

  • Telepítse a CodeQL-csomagot az ügynökeszköz gyorsítótárára a GitHubon elérhető architektúra beállítási szkriptjének használatával. Ezek a szkriptek megkövetelik, hogy a $AGENT_TOOLSDIRECTORY környezeti változó az ügynök eszközkönyvtárának helyére legyen beállítva, például. C:/agent/_work/_tool Másik lehetőségként manuálisan is végrehajthatja a következő lépéseket:

    1. Válassza ki a Legújabb CodeQL kiadási csomagot a GitHubról.
    2. Töltse le és bontsa ki a csomagot a következő könyvtárba az ügynökeszköz könyvtárában, amely általában a következő alatt _work/_tooltalálható: ./CodeQL/0.0.0-[codeql-release-bundle-tag]/x64/. Az aktuális kiadást v2.16.0használva a mappa neve lesz a cím../CodeQL/0.0.0-codeql-bundle-v2.16.0/x64/ További információ az ügynökeszköz könyvtáráról.
    3. Hozzon létre egy üres fájlt x64.complete a ./CodeQL/0.0.0-[codeql-release-bundle-tag] mappában. Az előző példában a fájl végpontjának x64.complete elérési útja legyen ./CodeQL/0.0.0-codeql-bundle-v2.16.0/x64.complete.

GitHub Advanced Security engedélyezése

Az Advanced Securityt a szervezet, a projekt vagy az adattár szintjén engedélyezheti. Az egyes vizsgálati eszközök és eredmények eléréséhez először engedélyeznie kell az Advanced Securityt. Az Advanced Security engedélyezése után a rendszer letiltja azokat a jövőbeli leküldéseket, amelyek titkos kulcsokat tartalmaznak egy tárházba, és ez a szabályzat engedélyezve van, és az adattár titkos kulcsainak vizsgálata a háttérben történik.

Adattárszintű előkészítés

  1. Nyissa meg az Azure DevOps-projekt projektbeállításait .
  2. Válassza az Adattárak> lehetőséget.
  3. Válassza ki azt az adattárat, amelyhez engedélyezni szeretné az Advanced Securityt.
  4. Az Advanced Security aktiválásához válassza az Engedélyezés és a Számlázás megkezdése lehetőséget. Mostantól megjelenik egy pajzsikon az adattár nézetben minden olyan adattár esetében, amelyen engedélyezve van az Advanced Security.

Képernyőkép a GitHub Advanced Security engedélyezéséről.

Projektszintű előkészítés

  1. Nyissa meg az Azure DevOps-projekt projektbeállításait .
  2. Válassza az Adattárak lehetőséget.
  3. Válassza a Settings (Beállítások) fület.
  4. Válassza az Összes engedélyezése lehetőséget, és megjelenik egy becslés a projekt aktív véglegesítőinek számáról.
  5. Válassza a Számlázás indítása lehetőséget az Advanced Security aktiválásához a projekt minden meglévő adattárához.
  6. Ha szeretné, válassza az Advanced Security automatikus engedélyezése új adattárakhoz lehetőséget, hogy az újonnan létrehozott adattárak létrehozásakor engedélyezve legyen az Advanced Security.

Képernyőkép az Advanced Security projektszintű engedélyezéséről.

Szervezeti szintű előkészítés

  1. Nyissa meg az Azure DevOps-szervezet szervezeti beállításait .
  2. Válassza az Adattárak elemet.
  3. Válassza az Összes engedélyezése lehetőséget, és megjelenik egy becslés a szervezet aktív véglegesítéseinek számáról.
  4. Válassza a Számlázás indítása lehetőséget az Advanced Security aktiválásához a szervezet minden projektjében lévő összes meglévő adattárhoz.
  5. Ha szeretné, válassza az Advanced Security automatikus engedélyezése új adattárakhoz lehetőséget, hogy az újonnan létrehozott projektek létrehozásakor engedélyezve legyen az Advanced Security.

Képernyőkép az Advanced Security szervezeti szintű engedélyezéséről.

Titkos kódok vizsgálatának beállítása

A titkos kódok leküldéses védelme és az adattár vizsgálata automatikusan engedélyezve van az Advanced Security bekapcsolásakor. A titkos leküldéses védelem az adattár beállításainak lapján engedélyezhető vagy letiltható.

Képernyőkép a leküldéses védelem engedélyezéséről.

Ahogy említettük, a titkos kulcsok beolvasása automatikusan elindul, amikor engedélyezi az Advanced Securityt egy kiválasztott adattárhoz.

Függőségvizsgálat beállítása

A függőségek vizsgálata folyamatalapú ellenőrző eszköz. Az eredmények tárházonként összesítve jelennek meg. Javasoljuk, hogy adja hozzá a függőségvizsgálati feladatot az összes vizsgálandó folyamathoz.

Tipp.

A legpontosabb vizsgálati eredmények érdekében mindenképpen adja hozzá a függőségvizsgálati feladatot a vizsgálandó kódot összeállító folyamat buildelési és/vagy csomag-visszaállítási lépését követve.

Adja hozzá közvetlenül a YAML-folyamatfájlhoz az Advanced Security Dependency Scanning (AdvancedSecurity-Dependency-Scanning@1) feladatot, vagy válassza ki az Advanced Security Dependency Scan feladatot a feladatsegédből.

Képernyőkép a YAML függőségvizsgálati folyamatának beállításáról.

Kódvizsgálat beállítása

A kódvizsgálat egy folyamatalapú ellenőrző eszköz is, ahol az eredményeket tárházonként összesítik.

Tipp.

Javasoljuk, hogy adja hozzá a kódolvasási feladatot a fő éles folyamat egy különálló, klónozott folyamatához, vagy hozzon létre egy új folyamatot. Ennek az az oka, hogy a kódvizsgálat időigényesebb buildelési feladat lehet.

Adja hozzá a feladatokat a következő sorrendben:

  1. Advanced Security Initialize CodeQL (AdvancedSecurity-Codeql-Init@1)
  2. Az egyéni buildelési lépések
  3. Advanced Security – CodeQL-elemzés végrehajtása (AdvancedSecurity-Codeql-Analyze@1)

Képernyőkép a YAML kódolvasási folyamatának beállításáról.

Emellett meg kell adnia, hogy melyik nyelvet elemzi az Inicializálási CodeQL-feladatban. Egy vesszővel tagolt lista egyszerre több nyelv elemzésére is használható. A támogatott nyelvek a következők csharp, cpp, go, java, javascript, python, ruby, swift: .

Íme egy példa kezdőfolyamatra:

trigger:
  - main

pool:
  # Additional hosted image options are available: https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted#software
  vmImage: ubuntu-latest

steps:

  - task: AdvancedSecurity-Codeql-Init@1
    inputs:
      languages: "java"
      # Supported languages: csharp, cpp, go, java, javascript, python, ruby, swift
      # You can customize the initialize task: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/advanced-security-codeql-init-v1?view=azure-pipelines

#   Add your custom build steps here
# - Ensure that all code to be scanned is compiled (often using a `clean` command to ensure you are building from a clean state).
# - Disable the use of any build caching mechanisms as this can interfere with CodeQL's ability to capture all the necessary data during the build.
# - Disable the use of any distributed/multithreaded/incremental builds as CodeQL needs to monitor executions of the compiler to construct an accurate representation of the application.
# - For dependency scanning, ensure you have a package restore step for more accurate results.

# If you had a Maven app:
#   - task: Maven@4
#     inputs:
#       mavenPomFile: 'pom.xml'
#       goals: 'clean package'
#       publishJUnitResults: true
#       testResultsFiles: '**/TEST-*.xml'
#       javaHomeOption: 'JDKVersion'
#       jdkVersionOption: '1.17'
#       mavenVersionOption: 'Default'

# Or a general script:
#   - script: |
#       echo "Run, Build Application using script"
#       ./location_of_script_within_repo/buildscript.sh

  - task: AdvancedSecurity-Dependency-Scanning@1 # More details on this task: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/advanced-security-dependency-scanning-v1?view=azure-pipelines

  - task: AdvancedSecurity-Codeql-Analyze@1 # More details on this task: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/advanced-security-codeql-analyze-v1?view=azure-pipelines

Tipp.

A Kotlin/Swift CodeQL-elemzése jelenleg bétaverzióban érhető el. A bétaverzió során ezeknek a nyelveknek az elemzése kevésbé lesz átfogó, mint mások CodeQL-elemzése. Java-, Kotlin- vagy mindkettőben írt kód elemzésére használható java . JavaScriptben, TypeScriptben vagy mindkettőben írt kód elemzéséhez használható javascript .

Ha a megadott nyelv egyéni cpp, java, csharp vagy swiftAutoBuild buildelési lépésekre van szükség. Más nyelvek esetén, ha az Automatikusan fel van építve, a lépés művelet végrehajtása nélkül is sikeresen befejeződik.

Ha valamilyen okból le kell tiltania az Advanced Securityt, a riasztások és a riasztások állapota megmarad, amikor legközelebb újra engedélyezi az Advanced Securityt az adattárban.

Következő lépések