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 ve aşağıdaki özellikleri 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

Depolarınız için doğru koruma düzeyini etkinleştirme esnekliğiyle Gelişmiş Güvenlik korumasını kuruluşunuza getirebilirsiniz. Azure DevOps için GitHub Gelişmiş Güvenliği, Azure DevOps için GitHub Gizli Koruması ve Azure DevOps için GitHub Kod Güvenliği olarak kullanılabilir.

Gizli Koruma aşağıdaki özellikleri içerir:

  • Gizli sızıntıları gerçekleşmeden önce önlemek için anında bildirim koruması
  • Bildirimlerle mevcut maruz kalma durumlarını sorun haline gelmeden önce yakalamak için gizli tarama uyarıları
  • Kuruluşunuzun risk ve güvenlik koruması düzeyi hakkında içgörü sağlayan güvenliğe genel bakış

Kod Güvenliği aşağıdaki özellikleri içerir:

  • Açık kaynak bağımlılıklarındaki güvenlik açıklarını bulmak için bağımlılık uyarıları
  • Doğrudan kodunuzdaki güvenlik açıklarını algılamak için CodeQL taraması
  • Üçüncü taraf araçları için güvenlik bulguları
  • Kuruluşunuzun risk ve güvenlik koruması düzeyi hakkında içgörü sağlayan güvenliğe genel bakış

Azure DevOps için GitHub Gelişmiş Güvenliği yalnızca Azure DevOps Services ve özellikle kod Git depoları için kullanılabilir.

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

Önkoşullar

Kategori Gereksinimler
İzinler - Depoya yönelik tüm uyarıların özetini görüntülemek için: Katkıda Bulunan depo izinleri.
- Gelişmiş Güvenlik'te uyarıları kapatmak için: Proje yöneticisi izinleri.
- Gelişmiş Güvenlik izinlerini yönetmek için: Proje Koleksiyonu Yöneticileri grubunun bir üyesi olun veya Gelişmiş Güvenlik'e ait ayar izinleri , olarak Ayarla izininesahip olun.

Gelişmiş Güvenlik izinleri hakkında daha fazla bilgi için bkz. Gelişmiş Güvenlik izinlerini yönetme.

Ş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, bağımlılık tarama görevinin güvenlik açığı önerisi verilerini getirebilmesi için aşağıdaki URL'leri İzin Verilenler listenize ekleyin. Daha fazla bilgi için bkz. İzin verilen IP adresleri ve etki alanı URL'leri.

Etki alanı URL'si Açıklama
https://governance.dev.azure.com DevOps örneğine erişmek için dev.azure.com alan adını kullanan kuruluşlar için
https://dev.azure.com dev.azure.com etki alanını kullanan kuruluşların DevOps örneğine erişmesi için
https://advsec.dev.azure.com 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 8.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 araç önbelleğine yüklendiğinden emin olun. YAML işlem hatları için enableAutomaticCodeQLInstall: true değişkenini AdvancedSecurity-Codeql-Init@1 işlem hattı göreviyle kullanabilir veya klasik işlem hatları için Enable automatic CodeQL detection and installation onay kutusunu seçebilirsiniz. ** 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. Depolar>Depolar seçin.
  3. Gelişmiş Güvenlik'i etkinleştirmek istediğiniz depoyu seçin.
  4. Etkinleştir ve Faturalamayı başlat’ı seçerek Gelişmiş Güvenlik’i etkinleştirin. 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 uyum süreci

  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 aktif katkıda bulunanların 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 işe alım süreci

  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özükecek.
  4. Kuruluşunuzdaki her projedeki mevcut depolar için Gelişmiş Güvenlik'i etkinleştirmek üzere 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 taramayı kurulumunu yapma

"Gizli 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 itme korumasını etkinleştirebilir veya devre dışı bırakabilirsiniz.

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

Gizli tarama işlemi, seçilen depo için Gelişmiş Güvenlik etkinleştirildiğinde otomatik olarak başlatılır.

Bağımlılık taramayı ayarlama

Gizli Dizi Korumasını veya Kod Güvenliğini kuruluş, proje veya depo düzeyinde etkinleştirebilirsiniz.

Depo düzeyinde ekleme

  1. Azure DevOps projeniz için Proje ayarlarınıza gidin.
  2. Depolar>Depolar seçin.
  3. Gelişmiş Güvenlik'i etkinleştirmek istediğiniz depoyu seçin.
  4. Gizli Koruma veya Kod Güvenliği açın ya da kapatın.
  5. Faturalamayı Başlat'ı seçin. Artık depo görünümünde her iki ürünün de etkin olduğu depolar için bir kalkan simgesi görünür.
  6. İsteğe bağlı olarak bağımlılık tarama varsayılan kurulumunu etkinleştirmek için Seçenekler'i seçin ve Bağımlılık tarama varsayılan kurulumu onay kutusunu etkinleştirin.

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

