1 Aralık 2014 Pazartesi

Kuşatma 'TTweb virüsü'

         Öncelikle belirteyim, başlıkta "kuşatma" tanımını kullanmamın sebebi o gün Kubilay Onur Güngör'ün yapmış olduğu benzetmeyi beğenmiş olduğumdandır. "TTWEB virüsü" tanımı ise birçok kişinin olayı böyle isimlendirdiği ve değerlendirdiği içindir.

         14 Temmuz 2014 tarihinde özellikle öğleden sonradan itibaren Türkiye'deki bazı kullanıcılar her girdikleri sitede TTWEB diye bir yazılım kurmaları gerektiğini belirten bir uyarıyla karşılaştılar. Bazı kullanıcıların aktardığına göre DNS bütün adresleri zararlı siteye yönlendiriyordu, bazılarına göre ise istek yapılan sayfanın kodlarına ek olarak tam sayfa "iframe" kullanılıyordu.



         Birden yaşanan ve ciddi sayıdaki mağdurdan sonra hemen forumlarda, bazı bloglarda ve özellikle sosyal ağlarda konu dile getirilmeye başlandı. Ben de ilk duyduğum an Mert Sarıca ile iletişime geçmiş ve konu hakkında ortak bir akıl oluşturmaya çalışmıştım.

         İlk başlarda bunun sebebinin ne olduğuna dair farklı fikirlerin ortada gezdiğini o zamanki forumlardan anlıyoruz. Durumu fark eden bazı kişilerin "modeminize virüs bulaşmış" demesine rağmen bir çok forumda "modeme virüs mü bulaşır lan" gibi karşılıklar aldığını da görmüştüm.

         Bir süre sonra fark ettim ki bu sorunu sadece TP-Link marka bazı modelleri kullanan kullanıcılar yaşamıştı. Halihazırda bazı TP-Link modelleriyle alakalı keşfedilmiş çok ciddi bir zafiyet vardı. Modemin yedeğini almamızı sağlayan sayfada keşfedilen zafiyete göre yedek dosyası herhangi bir yetkilendirme olmadan sunuluyordu. Yani basitçe söylemek gerekirse bu yedek dosyasını indirmek için modemin kullanıcı adı ve parolası ile oturum açmış olmanız gerekmiyordu. Yapılan kısıtlamalara bağlı olmak şartı ile LAN veya WAN'dan erişebilen herkes bu dosyayı indirebiliyordu.

         Peki bu "rom-0" dosyasının önemi neydi? Önemi şuydu ki; modem yazılımının yedeğinin içerisinde modem web arayüzüne girerken kullandığımız kullanıcı adı ve parola da geçiyor. Bunu alan kişi modeme web arayüzünden veya telnet üzerinden kolaylıkla erişebilmekteydi.

         Mağdurların ortak noktası modemin kullandığı DNS adreslerinin değiştirilmesiydi. İnternete bağlanmak istediğiniz aygıtınız eğer kendisinde özel bir DNS tanımlı değilse modemin DNS'ini kullanıyor. Modemde de özel bir tanımlama yoksa internet servis sağlayıcının DNS'lerini otomatik olarak kullanıyor. DNS'lerin değiştirildiği ipucunun bizde olması oraya yönelik saldırılara yönelmemi sağladı. O anki yayınlanmış bilgilere göre DNS'leri değiştirmeye yarayacak bir yol CSRF diğer yol ise rom-0. Bana göre CSRF senaryosu çok kısıtlıydı. Çünkü CSRF ile tetikleyebilmek için ya kullanıcının modemin web arayüzündeki oturumunun o an açık olması gerekiyor ya da id:[email protected]/... gibi bir istek ile halledebilmek için ise modemin kullanıcı adının ve parolasının admin/admin veya çok çok kolay tahmin edilebilecek bir şey olması gerekiyor. Bir de bu kadar kullanıcının çok kısa bir sürede etkilenmesini hesap edersek herhalde bu kısıtlı durum için bile CSRF'yi tetiklemek için Türkiye'de en çok girilen bir sayfayı kullanmak gerekirdi. Ancak diğer yanda duran rom-0 çok daha zahmetsiz, otomatize edilebilen ve daha az iz bırakacak bir yöntemdi.

         İlk başlardan itibaren bu saldırının "rom-0" ile alakalı olduğunu düşünüyordum. Ancak maalesef ilk gece elime ne modem ne de indirilmesi istenen "TTWEB" dosyası geçti.

         Yaklaşık 2 hafta sonra DNS'leri değiştirilmiş bir TP-Link TD-W8901G elime geçti. Modem bu olayın olduğu 14 Temmuz gecesinden sonra çalışmamaya başlamıştı. Yani aslında olan modemin değiştirilen DNS'lerinin artık isteklere cevap vermiyor oluşuydu (94.23.144.121 ve 188.165.174.177). Zaten o zaman yaptığım araştırmaya göre işaret edilen bu IP'ler hacklenmiş sunuculara aitti. Muhtemelen fark edildikten sonra düzeltilmiştir.

         Mevzunun nasıl vuku bulduğunu çözmek için modemi incelediğimde erişim için kullanılabilecek bütün yolların kapalı olduğunu fark ettim. Web, SSH, Telnet vs. ile modeme erişilemiyordu. Modemde sadece 7547, varsayılan TR-069 / CWMP portu açıktı ancak onunla ilgili de bizim modeme bağlanmamızı sağlayacak bir şey çıkmamıştı. Sonra çare "hardware debug" yani modemi ve yazılımını açılışından itibaren incelemek olacaktı. Yine bir duvara daha çarpmıştık ki modemde kolay kullanılabilecek JTAG vb. bir port yoktu. Bu yazıda belirtilenle aynı model olmasına rağmen "board" birebir aynı değildi ve bazı ciddi farklılıklar vardı. Özellikle o yazıda da belirtilen bazı dirençlerin eksik olması sebebiyle ve bizim bunu tespit etmemizin daha uzun süreceğini, debug etsek bile zaten çok detaylı günlük (log) tutmaması ve bir süre de kullanılmış olması sebebiyle saldırının nasıl yapıldığına dair pek de bilgi bulamayacağımızı düşünerek tüm bu hayallere veda edip modemi fabrika ayarlarına sıfırladım.

         İlk fark ettiğim şu olmuştu ki; fabrika ayarlarına sıfırlandığında modemde erişim kurallarının belirtildiği ACL (Access Control List) devre dışıydı. Yani bu demek oluyordu ki modem her zaman internete açık bir vaziyette beklemedeydi. Böyle bir modemde "rom-0" zafiyetini tetiklemek ve DNS'leri değiştirmek çok zor olmasa gerek.

         Çok benzer bir senaryo kısa bir süre önce Cezayir'de gerçekleştirilmişti. "rom-0" açığını keşfeden kişi aynı zamanda pek çoğumuzun iyi bildiği bir firma olan SUCURI çalışanı "Nassereddine ABDELLI". Aynı zamanda kendisi de Cezayir'lidir. Zafiyeti paylaştığı yazının yorumlarında Cezayir'de bundan etkilenenlerin paylaştığı bazı resimlerde mevcut.

         Benzer bir vaka ise bir süre önce Team-Cymru'nun paylaştığı raporda bahsettiği olaydı. Ancak vakanın gerçekleştiği tarihlerde "rom-0" zafiyetinin henüz yayınlanmamış olması sebebiyle ona daha düşük bir ihtimal verip belki yayınlanmadan önce bile birilerinin çoktan keşfetmiş olduğu ve "0day" olarak kullandığı düşüncesi üzerinde duruluyordu. Bir de diğer alternatif metotlardan olan CSRF üzerinde duruluyor. Onlar da bizim gibi saldırının tam olarak nasıl gerçekleştiğini çözememişlerdi. Yani kesin olarak hangi teknikle yapıldığını gösterememişlerdi. Ancak bence o vakanın 2013 Aralık'ının ortalarına dayanıyor olması tahminlerini zorlaştırmıştı. O rapor ve güncellemesinde bahsedildiği üzere yine modemlerin DNS'leri değiştirilmişti. Raporda daha önceden yayınlanmış olan bazı tekniklerin üzerinde durulmuştu. (123 ...)

         Yine raporda da bahsedilen bir vakaya göre özellikle Polonya için DNS'ler değiştirilerek internet bankacılığı uygulamaları hedef alınmıştı. Hatta konu hakkında CERT/PL'nin bir yazısı da mevcut. Böyle olaylar hakkında bilgi verme konusunda darısı TRCERT / USOM'un başına diyorum.

         Konumuza geri dönecek olursak dediğim gibi ilk kurulumda ACL devredışı olarak gelen modemimize internet üzerinden yetkisiz olarak erişip, "rom-0" dosyasını alıp, ilgili parolayı içerisinden bulup, telnet üzerinden bağlanıp DNS'leri değiştirebiliyoruz.

