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ıf | Kodda | Canlı | Kapsanmayan |
|---|---|---|---|
| SQL enjeksiyonu |
|
| Başka bir işlevden ya da dosyadan geçen girdi, saklanan (ikinci derece) enjeksiyon ve bir ORM'in kendi hataları. |
| NoSQL enjeksiyonu |
|
| Diğer belge veritabanlarının sorgu dilleri ve JavaScript ile TypeScript dışındaki diller. |
| Komut enjeksiyonu |
|
| Kabuk olmadan çağrılan bir programa eklenen argümanlar ve diğer diller. |
| Şablon enjeksiyonu |
|
| Veritabanından okunan şablonlar ve tarayıcıda çalışan şablon motorları. |
| Kod değerlendirme |
| Canlı test yok | Bir sandbox nesnesi üzerinden değerlendirme ve diğer diller. |
| Siteler arası betik çalıştırma (XSS) |
|
| 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 |
|
| Var olan ve atlatılabilen izin listeleri. |
| Sunucu taraflı istek sahteciliği (SSRF) |
|
| DNS rebinding, içeriye götüren yönlendirmeler ve bulut meta verisine ulaşılıp ulaşılamadığı. |
| Siteler arası istek sahteciliği (CSRF) |
|
| 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 |
|
| Java ObjectInputStream, .NET BinaryFormatter ve XML dış varlıkları. |
| Zayıf kriptografi |
|
| Çalışan hizmetin anahtar uzunlukları, protokol sürümleri ve sertifikaları, özel kriptografi ve yan kanallar. |
| Kodda ve yapılandırmada parolalar |
| Canlı test yok | Artı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 |
|
| Depolama hizmetinin ya da CDN'in dosyayla ne yaptığı, yüklemedeki kötü amaçlı yazılım ve boyut sınırları. |
| Dockerfile |
| Canlı test yok | Derlenmiş imajlar ve içlerindeki işletim sistemi paketleri taranmaz. Destek sonu yalnızca altı resmi temel imaj için bilinir. |
| docker-compose |
| Canlı test yok | Çalışan konteynerler ve depoda olmayan env dosyaları. |
| Kubernetes manifestleri |
| Canlı test yok | Çalışan küme, işlenmemiş Helm şablonları, RBAC, ağ ve admission politikaları ve YAML çapaları içeren dosyalar. |
| Terraform |
| Canlı test yok | Bulut 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.