Kapsam

yof neyi kapsar, neyi kapsamaz

Sınıf sınıf: yof kodunuzda ne arar, “Otomatik test çalışması” çalışan bir uygulamada neyi test eder ve ikisinin de yapmadığı nedir.

Tablo nasıl okunur

  • Kodda: kuralların bağlı bir deponun dosyalarında aradığı kalıplar. Bir kural kalıbı bulur, kodu çalıştırmaz; bu yüzden bu bulguların çoğu doğrulama gerektirir.
  • Canlı: çalışan bir uygulamaya karşı testler. “Otomatik test çalışması” geliştiriliyor ve satışta değil; bu yüzden böyle işaretlenen hiçbir şey henüz müşterilere açık değil.
  • Kapsanmayan: ikisinin de yapmadığı. Bir rapor bunlar denetlenmiş gibi okunmaz.
SınıfKoddaCanlıKapsanmayan
SQL enjeksiyonu
  • SQL metni istekten gelen veriyle oluşturuluyor
  • Uygulamanıza gönderilen metin bir veritabanı sorgusunun parçası olarak çalışıyor Geliştiriliyor
Başka bir işlevden ya da dosyadan geçen girdi, saklanan (ikinci derece) enjeksiyon ve bir ORM'in kendi hataları.
NoSQL enjeksiyonu
  • Bir veritabanı filtresi değeri doğrudan istekten alıyor
  • Uygulamanıza gönderilen metin bir veritabanı sorgusunun parçası olarak çalışıyor Geliştiriliyor
Diğer belge veritabanlarının sorgu dilleri ve JavaScript ile TypeScript dışındaki diller.
Komut enjeksiyonu
  • Bir kabuk komutu istekten gelen veriyle oluşturuluyor
  • Uygulamanıza gönderilen metin bir sistem komutu olarak çalışıyor Geliştiriliyor
Kabuk olmadan çağrılan bir programa eklenen argümanlar ve diğer diller.
Şablon enjeksiyonu
  • İstek verisi şablon olarak kullanılıyor
  • Uygulamanıza gönderilen metin, sayfa şablon motoru tarafından çalıştırılıyor Geliştiriliyor
Veritabanından okunan şablonlar ve tarayıcıda çalışan şablon motorları.
Kod değerlendirme
  • İstek verisi kod olarak çalıştırılıyor
Canlı test yokBir sandbox nesnesi üzerinden değerlendirme ve diğer diller.
Siteler arası betik çalıştırma (XSS)
  • İstek verisi sayfaya HTML olarak yazılıyor
  • Uygulamanıza gönderilen metin, canlı sayfa işaretlemesi olarak geri dönüyor Geliştiriliyor
Angular ve Vue'nun güven atlatmaları, sunucu şablonlarının autoescape ayarları, saklanan betikler ve gerçek bir tarayıcıda kanıt.
Açık yönlendirme
  • Bir yönlendirme isteğin söylediği yere gidiyor
  • Siteniz ziyaretçileri bağlantıdaki herhangi bir adrese yönlendiriyor Bugün yof attack ile kullanılabilir
Var olan ve atlatılabilen izin listeleri.
Sunucu taraflı istek sahteciliği (SSRF)
  • Sunucu istekten alınan bir adresi getiriyor
  • Sunucunuz, bir isteğin belirttiği herhangi bir adresi getiriyor Geliştiriliyor
DNS rebinding, içeriye götüren yönlendirmeler ve bulut meta verisine ulaşılıp ulaşılamadığı.
Siteler arası istek sahteciliği (CSRF)
  • Çerezle oturum açma var, kodda CSRF denetimi yok
  • Oturum açma çerezi httpOnly ya da sameSite olmadan ayarlanıyor
  • Giriş çerezinde bir koruma bayrağı eksik Bugün yof attack ile kullanılabilir
  • Başka bir site, giriş yapmış bir kullanıcının verisini değiştirtebilir Geliştiriliyor
Express tarzı uygulamalar dışındaki çatılar, bir proxy'nin yaptığı denetim ve tarayıcının kendi varsayılanlarının rotayı koruyup korumadığı.
Riskli nesne yükleme
  • İstek verisi nesne olarak yükleniyor
  • Uygulamanız bir istek gövdesini güvensiz bir nesne okuyucusuna veriyor Geliştiriliyor
Java ObjectInputStream, .NET BinaryFormatter ve XML dış varlıkları.
Zayıf kriptografi
  • Bir parola ya da jeton hızlı veya kırılmış bir özetle özetleniyor
  • Bir jeton ya da kod tahmin edilebilir bir rastgele işlevle üretiliyor
  • Kodda yazılı bir kriptografik anahtar var
  • Şifreleme ECB kipini kullanıyor
  • Sertifika denetimi kapatılmış
  • Bir oturum jetonu imzası denetlenmeden kabul ediliyor
  • Uygulamanız hiç doğrulamadığı bir giriş belirtecini kabul ediyor Geliştiriliyor
  • Kimlikler ya da giriş belirteçleri kolayca tahmin edilebiliyor Geliştiriliyor