Fabrika ayarlarında ACL devredışı gelen versiyon

         Hatta istersek incelediğim modemdeki gibi sonrası için erişim yollarını kapatabiliyoruz. Böylece normal bir kullanıcının modemi fabrika ayarlarına sıfırlamadan fark etmesi ve düzeltmesi zorlaştırılmış olacaktır. Zaten bu senaryo zafiyet yayınlandığı zaman yayınlanmış olan örnekle de aynı.

         Örnekte rom-0 dosyasını çözümlemek için modemlerin zafiyetleri ile uğraşanların mutlaka duymuş ve kullanmış olacağı bir siteyi kullanıyor. Ancak bu dosya Lempel–Ziv–Welch (LZW) ile sıkıştırılmış ve açmak için alternatif yöntemler mevcut (1, 2, 3, 4, 5, 6, 7, 8).

         İlginçtir, belirtmeden edemeyeceğim; bu araştırmayı yaparken TP-Link TD8951G model bir modem aldım. Beklediğim gibi bu da rom-0 zafiyetine sahipti. Ancak ilginç olan modem yazılımını güncellemek için web arayüzünden ilgili bölüme girdiğimde hata veriyor ve güncelleme ile ilgili sayfayı açmıyordu. Yani isteseniz bile güncelleyemiyordunuz. Durumu TP-Link Türkiye'ye e-posta ile ilettim. Bir dizi yazışmadan sonra sorunu çözmek için servise gönderilmesi gerektiğini belirttiler.

         Ben bu araştırmayı yaparken bir süre sonra MalwareMustDie'dan herkesin bildiği Hendrik Adrian'da benzer bir yöntem hakkında bir "twit" atmıştı.

         Zafiyete sahip modemden elde ettiğim bir HTTP başlığı ile görselleştirilmesine bir katkım olması açısından bir de Shodan raporu hazırladım. Bu rapor farklı zamanlarda yapılmış taramaları içerdiği için istatistikler gerçek değerlerle örtüşmeyecektir. Ancak bir fikir vermesini istiyorum.

