Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1

TOPIC:

Android USSD Kod Çalıştırma Açıklığı 10 years 2 months ago #182

  • quantum50
  • quantum50's Avatar Topic Author
  • Offline
  • Elite Member
  • Elite Member
  • Posts: 480
  • Karma: 4
  • Thank you received: 6
Bu yazımızda tarihi 2000'li yılların başlarına dayanan ancak son günlerde tekrar Android işletim sistemine sahip cihazlar ile gündeme gelmiş olan USSD açıklıklarından bahsedeceğiz. Öncesinde bazı temel kavramları açıklamak en doğrusu olacaktır.

Temel Bilgiler
USSD[1] (Unstructured Supplementary Service Data) kodları, mobil cihazların tuş takımı üzerinden girilen, cihaz ve operatör ile ilgili bazı işlemlerin yapılmasını sağlayan kodlardır. Bunlardan en çok bilineni cihazın IMEI numarasının gösterilmesini sağlayan *#06# kodudur. Farklı cihaz üreticileri için cihazlar üzerinden farklı işlemler yapabilme özelliğine sahip USSD kodları bulunmaktadır. Üretici ile ilgili kodlar farklılık gösterse de operatör bazlı kodlar cihazın markasından bağımsız olarak genellikle aynı olmakta veya çok benzerlik göstermektedir.

tel: protokolü[2] web sayfaları içerisindeki numaraların telefon numarası olarak yorumlanmasını sağlayan protokoldür. tel:URI şeklinde ifade edilen protokolde “tel:” sözcüğünden sonra kullanılan URI cihazın numara çeviricisi (dialer) tarafından çevrilecek olan numaradır. Böylece web sayfalarındaki numaraları direkt olarak çevirmek ve arama yapmak mümkün hale gelmiştir.

Ravishankar Borgaonkar’ın[3] tespit ettiği bu açıklık aslında tel: protokolü kullanılarak telefon numarası yerine USSD kodlarının tuşlanması ile gerçekleştirilen bir açıklıktır. Bu açıklık, aslında tarihi açısından 2000’li yılların başlarına dayanmaktadır. Benzer bir açıklık wtai: protokolü[4] kullanılarak USSD kodlarının çevrilmesi ile gündeme gelmişti. wtai: protokolü, tel: protokolü gibi WAP sayfası üzerinden tuşlama yapmaya imkan tanıyan bir protokoldür.

Borgaonkar’ın tespit ettiği bu açıklıkta[5] Android tabanlı cihazların ön tanımlı numara çeviricisinin tel: protokolünün işaret ettiği URI’ı otomatik olarak çevirdiği görülmüştür. Bu durum USSD kodları ile birleştirilerek daha riskli hale getirilebilmektedir. Çünkü USSD kodları tuşlandıktan sonra “Arama Yap” tuşuna basılmadan işleme alınmaktadır. Bu sebeple zararlı bir sayfa içerisine yerleştirilen bir iframe elemanının kaynağı olarak tel: protokolü ile birlikte bir USSD kodunun verilmesi, sayfa çağırıldığında otomatik olarak o kodun ön tanımlı numara çeviricisi tarafından tuşlanmasına ve kullanıcının isteği dışında bazı işlemlerin yapılabilmesine sebep olabilmektedir.

Örneğin

<html>
<iframe src=tel:*%2306%23 />
</html>
şeklinde hazırlanana bir sayfanın ziyaret edilmesiyle cihazın numara çeviricisi otomatik olarak *#06# değerini tuşlayacak ve ekrana cihazın IMEI numarası ekrana yazılacaktır. (*%2306%23 değeri *#06# değerinin URL kodlanmış halidir.)

1.png
Şekil 1 IMEI Numarasını Gösteren USSD Kodunun Bir Web Sayfasının Ziyaret Edilmesi ile Tetiklenmesi

Açıklığın Kullanılabileceği Durumlar
USSD kodlarının ve tel: protokolünün birlikte kötüye kullanılabilmesi için kullanıcının bir web sayfasına yönlendirilmesi yeterli olmaktadır. Bunun dışında tel intent’ini çağıran bir Android uygulaması yolu ile, direkt olarak web sayfasını çağıran bir kare kod okuyucusuna zararlı bir siteye ait kare kodun okutulması ile veya zararlı siteye işaret eden bir NFC etiketinin NFC okuyucu tarafından okutulması ile de bu açıklığın istismar edilebilmesi mümkün olmaktadır.

