GitHub ve Azure DevOps'ta pull request açıklamalarını etkinleştirme

DevOps güvenliği, güvenlik bulgularını Pull Request'lerde (PR) açıklamalar olarak gösterir. Güvenlik işleçleri, Microsoft Defender for Cloud'da PR ek açıklamalarını etkinleştirebilir. Ortaya çıkarılan sorunlar geliştiriciler tarafından giderilebilir. Bu işlem, olası güvenlik açıklarını ve yanlış yapılandırmaları üretim aşamasına girmeden önce önleyebilir ve düzeltebilir. DevOps güvenliği, dosyanın tamamında algılanan tüm güvenlik açıkları yerine çekme isteği sırasında ortaya çıkarılan farklar içindeki güvenlik açıklarına açıklama ekler. Geliştiriciler, kaynak kodu yönetim sistemlerinde ek açıklamaları görebilir ve güvenlik operatörleri Microsoft Defender for Cloud’da çözümlenmemiş bulguları görebilir.

Microsoft Defender for Cloud ile Azure DevOps'ta PR açıklamalarını yapılandırabilirsiniz. GitHub Gelişmiş Güvenlik müşterisiyseniz GitHub'da PR açıklamaları alabilirsiniz.

Note

Birleştirme isteği ek açıklamaları, GitLab'da çekme isteği ek açıklamaları olarak da bilinir, ancak Defender for Cloud DevOps'a bağlı GitLab projelerinde desteklenmez.

Bulut için Defender, tüm bağlı GitLab depoları için güvenlik bulguları sunar. Ancak GitLab birleştirme istekleri bu bulguları satır içi ek açıklamalar olarak göstermez.

GitHub Gelişmiş Güvenlik'i etkinleştirdiğinizde, GitHub çekme isteği ek açıklamalarını destekler.

Pull request açıklamaları nedir?

Çekme isteği ek açıklamaları, GitHub veya Azure DevOps'ta bir çekme isteğine eklenen açıklamalardır. Bu ek açıklamalar, yapılan kod değişiklikleri ve çekme isteğinde tanımlanan güvenlik sorunları hakkında geri bildirim sağlar ve gözden geçirenlerin yapılan değişiklikleri anlamasına yardımcı olur.

Depoya erişimi olan kullanıcılar, değişiklik önermek, soru sormak veya kod hakkında geri bildirim sağlamak için ek açıklamalar ekleyebilir. Ek açıklamalar, kod ana dal ile birleştirilmeden önce düzeltilmesi gereken sorunları ve hataları izlemek için de kullanılabilir. Bulut için Defender'daki DevOps güvenliği, güvenlik bulgularını ortaya çıkarabilmek için ek açıklamaları kullanır.

Prerequisites

GitHub için:

Azure DevOps için:

GitHub'da pull request açıklamalarını etkinleştirin

GitHub'da çekme isteği ek açıklamalarını etkinleştirdiğinizde, geliştiricileriniz ana dala doğrudan bir çekme isteği açtıklarında güvenlik sorunlarını görebilir.

GitHub'da çekme isteği ek açıklamalarını etkinleştirmek için:

  1. GitHub'a gidin ve oturum açın.

  2. Defender for Cloud’a eklediğiniz bir depo seçin.

  3. .github/iş akışları'na Your repository's home page>gidin.

    GitHub iş akışı klasörünü seçmek için nereye gidileceği gösteren ekran görüntüsü.

  4. prerequisites bölümünde oluşturulan msdevopssec.yml dosyasını seçin.

    msdevopssec.yml dosyasını seçmek için ekranın neresinde olduğunuzu gösteren ekran görüntüsü.

  5. Düzenle'yi seçin.

    Düzenle düğmesinin nasıl göründüğünü gösteren ekran görüntüsü.

  6. Tetikleyici bölümünü bulun ve şunları içerecek şekilde güncelleştirin:

    # Triggers the workflow on push or pull request events but only for the main branch
    pull_request:
      branches: ["main"]
    

    Ayrıca bir örnek depo görüntüleyebilirsiniz.

    (İsteğe bağlı) Tetikleme bölümünün altına dal(lar)ı girerek bunu hangi dal(lar) üzerinde çalıştırmak istediğinizi seçebilirsiniz. Tüm dalları eklemek istiyorsanız, dal listesiyle satırları kaldırın. 

  7. İşlemeyi başlat'ı seçin.

  8. Değişiklikleri işle'yi seçin.

    Tarayıcı tarafından tespit edilen tüm sorunlar, çekme isteğinizin Dosyalar değiştirildi bölümünde görüntülenebilir.

    • Testlerde kullanılır - Uyarı üretim kodunda değil.

Azure DevOps'ta çekme talebi ek açıklamalarını etkinleştirme

Azure DevOps'ta pull request ek açıklamalarını etkinleştirerek, geliştiricileriniz ana dala doğrudan PR oluşturduklarında güvenlik sorunlarını görebilir.

CI Derlemesi için Derleme Doğrulama ilkesini etkinleştirin

Çekme isteği ek açıklamalarını etkinleştirebilmeniz için, önce ana dalınızda CI Derlemesi için Derleme Doğrulama ilkesinin etkinleştirilmiş olması gerekir.

