Başlangıç » Güvenlik » BadUSB nedir? Ne yapar? Tehlikesi nedir?

BadUSB nedir? Ne yapar? Tehlikesi nedir?

Uzun zamandır fırsat bulup yazamadığım bloğuma baktığım zaman benden epey geride kaldığını gördüm. Ufak da olsa birşeyler yazmak isteğine bugün artık karşı koyamadım 🙂
Bu yazıda BadUSB ‘den ve alınabilecek önlemlerden bahsedeceğim. Daha çok son kullanıcıdaki farkındalığı artırmak amaçlı bir yazı olacağından çok fazla teknik detaya girmeden herkesin anlayabileceği seviyede tutmaya çalışacağım. Bir sonraki yazımda muhtemelen kendi BadUSB mizi yapacağız. Bu sefer proof of consept (POC) tadında, mümkün olduğunca teknik,  meraklısına özel bir yazı olacak. Takipte kalın 🙂

Giriş

Günlük hayatımızda bize çok zararsız görünen USB bellekleri çıktı almak için, veri paylaşmak için vs  sıkça kullanıyoruz. Bazen bir zararlı yazılımla enfekte olmuş bilgisayar USB belleğimizin içeriğini gizliyor (birçoğumuz sildiğini sanıyoruz). Bu durum can sıkıcı olsa da çoğu zaman önemsemiyoruz. Başkalarından aldığımız, yolda bulduğumuz USB bellekleri bilgisayarımıza takıp dosya kopyalıyor, kopyaladığımız dosyaları açmadığımız sürece içinde zararlı yazılım olsa dahi birşey olmaz güvendeyiz diye düşünüyoruz. USB belleği tarayan anti-malware yazılımları nasıl olsa yakalar diye düşünebiliyoruz.
Bilgisayarınıza bir başkasının hakimiyetinde olan bir klavyeyi bağlar mıydınız?
Peki ya size o taktığınız USB belleğin aslında bir klavye olabileceğini söylesem?
Aklınızda iki soru belirmiş olmalı:
1-Nasıl yani? bildiğimiz flash bellek? Klavye olması mümkün mü? (olsa görürdüm tuşu hani nerede 🙂 )
2- Diyelim mümküm ne olacak ki?
USB arayüzüyle bağladığımız (fan led vs gibi sadece güç için bağlananlar masumlar  hariç) cihazlar  bilgisayarınıza kim olduğunu ne iş yaptığını ve nasıl çalıştığını bilgisayarınıza bildirmek durumundadırlar. USB bellek örneği üzerinden gidersek bilgisayarınıza bellek olduğunu , depolama işi yaptığını ve çalışma şeklini anlatır. Böylece siz de cihazınızı bu bilgiler ışığında bilgisayarınızın size sunduğu imkanlarla (cihaz driverı aracılığıyla) sorunsuz kullanırsınız. Bu işi yapan kısıma firmware (donanım yazılımı,bellenim) denir. Diğer bir ifadeyle firmware, “sayısal veri işleme yeteneği bulunan her tür donanımın kendisinden beklenen işlevleri yerine getirebilmesi için kullandığı yazılımlara verilen addır.” (wikipedia) . Bu yazılım cihaza gömülü olarak (halihazırda yüklü)  gelir. Bu durum USB bellekler ve klavyeler içinde dolayısıyla geçerlidir. İşte tam burada şöyle bir soru aklımıza gelmeli: Peki bu firmware in doğru söylediğini, örneğin bir USB belleğin bilgisayarımıza kendini USB bellek gibi mi yoksa başka bir cihaz (mesela klavye) gibi  mi tanıttığını kim kontrol ediyor? Bildiğim kadarıyla bunu kontrol eden bir mekanizma (en azından standart bir işletim sistemi parçası olarak ) mevcut değil. O zaman donanım yazılımı (firmware) değiştirilmiş bir cihaz bilgisayarımıza yalan söyleyerek kendisini başka bir cihaz olarak tanıtabilir ve hatta hiç beklemediğimiz şeyler yapabilir. USB bellek olarak gördüğünüz bir cihaz klavye olarak hareket edip bilgisayarınızda sanki siz birşeyler  yazıyormuşsunuz gibi davranabilir, kod çalıştırabilir. Normalde gerçekten USB bellek olarak kullanıldığını bildiğiniz (örneğin kingston, toshiba, sandisk vs bellekleri) cihazların bunu yapabilmesi için donanım yazılımının (firmware) özellikle değiştirilmiş ve klavye gibi davranmaya ayarlanmış olması gerekir. Teoride ilk sorumuzun cevabının olumlu olduğuna  gelmeye çalıştığımı anlamışsınızdır. Pratikte ise bunun mümkün olduğu  2014’te Karsten NOHL ve Jakob LELL adındaki iki araştırmacı tarafından Black Hat konferansında dünyaya duyuruldu ve kanıtladı. Bu tarih öncesinde bu durumun istihbarat teşkilatları tarafından bilinip kullanıldığı tartışmaları konumuz olmadığı için girmiyorum.

