Elektronik cihazların, istihbarat servisleri tarafından arka kapılar aracılığıyla erişilebilir olduğu spekülasyonlarından sonra, NSA içi bir katalog son kullanıcı cihazlarında bu tür yöntemlerin zaten var olduğunu açığa çıkardı.

Kurumsal bilgisayar ağlarına modern güvenlik duvarları geldiğinde, dünyanın ikinci en geniş ağ donanım üreticisi kendi işlerini övmekte cimrilik yapmadı.

Juniper Network’ ün çevrimiçi PR kopyasına göre, şirketin ürünleri, büyük şirketleri ve bilgi işlem merkezlerini dışarıdan istenmeyen erişimlere karşı korumada “ideal” di. Şirketlerin özel bilgisayarlarındaki performanslarının “rakipsiz” ve güvenlik duvarlarının kendi sınıfında en iyisi olduğunu iddia ediyorlar.” Bu vaatlere rağmen, bu ürünlerin savuşturamayacağı bir saldırgan var- NSA

İstihbarat organizasyonlarındaki uzmanlar yıllar önce şirketlerin dijital güvenlik duvarlarının içine işlemeyi başardı. SPİEGEL tarafından görülen ürün kataloğunu andıran yayınlanan dökümanda ANT olarak bilinen NSA bölümü, Amerikan bilgisayar üreticisi Dell gibi, sektörün içindeki ana oyuncular tarafından yapılan güvenlik mimarisinin yolunda kendine tünel kazdı. -Amerikan global market lideri Cisco ve onun Çinli rakibi Huawei dahil.-  Bakınız: Cisco / Dell Comments Re: NSA Backdoors

Gizli kapıları tasarlayan NSA ajanlarının, dijital hayatlarımızın tüm kademesine göz atması mümkün-kodlama merkezlerinde kişisel bilgisayarlara, laptoplardan mobil telefonlara-. ANT nerdeyse her kilit için, kendi araç kutusunda bir anahtar bulunduruyor gibi görünüyor.

Bu en az, 50 sayfalık dökümana göz atmayla elde edilen izlenim. Liste, NSA çalışanlarından birinin diğerine gönderdiği, hedeflerin verilerini çekmek için ANT bölümünden teknolojileri sipariş edilen bir mail-sipariş kataloğu gibi okunuyor. Hatta katalogta, bu elektronik hırsızlık araçları için fiyatları 0'dan 250,000$'a kadar listeleniyor.

Juniper’da, bu özel dijital kilit aşırıcının adı "FEEDTROUGH" dur. Bu zararlı yazılım, Juniper güvenlik duvarının içine saklanır ve merkezi işlem bilgisayarlarının içine diğer NSA programlarını gizlice sokmayı mümkün hale getirir. FEEDTROUGH sayesinde, tasarım gereği bu implantlar, hatta "sistemin yeniden yüklenmesiyle ve yazılım güncellemeleri arasında" yaşayabilir. Bu sayede, Amerikan hükümeti casusları kendilerini bilgisayar ağlarında kalıcı bir varlık olarak güvence altına alabilir. Katalog, FEEDTROUGH ‘un "birçok hedef platformlarda konuşlandırıldığını" belirtiyor.

Açılımı muhtemelen Gelişmiş veya Network Erişim Teknolojisi olan ANT’deki uzmanlar, NSA’daki TAO (Tailored Access Operations) için bölümdeki ana marangozlar olarak tarif edilebilir. TOA'nun her zamanki hack etme ve veriyi yüzeyden sıyırma methodunun yeterli olmadığı durumlarda, ANT çalışanları özel araçlarıyla adımı atar, ağ donanımlarına sızar, mobil telefon ve bilgisayarları izler, veriyi aktarır ve hatta veriyi değiştirir. NSA deyişiyle "implant" olarak da ifade edildiği gibi, istihbarat örgütünün yeteneği internet yanında faaliyet gösteren küresel bir gizli ağ kurmak için önemli bir rol oynamıştır.

Mevcut bazı donanımlar oldukça ucuz. Örneğin, “ TAO personelinin hedeflenen monitör üzerinde neyin gösterildiğini görmesine” izin veren hileli monitör kablosu sadece 30 $ karşılığında kullanılabilir. Ama "aktif GSM baz istasyonunun" -- olası bir cep telefonu kulesini taklit eden ve böylece cep telefonlarını izlemek için yapılan bir araç -- maliyeti tam 40.000 $. Farkedilmeden radyo üzerinden veri alma ve gönderme yeteneğine sahip, normal USB fişleri kılığındaki bilgisayar fişleme cihazları, 50li paketler halinde 1 milyon $'un üzerindedir.

