Güvenlik Bulgularını Skorlamak: Etki ve Erişilebilirlik Tablosu
CVSS tek başına bağlam vermez: veri sınıfı ve tenant aşımı ile erişim kolaylığını çaprazlayan pratik bir önceliklendirme tablosu.
Güvenlik Bulgularını Skorlamak: Etki ve Erişilebilirlik Tablosu#
Bir tarama çıktısında on bulgu yan yana durur. Hepsinin yanında bir önem derecesi yazar. Biri yüksek, biri orta, biri düşük olarak işaretlidir. Ekip hangisinden başlayacağını bu etikete bakarak seçer. Sorun tam olarak burada başlar. Etiket, bulgunun teknik ağırlığını anlatır ama çalışma zamanındaki karşılığını anlatmaz. Kimin, hangi ön koşulla, hangi veriye dokunabildiği bu etikette yoktur. Skor bağlamdan kopunca sıralama da gerçeklikten kopar.
Skor bağlam olmadan neden yanıltır#
Şiddet ile öncelik aynı şey değildir. Şiddet, bir zafiyet türünün soyut ağırlığıdır. Öncelik, o ağırlığın sizin sisteminizdeki karşılığıdır. Aynı türden iki bulgu farklı sistemlerde farklı önceliğe sahip olur. Bunu ayırmadan yapılan her sıralama, ekibi yanlış işe yönlendirir.
Yönetici kimliği isteyen yüksek ile kimliksiz orta arasındaki fark#
Şu iki durumu yan yana koyun. Birinci bulgu teoride ağırdır ama yalnızca sistem yöneticisi rolüyle tetiklenir. Saldırganın önce o rolü ele geçirmesi gerekir. İkinci bulgu teoride daha hafiftir ama giriş yapmamış her ziyaretçi tarafından tetiklenir. Hangisi önce kapatılmalı sorusunun yanıtı, etiketlere bakarak verilmez. Erişim kolaylığı, denklemi değiştirir.
Bu ayrımı net tutmak için şu soruyu her bulguya sorun: bu bulguyu kullanmak için saldırganın zaten neye sahip olması gerekir. Yanıt ne kadar az şey gerektiriyorsa, bulgu o kadar erken ele alınır. Yetkili oturum, özel bilgi, zamanlama yarışı ya da kullanıcı kandırma gerektiren yollar, aynı etki düzeyinde daha geç sıraya yerleşir.
Öncelik kararını veren üç soru#
Her bulgu için üç soru yeterlidir. Birincisi, etki neye dokunur. İkincisi, bu etkiye kim ulaşır. Üçüncüsü, ulaşmak ne kadar uğraştırır. Birinci soru etki eksenini, ikinci ve üçüncü soru erişilebilirlik eksenini besler. İki eksen kesişmeden verilen karar, ya abartılı ya da eksik olur.
Bu yaklaşım, genel risk düşüncesinin doğal bir uzantısıdır. Risk modelini varlık ve tehdit açısından kuran ekipler için bu tablo, bulgu düzeyinde aynı disiplini sürdürür. Genel çerçeve ile bulgu düzeyi arasındaki ilişkiyi merak edenler siber güvenlik risk modeli yazısındaki varlık ve etki ayrımına bakabilir.
Skor tablosu neyi çözer, neyi çözmez#
Bu tablo bir sihirli formül değildir. Bir sıralama disiplinidir. Aynı dili konuşmayı sağlar. Geliştirici ile güvenlikçinin "önemli" sözcüğünden aynı şeyi anlamasını sağlar. Denetçiye neden bu bulgunun önce kapandığını açıklar. Yönetime neden üç orta bulgunun bir yüksek bulgudan önce geldiğini gösterir.
Tablo şunları yapmaz. Kök nedeni bulmaz. Sömürü zincirini hesaplamaz. İş etkisini paraya çevirmez. Saldırgan niyetini tahmin etmez. Bunlar ayrı çalışmalardır. Tablo yalnızca şunu söyler: eldeki bulgular arasında hangi sırayla ilerlemek akla yatkındır.
Sıralama kuralı (özet): 1. Etkiyi sınıfla: veri sınıfı + tenant aşımı + yazma etkisi. 2. Erişilebilirliği sınıfla: kimlik, tahmin edilebilirlik, etkileşim, karmaşıklık. 3. İki ekseni tabloda kesiştir. 4. Aynı hücrede kalanları iş etkisiyle ayır.
Etki ekseni: neye dokunuluyor#
Etki ekseni, bulgu kullanılırsa neyin değiştiğini anlatır. Üç soruya yanıt arar: hangi veri okunur ya da değişir, ihlal hangi kiracı sınırını aşar, sonuç yalnızca okuma mıdır yoksa durum değişikliği midir. Bu üç yanıt birleşerek tek bir etki düzeyi üretir: Yüksek, Orta ya da Düşük.
Veri sınıfı ile tenant aşımını ayrı düşünmeyin. Hassas veri tek kiracıda kalsa bile ağırdır. Herkese açık veri çok kiracıya sızsa bile farklı bir ağırlık taşır. İkisini birlikte okumak gerekir. Yazma etkisi ise çarpan görevi görür. Salt okuma ile durum değiştirme aynı düzeyde değerlendirilmez.
Yüksek etki: hassas veri, kiracı aşımı, durum değişikliği#
Yüksek etki, geri dönüşü zor sonuçlar üretir. Aşağıdaki koşullardan biri ya da birkaçı varsa etki yüksek sayılır.
Veri sınıfı açısından yüksek etki, kimlik, iletişim, finans ya da sağlık gibi doğrudan kişiye bağlanan verilere dokunur. Kimlik doğrulama gizleri de bu gruba girer. Oturum belirteçleri, parola sıfırlama gizleri, çok faktörlü doğrulama yedek kodları bu sınıftadır. Bu veriler tek kayıtta bile sızsa sonuç ağır olur.
Tenant aşımı açısından yüksek etki, ihlalin kiracı sınırını aşmasıdır. Kendi verisini okuyan kullanıcı ile başkasının verisini okuyan kullanıcı aynı teraziye konmaz. Tüm kiracılara yayılan bir okuma, en üst düzeyde ele alınır. Kiracı kavramı kullanmayan sistemlerde bu soru, kullanıcı sınırını aşma olarak okunur. Başka bir kullanıcının verisine erişim, burada değerlendirilir.
Yazma etkisi açısından yüksek etki, kalıcı durum değişikliğidir. Rol değişikliği, ödeme durumu güncelleme, onay akışını ilerletme, kayıt silme ya da üzerine yazma bu gruba girer. Salt okuma ile durum değişikliği arasındaki farkı küçük görmeyin. Okuma bilgi sızdırır, yazma sistemin doğruluğunu bozar.
Yüksek etki denetimi:
- Okunan ya da değişen veri kişiye bağlanıyor mu?
- İhlal başka kullanıcı ya da kiracıya taşıyor mu?
- Sonuç kalıcı bir durum değişikliği üretiyor mu?
- Üçünden birine evet, etkiyi Yüksek işaretle.
Yüksek etki kararı verirken kapsamı dar tutun. Her iç veriyi hassas saymak, tabloyu bozar. Sınıflandırma ölçütünüz yoksa şu ayrımı kullanın: tek başına kimlik hırsızlığına ya da para hareketine yol açan veri hassastır. Operasyonel bilgi iç veridir. Herkese açık bilgi kamusaldır. Bu ayrım rapor boyunca tutarlı uygulanmalıdır.
Orta etki: iç veri, sınırlı aşım, geri alınabilir değişim#
Orta etki, ciddiye alınması gereken ama yıkıcı olmayan sonuçlar üretir. İç yazışmalar, operasyonel kayıtlar, yapılandırma ayrıntıları bu gruba girer. Bu veriler tek başına kimlik hırsızlığına yol açmaz ama saldırgana yol gösterir. İç veri sızıntısını hafife almayın. Keşif aşamasını kısaltır.
Tenant aşımı açısından orta etki, sınırlı taşmayı anlatır. Aynı kiracı içinde yetkisiz okuma ya da kendi rolü dışındaki bir kaynağa erişim bu düzeydedir. Başka kiracıya geçiş yoktur ama yetki sınırı aşılmıştır. Bu tür bulgular, yetki denetiminin eksik olduğunu gösterir. Tek başına yıkıcı değildir ama denetim boşluğuna işaret eder.
Yazma etkisi açısından orta etki, geri alınabilir ya da düşük sonuçlu değişimlerdir. Kendi profil alanını yetkisiz yoldan güncelleme, taslak kaydı başkasının adına oluşturma, önemsiz durumu değiştirme bu gruba girer. Kalıcı zarar yoktur ya da zarar kolayca geri alınır. Yine de kayıt bütünlüğü bozulduğu için düzeltilmesi gerekir.
Orta etki denetimi:
- Veri iç sınıfta mı kalıyor?
- Aşım aynı kiracı ya da aynı rol kümesiyle mi sınırlı?
- Değişim geri alınabilir mi?
- Üçüne de evet, etkiyi Orta işaretle.
Orta etkiyi raporlarken abartıdan kaçının. Orta, önemsiz demek değildir. Bu düzeydeki bulgular planlı döngüde kapatılır. Ertelenebilir ama unutulmaz. Takip kaydı açık tutulur.
Düşük etki: kamusal veri, aşım yok, salt okuma#
Düşük etki, sistemin normal işleyişini bozmayan sonuçlardır. Herkese açık bilgiler, sürüm dizgeleri, genel hata iletileri bu gruptadır. Bu veriler zaten herkese açıktır ya da saldırgana anlamlı bir üstünlük sağlamaz. Tek başına ele alındığında zarar üretmez.
Aşım yokluğu bu düzeyin belirleyici özelliğidir. Kullanıcı yalnızca kendi verisini görür. Kiracı sınırı aşılmaz. Başka kullanıcının kaydına geçiş olmaz. Yalnızca sunum katmanında bir aksaklık vardır. İşlevsel bir kusur olabilir ama güvenlik sınırı aşılmamıştır.
Salt okuma ve düşük değerli sızıntılar da buraya girer. Ayrıntılı hata iletisi, yığın izi parçası, iç yol bilgisi tek başına düşük etkidir. Bu bilgiler keşfi kolaylaştırır ama doğrudan ihlal üretmez. Zincirin parçası olmadan tek başına değerlendirilir.
Düşük etki denetimi:
- Veri zaten kamusal mı ya da değersiz mi?
- Başka kullanıcı ya da kiracıya geçiş var mı? (yok)
- Kalıcı durum değişikliği var mı? (yok)
- Üçü de sağlanıyorsa etkiyi Düşük işaretle.
Düşük etkiyi çöpe atmayın. Tek tek düşük olan bulgular, birleşince orta düzeye çıkabilir. Ayrıntılı hata iletisi ile tahmin edilebilir kimlik birleşince tablo değişir. Bu yüzden düşük bulguları kapatırken birleşme olasılığını not edin.
Etki kararını tek satırda yazma#
Etki kararı, raporda tek satırla savunulabilir olmalıdır. Şu kalıbı kullanın: hangi veri, hangi sınır aşımı, hangi yazma sonucu. Üçünü tek cümlede toplayın. Örnek kalıp: iç veri okuma, kiracı aşımı yok, durum değişikliği yok, bu yüzden etki düşük. Bu cümle hem kararı hem gerekçeyi taşır. Denetimde bu cümle sorulur.
| Soru | Yüksek | Orta | Düşük |
|---|---|---|---|
| Veri sınıfı | Hassas ya da kimlik gizleri | İç ve operasyonel veri | Kamusal ya da değersiz bilgi |
| Sınır aşımı | Başka kiracı ya da kullanıcı | Aynı kiracıda yetkisiz alan | Aşım yok |
| Yazma sonucu | Kalıcı durum değişikliği | Geri alınabilir değişim | Değişim yok |
Erişilebilirlik ekseni: ulaşmak ne kadar kolay#
Erişilebilirlik ekseni, saldırganın bulguya ulaşmak için neye gereksinim duyduğunu anlatır. Dört soruya yanıt arar: kimlik doğrulama gerekir mi, hedef kimlik tahmin edilebilir mi, kurban etkileşimi gerekir mi, sömürü karmaşık mı. Bu dört yanıt birleşerek tek bir erişilebilirlik düzeyi üretir: Kolay, Sınırlı ya da Zor.
Bu ekseni değerlendirirken en elverişli yolu esas alın. Bulguya giden üç yol varsa en kolay olanı yazın. En zor yolu yazmak, tabloyu iyimser gösterir. Savunma planı en kolay yola göre yapılır. Diğer yollar not bölümünde listelenir.
Kolay erişim: kimliksiz, tahmin edilebilir, tek istek#
Kolay erişim, özel koşul gerektirmez. Kimlik doğrulama gerekmez ya da sıradan bir kullanıcı hesabı yeterlidir. Ayrıcalıklı rol gerekmez. Hedef kimlik art arda sıralı ya da kolay tahmin edilir yapıdadır. Kurbanın tıklaması ya da onaylaması gerekmez. Tek istekle sonuç alınır.
Bu düzeyi işaretlerken şu denetimi yapın. Oturumu kapatın ve isteği yeniden gönderin. Sonuç değişmiyorsa kimlik engeli yoktur. Kimlik değerini bir artırıp bir azaltın. Başka kayıt dönüyorsa tahmin edilebilirlik vardır. Başka sekmede, başka tarayıcıda deneyin. Zamanlama ya da yarış koşulu gerekmiyorsa karmaşıklık düşüktür.
GET /api/invoices/1042 HTTP/1.1 Host: ornek-uygulama.local Cookie: session=siradan-kullanici-oturumu
Yukarıdaki istek kalıbı, kolay erişimin tipik görünümüdür. Sıradan hesap, tahmin edilebilir kimlik, ek başlık yok, ek etkileşim yok. Bu görünümü raporda ham istek olarak saklayın. Yeniden üretim için yeterlidir.
Sınırlı erişim: sıradan hesap, koşullu tahmin, tek etkileşim#
Sınırlı erişim, bazı engellerin olduğu ama aşılamaz olmadığı durumu anlatır. Geçerli bir kullanıcı hesabı gerekir. Kimliksiz erişim yoktur. Hedef kimlik rastgele görünür ama sızıntı ya da listeleme yoluyla öğrenilebilir. Kurbanın tek bir tıklaması ya da tek bir onayı gerekebilir. Sömürü birkaç adımlı bir akış ister.
Bu düzeyi değerlendirirken koşulları açık yazın. Hangi rol gerekir. Kimlik nasıl öğrenilir. Hangi etkileşim tetikler. Akış kaç adımdan oluşur. Her koşul, erişimi bir basamak zorlaştırır. Ama hiçbir koşul tek başına bulguyu zararsız yapmaz.
Yetki denetimindeki boşluklar çoğunlukla bu düzeyde yakalanır. Sıradan hesapla ayrıcalıklı işleve erişim denemeleri, bu eksenin tipik konusudur. Konunun test tarafını derinleştirmek isteyenler API yetkilendirme hataları yazısındaki rol ve işlev matrisinden yararlanabilir.
Sınırlı erişim denetimi: - Geçerli hesap gerekir mi? (evet) - Hedef kimlik listeleme ya da sızıntı ile öğrenilir mi? - Tek kurban etkileşimi yeterli mi? - Akış 2-5 adımda tamamlanır mı?
Zor erişim: ayrıcalık, gizli kimlik, çok koşul#
Zor erişim, birden çok engelin bir araya geldiği durumu anlatır. Ayrıcalıklı rol gerekir. Hedef kimlik rastgeledir ve başka bir sızıntı olmadan öğrenilemez. Kurbanın birden çok adımı tamamlaması gerekir. Sömürü zamanlama yarışı, özel başlık zinciri ya da dar bir durum penceresi ister.
Zor erişimi hafife almayın ama abartmayın da. Zor, imkansız demek değildir. Hedefli saldırgan engelleri tek tek aşar. Ancak fırsatçı saldırgan bu yolla uğraşmaz. Bu yüzden zor erişimli bulgular planlı döngüde ele alınır. Yüksek etki ile birleşirse yine de öne çekilir.
Bu düzeyi işaretlerken her engeli ayrı yazın. Tek cümleyle geçmeyin. Hangi rol, hangi gizlilik, hangi etkileşim dizisi, hangi zamanlama koşulu. Engeller açık yazılınca hangi engelin kaldırılması durumunda tablonun değişeceği de görülür. Bu bilgi, azaltım önerisini güçlendirir.
| Soru | Kolay | Sınırlı | Zor |
|---|---|---|---|
| Kimlik doğrulama | Gerekmez ya da sıradan hesap | Geçerli hesap gerekir | Ayrıcalıklı rol gerekir |
| Kimlik tahmini | Art arda ya da tahmin edilir | Sızıntı ile öğrenilir | Rastgele ve gizli |
| Kullanıcı etkileşimi | Gerekmez | Tek tıklama ya da onay | Çok adımlı dizi |
| Karmaşıklık | Tek istek | Birkaç adım | Yarış ya da dar pencere |
3x3 karar tablosu ve hücre okuma#
İki eksen hazır olunca karar verilir. Satırlara etki, sütunlara erişilebilirlik yazılır. Her hücre bir eylem üretir: hemen düzelt, bu döngüde düzelt, ya da azalt ve izle. Tabloyu okurken satır ile sütunu birlikte okuyun. Tek eksene bakarak karar vermeyin.
| Etki / Erişilebilirlik | Kolay | Sınırlı | Zor |
|---|---|---|---|
| Yüksek | Hemen düzelt | Hemen düzelt | Bu döngüde düzelt |
| Orta | Bu döngüde düzelt | Bu döngüde düzelt | Azalt ve izle |
| Düşük | Bu döngüde düzelt | Azalt ve izle | Azalt ve izle |
Hemen düzelt hücreleri nasıl okunur#
Hemen düzelt, çalışmanın durması demek değildir. Acil iş sırası demektir. Yüksek etki ile kolay erişimin kesişimi her zaman buraya düşer. Yüksek etki ile sınırlı erişim de buradadır. Gerekçe açıktır: sonuç ağırdır ve ulaşmak görece kolaydır. Bekletmenin karşılığı risk birikimidir.
Bu hücredeki bulgular için geçici azaltım ile kalıcı düzeltme birlikte planlanır. Geçici azaltım yayını durdurur. Kalıcı düzeltme nedeni ortadan kaldırır. İkisini aynı kayda yazın. Azaltımın ne zaman kaldırılacağını da yazın. Açık kalan azaltımlar zamanla unutulur.
Bu döngüde düzelt hücreleri nasıl okunur#
Bu döngüde düzelt, planlı iş demektir. Yüksek etkide zor erişim buradadır. Orta etkide kolay ve sınırlı erişim buradadır. Düşük etkide kolay erişim de buradadır. Ortak özellikleri şudur: ya sonuç orta düzeydedir ya da ulaşmak çaba ister. İkisi de bekletilebilir ama dönem dışına taşamaz.
Bu hücredeki bulgular sprint ya da yayın planına yazılır. Sahibi belli olur. Kabul ölçütü belli olur. Yeniden test tarihi belli olur. Sahipsiz ve tarihsiz bulgu, kapanmamış bulgudur. Planlama aracınızda ayrı bir etiketle izleyin.
Otomatik testlere bağlanan ekipler için bu hücre, kural eklemek için doğru yerdir. Yetki ve kimlik denetimlerini matrisle gezmek işi düzenli hale getirir. Bu disiplini otomatik taramaya taşıyan örnek akış için BOLA test matrisi otomasyonu yazısına bakılabilir.
Azalt ve izle hücreleri nasıl okunur#
Azalt ve izle, görmezden gel demek değildir. Ucuz bir önlem al ve kaydı açık tut demektir. Orta etkide zor erişim ile düşük etkide sınırlı ve zor erişim buradadır. Sonuç hafiftir ve ulaşmak zordur. Doğrudan düzeltme yerine yapılandırma sıkılaştırma ya da kayıt artırma yeterli olur.
Bu hücrede verilen kararın gerekçesi yazılır. Neden hemen düzeltilmediği, hangi azaltımın uygulandığı, hangi koşulda yeniden ele alınacağı kayda geçer. Koşul örnekleri: kimlik yapısı değişirse, veri sınıfı değişirse, yeni sömürü yolu bulunursa. Koşul gerçekleşince bulgu yeniden sınıflanır.
Hücre kararı yazım kalıbı: Etki: Orta (iç veri, aşım yok, yazma yok) Erişilebilirlik: Zor (ayrıcalık + gizli kimlik + çok koşul) Hücre: Azalt ve izle Azaltım: ayrıntılı hata metni kısaltıldı İzleme koşulu: kimlik yapısı değişirse yeniden sınıfla
Yöntem gösterimi: üç örnek olay#
Aşağıdaki üç örnek gerçek bulgu değildir. Yöntem gösterimi için kurgulanmış açıklayıcı örneklerdir. Amaç, aynı tablonun farklı girdilerle nasıl farklı hücre ürettiğini göstermektir. Hiçbiri gerçek bir sisteme, gerçek bir kayda ya da gerçek bir çalışmaya ait değildir. İsimler, kimlik değerleri ve uç noktalar anlatımı kolaylaştırmak için seçilmiştir.
Örnek 1: fatura kimliği ile başkasının faturasını okuma (açıklayıcı yöntem gösterimi)#
Kurgu şudur. Fatura görüntüleme uç noktası, yol üzerindeki kimliği olduğu gibi kabul eder. Sahiplik denetimi yoktur. Sıradan bir kullanıcı girişiyle başka bir faturanın kimliği yazılınca o fatura döner. Kimlikler art arda sıralıdır. Kurban etkileşimi gerekmez. Tek istek yeterlidir.
Etki değerlendirmesi şöyle yapılır. Fatura içeriği ad, adres ve tutar gibi kişiye bağlanan alanlar taşır. Başka kullanıcıya ait kayıt okunur. Kiracı ya da kullanıcı sınırı aşılır. Durum değişikliği yoktur, salt okuma vardır. Veri ve aşım birleşince etki yüksek işaretlenir.
Erişilebilirlik değerlendirmesi şöyledir. Sıradan hesap yeterlidir. Kimlik tahmini kolaydır. Etkileşim gerekmez. Tek istek yeterlidir. Bu yüzden erişilebilirlik kolay işaretlenir. Yüksek etki ile kolay erişim kesişince hücre hemen düzelt olur.
Örnek 1 sınıflandırma (yöntem gösterimi, gerçek bulgu değildir):
Etki: Yüksek (hassas fatura alanı + başka kullanıcı kaydı + salt okuma)
Erişilebilirlik: Kolay (sıradan hesap + art arda kimlik + etkileşimsiz)
Hücre: Hemen düzelt
Düzeltme yönü: sahiplik denetimi + tahmin edilemez başvuru
Düzeltme yönü iki parçalıdır. Sunucu tarafında her istekte kayıt sahipliği denetlenir. Kimlik yapısı tahmin edilemez başvurularla değiştirilir. İstemcide gizlenen kayıt, sunucuda yeniden denetlenir. Liste uç noktası yalnızca kendi kayıtlarını döndürür.
Örnek 2: yansıyan girdi yankısı (açıklayıcı yöntem gösterimi)#
Kurgu şudur. Arama sayfası, kullanıcının yazdığı metni sonuç başlığında olduğu gibi yansıtır. Çıktı kodlaması eksiktir. Bağlantıyı açan kişinin tarayıcısında girdi çalışır. Tetiklenmesi için kurbanın bağlantıya tıklaması gerekir. Saldırganın kimlik doğrulaması gerekmez. Bağlantı herkese gönderilebilir.
Etki değerlendirmesi şöyle yapılır. Doğrudan veri sızıntısı yoktur. Oturum çalınması ancak ek koşullarla olur. Tek başına okuma ya da yazma üretmez. Etkileşimli bir istemci sorunu olarak orta etki işaretlenir. Etkiyi büyütmek için ek varsayım eklenmez. Ek koşullar varsa ayrı bulgu olarak yazılır.
Erişilebilirlik değerlendirmesi şöyledir. Kimlik gerekmez. Hedef seçimi saldırgandadır. Tek kurban tıklaması gerekir. Akış birkaç adımdan oluşur: bağlantı hazırla, gönder, tıklamayı bekle. Bu yüzden erişilebilirlik sınırlı işaretlenir. Orta etki ile sınırlı erişim kesişince hücre bu döngüde düzelt olur.
Örnek 2 sınıflandırma (yöntem gösterimi, gerçek bulgu değildir):
Etki: Orta (doğrudan veri okuma yok + etkileşimli istemci sonucu)
Erişilebilirlik: Sınırlı (kimliksiz + tek tıklama + kısa akış)
Hücre: Bu döngüde düzelt
Düzeltme yönü: bağlama uygun çıktı kodlama + güvenlik başlıkları
Düzeltme yönü sunucu çıktısına odaklanır. Yansıyan her alan bağlama uygun biçimde kodlanır. Güvenlik başlıkları sıkılaştırılır. Bağlantı paylaşım akışı ayrıca gözden geçirilir. Tek noktaya yama yerine şablon katmanında genel kural uygulanır.
Örnek 3: ayrıntılı hata iletisi (açıklayıcı yöntem gösterimi)#
Kurgu şudur. Başarısız isteklerde sunucu, iç yol ve sorgu parçasını hata iletisine ekler. Herkes bu iletiyi tetikleyebilir. Doğrudan kayıt okuma yoktur. Kiracı aşımı yoktur. Durum değişikliği yoktur. Bilgi, keşif için yararlıdır ama tek başına ihlal üretmez.
Etki değerlendirmesi şöyledir. Veri kamusal ya da düşük değerlidir. Başka kullanıcıya geçiş yoktur. Yazma sonucu yoktur. Bu yüzden etki düşük işaretlenir. Bilginin saldırgana yol gösterdiği not edilir ama etki büyütülmez. Büyütme ancak birleşme kanıtıyla yapılır.
Erişilebilirlik değerlendirmesi şöyledir. Kimlik gerekmez. Özel etkileşim gerekmez. Tek istekle tetiklenir. Bu yüzden erişilebilirlik kolay işaretlenir. Düşük etki ile kolay erişim kesişince hücre bu döngüde düzelt olur. Gerekçe, düzeltmenin ucuz olmasıdır. Kısa bir yapılandırma değişikliği yeterlidir.
Örnek 3 sınıflandırma (yöntem gösterimi, gerçek bulgu değildir):
Etki: Düşük (kamusal bilgi + aşım yok + yazma yok)
Erişilebilirlik: Kolay (kimliksiz + etkileşimsiz + tek istek)
Hücre: Bu döngüde düzelt
Düzeltme yönü: genel hata iletisi + ayrıntıyı sunucu kaydına taşıma
Düzeltme yönü basittir. Kullanıcıya genel ileti gösterilir. Ayrıntı sunucu kaydına yazılır. Kayıt ile kullanıcıya gösterilen başvuru kodu eşleştirilir. Destek ekibi kodu kayıtta bulur. Bilgi kaybolmaz, yalnızca yeri değişir.
Üç örneği yan yana okuma#
Üç örnek aynı tablonun nasıl farklı sonuç ürettiğini gösterir. Birinci örnek yüksek etki ile kolay erişimi birleştirir ve en öne geçer. İkinci örnek orta etki ile sınırlı erişimi birleştirir ve plana girer. Üçüncü örnek düşük etki ile kolay erişimi birleştirir ve ucuz düzeltme olarak aynı plana girer.
| Örnek (yöntem gösterimi) | Etki | Erişilebilirlik | Hücre |
|---|---|---|---|
| Fatura kimliği ile okuma | Yüksek | Kolay | Hemen düzelt |
| Yansıyan girdi yankısı | Orta | Sınırlı | Bu döngüde düzelt |
| Ayrıntılı hata iletisi | Düşük | Kolay | Bu döngüde düzelt |
Bu karşılaştırma, etiket ezberini bırakmanın karşılığını gösterir. Etiketle bakılsa üçüncü örnek sona atılırdı. Tabloda bakılınca ucuz ve hızlı kapatılacağı için öne alınır. İkinci örnek, etkileşim gerektirdiği için birinci örneğin gerisinde kalır. Sıralama, gerekçeyle birlikte savunulabilir.
Önceliklendirme kuralı: önce hangisi kapanır#
Sıralama kuralı basittir. Önce hemen düzelt hücreleri kapanır. Sonra bu döngüde düzelt hücreleri plana girer. Azalt ve izle hücreleri kayda bağlanır. Aynı hücre içinde kalan bulgular, iş etkisiyle ayrılır. Ödeme ve kimlik akışları, aynı hücrede öne geçer.
Aynı hücrede kalanları ayırma#
Aynı hücrede birden çok bulgu birikirse şu sırayı kullanın. Dışa açık uç noktalar iç ağdakilerden önce gelir. Doğrudan para ya da kimlik sonucu üretenler, bilgi sızıntısından önce gelir. Düzeltmesi ucuz olan, pahalı olandan önce kapatılır ve moral kazandırır. Bağımlı olduğu iş kaydı olan bulgu, sahipsiz olandan önce ele alınır.
Bu ayrımı yaparken yeni sayı uydurmayın. Ağırlık katsayısı eklemeyin. Yüzde hesabı yapmayın. Sıralama, hücre ve iş etkisi cümlesiyle savunulur. Cümle şu kalıpta olur: aynı hücrede iki bulgu var, ödeme akışındaki önce kapatıldı çünkü doğrudan para hareketine dokunur.
Kapanış sırası: 1. Hemen düzelt hücreleri (yüksek + kolay ya da sınırlı). 2. Bu döngüde düzelt hücreleri (planlı işe yazılır). 3. Azalt ve izle hücreleri (azaltım uygulanır, kayıt açık kalır). 4. Aynı hücrede iş etkisi ve düzeltme maliyetiyle ayır.
Belirti düzeltmesi yerine kök neden kapatma#
Uç noktayı tek tek yamamak, sorunu taşır. Aynı denetim boşluğu başka uç noktada yeniden açılır. Kök neden, ilkenin eksikliğidir. İlke düzeltilmeden bulgu kapatılmaz. Fatura örneğinde kök neden, sahiplik denetiminin merkezi olmamasıdır. Yansıyan girdi örneğinde kök neden, şablon katmanında kodlama kuralının olmamasıdır. Hata iletisi örneğinde kök neden, hata işleme ilkesinin dağınıklığıdır.
Kök neden kapatma üç adımda olur. Önce ilke yazılır: hangi denetim, hangi katmanda, hangi sırada yapılır. Sonra ilke tek noktada uygulanır: yetkilendirme yardımcısı, kodlama filtresi, hata işleyici. Sonra geriye dönük tarama yapılır: aynı kusur başka uç noktada var mı. Üç adım tamamlanmadan kayıt kapatılmaz.
Bu bakış, test tarafıyla da uyumludur. Tek uç noktaya bakmak yerine işlev ve rol kesişimini gezmek gerekir. Yetki testini düzenli hale getiren ekipler, kök nedenleri daha erken yakalar. İşlev ve rol kesişimini matrisle gezmek bu işi düzenli hale getirir.
Kök neden kaydı:
İlke: her kayıt erişiminde sunucu tarafında sahiplik denetimi yapılır.
Uygulama noktası: veri erişim katmanındaki merkezi yardımcı.
Geriye dönük tarama: aynı desendeki uç noktalar listelendi, denetlendi.
Yeniden test: sahiplik dışı kimlikle erişim reddedildi.
Rapor kaydı, tablonun sınırları ve kısa sonuç#
Rapor, uzun anlatı değil kısa kayıt olmalıdır. Her bulgu aynı başlıklarla yazılır. Okuyan, kaydı bir dakikada anlamalıdır. Tablo kararı, kaydın parçasıdır. Gerekçe ile hücre birlikte yazılır. Böylece öncelik tartışması veriye dayanır.
Kısa bulgu yazım biçimi#
Her bulgu için şu beş başlığı kullanın. Bileşen: hangi uç nokta ya da sayfa. Ön koşullar: hangi hesap, hangi rol, hangi durum gerekir. Gözlenen: hangi istekle hangi yanıt alındı. Etki: veri, aşım ve yazma cümlesi. Sınırlamalar: hangi koşullar denenmedi, hangi birleşme olasılığı not edildi.
## Bulgu: sahiplik denetimsiz kayıt okuma (yöntem gösterimi) - Bileşen: /api/invoices/{id} - Ön koşullar: sıradan kullanıcı oturumu - Gözlenen: başka kullanıcıya ait kimlikle kayıt döndü - Etki: iç-hassas veri okuma, kullanıcı sınırı aşımı, yazma yok - Sınıflandırma: etki Yüksek, erişilebilirlik Kolay, hücre Hemen düzelt - Sınırlamalar: yazma denenmedi, zincir etkisi ayrı bulgu olarak yazılmadı
Bu biçimin karşılığı, yeniden üretim kolaylığıdır. Başka bir kişi aynı adımları izleyip aynı sonuca varır. Ham istek ve yanıt kayda eklenir. Kişisel veri maskelenir. Tarih ve sürüm yazılır. Kayıt, sürüm değişince yeniden test edilir.
Tablonun sınırları#
Bu tablo her şeyi açıklamaz. Dürüst sınırları bilmek, yanlış güveni önler. Tablo zincirleme etkiyi hesaplamaz. Tek başına düşük görünen iki bulgu birleşince yüksek sonuç üretebilir. Birleşme olasılığı her kayda not edilir. Zincir ayrı bir çalışma olarak ele alınır.
Tablo saldırgan niyetini bilmez. Hedefli saldırgan ile fırsatçı saldırgan aynı tabloyu farklı okur. Hedefli saldırgan zor erişimi göze alır. Bu yüzden yüksek etkili bulgular, erişim zor olsa bile planda tutulur. Tablodan düşürülmez.
Tablo iş etkisini paraya çevirmez. Kesinti süresi, sözleşme cezası, itibar kaybı ayrı değerlendirilir. Aynı hücrede kalan bulgular bu ölçütlerle ayrılır. Güvenlik kaydı ile iş kaydı birbirine bağlanır. İkisi aynı sahipsiz kuyrukta bekletilmez.
Tablo zamanla eskir. Kimlik yapısı değişir, veri sınıfı değişir, yeni yol bulunur. Sınıflandırma tek seferlik değildir. Her yayın öncesi açık kayıtlar gözden geçirilir. Değişen koşul, hücreyi değiştirir. Bu gözden geçirme kısa tutulur ama atlanmaz.
Kısa sonuç#
Etki ile erişilebilirliği ayrı yazın, kesişimde karar verin. Yüksek etkiyi öne alın, kolay erişimi öne alın, ikisinin kesişimini bekletmeyin. Aynı hücrede iş etkisiyle ayırın. Belirtiyi değil ilkeyi düzeltin. Kaydı kısa tutun, sınırları açık yazın. Bu disiplin, az bulguyla çok iş yapmanın yoludur.
Ne düşünüyorsun?
Tepki bırakarak geri bildirim ver