Başlığımız her ne kadar 4.5G şeklinde olsa da, böyle bir kavram gerçekte varolmadığından işin eğlenceli bölümünü bir kenara bırakıp asıl konumuza gelelim: 4G / LTE şebekeleri sanıldığı kadar güvenli mi?
Cümleyi buradan kurunca sonunda pek iç açıcı noktalara ulaşamayacağımızı anlamışsınızdır. Evet, maalesef onca ek güvenlik iyileştirmelerine rağmen 4G şebekelerinde şimdiden pek çok sorun tespit edilmiş durumda. Üstelik bu zafiyetlerin üzerinde çalışmak için eskisi gibi çok özel ekipmanlara ihtiyaç da bulunmuyor, 1.200$'lık bir donanımla bile neler yapılabildiğine bu yazımızda değinmeye çalışacağız.
Akıllı telefonların yaygınlaşmasına paralel olarak 2G/GSM, 3G/UMTS ve son olarak 4G/LTE şebekeleri ile (henüz ülkemizde faaliyete geçmemiş olsa da) tanıştık. 2015 yılı sonunda tüm dünyada yaklaşık 1,4 milyar 4G abonesi olduğu hesaplanmaktadır.
2G şebekelerinde güvenlik üst düzey değildi ve yetkilendirme sürecindeki yetersizliklerden faydalanmak suretiyle, sahte bir baz istasyonu kurarak kullanıcıların bu istasyonla iletişim kurmasını sağlamak mümkündü. 3G şebekelerine geçişle birlikte hem baz istasyonu ile iletişim kurma sırasındaki yetkilendirme süreci hem de kullanılan şifreleme algoritmaları oldukça iyileştirildi. 4G ise bunu bir kaç adım daha öteye taşıyarak sinyalleşme sürecinde çok daha gelişkin bir yetkilendirme mekanizması ve daha güçlü şifreleme algoritmalarının kullanılmasını sağladı. 4G şebekelerinin fazlasıyla güvenli olduğuna dair genel bir algı olduğunu söylemek yanlış olmayacaktır. Ancak geçtiğimiz aylarda Helsinki ve Aalto Üniversitelerinden bir grup araştırmacının yayınladığı makalede görüleceği üzere [1], her şey bu kadar tozpembe değil.
4G mimarisi
Detaylara geçmeden önce bu yazının ve genel olarak konunun daha iyi anlaşılması için 4G mimarisindeki temel kavramlara kısaca değinmemiz gerekiyor. Bunun için yukarıdaki özet sistem mimarisinde yer alan bileşenler üzerinden gidelim:
User Equipment (UE): LTE şebekesindeki uç cihazlardır, yani akıllı telefonlar, tabletler ve modemler olarak düşünülebilir. Her cihaz bir USIM (Universal Subscriber Identity Module) barındırır. USIM, geleneksel SIM kartlara göre daha gelişmiş olup ek güvenlik imkanları da sağlamaktadır. USIM üzerinde sadece ilgili karta özel IMSI bilgisi ve şifreleme anahtarları bulunur. Cihaz ile baz istasyonu arasındaki sinyalleşmeler ve veri iletişiminde bu anahtarlar kullanılır.
E-UTRAN: 3G şebekelerindeki UMTS sistemlerinin yerine geçen, baz istasyonlarından oluşan yeni bir Radio Access Network tipidir. Daha önceki teknolojilere oranla yüksek bant genişliği, düşük paket gecikme (latency) süreleri ve sesten ziyade veri taşımaya göre optimize edilmiş olması gibi farklar barındırmaktadır. 4G şebekelerinde erişilen yüksek hızların temel kaynağı burasıdır.
eNodeB: 4G şebekelerinde E-UTRAN alanı içerisindeki her bir baz istasyonu, evolved NodeB, kısaca eNodeB veya eNB şeklinde adlandırılır. Öncesinde aynı işlevi yapan cihazlar NodeB olarak adlandırılırdı ve NodeB cihazlarının ayrı bir RNC (Radio Network Controller) ile yönetilmesi gerekirdi. eNodeB ile ayrı bir RNC ihtiyacı ortadan kaldırılmış ve bu fonksiyon eNodeB içerisine dahil edilerek isteklere daha hızlı yanıt verebilme imkanı sağlanmıştır. Her eNodeB, S1 adı verilen arayüzle bir EPC sistemine bağlanır.
EPC: Tüm IP ağ servislerini barındıran katmandır. EPC içerisindeki MME (Mobility Management Entity) ise veri iletişimi için gereken kaynakların tahsisi, yetkilendirme ve şifreleme gibi işlemlerin yanı sıra, UE'lerin lokasyonlarının takibinden sorumludur.
Tracking Area (TA): Mobil operatörin hizmet verdiği alanlar çeşitli coğrafi alanlara bölünür ve bunların her biri bir Tracking Area'yı oluşturur. Her bir TA içerisinde çeşitli cell'ler bulunur ve her cell bir eNodeB tarafından kontrol edilir. eNodeB sistemleri kontrol ettikleri cell içerisinde System Information Block (SIB) mesajları aracılığıyla sürekli olarak Tracking Area Code (TAC), Mobile Country Code (MCC), Mobile Network Code (MNC) ve cell ID bilgilerini yayınlar. Böylece USIM kartı takılı olan uç cihazlar kendi operatörünü seçip hizmet almaya başlayabilir.
Şekil üzerindeki temel bileşenleri genel hatlarıyla anladıktan sonra, süreç içerisindeki bazı diğer önemli başlıklara da kısaca değinelim.
Paging
GSM şebekelerinde genel olarak IMSI bilgisi kullanıcıyı uniq olarak tanımlayabilmek için kullanılır. 64 bitlik bu değer içerisinde kullanıcının lokasyonu ile ilgili bir kod da yer aldığı için, belirli bir kişinin takibini engellemek için bu bilginin zorunlu olmadıkça şebekeye gönderilmesi engellenir. IMSI yerine çoğunlukla rastgele üretilen Temporary Mobile Subscriber Identity (TMSI) bilgisi kullanılır. IMSI bilgisi sadece şebekeye ilk dahil olunurken veya herhangi bir sebeple şebeke ile kurulmuş olan oturum geçersiz hale geldiğinde kullanılmaktadır.
TMSI ise akıllı telefonunuzla baz istasyonu arasındaki doğrudan haberleşmeyi içeren Paging sürecinde yoğun biçimde kullanılır. 4G şebekelerinde yerini Globally Unique Temporary Identifier'a (GUTI) bırakmıştır.
Paging sürecinin hedefi, bir UE cihazının MME tarafından hangi eNodeB üzerinden hizmet aldığının, dolayısıyla lokasyonunun bilinmesini sağlamaktadır. Telefonunuz arandığında MME sizin o an hangi eNodeB üzerinden servis aldığınızı bilmiyorsa, Paging Request mesajı oluşturup bir timer kurar ve Tracking Area (TA) içerisinde yer alan tüm eNodeB'lere bu isteği gönderir. Bu mesaj Radio Resource Control protokolü ile (RRC) gönderilir. Bulma süresini kısaltmak için Smart Paging gibi yöntemlerle, öncelikle UE cihazının son iletişim kurduğu eNodeB'ler ve çevresindekilere isteğin gönderildiği varyasyonlar da mevcuttur.
Atak senaryoları
Bu kısa girişten sonra artık güvenlik zafiyetleri üzerine konuşmaya başlayabiliriz. Geçmiş yıllarda özellikle GSM şebekeleri üzerinde bu türden testler yapabilmek için hem çok pahalı donanımlar edinmek zorundaydınız hem de bir yerlerden başlamak için kaynak kodu açık yazılımlar bulmak mümkün değildi. Ancak günümüzde bu durum değişti.
Atak senaryoları pasif ve aktif olmak üzere ikiye ayrılıyor. Pasif senaryolarda UE cihazlarıyla doğrudan bir iletişim söz konusu değil, sadece havadaki bilginin 100$'ın altındaki ucuz donanımlarla (RTL2832U, HackRF vb.) dinlenmesi yöntemi kullanılıyor.
Aktif senaryolarda daha fazla işlem yapmak mümkün ve UE cihazlarıyla (örneğin akıllı telefonunuzla) doğrudan bir iletişim söz konusu. Elbette bunu yapabilmek için bir baz istasyonu (eNodeB) kurmanız gerekecektir. Şu anda 1.000 - 1.500 dolar aralığında aşağıdaki gibi bir kart ile bunu yapabilmeniz mümkün:
Atak tiplerinde sıklıkla kullanılacak olan Paging Request'leri yönetebilmek için açık kaynak kodlu kısmi LTE implementasyonlarından olan OpenLTE ve srsLTE [2] yazılımlarını da kullanmak gerekiyor. Böylelikle işlevsel bir eNodeB sistemini hayata geçirebilirsiniz.
Yalancı eNodeB oluşturma
UE cihazlarının temel özelliklerinden biri sürekli olarak etraflarındaki eNodeB'leri tarayarak sinyal kalitesi yüksek olanı seçmeye çalışmasıdır. Tıpkı kablosuz ağ adaptörlerinde olduğu gibi seçim algoritmaları üründen ürüne değişse de bu süreç her zaman varlığını korur. IMSI yakalama yöntemleri bu noktada devreye girmektedir. Eğer eNodeB sisteminizle hedefteki UE cihazına çevresindeki diğer sistemlerden daha güçlü yayın yapacak olursanız, ilgili cihaz sizinle iletişim kurmayı deneyecektir.
4G şebekeleri ile uyumlu UE cihazlarında ise bu durum bir miktar değişkenlik gösteriyor. Güç tüketimini azaltabilmek için UE ile eNodeB'nin birbirine yakın olduğu durumlarda tarama işlemi hiç yapılmamaktadır. Dolayısıyla daha güçlü bir yayın yapsanız dahi UE tarama yapmadığından hazırladığınız eNodeB sistemiyle iletişime geçmeyi de denemeyecektir.
Bu durumun etrafından dolaşmak için LTE spesifikasyonları içerisinde yer alan "Absolute Priority Based Cell Reselection" yönteminden faydalanmak gerekiyor. Buradaki temel amaç, UE cihazının hizmet aldığı eNodeB ile yeterince yakın olması nedeniyle yeni bir tarama yapmıyor olduğu durumda dahi, ortamda yeniden seçim (reselection) öncelik değeri daha yüksek bir frekansta çalışan eNodeB olması durumunda onunla iletişim kurmasını sağlamaktır. Her eNodeB, reselection algoritması için belirlediği frekansları ve önceliklerini UE'lere bildirir. Pasif dinleme yöntemiyle bu frekans bilgilerini gerçek eNodeB sisteminden öğrendikten sonra kendi eNodeB sisteminizi bu bilgiler doğrultusunda ayarlamanız mümkündür.
LTE broadcast kanallarını dinlemek ve etrafınızdaki eNodeB'ler hakkında bilgi toplamak için srsLTE projesi içerisinde examples dizininde yer alan pdsch_ue.c örnek kaynak kodunu inceleyebilirsiniz. Hazırladığınız eNodeB sistemi, gerçek MCC ve MNC değerleriyle yayın yapmalıdır. Ancak TAC (Tracking Area Code) değeri olarak gerçek eNodeB'lerden farklı bir kod kullanılmalıdır. Böylece UE cihazı yeni bir izleme alanı (TA) içerisinde olduğunu düşünüp, Tracking Area Update isteği gönderecek ve eNodeB ile iletişime geçecektir.
Son olarak OpenLTE projesinden çıkan LTE_Fdd_enodeb uygulaması ile LTE Attachment sürecini oluşturduğunuz eNodeB ile karşılıyor olmanız gerekecektir.
Önemli Uyarı!
Burada anlatılanlar 4G şebekelerinde mevcut olan zafiyetlere dikkat çekmek içindir. Eğer özet olarak değindiğimiz bu maddeleri detaylandırarak benzer bir ortam kuracak olursanız, eNodeB olarak sadece kendi test telefonlarınıza yanıt dönmelisiniz. Bunun için öncelikle test telefonlarınızın GUTI değerlerini pasif dinleme yöntemiyle öğrenip not etmeli ve OpenLTE içerisinde bu GUTI değerleri haricinde başka bir cihazdan istek gelmesi halinde, Tracking area not allowed mesaj tipiyle gelen talebi reddetmeli; böylelikle ilgili cihazın sizin eNodeB sisteminizle bağlantısını sonlandırmasını sağlamalısınız. Aksi takdirde etrafınızdaki telefonların şebekeden hizmet alamamasına yol açarsınız.
RRC protokol zafiyetleri
4G şebekesinde UE ile eNodeB arasındaki sinyalleşme süreçlerinde RRC protokolü yoğun biçimde kullanılır. RRC'nin kullanıldığı senaryolardan ikisi, herhangi bir şifreleme barındırmadığından zafiyetlere olanak vermektedir.
Bunlardan birincisi RRC ile broadcast yöntemiyle yayınlanan SIB (System Information Block) mesajlarıdır. Belirli bir UE cihazının TA alanı içerisinde erişiminin kesintisiz devam etmesi için bu bilgiler yayınlanmak zorundadır ancak bu aynı zamanda yalancı bir eNodeB sistemi kurulabilmesi için gereken değerlerin de başkaları tarafından kolayca öğrenilmesine yol açmaktadır.
Bir diğer problem RRC protokolü ile gönderilen Measurement Report mesajlarında yaşanmaktadır. Bu mesajlar daha çok operatörlerin problemleri incelemesine yönelik ek olanaklar sağlamak için tasarlanmıştır. Bir eNodeB kendisinden hizmet alan UE cihazlarına, hangi tip ölçüm sonucunu istediğini bildirerek UE cihazının ilgili değerleri geri dönmesini sağlayabilmektedir. Her ne kadar LTE spesifikasyonlarında bu mesaj tiplerinin AS Security Context Establishment'tan önce yani iletişim kanalının güvenliği sağlanmadan gönderilmemesi önerilmekteyse de, yazımıza konu olan makalede incelenen hiçbir sistemde bu önerilerin dikkate alınmamış olduğu ve bilgilerin açık bir şekilde gönderildiği tespit edilmiştir. Ayrıca UE cihazının desteklediği senaryolarda bu mesaj tipleri ile UE'lerin GPS koordinatlarının da gönderildiği görülmüştür. Tüm bu zafiyetler, bir UE cihazının lokasyon bazlı takibini mümkün kılmaktadır.
GUTI varyasyonları
4G'de mobil abonesi hakkında doğrudan bilgi veren IMSI mesajları yerine, rastgele üretilip kullanıcıyla ilişkilendirilen GUTI mesajlarının kullanıldığına yukarıda kısaca değinmiştik. Ancak GUTI mesajlarını sürekli değiştirmek efektif olmayacağı gibi uzun süre aynı GUTI üzerinden sisteme kendini tanıtan bir kullanıcının GUTI üzerinden takibi sorununu da gündeme getirecektir.
Bir kullanıcıya ne zaman yeni bir GUTI atanacağı operatör tarafından ayarlanmaktadır. Yazımızda incelediğimiz makalede farklı operatörler ile yapılan testler neticesinde GUTI bilgilerinin güncellenmesine ilişkin aşağıdaki 3 durum tespit edilmiş:
- Şebeke ile bağlantıyı kesip tekrar dahil olduğunuzda, bu işlemin süresi 1 saat de olsa 12 saat de olsa, operatör tarafından bir önceki GUTI değeri tekrar atanıyor.
- 3 gün boyunca aynı şehirde sürekli şebekeye bağlı bir UE cihazında herhangi bir GUTI değişimi gözlemlenmiyor.
- UE cihazının 1 gün boyunca kapatılıp yeniden açıldığı durumda, operatör tarafından yeni bir GUTI değerinin atandığı görülüyor. Ancak bu durumda atanan GUTI değerinin, bir önceki değerden sadece 4 bit farklı olduğu, dolayısıyla deneme yanılma yoluyla kolayca tahmin edilebileceğini eklemek gerekiyor. Bu da operatörlerin gerçekten rastgele değerler üretecek algoritmalar kullanmadığını gösteriyor.
GUTI değerlerinin uzun süre aynı kalışı ve bir UE için tamamen rastgele olmayıp önceki değerlere benzer sonuçlar üretmesi, GUTI mesajının ortaya çıkış amacını pratikte sıfırlamakta ve belirli bir kullanıcının şebeke içerisinde takibini olanaklı hale getirmektedir.
Pasif Atak - Lokasyon öğrenme
Bu atak yönteminde pasif bir dinleme yapılarak, ortamdaki IMSI ve GUTI değerleri dinlenerek kayıt edilir. IMSI değeri ile bir kullanıcının güncel olarak bulunduğu fiziksel alan, GUTI değeri ile de (yukarıda anlatılan örnekte yeterince rastgele değerler seçilmediği görüldüğünden) kullanıcının geçmiş ve gelecekteki lokasyonlarının bulunabilmesi için baz veri elde edilmiş olacaktır.
Yarı Pasif Atak - Lokasyon hassasiyeti
Kullanıcıların şebeke içerisinde kullandıkları CellID değerleri öğrenilebilecek olursa, daha hassas bir lokasyon bilgisi de elde edilmiş olacaktır. Test için bir şehirde bisikletle dolaşıp, cellmapper Android uygulamasıyla [3] etraftaki CellID, eNodeB, RSSI değerleri toplanarak aşağıdaki harita çıkarılmış:
İncelenen operatörde ortalama olarak bir TA alanının 10-30 km2, Cell alanlarının da 200-2000 metre yarıçapında olduğu görülmüş. Kişinin TA bölgesindeki hangi eNodeB üzerinde yer aldığını tespit etmek için yarı-pasif atak senaryosunda, ilgili kişiye VoLTE çağrısı (Voice-Over LTE) yapılmaktadır [4]. Bu çağrılar sistem içerisinde öncelikli olduğundan, bir an önce çağrının gerçekleşebilmesi için UE cihazının yer aldığı TA alanı içerisindeki tüm eNodeB'lere broadcast edilen bir paging request üretilmesine yol açar! Böylelikle aynı TA alanı içerisinde herhangi bir Cell'i dinlemekte olan biri, öncesinde hedeflediği kişiye VoLTE çağrısı göndermek suretiyle yerini tespit edebilme anlamında önemli verilere ulaşacaktır. Çağrının süresi paging request'lerin tüm eNodeB'lere ulaşabileceği kadar uzun, hedefteki kullanıcı cihazının çağrıyı alıp farkedemeyeceği kadar kısa olacak şekilde belirlenir. Yapılan testlerde 1-3 saniye arasında, karşıdaki kişinin telefonunda hiç bir bildirim gözükmeden VoLTE çağrı sürecinin başlatılıp paging request'lerinin dinlenebildiği görülmüş.
Aktif Atak - Tam lokasyon tespiti
Hedeflenen kullanıcının içinde yer aldığı TA alanı ve CellID değeri bir önceki yöntemle tespit edildikten sonra, aktif atak yöntemiyle daha hassas lokasyon tespiti de mümkün olmaktadır. Bunun için hedeflenen kullanıcının kurulacak yalancı eNodeB'ye bağlanması sağlandıktan sonra, ilgili cihaza eNodeB üzerinden RRC Connection Reconfiguration mesajı şifrelenmemiş olarak gönderilir. Bu mesajı alan UE cihazı (telefon), etrafındaki Cell'ler için gördüğü sinyal gücünü hesaplayarak, frekanslarıyla birlikte yanıtı eNodeB'ye şifrelenmemiş olarak döner. Hatta eğer UE cihazında 3GPP spesifikasyonlarındaki LocationInfo-r10 özelliği destekleniyorsa, bu bilgilere ek olarak cihazın GPS koordinatlarını da Measurement Report içerisinde dönmektedir!
Servis kesintisi atakları
LTE şebekesinde bazı açık noktalar kullanılarak, hedeflenen bir kullanıcının lokasyonunun tespitinin yanısıra, şebekeden hizmet almasının engellenmesi de maalesef mümkün.
GSM şebekesinin işlevsel olarak çalışması, bir kişiyi aradığımızda şebeke içerisinde yerinin tespiti ve hızlı bir biçimde konuşmanın başlaması için, UE cihazları şebekeye pozisyonu ve desteklediği modlarla ilgili TAU Request mesajlarıyla bildirimler gönderir. Örneğin cihazınız 2G, 3G ve 4G'yi destekliyorsa ve tercihli mod 4G olarak belirtilmişse, bunu TAU Request mesajlarıyla iletebilir ancak eNodeB sistemi isterse, TAU Reject mesajıyla bu talebi reddedebilir.
Güvenlik zaafiyeti yaratan nokta, TAU Reject mesajının bütünlüğünün korunması için herhangi bir yöntemin tanımlanmamış olmasıdır. Gerçek şebekeye bağlı bir kullanıcı TAU Request mesajı gönderdiğinde, yalancı eNodeB tarafından TAU Reject mesajıyla örneğin 7 nolu “LTE services not allowed” yanıtı dönülecek olursa, UE gerçek şebeke ile kurduğu tüm EPS context'lerini silmekte ve tekrar şebekeye bağlanabilmesi için SIM kartın çıkartılıp takılması veya cihazın yeniden başlatılması gerekmektedir. Bu sayede hedeflenen birinin telefonunun şebekeden hizmet alamaz hale getirilmesi mümkün olmaktadır (cihaz yeniden başlatılmadığı sürece).
TAU Prosedüründeki diğer başlıklar kullanılarak, belirli mobil servislerin devre dışı bırakılması, UE cihazının sadece acil durum çağrısı yapacak moda geçmesi gibi başka senaryoların gerçeklenmesi de mümkün görünüyor.
Özetle..
4G şebekesinde genel anlamda önceki versiyonlara oranla birçok yeni güvenlik önlemi alınmış olmasına rağmen, bu yazıda bahsetmeye çalıştığımız türden saldırılara olanak verecek bir tasarım boşluğu bulunduğu da ispat edilmiştir.
Yazıda referans olarak kullandığımız makalede, protokoldeki bu açıkların kapatılmasına yönelik çözümler de önerilmiş. Esasen konuyu inceleyen pek çok kişinin önerebileceği çözümler bunlar, çok özel bir bilgi gerektirmiyor. Peki, madem öyle, sistemler en başından bu açıklar olmayacak şekilde neden tasarlanmıyor, diye aklınıza bir soru geliyor olabilir.
Bunun kısa yanıtı, güvenlik ve kullanılabilirlik arasındaki hassas dengeden geçiyor. Örnek olarak hiç birimiz arama yaptığımızda karşıdaki telefonun çalmaya başlaması için minimum 10 saniye beklemeyi kabul etmeyiz. Sadece güvenlik odaklı düşünüldüğünde, ticari bir sürecin uçtan uca gerçekleşmesi ve kabul görmesi de sekteye uğramaktadır. Tüm GSM tarihçesi, salt güvenlik odaklı ilerlemiş olsaydı belki de zamanında Turkcell'e yatırım yapmayı anlamlı görmeyip, "daha araç telefonu bile kullanılmıyorken cep telefonu da neymiş" diyenler haklı çıkacaktı. Ancak öyle olmadı.
Birbiriyle çatışma halindeki bu iki başlık nedeniyle her zaman bir takım açıkların bulunması söz konusu olacaktır. Burada bahsettiğimiz bir kaç temel madde nedeniyle 4G şebekesinin tümüyle güvenilmez olduğu gibi bir yargıya ulaşılamaz. Oldukça karışık ve kapsamlı bir protokolde bu konular kıyıda köşede kalmış başlıklar olarak değerlendirilebilir. Önemli olan, zaafiyetlerin bu şekilde bağımsız çalışmalarla ortaya çıkartılabilmesi ve önlem alınması için farkındalık yaratılmasıdır.
Şu an sürekli reklamlarının döndüğü ve yakında devreye alınacak olan yurt içi 4G şebekelerinde durum nedir şeklinde aklınıza bir soru takılıyorsa, tahminen yazıda anlatılanla birebir aynı olduğunu söyleyebiliriz. Benzeri yöntemler izlenerek önümüzdeki aylarda test etmek mümkün olacaktır. (MD/HK)
* Bu yazı Murat Demirten'in kişisel blogunda yayınlandı.
Kaynaklar
[1] :http://arxiv.org/pdf/1510.07563.pdf
[2] : https://github.com/LucaBongiorni/openlte
[3] : https://play.google.com/store/apps/details?id=cellmapper.net.cellmapper
[4] : https://en.wikipedia.org/wiki/VoLTE