Proje düzeyinde uyum süreci

  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 ürün başına etkin işleme sayısıyla ilgili bir tahmin görün.
  5. Gizlilik Koruması veya Kod Güvenliği ürünleri arasında geçiş yapın.
  6. Projenizdeki mevcut tüm depolar için Gizli Koruma ve/veya Kod Güvenliğini etkinleştirmek için Faturalamayı başlat seçin.
  7. İsteğe bağlı olarak, yeni oluşturulan depoların oluşturma sırasında Gizli Dizi Koruması veya Kod Güvenliği'nin etkinleştirilmesi için Gelişmiş Güvenliği yeni depolar için otomatik olarak etkinleştir seçeneğini değiştirin.

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

Kuruluş düzeyinde işe alım süreci

  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 ürün başına etkin işleyici sayısıyla ilgili bir tahmin görün.
  4. Gizlilik Koruması veya Kod Güvenliği ürünleri arasında geçiş yapın.
  5. Kuruluşunuzdaki her projedeki mevcut depolar için Gelişmiş Güvenlik'i etkinleştirmek üzere faturalamayı Başlat'ı seçin.
  6. İsteğe bağlı olarak, yeni oluşturulan tüm projelerde oluşturma sırasında Gizli Dizi Koruması veya Kod Güvenliği'nin etkinleştirilmesi için Yeni depolar için Gelişmiş Güvenliği otomatik olarak etkinleştir seçeneğini değiştirin.

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

Gizli taramayı kurulumunu yapma

Gizli Korumayı açtığınızda, gizli tarama anında iletimi koruma ve depo taraması otomatik olarak etkinleştirilir. Depo ayarları sayfasından gizli itme 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 Gizli Dizi Koruması etkinleştirildiğinde otomatik olarak başlatılır.

Bağımlılık taramayı ayarlama

Bağımlılık tarama özelliklerine erişmek için deponuzda Code Security ürününün etkinleştirilmesi gerekir.

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

İpucu

En doğru tarama sonuçları için, taramak istediğiniz kodu oluşturan bir işlem hattında derleme adımlarından veya paket geri yükleme adımından sonra bağımlılık tarama görevini ekleyin.

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 özelliklerine erişmek için deponuzda Code Security ürününün etkinleştirilmesi gerekir.

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

İpucu

Kod tarama daha yoğun bir derleme görevi olabileceğinden, kod tarama görevini ana üretim işlem hattınızın ayrı, kopyalanmış bir işlem hattına eklemenizi veya yeni bir işlem hattı oluşturmanızı öneririz.

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

  1. Gelişmiş Güvenlik CodeQL Başlatma (AdvancedSecurity-Codeql-Init@1)
  2. Özelleştirilmiş 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, görevde hangi dili analiz ettiğinizi Initialize CodeQL belirtin. Birden çok dili aynı anda çözümlemek için virgülle ayrılmış bir liste kullanabilirsiniz. Desteklenen diller şunlardır: csharp, cpp, go, java, javascript, python, ruby, swift. Kendi barındırdığınız aracıları kullanıyorsanız, aracınız için en son CodeQL bitlerini otomatik olarak yüklemek amacıyla enableAutomaticCodeQLInstall: true değişkenini de ekleyebilirsiniz.

İşte bir örnek başlangıç işlem hattı:

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ıdı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 cpp, java, csharp veya swift ise, özel derleme adımları gereklidir.

Pull isteği açıklamalarını ayarlama

Hem bağımlılık taraması hem de kod taraması için ek açıklamalar, işlem hattında yer alan bağımlılık tarama ve/veya kod tarama görevleriyle bir derleme doğrulama ilkesinin uygulandığı çekme istekleri için otomatik olarak yapılandırılır. Derleme doğrulama ilkelerini yapılandırma hakkında daha fazla bilgi için Derleme doğrulama bölümüne bakın.

Çekme isteği ek açıklamaları, kaynak (çekme isteği) dalınızı taramadan önce, varsayılan dalınızda ve hedef dalınızda bir Gelişmiş Güvenlik taraması yapılmasını da gerektirir. Çekme isteği dallarındaki uyarıları çözme hakkında daha fazla bilgi için bkz Çekme isteklerinde bağımlılık tarama uyarılarını yönetme ve Çekme isteklerinde kod tarama uyarılarını yönetme.

Gelişmiş Güvenlik'i devre dışı bırakmayı seçtiğinizde, tüm uyarılar ve uyarıların durumu, depoyu bir sonraki Gelişmiş Güvenlik etkinleştirişiniz için Gelişmiş Güvenlik sekmesinde saklanır.