CI Derlemesi için Derleme Doğrulama ilkesini etkinleştirmek için:

  1. Azure DevOps projenizde oturum açın.

  2. Proje ayarları>Depolar bölümüne gidin.

    Depoları seçmek için nereye gidileceğinizi gösteren ekran görüntüsü.

  3. Çekme isteklerini etkinleştireceğiniz depoyu seçin.

  4. Politikalar'ı seçin.

  5. Dal İlkeleri>Ana dal öğesine gidin.

    Dal ilkelerinin nerede bulunacağını gösteren ekran görüntüsü.

  6. Build Validation bölümünü bulun.

  7. Deponuz için derleme doğrulamasının Açık olarak ayarlandığından emin olun.

    CI Derlemesi geçiş düğmesinin yerini gösteren ekran görüntüsü.

  8. Kaydetseçeneğini seçin.

    Derleme doğrulamasını gösteren ekran görüntüsü.

Bu adımları tamamladıktan sonra, daha önce oluşturduğunuz derleme işlem hattını seçebilir ve ayarlarını gereksinimlerinize uyacak şekilde özelleştirebilirsiniz.

Çekme isteği açıklamalarını etkinleştir

Azure DevOps'ta çekme isteği ek açıklamalarını etkinleştirmek için:

  1. Azure portalınaoturum açın.

  2. Defender for Cloud>DevOps security bölümüne gidin.

  3. Çekme isteği ek açıklamalarını etkinleştirmek için tüm ilgili depoları seçin.

  4. Kaynakları yönet'i seçin.

    Kaynakları yönetmeyi gösteren ekran görüntüsü.

  5. Çekme isteği açıklamalarını Açık olarak ayarlayın.

    Geçiş düğmesinin açık olduğunu gösteren ekran görüntüsü.

  6. (İsteğe bağlı) Açılan menüden bir kategori seçin.

    Note

    Şu anda yalnızca Kod Olarak Altyapı (ARM, Bicep, Terraform, CloudFormation, Dockerfiles, Helm chart’ları ve daha fazlası) yapılandırma hatası sonuçları desteklenmektedir.

  7. (İsteğe bağlı) Açılan menüden bir önem düzeyi seçin.

  8. Kaydetseçeneğini seçin.

Pull request’lerinizdeki tüm açıklamalar, bundan sonra yapılandırmalarınıza göre görüntülenecektir.

Azure DevOps'ta Projelerim ve Kuruluşlarım için çekme isteği açıklamalarını etkinleştirmek için:

Bunu, Microsoft tarafından sunulan Update Azure DevOps Resource API'sini çağırarak programlı olarak yapabilirsiniz. Güvenlik Kaynağı Sağlayıcısı.

API Bilgileri:

HTTP Yöntemi: PATCH URL’ler:

  • Azure DevOps Proje Güncelleştirmesi: https://management.azure.com/subscriptions/<subId>/resourcegroups/<resourceGroupName>/providers/Microsoft.Security/securityConnectors/<connectorName>/devops/default/azureDevOpsOrgs/<adoOrgName>/projects/<adoProjectName>?api-version=2023-09-01-preview
  • Azure DevOps Kuruluş Güncelleştirmesi]: https://management.azure.com/subscriptions/<subId>/resourcegroups/<resourceGroupName>/providers/Microsoft.Security/securityConnectors/<connectorName>/devops/default/azureDevOpsOrgs/<adoOrgName>?api-version=2023-09-01-preview

İstek Gövdesi:

{
   "properties": {
"actionableRemediation": {
              "state": <ActionableRemediationState>,
              "categoryConfigurations":[
                    {"category": <Category>,"minimumSeverityLevel": <Severity>}
               ]
           }
    }
}

Parametreler / Kullanılabilir Seçenekler

<ActionableRemediationState> Açıklama: PR Açıklama Yapılandırması Seçeneklerinin Durumu: Etkin | Devre Dışı

<Category> Açıklama: Çekme isteklerine açıklama ekleyen Bulgular kategorisi. Seçenekler: IaC | Kod | Yapıtlar | Bağımlılıklar | Kapsayıcılar Not: Şu anda yalnızca IaC desteklenmektedir

<Severity> Açıklama: PR açıklamaları oluşturulurken dikkate alınan bir bulgunun en düşük önem derecesi. Seçenekler: Yüksek | Orta | Alçak

Az cli aracını kullanarak Azure DevOps Org'un IaC kategorisi için en düşük önem derecesi Orta olan ÇEKME ek açıklamalarını etkinleştirme örneği.

Kuruluşu güncelleştir:

az --method patch --uri https://management.azure.com/subscriptions/4383331f-878a-426f-822d-530fb00e440e/resourcegroups/myrg/providers/Microsoft.Security/securityConnectors/myconnector/devops/default/azureDevOpsOrgs/testOrg?api-version=2023-09-01-preview --body "{'properties':{'actionableRemediation':{'state':'Enabled','categoryConfigurations':[{'category':'IaC','minimumSeverityLevel':'Medium'}]}}}

az CLI aracı kullanılarak, Azure DevOps Projesi'nde IaC kategorisi için asgari önem derecesi Yüksek olacak şekilde PR ek açıklamalarının etkinleştirilmesine ilişkin örnek.

Projeyi Güncelleştir:

az --method patch --uri https://management.azure.com/subscriptions/4383331f-878a-426f-822d-530fb00e440e/resourcegroups/myrg/providers/Microsoft.Security/securityConnectors/myconnector/devops/default/azureDevOpsOrgs/testOrg/projects/testProject?api-version=2023-09-01-preview --body "{'properties':{'actionableRemediation':{'state':'Enabled','categoryConfigurations':[{'category':'IaC','minimumSeverityLevel':'High'}]}}}"

Daha fazla bilgi edinin

Sonraki Adımlar

Şimdi DevOps güvenliği hakkında daha fazla bilgi edinin.