ANT Bölümü, sadece donanım gözetim üretmemektedir. Özel görevler için ayrıca yazılım geliştirir. ANT yazılımcıları BIOS’a zararlı yazılımlarını ekmek için akıllı bir tercih yaptı, ve yazılımı bir bilgisayar açıldığında yüklenen ilk şey olan bilgisayarların anakartına yerleştirildi.

Bunun çok sayıda avantajları var; enfekte olmuş PC ya da sunucu, normal işlevinde görünür, enfeksiyon virüs koruma ya da diğer güvenlik programları için görünmez olarak kalır. Ve hatta eğer enfekte olmuş bilgisayarın sabit diski tamamen silinirse ve yeni işletim sistemi yüklenirse, ANT zararlı yazılımı işlevine devam edebilir ve yeni casus yazılım bir kez daha temiz farz edilen bilgisayara yüklenebilmeye olanak sağlar. ANT yazılımcıları buna “Persistance” diyolar ve bu yaklaşım onlara sürekli erişim imkanı sağlıyor.

Başka bir program, Western Digital, Seagate, Maxtor ve Samsung tarafından üretilen sabit sürücülerdeki aygıt yazılımına saldırır. Sonuncusu hariç hepsi Amerikan şirketidir. Burada yine, ABD İstihbarat Ajansı, Amerikan şirketlerinin teknolojileri ve ürünleri ile anlaşmaya varmış gibi görünüyor.

Diğer ANT programları profesyonel kullanım için yapılan internet yönlendiricilerini veya şirket ağlarını çevrimiçi saldırılardan korumak için tasarlanan donanımların güvenlik duvarlarını hedef alıyor. Birçok dijital saldırı silahı “uzaktan yüklenebilir”- diğer bir deyişle, internet üzerinden. Diğerleri zararlı yazılım ya da dinleme donanımını yüklemek için son kullanıcı cihazında direkt saldırı -- NSA jargonunda “interdiction” olarak bilinir.- gerektirir.

SPIEGEL' tarafından görülen belgelerde, ürünleri katalogda geçen şirketlerin NSA'ya herhangi bir destek sağladığını ve hatta istihbarat çözümleri sağladığını düşündüren herhangi bir bilgi yok. Cisco şirketi yaptığı açıklamada "Cisco kendi donanımı değiştirmek için ve de ‘arka kapılar' uygulamak için kendi ürünlerde herhangi bir hükümet ile çalışmıyor." dedi. Western Digital, Juniper Networks ve Huawei ile temas halindeki SPIEGEL gazetecileri de bu tarz donanım değişiklikleriyle ilgili hiçbir bilgileri olmadığını söylediler. Bu sırada, Dell yetkilisi "Faaliyet gösterdiği tüm ülkelerde yasalara saygı ve uyumludur." Şeklinde bir açıklama yaptı.

2008’deki yazılım çözümleri kataloğundaki pek çok öge ve bazı hedef sunucu sistemleri bugün piyasada yok. Aynı zamanda, ANT içindeki hackerlar işlerinde uyumuyor gibi. Cephaneliklerini geliştirmeye devam ediyorlar. 2008’deki katalogdaki bazı sayfalar, örneğin henüz mevcut olmayan yeni sistemleri listeliyor. Bununla birlikte, yazarlar onların yeni araçlar geliştirmek için çok çalıştığını ve "gelecekteki bir sürüm için takip edeceklerini" garanti ediyor.

 

deitybounce

ironchef

feedthrough

gourmettrough

halluxwater

jetplow

souffletrough

headwater

schoolmontana

sierramontana

stuccomontana

ctx4000

loudauto

nightstand

nightwatch

 

photoanglo

 

sparrow-ii

tawdryyard

ginsu

howlermonkey

iratemonk

 

juniormint

 

maestro-ii

 

somberknave

 

swap

 

trinity

 

wistfultoll

 

surlyspawn

 

dropoutjeep

 

gopherset

 

monkeycalendar

 

picasso

 

totechaser

 

toteghostly

 

candygram

 

crossbeam

 

cyclone-hx9

 

ebsr

 

entourage

 

genesis

 

nebula

 

typhon

 

waterwitch

 

cottonmouth-i

 

cottonmouth-ii

 

cottonomouth-iii

 

firewalk

 

ragemaster

 

 

 

Kaynak : http://leaksource.wordpress.com/2013/12/30/nsas-ant-division-catalog-of-exploits-for-nearly-every-major-software-hardware-firmware/

