Aracısız kod taramayı yapılandırma (Önizleme)

Bulut için Microsoft Defender'da aracısız kod taraması, Azure DevOps ve GitHub'daki tüm depolar için hızlı ve ölçeklenebilir güvenlik kapsamı sunar. Güvenlik açıklarını ve yanlış yapılandırmaları belirlemek için kodu, açık kaynak bağımlılıklarını ve kod olarak altyapıyı (IaC) otomatik olarak tarar. Derleme veya dağıtım işlem hatlarını değiştirmeniz gerekmez. Bu yaklaşım, tek bir Azure DevOps veya GitHub bağlayıcısı ile kurulum ve bakımı basitleştirir ve geniş kapsamlı, sürekli içgörüler ve eyleme dönüştürülebilir güvenlik bulguları sağlar. Güvenlik ve geliştirme ekiplerinin geliştirme iş akışlarını kesintiye uğratmadan riskleri düzeltmeye odaklanmasını sağlar.

Hangi tarayıcıların çalıştırılacağını özelleştirebilir ve tam olarak hangi kuruluşları, projeleri veya depoları taramaya dahil etmek veya taramanın dışında tutmak istediğinizi tanımlayabilirsiniz.

Prerequisites

Aracısız kod taramasını etkinleştirmeden önce aşağıdaki gereksinimleri karşıladığınızdan emin olun:

Roller ve izinler:

  • Bağlayıcıyı ayarlamak ve yapılandırmak için:

    • Proje Koleksiyonu Yöneticisi: İlk kurulumu gerçekleştirmek için Azure DevOps'ta gereklidir.
    • Abonelik Katkı Sağlayıcı: Bağlayıcıyı oluşturmak ve yapılandırmak için Azure aboneliğinde gereklidir.
  • Güvenlik sonuçlarını görüntülemek için:

    • Güvenlik Yöneticisi: Güvenlik ayarlarını, ilkeleri ve uyarıları yönetebilir ancak bağlayıcıyı değiştiremez.
    • Güvenlik Okuyucusu: Önerileri, uyarıları ve ilkeleri görüntüleyebilir ancak değişiklik yapamaz.

Temel avantajlar

Microsoft Defender for Cloud'de aracısız kod taraması aşağıdaki avantajları sağlar:

  • Proaktif risk yönetimi: Geliştirme sürecinin erken aşamalarında riskleri belirleyin. Bu, güvenli kodlama uygulamaları sağlar ve güvenlik açıklarını üretime ulaşmadan önce azaltır. 
  • Zahmetsiz ekleme: Minimum yapılandırmayla ve işlem hattı değişiklikleri olmadan hızlı bir şekilde ayarlayın. 
  • Kurumsal ölçekli, merkezi yönetim: Tek bir bağlayıcı kullanarak birden çok depoda kodu otomatik olarak tarayın. Bu, büyük ortamlar için kapsamlı kapsam sunar. 
  • Hızlı düzeltme için hızlı içgörüler: Eklemeden hemen sonra eyleme dönüştürülebilir güvenlik açığı içgörüleri alın. Bu, hızlı düzeltmelere olanak tanır ve pozlama süresini azaltır. 
  • Geliştirici dostu ve sorunsuz: Değişiklik veya doğrudan geliştirici katılımı gerekmeden sürekli tümleştirme ve sürekli dağıtım (CI/CD) işlem hatlarından bağımsız olarak çalışın. Bu, geliştirici üretkenliğini veya iş akışlarını kesintiye uğratmadan sürekli güvenlik izlemesine olanak tanır.
  • Esnek kapsam ve denetim: Hangi tarayıcıların çalıştırılıp taranacaklarını seçin. Varsayılan olarak her şeyi kapsayabileceğiniz gibi, belirli kuruluşları, projeleri veya depoları dahil etmek veya hariç tutmak için ayarları özelleştirebilirsiniz. Bu, ek karmaşıklık olmadan güvenlik kapsamını risk profilinizle ve operasyonel gereksinimlerinizle eşleştirmenizi sağlar.
  • Yazılım Malzeme Listesi (SBOM) oluşturma: Her taramada otomatik olarak bir SBOM oluşturmak, ekiplere depolarındaki bağımlılıkların ve sürümlerin hassas, sorgulanabilir bir envanterini ek iş akışı değişiklikleri olmadan sağlar. Bu, hızlı etki analizi, yeni açıklanan güvenlik açıklarına daha hızlı yanıt verme ve belirli paketlere veya sürümlere maruz kalma durumunu değerlendirirken güvenli karar alma olanağı sağlar.

