Aracılığıyla paylaş


Azure DevOps Services için GitHub Advanced Security yapılandırma

Azure DevOps için GitHub Advanced Security, GitHub Advanced Security'nin güvenlik özellikleri paketini Azure Repos'a ekler.

Azure için GitHub Advanced Security şunları içerir:

  • Gizli Dizi Tarama anında iletme koruması: Kod gönderimlerinin kimlik bilgileri gibi gizli dizileri kullanıma sunan işlemeler içerip içermediğini denetleyin
  • Gizli Dizi Tarama depo tarama: Deponuzu tarayın ve yanlışlıkla işlenen açığa çıkarılmış gizli dizileri arayın
  • Bağımlılık Tarama – açık kaynak bağımlılıklarında bilinen güvenlik açıklarını arayın (doğrudan ve geçişli)
  • Kod Tarama – SQL ekleme ve kimlik doğrulaması atlama gibi kod düzeyi uygulama güvenlik açıklarını belirlemek için CodeQL statik analiz altyapısını kullanın

Şu anda, Azure DevOps için GitHub Advanced Security yalnızca Azure DevOps Services için kullanılabilir ve bu ürünü Azure DevOps Server'a getirme planı yoktur.

Azure DevOps için GitHub Advanced Security, Azure Repos ile çalışır. GitHub depolarıyla GitHub Gelişmiş Güvenlik'i kullanmak istiyorsanız bkz . GitHub Gelişmiş Güvenlik.

Önkoşullar

Proje Koleksiyonu Yöneticileri grubunun üyesi olarak ayrılmış izinleriniz olmalıdır. Proje Koleksiyonu Yöneticileri grubuna üye eklemek veya proje koleksiyonu düzeyi iznini değiştirmek için bkz. Proje koleksiyonu düzeyi izinlerini değiştirme.

Şirket içinde barındırılan aracılar için ek önkoşullar

Kuruluşunuzda şirket içinde barındırılan aracılar kullanılıyorsa daha fazla gereksinim vardır:

  • Bağımlılık tarama görevinin güvenlik açığı önerisi verilerini getirmesine izin vermek için bu URL'leri İzin Verilenler listenize ekleyin. İzin verilen IP adresleri ve etki alanı URL'leri hakkında daha fazla bilgi edinin.
Etki alanı URL'si Açıklama
https://governance.dev.azure.com/{organization_name} dev.azure.com etki alanını kullanan kuruluşların DevOps örneğine erişmesi için
https://dev.azure.com/{organization_name} dev.azure.com etki alanını kullanan kuruluşların DevOps örneğine erişmesi için
https://advsec.dev.azure.com/{organization_name} dev.azure.com etki alanını kullanan kuruluşların DevOps örneğine erişmesi için
https://{organization_name}.governance.visualstudio.com/ DevOps örneğine erişmek için {organization_name}.visualstudio.com etki alanını kullanan kuruluşlar için
https://{organization_name}.visualstudio.com  DevOps örneğine erişmek için {organization_name}.visualstudio.com etki alanını kullanan kuruluşlar için
https://{organization_name}.advsec.visualstudio.com/ DevOps örneğine erişmek için {organization_name}.visualstudio.com etki alanını kullanan kuruluşlar için
  • .NET çalışma zamanının uyumlu bir sürümünü (şu anda .NET 6.0.x) çalıştırın. Aracıda uyumlu bir sürüm yoksa bağımlılık tarama derleme görevi, .NET indirir.

  • CodeQL paketinin aracınızdaki aracı aracı aracı önbelleğine yüklendiğinden emin olun. değişkenini enableAutomaticCodeQLInstall: true YAML işlem hatları için işlem hattı göreviyle Advanced-Security-CodeQL@1 kullanabilir veya klasik işlem hatlarının onay kutusunu seçebilirsiniz Enable automatic CodeQL detection and installation . Alternatif olarak, el ile yükleme yönergeleri için bkz . Azure DevOps için GitHub Gelişmiş Güvenliği için kod tarama.

GitHub Gelişmiş Güvenliğini Etkinleştirme

Gelişmiş Güvenliği kuruluş, proje veya depo düzeyinde etkinleştirebilirsiniz. Tarama araçlarının ve sonuçlarının her birine erişmek için önce Gelişmiş Güvenlik'i etkinleştirmeniz gerekir. Gelişmiş Güvenlik'i etkinleştirdikten sonra, bu ilkenin etkinleştirildiği bir depoya gizli diziler içeren gelecek tüm gönderimler engellenir ve depo gizli dizi taraması arka planda gerçekleşir.

Depo düzeyinde ekleme

  1. Azure DevOps projeniz için Proje ayarlarınıza gidin.
  2. Depo>Depoları'nı seçin.
  3. Gelişmiş Güvenlik'i etkinleştirmek istediğiniz depoyu seçin.
  4. Gelişmiş Güvenlik'i etkinleştirmek için Etkinleştir ve Faturalamayı başlat'ı seçin. Gelişmiş Güvenlik'in etkinleştirildiği tüm depolar için depo görünümünde artık bir kalkan simgesi görünür.

GitHub Gelişmiş Güvenliği'nin etkinleştirilmesinin ekran görüntüsü.

