GitHub ve Azure DevOps'ta çekme isteği ek açıklamalarını etkinleştirme

DevOps güvenliği, çekme isteklerinde (PR) ek açıklama olarak güvenlik bulgularını kullanıma sunar. Güvenlik işleçleri Bulut için Microsoft Defender çekme isteği ek açıklamalarını etkinleştirebilir. Kullanıma sunulan tüm sorunlar geliştiriciler tarafından düzeltilebilir. 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 işleçleri Bulut için Microsoft Defender çözümlenmemiş bulguları görebilir.

Bulut için Microsoft Defender ile Azure DevOps'ta çekme isteği ek açıklamalarını yapılandırabilirsiniz. GitHub Gelişmiş Güvenlik müşterisiyseniz GitHub'da çekme isteği ek açıklamaları alabilirsiniz.

Çekme isteği ek 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.

Ek açıklamalar, depoya erişimi olan bir kullanıcı tarafından eklenebilir ve değişiklik önermek, soru sormak veya kodla ilgili geri bildirim sağlamak için kullanılabilir. 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.

Önkoşullar

GitHub için:

Azure DevOps için:

GitHub'da çekme isteği ek açıklamalarını etkinleştirme

Geliştiricileriniz GitHub'da çekme isteği ek açıklamalarını etkinleştirerek doğrudan ana dala çekme isteği oluşturduklarında güvenlik sorunlarını görme olanağına sahip olur.

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

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

  2. Bulut için Defender 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. Önkoşullarda oluşturulan msdevopssec.yml 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"]
    

    Örnek bir depo da görüntüleyebilirsiniz.

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

  7. Start commit (İşlemeye başla) öğesini seçin.

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

    Tarayıcı tarafından bulunan 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 isteği ek açıklamalarını etkinleştirme

Azure DevOps'ta çekme isteği ek açıklamalarını etkinleştiren geliştiricileriniz, doğrudan ana dala PR'ler oluştururken güvenlik sorunlarını görme olanağı elde eder.

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

Çekme isteği ek açıklamalarını etkinleştirebilmeniz için önce ana dalınızın CI Derlemesi için Derleme Doğrulama ilkesini etkinleştirmiş 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ı'na gidin.

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

  3. Çekme isteklerini etkinleştirmek için depoyu seçin.

  4. İlkeler'i seçin.

  5. Dal İlkeleri>Ana dalı'na gidin.

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

  6. Derleme Doğrulama bölümünü bulun.

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

    CI Derlemesi iki durumlu düğmesinin bulunduğu yeri gösteren ekran görüntüsü.

  8. Kaydet'i 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 ek açıklamalarını etkinleştirme

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

  1. Azure Portal’ında oturum açın.

  2. Bulut için Defender> DevOps güvenliğine 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 ek açıklamalarını Açık olarak değiştirin.

    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.

    Not

    Şu anda yalnızca Kod Olarak Altyapı yanlış yapılandırmaları (ARM, Bicep, Terraform, CloudFormation, Dockerfiles, Helm Grafikleri ve daha fazlası) desteklenmektedir.

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

  8. Kaydet'i seçin.

Çekme isteklerinizdeki tüm ek açıklamalar, yapılandırmalarınıza göre bundan sonra görüntülenecektir.

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

Bunu, Microsoft'un kullanıma sunduğu Azure DevOps Kaynak API'sini Güncelleştir'i çağırarak program aracılığıyla yapabilirsiniz. Güvenlik Kaynağı Sağlayıcısı.

API Bilgileri:

Http Yöntemi: PATCH URL'leri:

  • 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: Çekme İsteği Ek Açıklama Yapılandırma Seçeneklerinin Durumu: Etkin | Sakat

<Category>Açıklama: Çekme isteklerinde ek açıklama eklenecek 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: Çekme isteği ek açıklamaları oluşturulurken dikkate alınması gereken bir bulmanın 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ş güncelleştirme:

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ını kullanarak Azure DevOps Projesi'nin IaC kategorisi için en düşük önem derecesi Yüksek olan ÇEKME ek açıklamalarını etkinleştirme örneği.

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.