Risk algılama özellikleri

Aracısız kod tarama; uygulama kodu, kod olarak altyapı (IaC) şablonları ve üçüncü taraf bağımlılıkları arasında hedeflenen, eyleme dönüştürülebilir öneriler sunarak güvenliği artırır. Bu, bağlayıcı aracılığıyla sağlanan bulut güvenliği duruş yönetimi güvenlik önerilerine ek olarak sağlanır. Anahtar algılama özellikleri şunlardır:

  • Kod güvenlik açıkları: Birden çok programlama dilinde yaygın kodlama hatalarını, güvenli olmayan kodlama uygulamalarını ve bilinen güvenlik açıklarını bulun.
  • Kod Olarak Altyapı yanlış yapılandırmaları: Güvenli olmayan dağıtımlara yol açabilecek IaC şablonlarındaki güvenlik yanlış yapılandırmalarını algılama.
  • Bağımlılık güvenlik açıkları: Depolarda bulunan açık kaynak paketlerde ve işletim sistemi paketlerinde bilinen güvenlik açıklarını belirleyin.
  • Yazılım Malzeme Listesi (SBOM):Her depo için otomatik olarak kapsamlı, sorgulanabilir bağımlılık envanteri ve bunların sürümleri oluşturun.

Bağlayıcının oluşturulması, depolar, işlem hatları ve hizmet bağlantıları için temel bulut güvenliği duruş yönetimi önerileri sağlayarak güvenliği artırır.

Tarama araçları

Aracısız kod tarama, kod ve kod olarak altyapı (IaC) şablonlarındaki güvenlik açıklarını ve yanlış yapılandırmaları bulmak için açık kaynak araçları kullanır:

