Web sitesi ve web uygulaması incelemesi

Web sitesi incelemesi, bir internet sitesinin belirli bir tarihte ne yayımladığını, hangi altyapıda çalıştığını ve sitede yapıldığı söylenen bir işlemin (üyelik, sipariş, içerik değişikliği, giriş) sunucu, uygulama ve veri tabanı kayıtlarıyla doğrulanıp doğrulanamadığını ortaya koyan teknik incelemedir. Dışarıdan görülen izlerle sitenin içinden alınan kayıtları önce ayrı ayrı, sonra birlikte değerlendiririz.

Güncellendi:

Kısaca

  • Bugün yayında olan bir içerik için noter e-Tespit'i ile HTML kaynağını, HTTP başlıklarını ve hash değerlerini kaydeden teknik edinim birbirini tamamlar.
  • Alan adı (RDAP), sertifika (Certificate Transparency) ve DNS kayıtları sitenin en geç ne zaman kurulduğunu gösterir; sahibini çoğu zaman göstermez.
  • Web arşivleri sayfanın yeniden kurgulanmış bir kopyasıdır: görseller ve stiller farklı tarihlerde kaydedilmiş olabilir.
  • Bir kullanıcı işlemi; erişim logu, uygulama kaydı ve veri tabanı satırı aynı oturumu ve aynı zamanı gösterdiğinde teknik olarak desteklenmiş olur.
Bu sayfada
  1. Web sitesi incelemesi hangi sorulara cevap verir?
  2. Dışarıdan görülen izler, içeriden alınan kayıtlar
  3. Alan adı, barındırma ve sertifika kayıtları ne gösterir?
  4. Sitenin belirli bir tarihteki hâli nasıl tespit edilir?
  5. Erişim logları, oturumlar ve API çağrıları
  6. Kullanıcı işlemleri teknik olarak nasıl doğrulanır?
  7. Kaynak kod, yetkilendirme ve güvenlik açıkları
  8. İnceleme için hangi materyal gerekir?
  9. Raporda neler yer alır, neler yer almaz?

Web sitesi incelemesi hangi sorulara cevap verir?

İnceleme, kayıtlarla cevaplanabilecek bir teknik soruyla başlar. En sık gelenler:

  • İçerik: Bu metin, bu fiyat ya da bu kampanya koşulu iddia edilen tarihte yayında mıydı, ne zaman değişti?
  • Altyapı: Alan adı ne zaman alındı, site nerede barındırılıyor?
  • İşlem: Üyelik, sipariş, onay kutusu ya da parola değişikliği gerçekten o hesaptan mı yapıldı?
  • Yönetim: Panelden bir içeriği kim düzenledi, kim sildi?
  • Güvenlik: İddia edilen yetkisiz erişim, sitenin o tarihteki sürümünde mümkün müydü?

Dışarıdan görülen izler, içeriden alınan kayıtlar

Kayıtların bir kısmı herkese açıktır, bir kısmı yalnızca siteyi işleten tarafta bulunur. Site karşı taraftaysa ikinci grup ancak site işleteninden ya da mahkeme eliyle temin edilir.

KaynakErişimNe gösterirNe göstermez
Alan adı kaydı (RDAP/WHOIS)Herkese açıkKayıt, son değişiklik ve bitiş tarihleri; kayıt kuruluşuKayıt sahibini (çoğu zaman gizli); silinip yeniden alınmış alanın önceki sahiplerini
DNS ve pasif DNSHerkese açık / ticariAlan adının hangi IP'lere ve e-posta sunucularına yönlendiği, ilk ve son görülmeYapılandırmanın gerçek tarihini
Sertifika kayıtları (CT)Herkese açıkAlan ve alt alan adları için sertifikanın verildiği anSitenin içeriğini ve sahibini
Web arşivleri, canlı edinimHerkese açıkSayfanın geçmişteki yaklaşık ve bugünkü görünümüGiriş gerektiren içeriği
Web sunucusu erişim loglarıSite işleteniHangi adresten, hangi URL'ye, ne zaman, hangi yöntemle istek geldiğiForm içeriğini (varsayılan ayarda); CDN arkasındaki gerçek istemciyi (ayar yoksa)
Uygulama, oturum ve panel kayıtlarıSite işleteniGirişler, oturumlar, API çağrıları, içerik revizyonlarıUygulamanın hiç kaydetmediği olayları
Veri tabanı, yedekler, kaynak kodSite işleteniKaydın kendisi, önceki hâlleri, çalışan kodDağıtım geçmişi olmadan, hangi sürümün yayında olduğunu