Proje düzeyinde ekleme

  1. Azure DevOps projeniz için Proje ayarlarınıza gidin.
  2. Depolar'ı seçin.
  3. Ayarlar sekmesini seçin.
  4. Tümünü etkinleştir'i seçin ve projeniz için etkin işleme sayısıyla ilgili bir tahmin görün.
  5. Projenizdeki mevcut tüm depolar için Gelişmiş Güvenlik'i etkinleştirmek için Faturalamayı başlat'ı seçin.
  6. İsteğe bağlı olarak, yeni oluşturulan tüm depoların oluşturulduktan sonra Gelişmiş Güvenlik'i etkinleştirmesi için Yeni depolar için Gelişmiş Güvenliği otomatik olarak etkinleştir'i seçin.

Gelişmiş Güvenlik için proje düzeyinde etkinleştirmenin ekran görüntüsü.

Kuruluş düzeyinde ekleme

  1. Azure DevOps kuruluşunuz için Kuruluş ayarlarınıza gidin.
  2. Depolar'ı seçin.
  3. Tümünü etkinleştir'i seçin ve kuruluşunuz için etkin işleyici sayısıyla ilgili bir tahmin görün.
  4. Kuruluşunuzdaki her projedeki mevcut depolar için Gelişmiş Güvenlik'i etkinleştirmek için Faturalamayı başlat'ı seçin.
  5. İsteğe bağlı olarak, yeni oluşturulan tüm projelerde oluşturma sırasında Gelişmiş Güvenlik'in etkinleştirilmesi için Yeni depolar için Gelişmiş Güvenliği otomatik olarak etkinleştir'i seçin.

Gelişmiş Güvenlik için kuruluş düzeyinde etkinleştirmenin ekran görüntüsü.

Gizli dizi taramayı ayarlama

Gizli dizi tarama anında iletme koruması ve depo taraması, Gelişmiş Güvenlik'i açtığınızda otomatik olarak etkinleştirilir. Depo ayarları sayfasından gizli dizi anında iletme korumasını etkinleştirebilir veya devre dışı bırakabilirsiniz.

Anında iletme korumasını etkinleştirme işleminin ekran görüntüsü.

Belirtildiği gibi gizli dizi tarama deposu taraması, seçilen bir depo için Gelişmiş Güvenlik etkinleştirildiğinde otomatik olarak başlatılır.

Bağımlılık taramayı ayarlama

Bağımlılık taraması, işlem hattı tabanlı bir tarama aracıdır. Sonuçlar depo başına toplanır. Taramak istediğiniz tüm işlem hatlarına bağımlılık tarama görevini eklemeniz önerilir.

İpucu

En doğru tarama sonuçları için, taramak istediğiniz kodu oluşturan bir işlem hattının derleme adımlarını ve/veya paket geri yükleme adımını izleyerek bağımlılık tarama görevini eklediğinizden emin olun.

Gelişmiş Güvenlik Bağımlılığı Tarama görevini (AdvancedSecurity-Dependency-Scanning@1) doğrudan YAML işlem hattı dosyanıza ekleyin veya görev yardımcısından Gelişmiş Güvenlik Bağımlılığı Tarama görevini seçin.

YAML için bağımlılık tarama işlem hattı kurulumunun ekran görüntüsü.

Kod taramayı ayarlama

Kod tarama, sonuçların depo başına toplandığı işlem hattı tabanlı bir tarama aracıdır.

İpucu

Kod tarama görevini ana üretim işlem hattınızın ayrı, kopyalanmış bir işlem hattına eklemeniz veya yeni bir işlem hattı oluşturmanız önerilir. Bunun nedeni, kod taramanın daha yoğun zaman alan bir derleme görevi olmasıdır.

Görevleri aşağıdaki sırayla ekleyin:

  1. Gelişmiş Güvenlik Kod BaşlatmaQL (AdvancedSecurity-Codeql-Init@1)
  2. Özel derleme adımlarınız
  3. Gelişmiş Güvenlik CodeQL Çözümlemesi Gerçekleştirme (AdvancedSecurity-Codeql-Analyze@1)

YAML için kod tarama işlem hattı kurulumunun ekran görüntüsü.

Ayrıca, CodeQL'i Başlatma görevinde hangi dilleri çözümlediğiniz belirtmeniz gerekir. Virgülle ayrılmış bir liste, aynı anda birden çok dili analiz etmek için kullanılabilir. Desteklenen diller şunlardır: csharp, cpp, go, java, javascript, python, ruby, swift. Şirket içinde barındırılan aracıları kullanıyorsanız, aracınız için en son CodeQL bitlerini otomatik olarak yüklemek için değişkenini de ekleyebilirsiniz enableAutomaticCodeQLInstall: true .

Örnek bir başlangıç işlem hattı aşağıda verilmiştir:

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

İpucu

Kotlin/Swift için CodeQL analizi şu anda beta aşamasındadır. Beta sırasında bu dillerin analizi, diğerlerinin CodeQL analizinden daha az kapsamlı olacaktır. Java, Kotlin veya her ikisinde yazılmış kodu analiz etmek için kullanın java . JavaScript, TypeScript veya her ikisinde yazılmış kodu analiz etmek için kullanın javascript .

Belirtilen dil veya cpp, java, csharp swift özel derleme adımları gerekliyse.

Herhangi bir nedenle Gelişmiş Güvenlik'i devre dışı bırakmanız gerekiyorsa, deponuz için Gelişmiş Güvenlik'i bir sonraki etkinleştirişinizde tüm uyarılar ve uyarıların durumu korunur.

Sonraki adımlar