https://www.shodan.io/report/mrue7myd

         Peki bu kadar anlattıktan sonra çözüm yollarından bahsetmek şart.

  • İlk önce yapılması gereken modemin kullandığı yazılımı mutlaka güncellemektir. Zaten bu zafiyet için de TP-Link bir yama yayınlamıştı. Zafiyete sahip olan modem sahipleri üreticinin sitesinden modelleri ile ilgili en son güncellemeyi indirip güncellemelidir (Ancak bu yukarıda da belirttiğim gibi bazı durumlarda kullanıcı tarafından yapılamıyor). 
  • Modemlerinde ACL veya benzeri bir şekilde erişim kısıtlamaya yarayan ayarları aktif etmeliler ve gerekmiyorsa WAN'dan erişimi kapatmalılar. 
  • Kullandıkları bilgisayar, telefon vs. cihazlarda otomatik DNS kullanmak yerine elle DNS tanımlamalılar. Bu sayede benzeri bir şekilde modemin DNS'leri değiştirilmiş olsa bile bilgisayar ya da mobil cihazlar öncelikle kendisinde tanımlı olan DNS'i kullanacaktır. Hoş, ülkemizdeki siyasi ve hukuki istikrarsızlık sebebiyle zaten bir çok kullanıcının bir şekilde DNS'lerini değiştirdiğini biliyoruz. (:

         En son aktarmak istediğim bu araştırma sonuçlarına aylar önce ulaşmış olmama rağmen bir süre yayınlamadan beklettim. Gönül isterdi ki bunları bir konferansta sunalım. Maalesef hem konferanslarla aramın iyi olmaması sebebiyle hem de bu araştırmadan da ilerisi için yapacağım çalışmanın yasal sıkıntılar yaratabileceğini düşünerek vazgeçtim. Konuyu araştırıp da ulaştığı bilgileri paylaşan başka biri olmadığını görünce bunları aktarmak istedim.