Alan adı, barındırma ve sertifika kayıtları ne gösterir?

Bu kayıtlar, bir sitenin en geç hangi tarihte kurulduğunu ve hangi altyapıda çalıştığını, siteyi işletenden bağımsız olarak gösterir. Sahte bir alışveriş sitesini tarihlemek için ilk bunlara bakarız.

ICANN, 28 Ocak 2025'ten itibaren genel uzantılı (gTLD) alan adlarında kayıt verisinin yetkili kaynağı olarak WHOIS yerine RDAP'ı esas aldı. RDAP yanıtındaki events dizisi, eventAction değerleriyle (registration, last changed, expiration) alan adının tarih çizelgesini verir. .tr alan adlarını 14 Eylül 2022'den beri BTK bünyesindeki TRABİS yönetir. Kayıt tarihi, alan adının mevcut kaydının tarihidir; süresi dolup yeniden alınmış bir alanda önceki sahiplik görünmez.

Certificate Transparency (RFC 6962), TLS sertifikalarının herkese açık ve yalnızca ekleme yapılabilen (append-only) loglara yazılmasını sağlar; crt.sh gibi arayüzlerle sorgulanır. Bir alt alan adı için verilmiş ilk sertifika, o adın en geç o tarihte kullanıma hazırlandığına dair güçlü ve bağımsız bir işarettir. Pasif DNS ise sensörlerin gördüğü sorgulardan oluşan bir gözlemdir; "ilk görülme" tarihi yapılandırmanın en geç o gün yapıldığını söyler, kesin tarihini değil.

Barındırma (hosting) tarafında IP adresinin hangi ağa ve firmaya ait olduğu, IP kayıt kuruluşlarının (Türkiye için RIPE NCC) kayıtlarından anlaşılır. Paylaşımlı barındırmada aynı IP adresinde çok sayıda site bulunabilir. Site bir CDN'in arkasındaysa görünen adres CDN'e aittir; asıl sunucu (origin) ancak eski DNS kayıtları gibi dolaylı izlerle bulunabilir, bazen hiç bulunamaz. Server ve X-Powered-By yanıt başlıkları sunucu yazılımına dair bir beyandır, gizlenebilir. MX ve SPF kayıtları e-postayı hangi hizmetin taşıdığını gösterir; konu sahte e-postaya uzanıyorsa e-posta incelemesiyle birleşir.

Sitenin belirli bir tarihteki hâli nasıl tespit edilir?

Yayındaki içerik bugün birkaç yolla kayda alınabilir; değişmiş içeriğe ise ancak arşivler ve sitenin kendi kayıtları üzerinden bakılabilir.

YolNe sağlarSınırı
Ekran görüntüsüEkranda görüneniKolayca üretilir veya düzenlenir; URL, sunucu yanıtı ve zaman bilgisi taşımaz
Noter e-Tespit (TNB)1512 sayılı Noterlik Kanunu m.198/A kapsamında 01.03.2016'dan beri sunulan hizmet; oturum başına en fazla 10 ekran görüntüsü ve 1 dosya indirmesi (azami 5 MB) noter sisteminde kayda geçerEkranda görüneni belgeler; HTML kaynağı ve HTTP başlıkları için teknik edinimle tamamlanır
Mahkeme eliyle delil tespitiDava öncesinde keşif ve bilirkişi incelemesi (HMK m.400)Mahkeme kararı gerektirir, zaman alabilir
Teknik edinimHTML kaynağı, HTTP yanıt başlıkları, ekran kaydı, indirilen dosyalar ve SHA-256 değerleri; istenirse nitelikli zaman damgası (RFC 3161)Sitenin veya hesabın kime ait olduğunu tek başına göstermez
Web arşivleriGeçmiş tarihli görünümYeniden kurgudur, bileşenler farklı anlarda arşivlenmiş olabilir; archive.today kayıtlarında içerik değiştirildiği tespit edildi

Bizce yayındaki bir içerik için en sağlam sonuç, e-Tespit ile teknik edinimin aynı gün yapılmasıyla alınır: biri ekranda görüneni, diğeri onun arkasındaki teknik veriyi kayda geçirir. Tespitin hukuki değerini avukatınız ve mahkeme değerlendirir. Ekran görüntüsünün zayıflıklarını ekran görüntüsünün delil değeri yazımızda anlattık.

