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
aAdvanced-Security-CodeQL@1
YAML-folyamatok folyamatfeladatával, vagy bejelölheti aEnable 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
- Nyissa meg az Azure DevOps-projekt projektbeállításait .
- Válassza az Adattárak> lehetőséget.
- Válassza ki azt az adattárat, amelyhez engedélyezni szeretné az Advanced Securityt.
- 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.
Projektszintű előkészítés
- Nyissa meg az Azure DevOps-projekt projektbeállításait .
- Válassza az Adattárak lehetőséget.
- Válassza a Settings (Beállítások) fület.
- 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.
- 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.
- 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.
Szervezeti szintű előkészítés
- Nyissa meg az Azure DevOps-szervezet szervezeti beállításait .
- Válassza az Adattárak elemet.
- Válassza az Összes engedélyezése lehetőséget, és tekintse meg a szervezet aktív véglegesítéseinek számát.
- 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.
- 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.
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ó.
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ó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:
- Advanced Security Initialize CodeQL (AdvancedSecurity-Codeql-Init@1)
- Az egyéni buildelési lépések
- Advanced Security – CodeQL-elemzés végrehajtása (AdvancedSecurity-Codeql-Analyze@1)
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
- Kódolvasási riasztások az Azure DevOps GitHub Advanced Security szolgáltatásához
- Függőségvizsgálati riasztások az Azure DevOps GitHub Advanced Security szolgáltatásához
- Titkos kulcskeresési riasztások az Azure DevOps GitHub Advanced Security szolgáltatásához
- Az Azure DevOps GitHub Advanced Securityre vonatkozó engedélyei
- A GitHub Advanced Security számlázása az Azure DevOpshoz