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ü çalıştırın. Aralık 2025 itibarıyla bu hala .NET 8.x'tir. 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. Bu, ürünü yalnızca mevcut depolar için etkinleştirir.
  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 depolar için Gelişmiş Güvenliği otomatik olarak etkinleştir'i seçerek gelecekte yeni oluşturulan tüm depoların oluşturma sırasında Gelişmiş Güvenlik'i etkinleştirmesini sağlayabilirsiniz. Bu ayar , Tümünü etkinleştir eyleminden ayrıdır ve bağımsız olarak seçilmelidir.

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. Bu, ürünü yalnızca mevcut depolar için etkinleştirir.
  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 projeler için Gelişmiş Güvenliği otomatik olarak etkinleştir'i seçerek gelecekte yeni oluşturulan tüm projelerde oluşturma sırasında Gelişmiş Güvenlik'in etkinleştirilmesini sağlayabilirsiniz. Bu ayar , Tümünü etkinleştir eyleminden ayrıdır ve bağımsız olarak seçilmelidir.

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. Bu, yalnızca mevcut depolar için seçilen ürünü etkinleştirir.
  5. İstediğiniz Gizlilik Koruması veya Kod Güvenliği ürünlerini ve ilişkili tüm alt özelliklerini açın/kapatı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, gelecekte yeni oluşturulan tüm depolarda 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üvenlik'i otomatik olarak etkinleştir seçeneğini değiştirin. Bu ayar , Tümünü etkinleştir eyleminden ayrıdır ve bağımsız olarak seçilmelidir.

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. Bu, yalnızca mevcut depolar için seçilen ürünü etkinleştirir.
  4. İstediğiniz Gizlilik Koruması veya Kod Güvenliği ürünlerini ve bunlara bağlı tüm alt özellikleri etkinleştirin veya devre dışı bırakı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, gelecekte yeni oluşturulan tüm projelerde oluşturma sırasında Gizli Dizi Koruması veya Kod Güvenliği'nin etkinleştirilmesi için Gelişmiş Güvenliği yeni projeler için otomatik olarak etkinleştir seçeneğini değiştirin. Bu ayar , Tümünü etkinleştir eyleminden ayrıdır ve bağımsız olarak seçilmelidir.

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. Varsayılan dalınızı taramak için depo ayarları sayfasından "Güvenlik açığı olan bağımlılıkları tara" ayarını kullanabilirsiniz. Bu, bağımlılık tarama görevini otomatik olarak varsayılan dalınızı hedefleyen herhangi bir işlem hattına veya varsayılan dalınızı hedefleyen herhangi bir çekme isteği derlemesine dahil eder.

Daha gelişmiş kurulum için veya tüm dalları taramak istiyorsanız, bağımlılık tarama görevini taranmasını istediğiniz tüm işlem hatlarına eklemenizi öneririz. Diğer ayrıntılar için bkz. Azure DevOps için GitHub Gelişmiş Güvenliği için bağımlılık taraması .

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

Ayrıca, görevde hangi dili analiz ettiğinizi Initialize CodeQL belirtin. Belirtilen dil ise swift, özel derleme adımları gereklidir.

İpucu

  • 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 .

Kendi barındırdığınız bir aracıda çalıştırıyorsanız ve en son CodeQL paketini aracı araç önbelleğinize manuel olarak yüklemediyseniz, aracınızdaki en son CodeQL parçalarını otomatik olarak kullanmak için Enable automatic CodeQL detection and installation öğesini seçin.

Uyarı oluşturmak için, kod tarama görevlerini içeren bir işlem hattıyla ilk taramanızı çalıştırın.

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.