Aracılığıyla paylaş


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. Aracısız kod tarama, derleme veya dağıtım işlem hatlarınızda değişiklik yapılmasına gerek kalmadan 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. Bu yaklaşım, tek bir Azure DevOps veya GitHub bağlayıcısı ile kurulumu 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 sorunsuz bir şekilde 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.

Önkoşullar

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ıda Bulunanı: 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

Bulut için Microsoft Defender'da aracısız kod taramanın temel avantajlarından bazıları şunlardır:

  • 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ıkların ve sürümlerinin envanterini 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 çeşitli açık kaynak araçları kullanır:

Araç 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 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 Piton 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 packages, 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 (cabel, stack), Java (jar, ear, war, par, sar, nar, rar, native-image), JavaScript (npm, yarn), Jenkins Eklentileri (jpi, hpi), Linux çekirdek arşivleri (vmlinz), 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 dosyası), Swift (cocoapods, swift-package-manager), Wordpress eklentileri, Terraform sağlayıcıları (.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

  • 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

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

IaC Platformu Desteklenen dosya türleri Notlar
Terraform .tf, .tfvars içindeki değişken dosyaları .tfvarsda dahil olmak üzere HCL2 dilinde Terraform IaC şablonlarını 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.
Miğfer Helm grafiği dizin yapısı, YAML dosyaları Helm'in standart grafik yapısını izler; 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ı Sunucusuz mimarileri tanımlamada Sunucusuz çerçeve için şablonları 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şlamak için Azure DevOps kuruluşlarınıza bağlanma veya GitHub kuruluşlarınıza bağlanma adımlarını izleyin.

Aracısız kod taramasını etkinleştirmeye yönelik kurulum işlemini gösteren GIF görüntüsü

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.

Aracısız kod taramanın özel ayarlarını gösteren 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, taramayı güvenlik gereksinimlerinizle eşleştirmenize, ortamınız büyüdükçe kapsamı güncel tutmanıza ve gereksiz taramalardan veya taranmamış alanlardan 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 doğrudan Bulut için Microsoft Defender 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. Analiz: Sistem, kod ve kod olarak altyapı (IaC) şablonlarındaki güvenlik açıklarını ve yanlış yapılandırmaları bulmak için Bulut için Microsoft Defender'da yönetilen ve güncelleştirilen bir dizi yerleşik tarama aracı kullanır. Ayrıca sorgulanabilir paket yönetimine izin vermek 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ç teslimi: Sistem, bulguları Bulut için Defender güvenlik önerileri olarak gösterir ve güvenlik ekiplerinin sorunları gözden geçirmesine ve çözmesine olanak tanır.

Tarama sıklığı ve süresi

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

  1. Bulut için Microsoft Defender Güvenlik önerileri sekmesine gidin.

  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

Microsoft Security DevOps uzantısını kullanarak aracısız kod tarama ve işlem hattı içi tarama, Hem Azure DevOps hem de GitHub içinde güvenlik taraması sunar. Farklı ihtiyaçlara hizmet ederler, ancak birbirlerini tamamlar. Aşağıdaki tabloda, güvenlik ve geliştirme gereksinimlerinize en uygun seçeneği belirlemenize yardımcı olacak temel farklılıklar vurgulanır.

Görünüş Aracısız kod tarama İşlem hattı içi tarama
Büyük/küçük harfe uygun kullanma 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 kapsamı 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ı tümleştirmesi İş akışlarını değiştirmeden (CI/CD) işlem hatlarından bağımsız olarak çalışır CI/CD işlem hattı içinde tümleşir ve her işlem hattında yapılandırma gerekir
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 gerçek zamanlıya yakın geri bildirim sunar ve sonuçlar Bulut için Defender
Kesme ve hata ölçütleri Derlemeler kesilemiyor Güvenlik bulgularının önem derecesine göre derlemeleri kesecek ş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

Bulut için Microsoft Defender aracısız kod tarama hizmeti, katı veri güvenliği ve gizlilik önlemleri uygulayarak kodunuzun güvenli ve uyumlu bir şekilde işlenmesini sağlar:

  • 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 yasalarına uymak için Azure DevOps ve GitHub bağlayıcılarınızla (ABD veya AB) aynı coğrafi bölgede gerçekleşir. Sistem yalnızca tarama sırasında kodu işler ve daha sonra uzun süreli depolama olmadan güvenli bir şekilde siler.
  • Depolara erişim: Hizmet, taramaları gerçekleştirmek üzere Azure DevOps ve GitHub için güvenli bir erişim belirteci oluşturur. Bu belirteç, aboneliğinizde kaynak oluşturmadan gerekli meta verilerin ve kodun alınmasını sağlar. Yalnızca Bulut için Defender bileşenlerin erişimi vardır ve bu da veri bütünlüğünü korur.
  • Uyumluluk desteği: Hizmet, veri işleme ve gizlilik için mevzuat ve güvenlik standartlarıyla uyumludur ve müşteri kodunun bölgesel veri koruma gereksinimlerine uygun olarak güvenli bir şekilde işlenmesini ve taranmasını sağlar.

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ığı: Etkinleştirme sonrasında ve sonra günlük olarak depoları tarar.
  • Depo boyutu: Taramayı 1 GB'ın altındaki depolara sınırlar.
  • 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 indirilemez, Syft sonuçları belirli paketleri ve bunları kullanan depoları sorgulamak için kullanılabilir.

  • Deponun bir kilit dosyası olması 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'ın devre dışı bırakılması SBOM önerilerini silmez.