Kanıt toplama ve tekrar üretim
- Kanıtlanamayan bulgu iddiadır; iyi paket ham istek, yanıt, zaman damgalı görüntü ve adım adım tekrar üretim talimatını bir arada taşır.
- İyi kanıt paketi ham istek, yanıt, zaman damgası ve adım adım tekrar üretim talimatı içerir.
- Kişisel veri kanıt içinde maskelenir ve gereksiz kopyası çıkarılmaz.
Puan bütün etkinlikleri cevaplayınca hesaba yazılır. Bu dersi tamamlayınca +50 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.
Raporu okuyan geliştirici senin ekranını görmedi. Elinde yalnız yazdıkların var. Bulgunun kapanması, o kişinin aynı sonucu kendi ortamında yeniden üretebilmesine bağlı. Bu yüzden kanıt toplamak testin ayrı bir disiplinidir.
Bulguyu bulduğun anda değil, temiz bir oturumda yeniden üretip kaydedersin. Kanıt üç işi birden görür. Bulguyu kanıtlar, düzeltmeyi yönlendirir ve sonradan çıkan bir itirazda seni korur. Paketteki her parça bu üç işten birine hizmet eder.
Kanıt okuyanın işidir
Kanıt kültürü, testi iddiadan ayırır. Bir bulgu için üç soru sorulur.
Ne gördün? Nasıl tekrar edilir? Etkisi nedir? Üçüne birden yanıt veremiyorsan bulgu henüz olgunlaşmamıştır.
Rastlantıyla oluşan bir durum, ikinci denemede tekrar etmiyorsa bulgu olarak yazılmaz; çünkü geliştirici onu yeniden üretemezse düzeltemez. Bu disiplin sana da fayda verir. Müşteri bir bulguya itiraz ettiğinde elinde ham kayıt durur ve tartışma kişisel kanaatten çıkıp belgeye döner. Kanıt, sözünün arkasında duran sessiz bir tanıktır.
Delil toplarken elindeki ham günlük dosyası ilk kaynaktır. Oturum boyunca giden her istek bu günlüğe düşer; sen yalnız ilgili uç noktayı ve başarılı yanıtları süzüp ayrı bir dosyaya taşırsın. Filtreleme sırası önemlidir. Önce hangi uç noktayla ilgilendiğini seçersin, sonra o uç noktadaki başarılı istekleri ayırırsın.
Ters sırayla ilerlersen ilgisiz başarılı isteklerin arasında boğulursun ve doğru satırı gözden kaçırırsın. Binlerce satırlık bir kayıtta doğru üç satırı bulmak, bu sıralamayı doğru kurmakla başlar.
$ cat oturum.log | grep '/api/faturalar/' | grep ' 200 ' | tee kanit/idor.txt GET /api/faturalar/1042 HTTP/1.1 -> 200 OK (12.4 KB) GET /api/faturalar/1043 HTTP/1.1 -> 200 OK (11.8 KB) GET /api/faturalar/1044 HTTP/1.1 -> 200 OK (12.1 KB)
Komutu parça parça oku. cat oturum.log ham kaydı okur. İlk grep yalnız fatura uç noktasına giden satırları tutar, gerisini atar.
İkinci grep bu satırlardan yalnız 200 yanıtı dönenleri ayırır; yani başarılı erişimleri. tee komutu çıktıyı hem ekrana basar hem kanıt klasöründeki dosyaya yazar. Çıktıdaki üç satır, art arda farklı fatura kimliklerinin aynı hesapla okunabildiğini gösterir.
Bir hesabın yalnız kendi faturasını görmesi gerekirken, 1042, 1043 ve 1044 kimlikli faturaların hepsi 200 dönüyor. Bu çıktı, yetkisiz nesne erişimi bulgusunun kanıtıdır.
Bu süzme işi aynı zamanda yanlış pozitifi eler. Ham kayıtta yüzlerce 404 ve 403 satırı olabilir; bunlar erişimin engellendiği, yani sorun olmayan satırlardır. Yalnız 200 dönenleri ayırmak, gerçekten okunabilen kaynakları bırakır. Bir bulguyu rapora yazmadan önce aynı çıktıyı iki kez üretirsin: ilk denemede şans eseri bir durum oluşmuş olabilir.
İkinci temiz oturumda da aynı satırlar dönüyorsa, elinde tekrarlanabilir bir kanıt var demektir. Tek seferlik bir ekran, bulgu değil ipucudur; onu doğrulamadan rapora taşımazsın.
Etkinlik 1 / 6
Ham istek kayıtlarından kanıt satırlarını ayıkla. Parçaları sıraya diz.
Parçalara tıklayarak komutu soldan sağa kur.
Paketi kurmak
Ham istek ve yanıt en değerli kanıttır. Başlıklar, durum kodu ve gövde birlikte saklanır. Araç kullandıysan sürümünü ve tam komutunu da yazarsın; aynı komut, aynı sonucu üretir.
Her bulgu kendi klasöründe durur ve rapor bu klasöre atıf verir. Böyle bir düzen, elli bulguluk bir testte bile hangi kanıtın hangi bulguya ait olduğunu bir bakışta söyler. Dağınık bir masaüstünde ekran görüntüleri birbirine karışır; klasör düzeni ise raporu yazarken her bulgunun kanıtını elinin altında tutar.
kanit/
idor-fatura/
istek.txt # ham HTTP isteği
yanit.txt # maskelenmiş yanıt
ekran-01.png # zaman damgalı görüntü
adimlar.md # tekrar üretim talimatıKanıtı toplarken zaman çizelgesi tutmak işine yarar. Hangi saatte hangi isteği attığını yazarsan, müşterinin kayıtlarındaki her satır açıklanabilir olur. Olay müdahale ekibi bu çizelgeyi doğrudan kullanır ve senin trafiğini gerçek bir saldırıdan ayırır. Araç çıktıları ham halde saklanır.
Sonradan biçimlendirilmiş bir çıktı, değiştirilmiş görünür ve güvenini azaltır. Ham dosyayı korur, rapora okunur bir alıntı koyarsın ve tam dosyaya ek olarak atıf verirsin. Böylece ana metin sade kalır, ayrıntı isteyen eke gider.
Tekrar üretim talimatı numaralı adımlardan oluşur. Hangi hesapla giriş yapıldığı, hangi sayfaya gidildiği, hangi değerin değiştirildiği ve beklenen yanıtın ne olduğu yazılır. Talimatı kısa tutarsın; çoğu bulgu için birkaç numaralı adım yeter.
Adım sayısı arttıkça okuyucunun bir yerde kopma olasılığı da artar. Araç sürümünü yazmak küçük ama önemli bir ayrıntıdır; aynı komut farklı sürümde farklı çıktı verebilir. Düzeltmeyi doğrulayan kişi senin kullandığın sürümle çalışırsa sonuçlar karşılaştırılabilir kalır ve tartışma çıkmaz.
Yetkisiz fatura erişimi için talimat şöyle görünür. Birinci adım: normal yetkili bir hesapla giriş yap. İkinci adım: kendi faturanı aç ve adres satırındaki kimlik numarasını not et.
Üçüncü adım: bu numarayı komşu bir numarayla değiştirip isteği tekrar gönder. Dördüncü adım: yanıtın 200 döndüğünü ve başka bir kullanıcının faturasını gösterdiğini gör.
Beşinci adım: beklenen güvenli davranış, 403 ya da boş bir yanıttır. Beş kısa cümle, bir yabancının aynı sonuca varması için yeter. Talimatı yazarken kendini hiç bilmeyen bir okuyucunun yerine koyarsın.
Etkinlik 2 / 6
Bir bulgunun kanıt paketini hazırlama adımlarını sırala.
Bir öğeye odaklan, yukarı ve aşağı ok tuşlarıyla taşı. Home tuşu en üste, End tuşu en alta alır.
- 1Adımları tekrar üretim talimatına çevir
- 2Kişisel veriyi maskele
- 3Ekran görüntüsünü zaman damgasıyla al
- 4Bulguyu temiz bir oturumda yeniden üret
- 5Ham istek ve yanıtı kaydet
Kişisel veriyi maskele
Türkiye'de bu disiplinin yasal karşılığı 6698 sayılı kanundur. Kanunun dördüncü maddesi, kişisel verinin işlendiği amaçla bağlantılı, sınırlı ve ölçülü olmasını ister. Bir bulguyu kanıtlamak için tek bir maskeli örnek yeter; bütün tabloyu kopyalamak bu ölçüyü aşar ve kendin yeni bir risk yaratırsın.
On ikinci madde ise veriyi hukuka aykırı erişimden korumayı ve gerekli teknik tedbirleri almayı zorunlu kılar. Yedinci madde, işleme amacı bittiğinde verinin silinmesini düzenler. Kanıt paketin bu üç maddenin kapsamına girer, çünkü içinde gerçek insanların verisi olabilir.
Ekran görüntüsü tek başına zayıf kanıttır. Üstünde zaman damgası, adres çubuğu ve oturum sahibinin kim olduğu görünmelidir. Aksi halde hangi hesapla ne zaman çekildiği tartışmaya açılır ve kanıt değerini yitirir. Görüntüde müşteri verisi varsa kimliği açan alanları maskeler, tek örnek bırakırsın.
Ham kişisel veriyi çoğaltmak yeni bir risk doğurur; görüntüyü tümden çıkarmak ise bulguyu kanıtsız bırakır. Doğru denge, maskeli tek örnektir: bulguyu kanıtlamaya yeter, veriyi gereksiz yere yaymaz. Maskelemeyi yayımdan önce yaparsın, çünkü rapor birçok elden geçer.
Maskeleme nasıl yapılır? Ad, telefon, kimlik numarası ve adres gibi alanların üstü düz bir kutuyla kapatılır ya da yıldızla değiştirilir. Bir ipucu önemlidir: aynı kişiyi gösteren alanları hep aynı biçimde kapat.
Bir kullanıcıyı bir yerde kullanici-A, başka yerde açık adıyla bırakırsan, iki görüntü birleştirilince kimlik yeniden ortaya çıkar. Araç çıktısındaki metni maskelemek de ekran görüntüsü kadar önemlidir; bir yanıt gövdesinde kalan tek bir telefon numarası, bütün çabayı boşa çıkarır. Maskeleme bir süsleme değil, veriyi koruma işidir.
Etkinlik 3 / 6
Kanıt ekran görüntüsünde müşteri verisi görünüyorsa ne yaparsın?
Tekrar üretim ve zamanlama
Kanıt toplamayı test sırasında yapmak zaman kazandırır. Bulguyu bulup sonra devam edersen, dönüşte ortam değişmiş olabilir. Uygulama güncellenir, veri silinir ve aynı ekranı bir daha yakalayamazsın. En sık yapılan hata, kanıtı test sonrasına bırakmaktır; teste dönüp aynı anı yeniden yakalamak çoğu zaman olanaksızdır.
Video kaydı bazı bulgularda metinden daha iyi anlatır. Çok adımlı bir yarış durumu ya da tarayıcı tabanlı bir zincir, kısa bir kayıtla net görünür. Kayıt da aynı maskeleme kurallarına bağlıdır; içinde gerçek veri görünüyorsa o da düzenlenir.
Kanıt toplamayı bir alışkanlığa çevirmek hız kazandırır. Klasör düzenini baştan kurarsın, her bulguda aynı dosya adlarını kullanırsın. Böylece rapor yazımı birleştirme işine döner; sıfırdan arama değil, hazır parçaları yan yana getirme olur.
Tekrar üretim adımları eksikse geliştirici ekip bulguyu yeniden üretemez; düzeltmeyi yapsa bile doğrulayamaz. Eksik bir talimat, zarif bir bulguyu bile raflarda bekletir. Bu yüzden her bulgunun yanına, bir yabancının adım adım izleyip aynı sonuca varacağı bir talimat koyarsın.
Derinleş:Delil zinciri adli bilişimden gelir
Kanıt toplamanın mantığı adli bilişimden tanıdıktır. Mahkemeye taşınan bir dijital delil, toplandığı andan sunulduğu ana kadar her el değiştirmeyi kaydeden bir zincirle gelir. Buna delil zinciri denir.
Zincir kırılırsa, delil değiştirilmiş olabileceği gerekçesiyle değer kaybeder. Sızma testinde amacın mahkeme değil, ama mantık aynıdır. Bir bulguya müşteri itiraz ettiğinde, kanıtın nasıl, ne zaman ve hangi araçla toplandığını gösterebilmen gerekir.
İnceleme her zaman kopya üzerinde yürür; aslına dokunulmaz. Dijital delilin tespiti, toplanması, edinimi ve korunması için ISO/IEC 27037 adlı uluslararası bir rehber de vardır. Ham dosyayı değiştirmeden saklamak, biçimlendirilmiş çıktı yerine orijinali korumak ve her adımı zaman damgasıyla yazmak, bu zincirin sızma testindeki karşılığıdır. Bu alışkanlık, bir gün bulgun gerçekten mahkemeye giderse de seni hazır bulur.
Etkinlik 4 / 6
Doğru mu, yanlış mı?
Tekrar üretim adımları eksik bir bulguyu geliştirici ekip kapatamaz.
Güvenli teslim
Kanıt paketini teslim ederken şifreleme kullanırsın. Parola ayrı bir kanaldan gider; dosyayla aynı e-postaya konan parola, kilidi kilidin yanına asmak gibidir. Bir e-posta ekinde düz gönderilen kanıt paketi, testin kendisinden daha büyük bir risk doğurabilir, çünkü içinde gerçek veri ve açık bir açığın kanıtı vardır.
Kanıt klasörünü rapordan ayrı teslim etmek de iyi bir alışkanlıktır. Rapor okunur ve kurum içinde dolaşır; ham kanıt ise dar bir alıcı listesinde kalır, şifreli durur ve işi bitince silinir.
Teslim sonrası silme de bir yükümlülüktür. KVKK'nın yedinci maddesi, işleme amacı bitince verinin silinmesini ister. Kanıt paketinin amacı rapor kapanınca biter; o yüzden dosyaları siler ve silme işlemini müşteriye yazılı bildirirsin.
Saklanan her gereksiz kopya, bir gün sızabilecek yeni bir risktir. İyi bir test ekibi, bir açığı kapatmaya giderken yanında yeni bir açık bırakmaz. Kanıtı güvenle topladığın gibi güvenle de yok edersin; bu iş mesleğin görünmeyen ama ayrılmaz bir parçasıdır.
Etkinlik 5 / 6
Kanıt paketini müşteriye nasıl teslim edersin?
Teslim yolu testin sonunda değil, başında kararlaştırılır. NIST'in kural koşum şablonu buna veri işleme adlı ayrı bir başlık ayırır. Test verisinin nasıl toplanacağı, nerede saklanacağı, nasıl aktarılacağı ve nasıl yok edileceği belgede açıkça yazılır. Şablon gerekçesini de verir: test sonuçları bir saldırganın kullanabileceği açıkları gösterir, bu yüzden hassas veri sayılır.
Altay Kargo ile yapılan bir testte bu madde şöyle görünebilir. Kanıtlar şifreli bir arşivde durur, parola telefonla iletilir, arşiv rapor kabulünden sonraki otuz gün içinde silinir. Rapor ile kanıtı ayrı kanallardan göndermek, ikisinin tek bir sızıntıda birlikte ele geçme olasılığını da düşürür.
Etkinlik 6 / 6
Hangileri iyi bir kanıt paketinde bulunur?
Okumayı istediğin sırayla sürdürebilirsin. Ders, bütün etkinlikleri cevapladığında tamamlanır.