Peki BadUSB nedir?
BadUSB için görüntüsünün oluşturduğu beklentiden farklı şekilde çalışması için donanım yazılımı (firmware) özellikle değiştirileren veya doğrudan bu şekilde kodlanan USB cihazlardır diyebiliriz.
BadUSB için, görüntüdeki cihaz türünü USB bellekle sınırlamak doğru olmadığı gibi yaptığı işi klavye gibi davranmak olarak belirtmek de doğru olmaz. Bilgisayarınıza bağladığınızda sizden gizli klavye gibi çalışan ama sizi USB bellek görüntüsüyle aldatan bir cihaz, BadUSB’ ye güzel bir örnek olabilir (tanım değil). Piyasada bu işi yapan cihazlar USB Rubber duck olarak satılmakta. Takılan bilgisayarda istediğiniz işlemleri (veri çalmak,zaralı yazılım yüklemek vs vs işleri) yapabilecek scriptleri (kod parçalarını)
yazmanıza imkan tanıyan programlar internette bulunmakta.

USB Rubber Duck

Bu noktada BadUSB nin ne yapabileceğine dair bir örneği de vermiş olduk aslında: kod çalıştırmak.
Aşağıdaki videoda kendi oluşturduğum bir BadUSB’nin içine yerleştirdiğim firmware sayesinde klavye gibi davranarak internetteki bir sunucudan takıldığı bilgisayara zararlı yazılım indirdiğini ve çalıştırdığını görebilirsiniz. İşlem tamamlandığında bilgisayar saldırganın (ki bu örnekte ben oluyorum) kontrolüne geçmekte.

Dipnot: burada cihaz tarafından yapılan işlemin görülmesi, görülmeye ayarlanması ile ilgili. Gerçekte siz hiç birşeyin farkına varmadan da bu işlemler yapılabilirdi.

P_20160303_032041

Yazdığı kodlar (yaklaşık olarak) (Klavye yerleşimini değiştirdiğim için payload bozuk biraz)

Bu tehlikeli ve kötücül cihazlar nereden gelebilir?
Bu tür cihazlar (BadUSB) hedef noktaya yakın yerlere atılmak suretiyle bilinsiz kişilerce hedefe takılması amaçlanabilir. (bakınız önlem 3)
Aslında cevap her yerden olmalı çünkü; elinizdeki normal bir USB cihazı taktığınızda bir bilgisayarın (vs) bu işlemleri otomatik gerçekleştirip siz farketmeden cihazınızı aleyhinize çalışacak bir silah haline getirmesi mümkün(bakınız önlem 2 ve 4 ve 5)

Sonuç

Bu yazıda bir USB cihazın görüntüsünün sizi aldatabileceğini, farketmeden hoşlanmayacağınız şeyler yapabileceğini anlatmaya, farkına vardırmaya çalıştım.

Önlemler

Hitap etmeye çalıştığım kitle açısından yazının en önemli kısmına gelirsek:

1-Gerektiğinde kendinize ait USB cihazları kullanmalısınız.

2-USB cihazlarnızı güvenmediğiniz yerlere takmamalısınız.
3-Yalnızca güvenilen cihazları bilgisayarınıza bağlamalısınız. Yolda sağda solda bulduğunuz cihazları bağlamamalısınız.
4-Her USB cihaza güvenmemeli, güvendikleriniz de dahil olmak üzere takmadan önce önlem almalısınız.
5-Cihazların özellikle donanım yazılımında ve depolama içeriğinde zararlı yazılım taraması yaptırmalısınız.

6-Firmware güncellemelerinde kod imzalaması (code signing) kullanmalısınız.

7-Firmware güncellemelerini engelleyebilirsiniz.

8-Kullandığınız bilgisayarın (vs) kritiklik derecesine, sakladığı bilgilerin önemine göre USB portlarını tamamen kullanılamaz hale getirmeyi değerlendirebilirsiniz.

9-USB cihazı takıldığında doğrudan sanal bir bilgisayara bağlanacak şekilde ayarlayıp oradan kullanmayı düşünebilirsiniz.

Kötücül bir cihazın büyük ihtimalle bir klavye gibi davranacağını düşünürsek yukarıdakilere ek olarak :

  • (şüpheli) USB cihazı kullanmadan önce bilgisayarınızın ekranını kilitleyip cihazı takmak ve bir süre bekledikten sonra (ne kadar uzun o kadar iyi) kilidi açıp kullanmak,
  • (şüpheli) USB cihazı takmadan önce klavye düzeninizi (keyboard layout) normalde kullandığınız dilden ve ingilizceden başka alakasız bir dile değiştirmek
  • İnternetten yazılım indirmesi olasılığına karşı (şüpheli) cihazı kullanmadan önce interneti kesmek ve cihazı çıkarana kadar bağlamamak

önlemlerinin de faydalı olabileceğini düşünüyorum.

Umarım faydalı bir yazı olmuştur. Olumlu – olumsuz eleştirilerinizi yorum olarak yazmaktan çekinmeyin.

 

 

Yorum bırakın