Volatility, Python ile yazılmış açık kaynak kodlu bir memory forensics (framework) çatısıdır. Volatility, 32 ve 64 bit Windows, Linux, OSX, Android platformların memory dump (bellek dökümü) dosyalarını analiz edebiliyor ve aynı zamanda Windows, Linux, OSX platformlarında analiz yapmamıza da olanak sağlıyor. [1]

Öncelikle elimizde analizini yapacağımız sistemin bir bellek dökümü dosyasının olması gerekiyor. Analiz etmek istediğiniz sistem Windows ise, bellek dökümünü MoolSols firmasının Windows Memory Toolkit ürününün free versiyonu yardımı ile alabilirsiniz. [2] *nix sistemler üzerinde bellek dökümü almak için ise fmem aracını kullanabilirsiniz. [3] [3.1]

Bu yazıda örnek olarak ZeuS zararlı yazılımının bulaşmış olduğu bir makinanın bellek dökümünü Volatility ile inceleyeceğiz. Örnek dosyayı bu bağlantıdan indirebilirsiniz.

-- http://publish.boateknoloji.com/wp-content/uploads/2014/01/zeus.vmem.zip

 

Volatility’nin düzgün çalışabilmesi için sisteminizde bazı araçların kurulu olması gerekiyor. Bunlar Distorm3, Yara, PyCrypto, PIL ve OpenPyxl [4]. Volatility’i sisteminize indirmek için aşağıdaki komutu kullanabilirsiniz. Herhangi bir kuruluma gerek kalmadan ~/Volatility dizini içinde çalışır hale gelecektir.

$ svn checkout http://volatility.googlecode.com/svn/trunk Volatility

 

Volatility’nin çalışma yapısını ve şablonunu inceleyelim.

$ python vol.py [PLUGIN] -f [IMAGE] --profile=[PROFILE]

 

İlk olarak ‘python vol.py’ komutu ile Volatility’nin çalışmasını sağlıyoruz. Devamında ise Volatility’nin işlem yapabilmesi için bizden beklediği parametreleri giriyoruz. Bunlar;

[PLUGIN]: Volatility’nin hangi eklentisini kullanmak istediğimizi,

-f [IMAGE]: Hangi bellek dökümü dosyası üzerinde işlem yapmak istediğimizi,

--profile=[PROFILE]: Hangi profilde analiz yapmak istediğimizi belirtir. (Volatility genel olarak profili belirtmeden de işlem yapabiliyor. Ancak daha iyi sonuçlar alabilmek için profili belirtmemiz gerekir.)

 

Eklentiler, profiller gibi diğer bütün objeler hakkında bilgi almak için aşağıdaki komutu çalıştırabilirsiniz.

$ python vol.py --info

 

Tüm komutlar ve seçenekleri görmek için ise aşağıdaki komutu çalıştırmanız yeterli olacaktır.

$ python vol.py -h

 

Bir plugin hakkında detaylı bilgi almak için de aşağıdaki komutu kullanabilirsiniz.

$ python vol.py [PLUGIN] -h

 

Eğer her seferinde profil tanımlaması ve bellek dökümü dosyasının yolu gibi parametreleri belirtmek istemiyorsanız Volatility için ortam değişkenleri (environment variable) tanımlayabilirsiniz.

Profil değişkeni atamak için:

$ export VOLATILITY_PROFILE=[PROFILE]

 

Dosya yolu değişkeni atamak için:

$ export VOLATILITY_LOCATION=file:///[PATH]

 

komutlarını kullanabilirsiniz. Bu değişkenleri atadıktan sonra aşağıdaki gibi basit ve sade bir şekilde Volatility’i çalıştırabilirsiniz.

$ python vol.py [PLUGIN]

 

Eğer daha spesifik bir konfigürasyon yapmak istiyorsanız bunu .volatilityrc dosyası ile yapabilirsiniz. .volatilityrc dosyası standart olarak kullanıcının ana dizininde algılanır. Eğer farklı bir dizindeki .volatilityrc dosyası ile işlem yapmak istiyorsanız bunun için aşağıdaki komutu kullanmalısınız.

$ python vol.py --conf-file:[PATH]

 

.volatilityrc dosyasının içeriği şuna benzemektedir:

[DEFAULT]
PROFILE=[PROFILE]
LOCATION=file:///[PATH]

 

Not: Eğer ortam değişkeni tanımladıysanız .volatilityrc dosyası ile çakışma yaşanabiliyor, .volatilityrc dosyasını kullanmak istiyorsanız önce ortam değişkenlerini unset komutu ile kaldırmanız gerekiyor.

