kullanici2
Nisan 14, 2026

Günümüz kurumsal dünyasında veri, su gibidir; her zaman dışarı sızacak en ufak bir çatlak arar. Bu sızıntıların en büyük aracı ise her gün milyonlarcası alınıp gönderilen e-postalardır. Bir hastane çalışanının, hastaların tahlil sonuçlarını içeren bir listeyi kişisel e-posta adresine göndermesi veya bir bankacının kredi kartı başvuru formlarını yanlışlıkla rakip bir firmanın domain adresine yollaması, saniyeler içinde gerçekleşen ama bedeli yıllarca ödenen felaketlerdir.
Bu felaketleri önlemek için şirketler ağın çıkış noktalarına DLP (Data Loss Prevention – Veri Sızıntısı Önleme) sistemleri yerleştirir. DLP, giden her e-postanın konusunu, gövde metnini ve hatta içindeki PDF veya Excel eklerinin satırlarını tek tek okuyarak “Burada gizli bir şey var mı?” diye soran devasa bir metin analiz motorudur. Ve bu motorun en sevdiği av, şüphesiz ki kişisel verilerin en kritik parçası olan T.C. Kimlik Numarasıdır.
DLP sistemine “T.C. Kimlik Numaralarını dışarı çıkarma” demek tek başına yeterli değildir. Makine, “T.C. Kimlik Numarası” kavramının ne olduğunu bilmez; o sadece sıfırlar ve birlerden oluşan veri paketleri görür. Bir makineye bu numarayı bulmasını öğretmek için, ona kusursuz bir “eşkal” vermeniz gerekir.
Peki, bu numaranın eşkali nedir? Milyonlarca kelime ve rakamın uçuştuğu bir e-posta metninde, sıradan bir kargo takip numarası veya bir telefon numarası ile gerçek bir T.C. Kimlik Numarasını birbirinden nasıl ayırırsınız? İşte bu eşkal belirleme sanatı, bilgisayar bilimlerinde Regex (Regular Expressions – Düzenli İfadeler) olarak adlandırılır. Regex, metin yığınlarının içinde belirli bir şablona, bir kalıba uyan karakter dizilerini bulmak için yazılan matematiksel ve dilbilimsel formüllerdir. Dijital dünyanın “Aranıyor” (Wanted) afişleridir.
Bir T.C. Kimlik Numarasının Regex şablonunu (kod bloklarına girmeden) kelimelere dökersek, sistemin arayacağı kurallar bütünü tam olarak şöyledir:
Uzunluk Kuralı: Sistem öncelikle, ne eksik ne fazla, tam olarak yan yana dizilmiş 11 adet rakam arar. Aralarında boşluk veya harf olan dizilimler anında elenir.
Başlangıç Kuralı: T.C. Kimlik Numaraları asla “0” (sıfır) rakamı ile başlayamaz. Bu yüzden Regex şablonumuzun ilk emri şudur: “Bulduğun 11 haneli sayının ilk rakamı 1 ile 9 arasında olmak zorundadır.”
Bitiş Kuralı: Vatandaşlık numaramızın mimarisindeki matematiksel yapı gereği, 11’inci hane (yani son rakam) her zaman çift sayı olmak zorundadır (0, 2, 4, 6 veya 8). Regex şablonumuzun son emri de bu karakterleri aramaktır.
DLP sistemi bu Regex kuralını kuşandığında, saniyede binlerce e-postayı tarar. Bir çalışan e-postasına “12345678901” yazdığı anda, Regex alarm verir: “İlk rakam 1 (sıfır değil), toplam 11 hane ve son rakam çift değil (1). Bu bir kimlik numarası olamaz, geçişine izin ver!” Ancak çalışan “10123456782” yazdığında, bu dizi şablona kusursuz bir şekilde oturur ve sistem veriyi anında havada yakalar.
Ancak siber güvenlikte sadece Regex kullanmak, çok büyük bir baş ağrısı yaratır. Çünkü Regex sadece şekle bakar, ruhu umursamaz. Örneğin bir şirketin 11 haneli ve sonu çift rakamla biten ürün barkodları veya kargo takip numaraları olabilir. Eğer DLP sadece Regex şablonuyla çalışsaydı, içinde barkod numarası geçen her masum ticari e-posta engellenir, şirketin işleyişi durma noktasına gelirdi. Biz buna siber güvenlikte “False Positive” (Yanlış Pozitif/Yanlış Alarm) deriz.
Bunu önlemek için modern DLP sistemleri, Regex kuralının arkasına ikinci ve çok daha zeki bir kontrol mekanizması ekler: Luhn veya Modülo-10 Benzeri Doğrulama Algoritmaları. T.C. Kimlik Numarası rastgele verilmiş 11 rakam değildir. İlk 10 hanesinin matematiksel bir formülle toplanıp çıkarılması ve 10’a bölünmesiyle elde edilen kalanlar, numaranın son hanelerini (sağlama hanelerini) oluşturur. DLP sistemi, Regex ile 11 haneli şüpheli sayıyı yakaladıktan sonra hemen kendi içinde bu matematiksel işlemi yapar. Eğer sayı sağlama kuralını geçemezse “Bu sadece tesadüfen 11 haneli olan bir kargo numarası” der ve e-postayı serbest bırakır. Eğer matematiksel sağlama tutarsa, işte o zaman av kesinleşmiştir.
Şimdi bu kuralın gerçek dünyada nasıl çalıştığını bir senaryo üzerinden canlandıralım:
Şirketin İnsan Kaynakları departmanındaki bir uzman, işten ayrılacak olan 50 personelin T.C. Kimlik Numaralarını, isimlerini ve maaşlarını içeren bir Excel dosyasını, yanlışlıkla (veya kötü niyetle) şirket dışındaki bir muhasebe firmasının Gmail adresine e-posta olarak göndermek ister.
Uzman “Gönder” butonuna bastığında, e-posta henüz şirketin sunucusundan çıkıp internete karışmadan önce DLP geçidine girer.
DLP motoru anında Excel dosyasını açar ve içindeki metinleri ayrıştırır.
Regex motoru, dosyanın içinde 11 haneli, sıfırla başlamayan ve çift sayıyla biten 50 farklı rakam dizisi tespit eder.
Algoritma motoru devreye girer, bu 50 sayının T.C. Kimlik doğrulama matematiğini hesaplar. Sonuç pozitiftir; bunlar gerçek kişilere ait verilerdir.
DLP, kurumun önceden belirlediği KVKK politikasına (Policy) bakar. Kural çok nettir: “İçinde 3’ten fazla T.C. Kimlik Numarası barındıran hiçbir e-posta kurum dışına çıkamaz.” O saniye e-postanın uçuşu durdurulur.
İlgili uzmanın ekranında “Gönderim Başarısız: Kurumsal Güvenlik Politikası İhlali” şeklinde bir uyarı belirir. Aynı anda, siber güvenlik operasyon merkezine (SOC) ve İnsan Kaynakları müdürüne kırmızı alarmlı bir rapor düşer: “Kim, ne zaman, kime, hangi dosyayı göndermeye çalıştı ve içinde kaç adet gizli veri vardı.”