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.

A GitHub Advanced Security for Azure DevOps 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 DevOpshoz készült GitHub Advanced Security szintén csak a Git-adattárak kódtáraihoz érhető el.

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 Projektcsoportgazdák csoport tagjaként lefoglalt engedélyekkel kell rendelkeznie. Ha tagokat szeretne hozzáadni a Projektgyűjteménygazdák 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 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 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 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 8.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.

  • Győződjön meg arról, hogy a CodeQL-csomag telepítve van az ügynök eszköz gyorsítótárában az ügynökön. Használhatja a változót enableAutomaticCodeQLInstall: true a Advanced-Security-CodeQL@1 YAML-folyamatok folyamatfeladatával, vagy bejelölheti a Enable automatic CodeQL detection and installation klasszikus folyamatok jelölőnégyzetét. A manuális telepítési utasításokért lásd az Azure DevOpsHoz készült GitHub Advanced Security kódvizsgálatát.

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 tekintse meg a projekt aktív véglegesítőinek számának becslését.
  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 tekintse meg a szervezet aktív véglegesítéseinek számát.
  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.

Titkoskód-szkennelés 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: . Ha saját üzemeltetésű ügynököket használ, hozzáadhatja a változót is az enableAutomaticCodeQLInstall: true ügynök legújabb CodeQL-bitjeinek automatikus telepítéséhez.

Í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
      # If you're using a self-hosted agent to run CodeQL, use `enableAutomaticCodeQLInstall` to automatically use the latest CodeQL bits on your agent:
      enableAutomaticCodeQLInstall: true

#   Add your custom build steps here
# - Ensure that all code to be scanned is compiled (often using a `clean` command to ensure you're 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 vagy cpp, java, csharp swift egyéni buildelési lépések szükségesek.

Lekéréses kérelem széljegyzeteinek beállítása

A függőségek vizsgálata és a kódvizsgálat esetében a rendszer automatikusan konfigurálja a széljegyzeteket a lekéréses kérelmekhez, ahol a buildérvényesítési szabályzat a folyamat függőségvizsgálati és/vagy kódolvasási feladataira vonatkozik. A buildérvényesítési szabályzatok konfigurálásáról további információt a Buildérvényesítés című témakörben talál.

A lekéréses kérelmek ágaira vonatkozó riasztások feloldásáról további információt a lekéréses kérelmek függőségvizsgálati riasztásainak kezelése és a lekéréses kérelmek kódvizsgálati riasztásainak kezelése című témakörben talál.

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

Következő lépések