$ unset VOLATILITY_PROFILE$ unset VOLATILITY_LOCATION

 

Volatility’den temel olarak bahsettik, şimdi bellek dökümü dosyamız üzerinde Volatility’nin bir kaç plugininden bahsedelim. Öncelikle imageinfo pluginini kullanarak başlayacağız. imageinfo, bellek dökümü dosyamız hakkında bize aşağıdaki gibi detaylı bir bilgi sunacaktır.

$ python vol.py -f ~/sample/zeus.vmem imageinfo

 

imageinfo

Burada Suggested Profile(s) kısmında gördüğümüz gibi Volatility bize iki profil önerdi. Bu profilleri belirterek, Volatility’nin belirtmiş olduğumuz profile göre işlem yapmasını sağlayabiliriz.

Diğer bir pluginimiz pslist bellek dökümünü almış olduğumuz sistemde o anda çalışan tüm işlemlerin (process) listesini detayları ile birlikte getiriyor.

$ python vol.py -f ~/sample/zeus.vmem pslist

 

pslist

pstree plugini ise o anki çalışan işlemlerin listesini bir işlem ağacı şeklinde getiriyor.

$ python vol.py -f ~/sample/zeus.vmem pstree

 

pstree

 

psxview plugini PsActiveProcessHead içeriği ile çeşitli diğer kaynakların raporladıkları işlem listelerinin neler olduğunu karşılaştırarak gizli işlemleri tespit etmemize yardımcı oluyor.

psxview

devicetree plugini ile sistemde bulunan aygıtların listesini ağaç şeklinde görebiliyoruz.

$ python vol.py -f ~/sample/zeus.vmem devicetree

 

devicetree

 connscan plugini ile sistemden dışarıya herhangi bir bağlantı olup olmadığını tarayabiliyoruz.

$ python vol.py -f ~/sample/zeus.vmem connscan

 

connscan

 

apihooks plugini, işlemlerde ve çekirdek belleğinde (kernel memory) herhangi bir hooking [5] olup olmadığını kontrol eder ve var ise bunları gösterir.

$ python vol.py -f ~/sample/zeus.vmem apihooks

 

Belirli bir işleme ait hooking olup olmadığını kontrol etmek için ise apihooks pluginine -p [PID] parametresini ekliyoruz.

$ python vol.py -f ~/sample/zeus.vmem apihooks -p 856

 

apihooks

threads plugini, bize eğer mevcutsa her iş parçacığının (threads) kayıtlarının içeriği de dahil olmak üzere, iş parçacığının başlangıç adresinde bulunan kodun disassemblysi ve analizle ilgili olabilecek çeşitli diğer alanlarda geniş bir bilgi verir.

$ python vol.py -f ~/sample/zeus.vmem threads

 

threads

threads plugini için bazı filtreler uygulayabilirsiniz, bunların listesini görmek için threads pluginini -L parametresi ile birlikte çalıştırın.

$ python vol.py threads -L

 

threads-L

Çıktıda bulunan filtreleri -F [FILTERNAME] parametresi ile kullanabilirsiniz.

threads-F_System

thrdscan pluginini, fiziksel bellekteki ETHREAD nesneleri ve (ETHREAD bir ana işlem esaslı olduğundan) gizli işlemleri taramak için kullanabilirsiniz.

$ python vol.py -f ~/sample/zeus.vmem thrdscan

thrdscan

malfind plugini gizli veya kod enjekte edilmiş DLL dosyalarını bulmamıza yardımcı olur ve -D [PATH] parametresini de beraberinde vermemizle birlikte bulguları bir dump dosyasına kaydeder. malfind pluginini tek bir işlem (process) için kullanmak istiyorsak -p [PID] parametresini de vermemiz gerekiyor.

$ python vol.py -f ~/sample/zeus.vmem malfind -D ~/dumps -p 856

 

malfind

clipboard plugini kullanıcıların panolarındaki veriyi geri getirmek için kullanılır.

$ python vol.py -f ~/sample/zeus.vmem clipboard

 

clipboard

screenshot plugini, sistemin ekran görüntüsünü wire-frame diagram şeklinde bize verir. screenshot pluginine -D [PATH] parametresi ile ekran görüntülerinin nereye kaydedileceğini belirtiyoruz.

$ python vol.py -f ~/sample/zeus.vmem screenshot -D ~/screenshots

 

screenshot

Kaydedilen ekran görüntüleri aşağıdakine benzer şekilde olacaktır.