İçerik değişmişse ve site incelemeyi isteyen tarafa aitse, sitenin kendi kayıtları arşivlerden daha güçlüdür. WordPress, yazı ve sayfaların önceki hâllerini wp_posts tablosunda post_type değeri revision olan satırlar olarak saklar; wp-config.php içindeki WP_POST_REVISIONS sabitiyle bu sayı sınırlanmış ya da kapatılmış olabilir. Revizyonlar varsayılan olarak başlık, içerik ve özet gibi alanları izler; bir eklentinin özel alanında tutulan değerin (fiyat, stok) eski hâli revizyonda bulunmayabilir. O zaman yedeklere ve sürüm kontrol geçmişine döneriz.

Erişim logları, oturumlar ve API çağrıları

Sunucu tarafı kayıtlar, sitede kimin ne yaptığına en yakın kanıttır; ama her kayıt yalnızca yapılandırıldığı kadarını tutar. Bu yüzden log dosyasından önce sunucunun log ayarlarını okuruz.

  • Apache'nin combined biçimindeki %r alanı yalnızca istek satırıdır (yöntem, yol, sorgu dizesi, protokol). Bir POST isteğinde hangi adrese form gönderildiği görülür, forma ne yazıldığı görülmez.
  • Site bir CDN veya ters vekil sunucunun arkasındaysa %h ya da Nginx'teki $remote_addr vekilin adresini gösterebilir. X-Forwarded-For başlığının güvenilir vekilin eklemediği kısımları sahte olabilir.
  • Varsayılan log biçimleri istemcinin kaynak portunu yazmaz; oysa CGNAT arkasındaki kullanıcıyı eşleştirmek için port ve saniye hassasiyetli zaman gerekir (IP ve CGNAT analizi).
  • Nginx'in $time_local alanı sunucunun yerel saatidir. Kaynaklar karşılaştırılmadan önce hepsi UTC'ye çevrilir.

Oturum kayıtları uygulamanın yapısına göre değişir. WordPress açık oturumları wp_usermeta tablosunda session_tokens anahtarıyla tutar; her oturum için giriş zamanı (login), IP adresi (ip), tarayıcı bilgisi (ua) ve bitiş zamanı (expiration) yazılır. Bu kayıt geçmişin değil o anın fotoğrafıdır: çıkış yapılan ya da süresi dolan oturumlar listeden düşer. JWT gibi sunucuda saklanmayan token'larla çalışan API'lerde ise oturum tablosu hiç olmayabilir; token'ın ne zaman hangi hesaba verildiği yalnızca kimlik doğrulama logunda görünür. Yönetici paneli işlemlerinin ayrı bir etkinlik günlüğü, yaygın içerik yönetim sistemlerinde çoğu zaman ancak bir eklentiyle tutulur; yoksa panel işlemleri erişim logu ve revizyonlardan yeniden kurulur.

API çağrılarında en değerli alan istek kimliğidir (ör. X-Request-ID). Aynı değer ters vekilde, uygulama logunda ve hata kaydında geçiyorsa tek bir isteği katmanlar boyunca izleyebiliriz. Site ile mobil uygulama çoğu zaman aynı API'yi kullanır; çağrının hangi istemciden geldiği User-Agent ve sürüm başlıklarından anlaşılır, ama bu alanlar istemcinin beyanıdır.

Saklama süresi ayrı bir sorudur. 5651 sayılı Kanun m.5/3, yer sağlayıcının (barındırma firmasının) trafik bilgisini bir ile iki yıl arasında yönetmelikte belirlenecek süre kadar saklamasını öngörür; 2007 tarihli Usul ve Esaslar Yönetmeliği (m.7/1-c) ise hâlâ altı ay der. Pratikte asıl soru, logun bugün sunucuda durup durmadığıdır. Diğer log türleri için: log analizi.

Örnek

Bir kampanya sayfasındaki katılım koşullarının ne zaman ve hangi yönetici oturumundan değiştirildiği sorulsun. Erişim logunda o dakikada /wp-admin/post.php adresine giden bir POST isteği, veri tabanında aynı dakikaya ait bir revizyon satırı ve aynı IP'den (ör. 203.0.113.25) açılmış bir yönetici oturumu birlikte bulunursa değişiklik o oturuma bağlanabilir. Üç kayıttan biri eksikse rapor bağlantıyı zayıf olarak niteler.