Umarım yararlı olmuştur.

Notlar: 

  • Yaptığım araştırmalar neticesince ufak bir kitle de olsa bir grup kullanıcının DNS'lerinin değiştirilme vakasının Mayıs ayı başlarına kadar gittiğini gördüm. Konu ile ilgili bazı sayfalar (1, 2, 3, 4, 5, 6, 7, 8, 9)
  • Muhtemelen etkilenen TP-Link modelleri: TD-8816, TD-8817, TD-8840T, TD-W8151N, TD-W8901N, TD-W8951ND, TD-W8961ND ve TP-Link'in konu hakkındaki açıklaması

22 Haziran 2014 Pazar

IDE ve Sürüm Takip Sistemi Tecrübelerim Üzerine

Yazmadım uzun bir süredir,
Yazma fırsatı bul(a)madım.
Hayat çok kısa be azizim.
Kuşlar uçuyor,
Londra düşüyor,
Falan.
Biraz da kalpazanlık.

Akıp giden bu zamanda, yaklaşık 3-4 ay gibi bir süreyle iki ayrı proje geliştirdik. Bunlardan biri C# diğeri ise Java EE projesiydi. Edindiğim bazı tecrübeleri sizinle de paylaşmak istiyorum. Olur ya belki birinin işine yarar.

İlk tavsiyem tek başına birşeyler geliştiriyor bile olsanız mutlaka sürüm takip sisteminin nimetlerinden yararlanın.

6 Kasım 2013 Çarşamba

Obama, Bubble Sort ve NSA

Malum, bir süredir gündemde NSA ve elektronik izleme var. 

Bazılarımız için yaşananlar hiç şaşılacak bir durum olmamasına rağmen eminim ki çoğumuz ilk duyduğunda epey şaşırmışdır. Özellikle elektronik dünyanın nereden gelip nereye gittiği hakkında kafa yormayanlarımız.

17 Mayıs 2013 Cuma

Ödül Avcılığı Üzerine

Yazımın başında belirtmek isterim ki önce ödül avcılığı (bug bounty) programları hakkında biraz genel bilgi verip biraz da naçizane eleştirilerimi yapacağım ardından kendi bulduğum önemli bir zafiyet ile ilgili bilgi vereceğim. Açık söylemem gerekirse ödül avcılığı programları hakkındaki görüşlerim daha öncesinde de aynıydı. Sadece tekrar gözlemlemiş olduğum için mutluyum.

Ödül Avcılığı Nedir?


Benim "ödül avcılığı" dediğim İngilizcesi "bug bounty" olan kavram; güvenliğe önem veren (verdiğini söyleyen) ve kendi ekipleri dışında başka kişilerin sistemlerinde buldukları zafiyetleri kendilerine bildirmelerini ve hatta kullanıcılar ile sitenin en az zarar görmesini sağlamak için çoğu zaman parayla teşvik edilen bir organizasyondur.

14 Şubat 2013 Perşembe

Zemana Antilogger Free

      Türk menşeili olmasına rağmen Türkiye'de pek az bilinen ama başarıları dünya çapında kanıtlanmış ender firmalardan biridir herhalde Zemana. Zaten Antilogger yazılımlarıyla çokça kez gerçek "bağımsız" kuruluşlar tarafından başarıları ispatlanmıştı.

23 Aralık 2012 Pazar

Beyaz Yakalı Hackerlar


Hackerları, şapkalarını ve renklerini eminim ki artık herkes duydu. Ancak bu biraz daha farklı.

Daha önce Türkçe'de böyle tanım yapan biri oldu mu bilmiyorum. Fakat tanımlamak istediğim "Beyaz Yakalı Hacker" kavramı.

23 Kasım 2012 Cuma

Sakallar ve Dedeler


Memleketimin güzel laflarından biridir; "Her sakallıyı deden sanma".

Peki niye böyle dedim? Aslında bununla alakalı bir yazı planlıyordum hatta ötesine de geçip telefona not almaya başlamıştım. Ancak içimde bunun için daha erken hissi uyanması sebebiyle bir anda vazgeçmiştim.