screenshot-preview

 

cmdscan plugini, saldırganların konsol kabuğunu (cmd.exe) kullanarak girdikleri komutlar için bellekte arama yapar.

$ python vol.py -f ~/sample/zeus.vmem cmdscan

 

cmdscan

Bazı komutlara böylece değinmiş olduk, şimdi adım adım elimizdeki bellek dökümü dosyasının analizini yapalım.

Öncelikle elimizdeki bellek dökümü dosyası hakkında bilgi edinerek başlıyoruz.

$ python vol.py -f ~/sample/zeus.vmem imageinfo

imageinfo

Komutu çalıştırdıktan sonraki çıktıyı incelediğimizde Volatility bize sistemin WinXPSP2x86 veya WinXPSP3x86 profilinde olabileceği önerisinde bulunuyor. Bellek dökümünün alındığı tarih ve yerel zaman da çıktıda belirtilmiş.

Biz herhangi bir profil ataması yapmadan analizimize devam edeceğiz. Sistemde herhangi şüpheli bir işlemin çalışıp çalışmadığını kontrol etmek üzere pslist pluginini kullanarak çalışan tüm işlemlerin listesini alıyoruz.

$ python vol.py -f ~/sample/zeus.vmem pslist

 

pslist

İlk bakışta göze çarpan, şüpheli gibi görünen bir işlem görünmüyor. İncelemeye devam edelim. connscan plugini ile herhangi aktif bir bağlantı olup olmadığını kontrol edelim.

$ python vol.py -f ~/sample/zeus.vmem connscan

 

connscan

Çıktıyı incelediğimizde 856 işlem numarasına (PID) sahip işlemin, 172.16.176.143 IP numarasına sahip yerel adresin 1054/TCP, 0.0.0.0 IP numarasına sahip yerel adresin de 1056/TCP portu üzerinden; 193.104.41.75 IP numarasına sahip uzak sunucunu ile 80/TCP portu üzerinden iletişimde olduğunu görüyoruz.

193.104.41.75 IP adresi hakkında bilgi edinelim. (http://www.whois.sc/193.104.41.75)

Daha önceki pslist pluginine ait çıktımızdan 856 işlem numarasına sahip işlemin svchost.exe olduğunu biliyoruz. pstree pluginini kullanarak svchost.exe’nin işlem ağacındaki yerine gözatalım.

$ python vol.py -f ~/sample/zeus.vmem pstree

 

pstree

 

Çıktıyı incelediğimizde svchost.exe’nin services.exe altında çalışan bir işlem olduğunu görüyoruz. svchost.exe için malfind pluginini kullanarak enfekte olmuş mu kontrol edelim. malfind pluginine -D [PATH] parametresi ile dump dosyasının nereye çıkarılacağını ve -p [PID] parametresi ile de hangi işlem üzerinde çalışacağımızı belirtiyoruz.

$ python vol.py -f ~/sample/zeus.vmem malfind -D ~/dumps -p 856

 

malfind-p856

Dump dosyalarımızın kaydedildiği dizine bir gözatalım.

$ ls ~/dumps

ls-dumps

Gördüğümüz gibi malfind plugini process.0x80ff88d8.0xb70000, process.0x80ff88d8.0xcb0000 isimli iki .dmp dosyası oluşturmuş. Bu oluşturulan .dmp dosyalarını VirusTotal aracılığıyla tarayalım.

 

virustotal-1

 

virustotal-2

 

VirusTotal process.0x80ff88d8.0xb70000.dmp dosyasının enfekte olduğunu tespit etti. Diğer detaylar için bu bağlantıyı https://www.virustotal.com/en/file/8e3be5dc65aa35d68fd2aba1d3d9bf0f40d5118fe22eb2e6c97c8463bd1f1ba1/analysis/ kullanabilirsiniz.

Hazırlayan

Mustafa KISA <mustafa.kisa@boateknoloji.com>

Bağlantılar

[1] -- Volatility -- An Advanced Memory Forensics Framework: https://code.google.com/p/volatility

[2] -- MoonSols Windows Memory Toolkit: http://www.moonsols.com/windows-memory-toolkit

[3] -- fmem Tool: http://hysteria.sk/~niekt0/fmem

[3.1] -- Doc (6.2 fmem module): http://hysteria.sk/~niekt0/fmem/doc/foriana.pdf

[4] -- Volatility Recommented Packages: https://code.google.com/p/volatility/wiki/VolatilityInstallation#Recommended_packages

[5] -- Hooking: http://en.wikipedia.org/wiki/Hooking