Kullanıcı işlemleri teknik olarak nasıl doğrulanır?

Bir kullanıcının sitede bir işlem yaptığı iddiası, aynı olayın birbirinden bağımsız kayıtlarda aynı zamanla ve aynı oturumla görünmesiyle desteklenir. İzlediğimiz sıra:

  1. Sorudaki işlemin veri tabanı kaydını ve tarih alanlarını alırız. Bu alanları çoğunlukla uygulama yazar ve yetkili bir kullanıcı değiştirebilir; tek başına kanıt saymayız (veri tabanı incelemesi).
  2. Uygulama logunda aynı işlemin API çağrısını, istek kimliğini ve kullanıcı kimliğini buluruz.
  3. Erişim logunda isteği yapan IP'yi, varsa portu ve User-Agent bilgisini oturumla eşleriz.
  4. Oturumun parolayla mı, SMS koduyla mı, hatırlanan cihazla mı açıldığına ve başka bir adresten de kullanılıp kullanılmadığına bakarız.
  5. Dış teyitleri ekleriz: e-posta bildirimleri, ödeme kuruluşu ve SMS gönderim kayıtları.
  6. Bütün zamanları UTC'ye çevirip tek bir zaman çizelgesinde birleştiririz.

Bu adımlar işlemin hangi hesaptan ve hangi oturumdan yapıldığını gösterebilir. Hesabı o anda klavyenin başında kimin kullandığı ise teknik kayıtların tek başına cevaplayamayacağı bir sorudur.

Kaynak kod, yetkilendirme ve güvenlik açıkları

Kaynak kod, sitede bir işlemin nasıl gerçekleştiğini ve bir yetki kontrolünün o tarihte var olup olmadığını gösterir. Tipik soru: kullanıcı adres çubuğundaki sipariş numarasını değiştirerek başkasının siparişini görebiliyor muydu? Bu, OWASP Top 10:2025 listesinin ilk sırasındaki "Broken Access Control" türüdür; bulguları bu listenin kategorileriyle sınıflandırırız.

Cevap bugünkü koda değil, o tarihte yayında olan sürüme bakılarak verilir; bunun için dağıtım kayıtları, Git etiketleri ve CI/CD geçmişi gerekir. Kodun ayrıntılı incelemesi yazılım ve kaynak kod incelemesi kapsamındadır. Güvenlik testini yalnızca incelemeyi isteyenin kendi sisteminde ya da yazılı izinle yaparız; başkasına ait sisteme izinsiz erişim TCK m.243 ve 244'ün konusudur. Yaşanmış bir saldırı için doğru başlangıç siber olay incelemesidir.

İnceleme için hangi materyal gerekir?

  • İncelenecek adresler (tam URL) ve tarih aralığı, saat dilimiyle birlikte.
  • Varsa ekran görüntüleri, e-Tespit tutanağı, ilgili e-postalar.
  • Site sizinse: erişim ve hata logları (sıkıştırılmış eski dosyalar dahil, ör. access.log.2.gz), veri tabanı yedeği, kaynak kod deposu, CDN ve WAF panel kayıtları.
  • Site karşı taraftaysa herkese açık kaynaklarla çalışırız; içerideki kayıtların nasıl isteneceğini avukatınız belirler, biz hangi kaydın hangi soruyu cevaplayacağını listeleriz.
Loglar dönerek silinir

Site sizinse ilk iş, log dosyalarını ve veri tabanını bugünkü hâliyle kopyalamak ve dosyaların SHA-256 değerini kaydetmektir (hash ve delil bütünlüğü). Log ayarlarını değiştirmeyin, eski dosyaları temizlemeyin. Hash değerini hash hesaplama aracıyla dosyalar cihazınızdan çıkmadan hesaplayabilirsiniz.

Raporda neler yer alır, neler yer almaz?

Rapor; soruyu, materyal listesini ve hash değerlerini, edinim adımlarını ve araç sürümlerini, bulguları ve zaman çizelgesini, alternatif açıklamaları ve sınırları içerir. Erişilemeyen kaydın hangi soruyu cevapsız bıraktığı ayrıca yazılır.