Açıklığın istismar edilebilmesiyle SIM kart PIN bilgilerinin değiştirilebilmesinden, mobil cihazların fabrika ayarlarına geri döndürülüp tüm içeriğinin silinmesine kadar çeşitli saldırılar gerçeklenebilmektedir. Bu saldırı vektörlerinden birkaçını aşağıda açıklayalım.

Cihazdaki PIN değiştirme menüsüne girmeden sadece tuş takımına girilecek bir USSD koduyla SIM kartın PIN değeri değiştirilebilmektedir. Saldırganların kullanıcının eski PIN bilgisini tahmin etmesi veya ön tanımlı PIN değerlerini içeren bir PIN değiştirme USSD kodu hazırlayarak bir web sayfasının içerisine entegre etmesi ile sayfayı ziyaret eden kullanıcıların PIN bilgisi değiştirilmeye çalışılacaktır. Ayrıca PIN kodunun 3 kereden fazla yanlış girilmesi durumunda PIN kodunun bloke olup PUK kodunun devreye girdiği göz önüne alındığında kullanıcıların yanlış PIN değeri ile PUK menüsüne düşürülmesi sağlanabilmektedir. Bir ileriki adım olarak PUK kodunun yanlış girilmesi ile de SIM kartın bloke edilebilmesi gerçeklenmesi kolay bir saldırı vektörüne işaret etmektedir.

2.png
Şekil 2 PIN Değiştirme USSD Kodunun Otomatik Olarak Çevrilmesi ve İşlemin Başarıyla Gerçekleştirilmesi

Cihaz üreticilerinin, cihazları fabrika ayarlarına geri döndürmek için kullandıkları USSD kodları da mevcuttur. Bu kodların bilinmesi her ne kadar çok kolay olmasa da bu kodların tel: protokolü ile kullanılarak kullanıcıların cihazlarının otomatik olarak fabrika ayarlarına döndürülmesi ve tüm cihaz içeriğinin silinmesi mümkün olabilmektedir.

3.png
Şekil 3 Fabrika Format USSD Kodunun Web Sayfası Üzerinden Tetiklenmesi

Temel Problem:

Bu açıklığın istismar edilmesini sağlayan en temel problem Android işletim sisteminin standart numara çeviricisinin (dialer) tel: ve wtai: protokolü ile gelen numaraları kullanıcı onayı almadan çevirmesidir. Bu durum özellikle standart telefon numaraları ile USSD kodlarının birbirinden ayrılamaması ile birleştiğinde daha büyük problemlere yol açabilmektedir.

Alınabilecek Önlemler
USSD açıklığına karşı en etkili önlem cihazın işletim sistemine ait en son güncellemenin yapılmasıdır. İşletim sistemleri mümkün olan en üst verisyona yükseltilmelidir.

Eğer cihaza uygun herhangi bir işletim sistemi güncellenmesi yayınlanmamışsa, standart numara çeviricisi yerine uygulama dükkanlarında bulunan çeşitli numara çeviricilerinden otomatik çevirme yapmayan bir tanesi cihaza yüklenip öntanımlı numara çeviricisi olarak bu yüklenen çeviricinin kullanılması sağlanabilir.

Yine uygulama dükkanlarında bulunan ve USSD saldırısını engelleyen uygulamalar indirilerek cihazlara kurulabilir. Ayrıca bazı anti-virüs yazılımları da USSD numalararının otomatik olarak çevirilmesini engellemekte ve kullanıcıya bir uyarı metni göstermektedir.

4.png
Şekil 4 USSD Kod Çalıştırma Açıklığına Karşı Geliştirilmiş Bir Uygulamaya Ait Ekran Görüntüsü

Sonuç olarak USSD kodlarının kötüye kullanımı eski bir saldırı yöntemi olsa da güncel işletim sistemlerini de tehdit eder hale gelmiştir. Cihaz ve işletim sistemi üreticileri bu açıklığa ait güncellemeler yayınlamaktadır. Bu güncellemelerin yapılması ile USSD saldırıları büyük oranda engellenebilmektedir.

Not: Yaptığımız testlerde marka ve model bağımsız olmak üzere Android 2.3.x ve Android 4.0.4 versiyonuna kadar olan birçok cihazda bu açıklığın istismar edilebildiğini gördük.

Please Log in or Create an account to join the conversation.

  • Page:
  • 1
Time to create page: 0.296 seconds

NDK Hoş Geldin