Gün geçmiyor ki büyük bir şirketin web sitesinde, mobil uygulamasında, API’larında vs tespit edilen bir açıklık nedeniyle kuruma ilişkin veriler ya da müşterilere ait kişisel veriler sızmasın. Bazen öyle durumlar oluyor ki, sadece müşteri verileri değil, potansiyel müşterilere ait veriler de sızdırılabiliyor.
Kolay Erişim
Potansiyel müşteri mi? Nasıl yani?
Evet yanlış okumadınız, bazen öyle zafiyetler tespit edilebiliyor ki, kurumun sadece mevcut müşterileri değil, bu kurumun kullandığı web servisler aracılığıyla data çektiği 3. taraflardan tüm vatandaşların bilgileri dahi çekilebiliyor. Bu seferki anlatacağım hikayeyi doğrudan kendim gerçekleştirdim. Herhangi bir yasal sonuca sebep olmamak adına firma adını ve sektörü paylaşmayacağım.
Geçtiğimiz haftasonu, kendi ihtiyacım olan bir ürün için farklı firmaların web sitelerini dolaşıyordum. Bir tanesi ilgimi çekti. Verdiği ürünün fiyatından ziyade, bana bu ürünü sunuş şeklinde bir gariplik vardı. Ürün bilgileri için detayları TC Kimlik Numarası ile birlikte girdiğinizde size sadece fiyat gösteriyordu. Fakat o da ne? Belki şuraya küçük şirin bir link koyalım diye düşünmüşler ve potansiyel müşterilerine daha fazla bilgi vermek istemişlerdi.
Baktığınızda çok güzel geliyor. Bana ayrıntılı şekilde ürünü anlatan bir firma. Hemen o heyecanla linke tıklıyorsunuz ve sizin için oluşturulan PDF dokümanını görüyorsunuz. Bu PDF dosyasında ilk gözüme çarpan şey Adım Soyadım olmuştu. Ad-Soyad bilgisinin ne zararı olsundu ki… Ama bir saniye, ben adımı girmedim ki? Hatta TCKN dışında girdiğim tüm bilgiler sahteydi. (Öyle her siteye doğru bilgi girecek halimiz yok tabi, TCKN’nin gerçek olması gerekiyordu). Çok ilginç, ben kimlik numaramı girdim fakat o bilginin bana ait olduğunu teyid edecek 2. hatta 3. bilgi (ad, soyad, baba adı vs) istemeden:
- Adım
- Soyadım
- Türkiye’deki adresim
- Doğum yılım
karşımdaydı. O anda bana bakan birisi beni aşağıdaki şekilde görmüştür sanırım.
Güvenlik alanındaki arkadaşlar, böyle bir durumda neler hissettiğimi tahmin ederler. Tabi ki bir sonraki adım bunun suistimal edilip, edilemeyeceğini anlamak olacaktı.
Zafiyetin varlığını doğrulama aşaması…
Evet bu bir kez benim için çalışmıştı, peki tekrar edilebilir bir şey miydi? Bir zafiyeti raporlayabilmek için tekrar edilebilir, yeniden üretilebilir olması gerekir. Sistem artık güven vermemeye başladığından, kendi ailemin vs kimlik bilgisini girmek istemedim.
Burada en güzel yöntem gerçek kişiler yerine, rastgele TCKN kullanmak olacaktır. Peki TCKN nereden bulacaksınız?
TCKN 11 karakterli uzun bir sayıdır fakat sadece 11 karakterli olması ya da çift sayı olması bizim için yeterli değil. TCKN’nin, kredi kartı numarası algoritmasına benzeyen bir algoritması var. Burada ayrıntılı yazmayacağım, bir arama motorunda ararsanız hemen bulursunuz.
Bu aşamada TCKN algoritmasına uygun sayı üretmem gerekiyordu. Bunun için excelde basitçe random fonksiyonlarını kullanarak ve basamaklar arasındaki işlemi yaparak algoritmaya uygun 20 kadar sayı ürettim. Bunlar ile sisteme fuzzing yaptığımda, bir kısmına ilişkin PDF dokümanı linki oluştuğunu gördüm.
SİBER BÜLTEN OKURLARINA ÖZEL İNDİRİM: BU EĞİTİMİ KAÇIRMAYIN
Bu PDF dokümanlarını açtığımda tam tahmin ettiğim gibi, isimler, adresler, doğum yılları…
Bu zafiyetin 1. kısmıydı. Yani gönderdiğim TCKN’lere karşılık sahibine ilişkin ayrıntıları elde ettim. 2. Kısımda ise, hiçbir TCKN vermeden, oluşan linkteki sıralı numarayı fuzz ederek geçmişte oluşturulmuş tüm dokümanların da ulaşılabilir olduğunu gördüm. Eğer normal şartlarda bir authentication olan bir süreç olsaydı, bu zafiyetin adı IDOR olabilirdi: Insecure Direct Object Reference
Yani özetle sitede 2 tane büyük açıklık vardı. Tabi ki ilkinde tüm vatandaşların bilgilerini alabildiğiniz için çok daha büyük bir risk.
Buradan şunu da görmüş olduk, sadece sabah akşam Acunetix çalıştırıp XSS, SQLi arayarak böyle zafiyetleri bulamazsınız. Bu tip zafiyetler tamamen el yordamıyla çıkacak zafiyetlerdir.
Bu arada kurumun sayfasında gayet güzel yazılmış, çok ayrıntılı bir “KVKK Aydınlatma Metni” var. Siz usandınız duymaktan ama ben söylemeye devam edeceğim, Aydınlatma Metni, Açık Rıza vs ile şirketin, verilerinizi işleme ve paylaşması konusunda sadece belli bir disipline girmesine ufak katkınız olur ama bunlarla kişisel verileri koruyamazsınız. Görüldüğü üzere korumadı.
ÖMER ALTUNDAL YAZDI:
Nerede durmalıyız?
Burada durmalıyız, tam olarak burada. Örnek birkaç numara soguladık, bilgilerin her seferinde geldiğini gördük (tabi ki algoritmaya uygun her sayı TCKN değildir), raporlayabilecek kadar ekran görüntüsü aldık. Artık durma vaktidir. Eğer ethical hacker şapkasıyla birşeyler yapıyorsanız burada durmalısınız.
Sistemleri sömürmek, burada bulunan zafiyeti suistimal ederek data çekmek, uzun sürecek olsa da (11 haneli olması 100 milyar ihtimal demek değil, algoritmayı unutmayın) tüm TC vatandaşlarının bilgilerini çekmek (ölü ya da diri) çok büyük bir suçtur. Bunları yaptıktan sonra firmayı bilgilendirseniz dahi yapılan şey sahte kahramanlık olur. Yapılan işlem bilişim suçları kategorisinde değerlendirilir ve ciddi yaptırımları olur, olmalıdır da. Olsun lütfen!
Peki ne yapmalıyız?
Bu aşamada eğer zafiyeti tespit ettiğiniz şirketin Bug Bounty programı varsa şanslısınız. Bunu uygun kanaldan ilettiğiniz takdirde, size parasal bir ödül, kuruma ait eşantiyon ya da Hall of Fame’de adınızın yazılması olarak geri dönecektir. Tabi ki Türkiye’deki şirketlerin bu konuda oldukça çekingen olduğunu biliyoruz. Ben eski şirketlerimden birinde bunu uygulatmaya çalışmıştım fakat çok destek alamadım.
Ben de herhangi bir beklenti olmadan, aldığım ekran görüntüleriyle destekleyerek bir rapor hazırladım ve önce şirketin CEO’suna ulaşmaya çalıştım. Neden CEO diyebilirsiniz. Kişisel Veriler konusunda bir kurumda tepe yönetim sorumludur. En yüksek farkındalık orada olması gerekir. Çabalarım sonuç vermedi, IT direktörü pozisyonunda olduğunu gördüğüm kişinin kurumsal adresine (tabi adresi bilmiyorum) email ile bilgi verdim. Emaili bilmediğimden ad.soyad@kurum, asoyad@kurum, adsoyad@kurum gibi en olası formatlarda oluşturduğum adreslere ilettim. Yine cevap gelmedi. 1 ya da 2 gün sonra ilgili yönetici de, kendisine bağlı başka bir ekip üyesi email ile dönüş yaptı. Kendisine raporu ilettim. Telefonla da görüştük, aksiyon alacaklarını iletti ve teşekkür etti.
Zor ulaşsam da yaklaşım şekillerinden dolayı kendilerine teşekkür ediyorum ben de. Her zaman böyle yaklaşım göremeyebilirsiniz. Bir devlet hastanesinde bulduğum zafiyeti bildirğim için dayak yemediğim kalmıştı. Bir daha da bulaşmamaya söz verdim.
Bug Bounty Programları
Yukarıda kısaca değindiğim gibi, bazı şirketler Bug Bounty programları ile kendilerine zafiyet bildirimi yapan kişilere çeşitli ödüller veriyor. Özellikle Google, Facebook, Twitter, Apple vb şirketler bu konuda oldukça cömert olabiliyorlar.
Bulduğunuz zafiyetleri bildirmenin çeşitli yolları bulunuyor. Bazı şirketlere doğrudan bildirim yapabileceğiniz gibi, bazılarına ise farklı platformlardan ulaşabiliyorsunuz. Örneğin Hackerone, Synack, BugCrowd bunlardan birkaçı.
Buralarda alacağınız ödüller 1 milyon dolara kadar (rakamla 1.000.000) çıkabiliyor. Örneğin Apple, iOS’un kernelını, kullanıcı hiçbir şeye tıklamadan hackleyebilirseniz bu parayı size vermeyi vaad ediyor. Açıkçası böyle bir şey bulursanız gizli servislere daha yüksek fiyata satabilirsiniz bence.
https://developer.apple.com/security-bounty/
Son olarak tekrar hatırlatayım. Ofansif güvenlik çok eğlenceli gelebilir fakat sadece saldırarak bir kurumda güvenlik sağlayamazsınız. 360 Derece Bilgi Güvenliği konusunda yazdığım yazıyı okumanızı tavsiye ederim.