Çalışan hizmetin anahtar uzunlukları, protokol sürümleri ve sertifikaları, özel kriptografi ve yan kanallar.
Kodda ve yapılandırmada parolalar
  • Kodunuzda ya da yapılandırmanızda yazılı bir parola var
  • Kodda varsayılan bir kullanıcı adı ve parola yazılı
  • Kodunuzdaki bir adresin içinde parola var
Canlı test yokArtık olmayan dosyaların git geçmişi, bulunan bir parolanın hâlâ çalışıp çalışmadığı ve rakamsız, simgesiz tek bir düz sözcük.
Dosya yüklemeleri
  • Bir yükleme, ziyaretçinin gönderdiği dosya adını ya da türünü koruyor
  • Yükleme klasörü web sayfası olarak sunuluyor
  • Yüklenen bir dosya, tarayıcının çalıştırdığı bir sayfa olarak sunuluyor Geliştiriliyor
Depolama hizmetinin ya da CDN'in dosyayla ne yaptığı, yüklemedeki kötü amaçlı yazılım ve boyut sınırları.
Dockerfile
  • Dockerfile dosyanızda yazılı bir gizli değer var
  • Dockerfile dosyanız bir indirmeyi denetlemeden çalıştırıyor
  • Temel imajınızın destek süresi dolmuş
  • Konteyneriniz uygulamayı root olarak çalıştırıyor
  • Konteynerinizin temel imajının sabit bir sürümü yok
  • Konteyner imajınızda bir SSH sunucusu var
  • Temel imajınız digest ile değil, etiketle sabitlenmiş
  • Dockerfile dosyanız paketleri sabit sürüm olmadan kuruyor
Canlı test yokDerlenmiş imajlar ve içlerindeki işletim sistemi paketleri taranmaz. Destek sonu yalnızca altı resmi temel imaj için bilinir.
docker-compose
  • Bir compose hizmeti ana makinenin yetkileriyle çalışıyor
  • Bir compose hizmeti Docker'ın kendisini yönetebiliyor
  • Compose dosyanızda yazılı bir gizli değer var
Canlı test yokÇalışan konteynerler ve depoda olmayan env dosyaları.
Kubernetes manifestleri
  • Bir Kubernetes konteyneri privileged çalışıyor
  • Bir Kubernetes iş yükü kendi düğümüne erişiyor
  • Bir Kubernetes manifestinde yazılı bir gizli değer var
  • Bir Kubernetes konteyneri root olarak çalışabilir
  • Bir Kubernetes konteyneri daha fazla yetki kazanabilir
  • Bir Kubernetes konteynerinin kaynak sınırı yok
  • Bir Kubernetes imajının sabit sürümü yok
Canlı test yokÇalışan küme, işlenmemiş Helm şablonları, RBAC, ağ ve admission politikaları ve YAML çapaları içeren dosyalar.
Terraform
  • Bir güvenlik duvarı kuralı yönetim portunu tüm internete açıyor
  • Bir depolama kovası Terraform'da herkese açık yapılmış
  • Depolama ya da veritabanı şifreleme olmadan oluşturuluyor
  • Bir veritabanına Terraform'da internetten ulaşılabiliyor
  • Terraform dosyalarınızda yazılı bir parola ya da anahtar var
Canlı test yokBulut hesabının kendisi: dağıtılan şey dosyalardan farklı olabilir. Değişkenlerden, modüllerden ya da işlevlerden gelen değerler, diğer sağlayıcılar ve diğer kaynak türleri.

Her satırın dışında kalanlar

  • Derlenmiş konteyner imajları ve içlerindeki işletim sistemi paketleri taranmaz.
  • Bu kurallar dosyaları okur. Çalışan sisteme bakmaz: kümeye, bulut hesabına ya da canlı uygulamanın davranışına.
  • İstek verisi yalnızca tek bir işlev ya da işleyici içinde izlenir. Önce başka bir işlevden ya da dosyadan geçen bir değer izlenmez.
  • Diller: sözdizimi kuralları JavaScript ve TypeScript okur. Python için yalın, kesin biçimler vardır. PHP, Ruby, Go, Java, Kotlin ve C# için birkaç tek satırlık biçim vardır. Bu kurallar başka dilleri okumaz.

Otomatik kontrollerin asla kapsamadığı şeyler

  • İş mantığındaki kusurlar, örneğin birinin atlayabileceği bir fiyat ya da adım.
  • Henüz kimsenin bilmediği zayıflıklar (sıfırıncı gün).
  • İnsanlar ve süreçler: oltalama, elle paylaşılan parolalar, kimin erişimi olduğu.
  • Bu raporda adı geçen kapsamın dışındaki her şey ve tarihinden sonraki her değişiklik.

Bu bir sızma testi değildir.

yof nasıl kontrol eder

yof neyi kapsar, neyi kapsamaz: sınıf sınıf