Hukuki nitelendirme yapmayız: "haksız rekabet yapılmıştır" demeyiz, "koşullar metni 14.07 UTC'de şu oturumdan değiştirilmiştir" deriz. Dava sürecinde mahkeme bu konuda bilirkişi görevlendirebilir; Bilirkişilik Daire Başkanlığının uzmanlık listesinde "Web, İnternet ve Multimedya" (18.01) ayrı bir alt alandır. Biz bilirkişi değiliz; taraflardan biri için uzman görüşü hazırlar ya da dosyadaki bilirkişi raporunu teknik yönden değerlendiririz. Raporumuz avukatınız tarafından dosyaya sunulabilir.

Sık sorulan sorular

İnternet sitesindeki bir içerik nasıl tespit ettirilir?

İçerik hâlâ yayındaysa üç yol vardır: Türkiye Noterler Birliği'nin e-Tespit hizmeti, dava öncesinde mahkemeden delil tespiti (HMK m.400) ve sayfanın HTML kaynağını, HTTP başlıklarını ve hash değerlerini kaydeden teknik edinim. E-Tespit ekranda görüneni, teknik edinim onun arkasındaki veriyi kayda geçirir. Yolu avukatınızla seçin; içerik her an kaldırılabilir, beklemeyin.

Bir web sitesinin kime ait olduğu nasıl öğrenilir?

Alan adı kaydı (RDAP; .tr uzantılılarda TRABİS) kayıt kuruluşunu ve tarihleri gösterir, ama kayıt sahibinin adı çoğu zaman gizlilik nedeniyle görünmez. Sunucu IP'si barındırma firmasını gösterir. Kayıt sahibinin kimliği genellikle ancak resmî bir taleple kayıt kuruluşundan veya barındırma firmasından öğrenilir; teknik izler bu talebin kime yöneltileceğini gösterir.

Sahte bir sitenin ne zaman kurulduğu anlaşılabilir mi?

Çoğu zaman yaklaşık bir tarih verilebilir. RDAP kaydı alan adının mevcut kaydının oluşturulma tarihini, Certificate Transparency kayıtları ilk TLS sertifikasının verildiği anı, pasif DNS alan adının ilk görüldüğü günü gösterir. Üçü birlikte sitenin en geç hangi tarihte yayına hazırlandığını ortaya koyar. Siteyi kimin kurduğunu ise göstermezler.

Wayback Machine kaydı delil olarak kullanılabilir mi?

Wayback Machine kaydı, sayfanın arşivlendiği andaki hâline dair bağımsız bir işarettir; ancak birebir kopya değil, yeniden kurgudur. Görseller ve betik dosyaları farklı zamanlarda arşivlenip tek ekranda birlikte gösterilebilir; her bileşenin tarihini ayrıca kontrol ederiz. İçerik değiştirildiği tespit edilen archive.today kayıtlarına dayanmıyoruz. Delil değerini mahkeme takdir eder.

Web sitesi uyuşmazlığında bilirkişiyi kim belirler?

Bilirkişiyi mahkeme veya savcılık görevlendirir; taraflar bilirkişi seçemez, yalnızca atanmasını talep edebilir (HMK m.266). Taraflar ise kendi seçtikleri bir uzmandan uzman görüşü (HMK m.293) ya da ceza yargılamasında bilimsel mütalaa (CMK m.67/6) alabilir. Biz bu çerçevede rapor hazırlar ya da dosyadaki bilirkişi raporunu teknik yönden değerlendiririz. Ayrıntı için uzman görüşü ile bilirkişi farkı.

Kaynaklar

  1. ICANN Update: Launching RDAP; Sunsetting WHOIS — ICANN
  2. RFC 6962: Certificate Transparency — IETF
  3. e-Tespit Hizmeti — Türkiye Noterler Birliği
  4. Log Files (Apache HTTP Server 2.4) — Apache Software Foundation
  5. 5651 sayılı İnternet Ortamında Yapılan Yayınların Düzenlenmesi ve Bu Yayınlar Yoluyla İşlenen Suçlarla Mücadele Edilmesi Hakkında Kanun — mevzuat.gov.tr
  6. 6100 sayılı Hukuk Muhakemeleri Kanunu — mevzuat.gov.tr
  7. 5237 sayılı Türk Ceza Kanunu (m.243, 244) — mevzuat.gov.tr
  8. OWASP Top 10:2025 — OWASP Foundation