Bir yan kanal saldırısı olarak DMA, oturumu kilitli çalışan bilgisayarın (PC/Mac) RAM imajını almak için kullanılan bir yöntem. RAM imajında bağlanmış şifreli bölümlerin şifreleme anahtarı ve oturum için gerçekleştirilmiş birçok kritik işlemin bilgisi alınabilir.
FireWire ile DMA Saldırısı
Passware DMA saldırı tekniği kullanan ticari bir ürünü çoktan geliştirmiş. Ürün ile oluşturulan bir flash bellek ile bilgisayarınızı boot ediyor daha sonra hedef bilgisayarı FireWire bağlantı noktasından bir kablo aracılığı ile bağlayarak RAM imajını flash belleğe alıyorsunuz. Ürünün adı Passware Firewire Memory Imager Bitlocker, Truecrypt, PGP gibi birçok şifreli bölümden anahtar kurtarabiliyor.
Kernel modda çalışan firewire sürücsü exploit edilerek kod çalıştırma üzerine kurulu teknikte 1394 sürücüsünün kernel ve diğer bileşenler ile olan ilişkisi özetle şöyle betimlenebilir:
Aynı işi hibernation (Hazırda beklet) özelliği kullanıyorsanız hiberfil.sys dosyası üzerinden de gerçekleştirebiliyor, bu yöntemde FireWire üzerinden DMA saldırısı yapmaya gerek kalmıyor. Bu açık dizüstü bilgisayarlarda daha tehlikeli hale geliyor. Saldırgan PCMCIA genişleme yuvasına bir PCMCIA FireWire kartı takarak sistem belleğine doğrudan erişim sağlayabilir (DMA) Bu zaafiyet FireWire gibi PCMCIA ve ExpressCard yuvaları için de geçerli. Kısaca sisteminizdeki DMA erişimi olan tüm aygıtların yazılım sürücülerini silmeniz, eğer yapabiliyorsanız fiziksel olarak kendilerini kaldırmanız.
Bunları yapsanız bile Cold Boot saldırısı için yeni önlemler düşünmeniz gerek. Önümüzdeki zamanlar da bunun için de bir şeyler karalamayı düşünüyorum.
Kaynaklar:
https://en.wikipedia.org/wiki/DMA_attack
https://security.stackexchange.com/questions/17051/safely-disable-firewire-thunderbolt-patching-up-dma-exposure
http://itknowledgeexchange.techtarget.com/security-corner/not-using-firewire-port-disable-it/
https://freddie.witherden.org/pages/ieee-1394-forensics/
http://www.hermann-uwe.de/blog/physical-memory-attacks-via-firewire-dma-part-1-overview-and-mitigation
https://citp.princeton.edu/research/memory/
https://hurricanelabs.com/blog/attacking-defending-full-disk-encryption-blog/
http://www.faqoverflow.com/security/4098.html
http://technet.microsoft.com/en-us/library/bb530324.aspx
http://www.offensive-security.com/offsec/advanced-teensy-penetration-testing-payloads/
http://www.darkreading.com/risk/taking-usb-attacks-to-the-next-level/d/d-id/1134353?
http://jhctechnologyinc.blogspot.com.tr/2013/09/rubber-ducky-attackwith-simple-ducky.html
DMA ataklara karşı bildiğim en sağlam savunma:
1. Windows 8.1 lock durumunda DMA portları otomatik olarak kilitliyor, yanılmıyorsam bazı yeni Linux distrolarında bu özellik var ve aktif hale getirilebiliyor.
2. Tresor ve LoopAmnesia gibi yazılımlar var, bunlar encryption key’lerin CPU’da kalmasını sağlayarak (sistem memory’ye geçişini engelleyerek) DMA ataklara karşı önlem alıyorlar.Başka bir deyişle encryption’u kernel seviyesinde yapıyorlar. En son fuarda gördüğümde sadece 32 bit CPU’ları destekliyorlardı, yeni sürümleri çıktı mı bilmiyorum.
Ayrıca bu saldırıya karşı çeşitli seçenekler sunan TPM’li BIOS’lara ve Bitlocker’ın startup PIN’ine bir bakmak lazım, ben bilmiyorum, işin savunma değil daha çok saldırı tarafındayım.
Aslında bilgisayar lock olduğunda memory’nin ilgili kısımlarını kısmen sıfırlayacak küçük bir TSR program yazılabilir, belki de yazılmıştır, bilemiyorum.
Benim aklımda olan, ki fırsatını bulup mutlaka deneyeceğim, bilgisayar açıkken RAM’i söküp çalışan başka bir bilgisayara takmak ve içeriği okumaya çalışmak. (2000 öncesi Çernobil virüsünün bozduğu BIOS’ları benzer bir yöntemle kurtarıyorduk, buradan aklıma gelmişti) Bir de BIOS’un klavye buffer’ını okuyup buradan BIOS şifresini alabilen BIOS KB SNARF diye bir Phyton script’i vardı, bu işlemi de denemek lazım. Ayrıca DMA’dan Windows şifrelerini kırdığını iddia eden libforensic1394 gibi script’ler mevcut, şahsen hiç denemedim.
Truecrypt’ten nerelere geldi konu, kusura bakmayın.
Yazan: Tuncay Beşikçi