Tool Desteklenen IaC/Diller Lisans
Şablon Çözümleyicisi ARM IaC şablonları, Bicep IaC şablonları MIT
Checkov Terraform IaC şablonları, Terraform plan dosyaları, AWS CloudFormation şablonları, Kubernetes bildirim dosyaları, Helm grafik dosyaları, Dockerfiles, Azure Resource Manager (ARM) IaC şablonları, Azure Bicep IaC şablonları, AWS SAM şablonları (Sunucusuz Uygulama Modeli), Kustomize dosyaları, Sunucusuz çerçeve şablonları, OpenAPI belirtim dosyaları Apache 2.0
Haydut Python Apache 2.0
ESLint JavaScript, TypeScript, JSX, TSX MIT
Trivy Depo bildirimlerinden ve kilit dosyalarından (dosya sistemi modu) bağımlılık ve işletim sistemi paketi güvenlik açığı taraması Apache 2.0
Syft Alpine (apk), Bitnami paketleri, C (conan), C++ (conan), Dart (pubs), Debian (dpkg), Dotnet (deps.json), Objective-C (cocoapods), Elixir (mix), Erlang (rebar3), Go (go.mod, Go ikili dosyaları), GitHub (iş akışları, eylemler), Haskell (cabal, stack), Java (jar, ear, war, par, sar, nar, rar, native-image), JavaScript (npm, yarn), Jenkins Eklentileri (jpi, hpi), Linux çekirdek arşivleri (vmlinuz), Linux çekirdek modülleri (ko), Nix (/nix/store'da çıkışlar), PHP (composer, PECL, pear), Python (wheel, egg, poetry, requirements.txt, uv), Red Hat (rpm), Ruby (gem), Rust (cargo.lock, denetlenebilir ikili), Swift (cocoapods, swift-package-manager), Wordpress eklentileri, Terraform providers (.terraform.lock.hcl) Apache 2.0

Bu araçlar çok çeşitli dilleri ve kod olarak altyapı (IaC) çerçevelerini destekleyerek kod tabanınız genelinde kapsamlı güvenlik analizi sağlar.

Desteklenen sistemler ve dosya türleri

Sürüm denetim sistemleri

Aracısız kod tarama aşağıdaki sürüm denetim sistemlerini destekler:

  • Azure DevOps: Azure DevOps bağlayıcısı aracılığıyla bağlanan depolar için tam destek.

  • GitHub: GitHub bağlayıcısı aracılığıyla bağlanan depolar için tam destek.

Programlama dilleri

Aracısız kod tarama aşağıdaki programlama dillerini ve bağımlılık ekosistemlerini destekler:

  • Statik kod analizi: Python; JavaScript/TypeScript.

  • Bağımlılık ekosistemleri (Trivy aracılığıyla): Node.js (npm, yarn), Python (pip, Pipenv, Şiir), Java (Maven, Gradle), .NET (NuGet), Go modülleri, Ruby (RubyGems), PHP (Besteci), Rust (Kargo) ve diğer desteklenen diller ve paket ekosistemleri bildirimleri ve kilit dosyaları aracılığıyla.

Kod Olarak Altyapı (IaC) platformları ve yapılandırmaları

Aşağıdaki tabloda aracısız kod taraması tarafından desteklenen IaC platformları ve dosya türleri listelenmektedir:

IaC Platformu Desteklenen dosya türleri Notes
Terraform .tf, .tfvars Terraform IaC şablonlarını HCL2 dilinde, .tfvars içindeki değişken dosyaları da dahil olmak üzere, destekler.
Terraform Planı JSON dosyaları Analiz ve tarama için kullanılan planlı yapılandırmaları temsil eden JSON dosyalarını içerir.
AWS CloudFormation JSON, YAML dosyaları AWS kaynaklarını tanımlamak için AWS CloudFormation şablonlarını destekler.
Kubernetes YAML, JSON dosyaları Kümelerde yapılandırmaları tanımlamak için Kubernetes bildirim dosyalarını destekler.
Helm Helm grafiği dizin yapısı, YAML dosyaları Helm'in standart grafik yapısını izler ve Helm v3 grafik dosyalarını destekler.
Docker Dockerfile adlı dosyalar Kapsayıcı yapılandırmaları için Dockerfile'ları destekler.
Azure ARM Şablonları JSON dosyaları Azure Resource Manager (ARM) IaC şablonlarını JSON biçiminde destekler.
Azure Bicep .bicep dosyaları ARM için etki alanına özgü bir dil (DSL) olan Bicep IaC şablonlarını destekler.
AWS SAM YAML dosyaları Sunucusuz kaynaklar için AWS Sunucusuz Uygulama Modeli (SAM) şablonlarını destekler.
Kustomize YAML dosyaları Kubernetes özelleştirmesi (Kustomize) için yapılandırma dosyalarını destekler.
Sunucusuz Çerçeve YAML dosyaları Serverless Framework için şablonları, sunucusuz mimarileri tanımlamada destekler.
OpenAPI YAML, JSON dosyaları RESTful API'lerini tanımlamak için OpenAPI belirtim dosyalarını destekler.

Azure DevOps ve GitHub kuruluşlarınızda aracısız kod taramasını etkinleştirme

Aracısız kod taramasını etkinleştirmek için hem Azure DevOps hem de GitHub kuruluşlarını Bulut için Defender'a bağlayabilirsiniz. Bağlantıyı ayarlamak için şu kılavuzlardan birini kullanın:

 Azure DevOps ve GitHub. için aracısız kod taramasına olanak tanıyan Defender for Cloud bağlayıcı kurulumunun animasyonlu bir kılavuzunu gösteren diyagram

Tarayıcı kapsamını ve alanını özelleştirme

Hem GitHub hem de Azure DevOps için hangi tarayıcıların çalıştığını denetleyebilir ve aracısız taramaya dahil edilen veya dışlanan depoları tam olarak belirtebilirsiniz.

Kuruluşlar, projeler ve depolar için tarayıcı geçişlerini ve özel kapsam seçeneklerini gösteren aracısız kod tarama ayarlarının ekran görüntüsü.

  • Tarayıcıları seçin: İhtiyaçlarınıza göre her kod ve altyapı kodu (IaC) tarayıcısını açın veya kapatın.

  • Tarama kapsamını ayarla: Varsayılan olarak tüm depoları taramak veya belirli kuruluşları, projeleri veya depoları dahil etmek veya hariç tutmak için özel bir kapsam tanımlamak isteyip istemediğinize karar verin.

    • Dışlama modu: Listelediğiniz dışında her şeyi tarayın.
    • Ekleme modu: Yalnızca listelediğiniz şeyi tarayın.
  • Özel kapsam seçenekleri:

    • GitHub için kapsamı sahip adına veya depo adına göre ayarlayın.
    • Azure DevOps için kapsamı kuruluşa, projeye veya depoya göre ayarlayın.
  • Yeni depoları otomatik olarak bulma: Yeni depoların otomatik olarak bulunması her zaman bağlayıcının kapsamına dahil edilen kuruluşlar veya projeler ile sınırlıdır. Dışlama modu kullanılırken varsayılan olarak etkinleştirilir ve özel kapsam listesi ayarlanmaz. Yeni oluşturulan depolar otomatik olarak taranır.

    Otomatik keşif, yalnızca listelenen depoların tarandığı için ekleme modunda kullanılamaz.

    Bu kapsam yapılandırma seçenekleri taramayı güvenlik gereksinimlerinizle eşleştirmenize, ortamınız büyüdükçe kapsamı güncel tutmanıza ve gereksiz taramalardan veya boşluklardan kaçınmanıza olanak tanır.

Aracısız kod tarama nasıl çalışır?

Aracısız kod taraması CI/CD işlem hatlarından bağımsız olarak çalışır. Kod ve kod olarak altyapı (IaC) yapılandırmalarını otomatik olarak taramak için Azure DevOps veya GitHub bağlayıcısını kullanır. İşlem hatlarını değiştirmeniz veya uzantı eklemeniz gerekmez. Bu kurulum, birden çok depoda geniş ve sürekli güvenlik analizi sağlar. Sonuçlar, Microsoft Defender for Cloud'da doğrudan işlenir ve gösterilir.

Aracısız kod tarama mimarisini gösteren diyagram.

Tarama işlemi

Bağlayıcı içinde aracısız kod tarama özelliğini etkinleştirdikten sonra tarama işlemi şu adımları içerir:

  1. Depo bulma: Sistem, bağlayıcı oluşturulduktan hemen sonra ve ardından 8 saatte bir Azure DevOps ve GitHub bağlayıcısı aracılığıyla bağlanan tüm depoları otomatik olarak tanımlar.

  2. Kod alma: Her deponun varsayılan (ana) dalından, başlangıçta bağlayıcı kurulumundan sonra ve sonra günlük olarak en son kodu güvenli bir şekilde analiz için alır.

  3. Analysis: Sistem, Microsoft Defender for Cloud yöneten ve güncelleştiren yerleşik tarama araçlarını kullanır. Bu araçlar, kod ve kod olarak altyapı (IaC) şablonlarındaki güvenlik açıklarını ve yanlış yapılandırmaları bulur. Sistem ayrıca paket sorgularını desteklemek için bir SBOM oluşturur.

  4. Bulguları işleme: Eyleme dönüştürülebilir güvenlik önerileri oluşturmak için Bulut için Defender arka ucu aracılığıyla tarama bulgularını işler.

  5. Sonuçların sunulması: Sistem, bulguları Defender for Cloud'da güvenlik önerileri olarak gösterir. Ayrıntılar için bkz. DevOps güvenlik önerileri başvurusu.

Tarama sıklığı ve süresi

Aracısız kod tarama aşağıdaki zamanlamayı kullanır:

  • Tarama sıklığı:

    • Bağlayıcıyı oluşturduğunuzda ve ardından sekiz saatte bir depoların, işlem hatlarının ve hizmet bağlantılarının güvenlik duruşu değerlendirilir.
    • Sistem, bağlayıcıyı oluşturduktan sonra ve ardından her gün kod ve kod olarak altyapı (IaC) şablonlarını güvenlik açıklarına karşı tarar.
  • Tarama süresi: Taramalar, deponun boyutuna ve karmaşıklığına bağlı olarak genellikle 15-60 dakika içinde biter.

Tarama sonuçlarını görüntüleme ve yönetme

Taramalar tamamlandıktan sonra Bulut için Microsoft Defender içinde güvenlik bulgularına erişebilirsiniz.

Erişim bulguları

Bulgulara erişmek için:

  1. Microsoft Defender for Cloud'da Güvenlik önerileri sekmesine gidin: Güvenlik önerilerini aç.

  2. Hem Azure DevOps hem de GitHub depoları için şu önerileri gözden geçirin:

  3. Her iki platform için de desteklenen tüm öneriler için bkz. Azure DevOps ve GitHub güvenlik önerileri.

    Öneriler arasında birden fazla gözden geçirenin onayını gerektirme, gizli erişimi kısıtlama ve hem Azure DevOps hem de GitHub ortamları için en iyi uygulamaları zorunlu tutma gibi öğeler yer alır.

    Etkilenen dosyalar, önem derecesi ve düzeltme adımlarıyla ilgili ayrıntıları görüntülemek için herhangi bir öneriyi seçin.

Aracısız kod tarama ile işlem hattı içi tarama arasındaki fark

Aracısız ve işlem hattı içi taramanın karşılaştırılması

Microsoft Güvenlik DevOps uzantısıyla aracısız kod tarama ve işlem hattı içi tarama hem Azure DevOps hem de GitHub güvenlik taraması sağlar. Farklı ihtiyaçlara hizmet ederler ve birbirlerini tamamlayabilirler. Aşağıdaki tabloda ana farklılıklar özetlenerek ortamınıza en uygun seçeneği belirleyebilirsiniz.

Aspect Aracısız kod tarama İşlem hattı içi tarama
Kullanım senaryosuna uygunluk Geliştiricilere minimum kesintiyle geniş kapsamlı kapsam sunar Özelleştirilebilir denetimlerle ayrıntılı, işlem hattıyla tümleşik taramalar sağlar
Tarama kapsamı ve kapsama alanı Kod Olarak Altyapı (IaC), kod güvenlik açıkları ve açık kaynak bağımlılık güvenlik açıklarına zamanlanmış olarak (günlük) odaklanır her işlem hattı çalıştırması üzerinde tetiklenen ikili dosyalar ve kapsayıcı görüntüleri dahil olmak üzere kapsamlı kapsam sunar
Kurulum ve yapılandırma Bağlayıcı oluşturulduktan sonra başka kurulum gerektirmez Her CI/CD işlem hattında el ile yükleme ve yapılandırma gerektirir
İşlem hattı entegrasyonu İş akışlarını değiştirmeden CI/CD işlem hatlarından bağımsız olarak çalışır CI/CD işlem hattına entegre olur ve her işlem hattında yapılandırma gerektirir.
Tarayıcı özelleştirmesi Hangi tarayıcıların çalıştırılmasını seçmenizi sağlar Belirli tarayıcılar, kategoriler, diller, duyarlılık düzeyleri ve Microsoft dışı araçlarla özelleştirmeye izin verir
Sonuçlar ve geri bildirim Bulut için Defender içindeki bulgulara erişim sağlar CI/CD işlem hattı içinde neredeyse gerçek zamanlı geri bildirim sunar ve sonuçlar ayrıca Bulut için Defender'da görülebilir.
Arıza ve başarısızlık kriterleri Yapılar kesilemiyor Derleme sürecini güvenlik bulgularının ciddiyetine göre durduracak şekilde yapılandırılabilir

Ölçeklenebilirlik ve performans etkisi

Aracısız kod tarama, abonelikte kaynak oluşturmayı önler ve işlem hattı işlemi sırasında tarama gerektirmez. Meta verileri ve kodu çekmek için Azure DevOps ve GitHub REST API'sini kullanır. Başka bir deyişle API çağrıları Azure DevOps ve GitHub hız sınırlarına göre sayılır ancak doğrudan veri aktarımı maliyetlerine neden olmazsınız. Hizmet, geliştirme ortamını kesintiye uğratmadan Azure DevOps ve GitHub hız sınırları içinde kalmalarını sağlamak için taramaları yönetir. Bu yöntem, DevOps iş akışlarını etkilemeden depolar arasında verimli, yüksek performanslı tarama sağlar. Daha fazla bilgi için bkz. Azure DevOps hız ve kullanım sınırları ve GitHub REST API'sinin hız sınırları.

Aracısız kod tarama için veri güvenliği, uyumluluk ve erişim denetimi

Microsoft Defender for Cloud aracısız kod tarama hizmeti, veri güvenliği ve gizlilik denetimleriyle kodunuzun korunmasına yardımcı olur:

  • Veri şifreleme ve erişim denetimi: Sistem, aktarımdaki tüm verileri endüstri standardı protokolleri kullanarak şifreler. Kodunuza yalnızca yetkili Bulut için Defender hizmetleri erişebilir.
  • Veri yerleşimi ve saklama: Taramalar, veri koruma gereksinimlerini desteklemek için Azure DevOps ve GitHub bağlayıcılarınızla (ABD veya AB) aynı coğrafi bölgede çalışır. Sistem, tarama sırasında kodu işler ve güvenli bir şekilde siler. Kodu uzun süreli saklamaz.
  • Depolara erişim: Hizmet, taramaları çalıştırmak için Azure DevOps ve GitHub'a yönelik güvenli bir erişim belirteci oluşturur. Bu belirteç, hizmetin aboneliğinizde kaynak oluşturmadan gerekli meta verileri ve kodu almasını sağlar. Bu erişimi yalnızca Defender for Cloud bileşenler kullanabilir.
  • Uyumluluk desteği: Hizmet, müşteri kodunun güvenli ve bölgesel olarak işlenmesini desteklemek için veri işleme ve gizlilik için mevzuat ve güvenlik standartlarıyla uyumludur.

Bu ölçüler, verilerinizin gizliliğini ve bütünlüğünü koruyarak güvenli, uyumlu ve verimli bir kod tarama işlemi sağlar.

Sınırlamalar (genel önizleme)

Genel önizleme aşamasında aşağıdaki sınırlamalar geçerlidir:

  • İkili tarama yok: Yalnızca kod (SAST) ve IaC tarama araçları yürütülür.
  • Tarama sıklığı: Aracısız kod tarama özelliği etkinleştirdiğinizde ve ardından günde bir kez depoları tarar.
  • Depo boyutu: Aracısız kod tarama, 1 GB'ın altındaki depoları destekler.
  • Dal kapsamı: Taramalar yalnızca varsayılan dalı (genellikle main) kapsar.
  • Araç özelleştirme: Tarama araçlarını özelleştiremezsiniz.

Syft (SBOM) şu anda aşağıdaki sınırlamalara sahiptir:

  • SBOM'lar indirilemiyor. Belirli paketleri ve bunları kullanan depoları bulmak için Syft sonuçlarını sorgulayabilirsiniz. Yönergeler için bkz. Yazılım ürün reçetesini sorgulama.

  • Depo için bir kilit dosyası gerekir. Aksi takdirde yalnızca doğrudan bağımlılıklar bulunur.

  • SBOM boyut sınırlaması 1 MB ile sınırlıdır. Tanımlanan çok sayıda paket varsa Bulut Haritasına alımımız başarısız olur.

  • SBOM etkinleştirme yapılandırılabilir veya indirilebilir değildir. Her aracısız taramada bir SBOM oluşturulur.

  • SBOM aracının çalışması için zaman aşımı 15 dakika olarak ayarlanır.

  • Aracısız kod tarama devre dışı bırakıldıktan sonra SBOM önerileri silinmez.

Sonraki Adımlar