FAME - Fame Automates Malware Evaluation
FAME
Giriş
Fame, zararlı yazılım analizi için ortaya çıkmış açık kaynaklı bir kütüphanedir. “Fame Automates Malware Evaluation” olarakta bilinen kütüphane içerisinde barındırdığı modüllerle beraber zararlı analizini kompakt ve hızlı bir hale getiriyor. Societe Generale isimli finans şirketinin olay müdahele ekibi tarafından geliştirilmiştir.Fame modüllerden oluşmaktadır. Bu modüllerin birer birer çalışması sonucu çıktı alınarak analiz sürelerini ciddi bir şekilde azaltmaktadır. Örneğin sistemde yüklü olan modüller cuckoo, joe, office_macros ve office passwords olsun. Analist, şüphelendiği ofis dosyasını Fame’e yükleyip modülleri seçiyor. Bu modüller teker teker çalışarak analiste güzel bir rapor sunup, analisti teker teker bütün araçları kurup çalıştırma zahmetinden kurtarıyor.
Fame bize iki analiz modu sunuyor: “Just Do Your Magic” (sadece sihrini yap) ve “Hedefe Yönelik” analiz olarak ikiye ayırabiliriz. İlk modda genel modüllerin hepsini çalıştırıp analiz yapıyor. Bu modun içerisinde VirusTotal, Hybrid-analysis ve sandbox modülleri giriyor. Hedefe yönelik analiz modunda belirli modüller çalışıyor. Eğer dosya tipi biliniyor ve sadece spesifik davranış incelenmek isteniyorsa bu mod kullanılabilir.
Fame 3 parçadan oluşuyor:
- MongoDB veritabanı, bütün verileri saklayarak arada
bağlantı görevi görür.
- Web sunucusu, web uygulamasını canlıya çıkartarak
kullancıyla arkadaki sistemler arasındaki iletişimi sağlıyor.
AV ve tehdit istihbaratı modülleri web sunucusunda çalışıyor.
- İşçiler, modüllerin çalıştığı ve analizlerin
tamamnlandığı yer. AV ve tehdit istihbaratı hariç bütün
modüller burada çalışıyor.
Kurulum
Resmi dokümandaki anlatım Ubuntu 16.04 için olmakla beraber bu kurulum Ubuntu 18.04 sistemde yapılmış ve herhangi bir sorun yaşanmamıştır. Python, pip, mongodb kurulabilen bütün sistemlere kurulup çalıştırılabilir.İlk başta bağımlılıkları kurmakla başlıyoruz. Git, pip, python-dev ve virtualenv paketlerini kurmamız gerekmektedir.
sudo apt-get install git python-pip python-dev
sudo pip install virtualenv
Mimaride de belirtildiği gibi veritabanı olarak MongoDB kullanacağız. Apt üzerinden kurduğumuz MongoDB eski sürüm olduğu için kendi sitesindeki rehberden kurmamız gerekiyor.
MongoDB’nin public key’ini kendi sistemimize yüklüyoruz.
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
MongoDB için liste dosyası oluşturuyoruz.
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
Yerel dosyaları tekrardan yüklemek için güncelliyoruz.
sudo apt-get update
MongoDB’yi kuruyoruz.
sudo apt-get install -y mongodb-org
MongoDB’yi kurduktan sonra servis olarak başlatıyoruz.
sudo systemctl start mongod
Uzakta bir MongoDB sunucunuz (AWS vs) varsa etc/mongod üzerinden kendi IP’nizi ve portu eklemeniz gerekmektedir.
Şimdi mongodb üzerinden gerekli ayarları yapıyoruz.
mongo
use admin
db.createUser({ user: "admin", pwd: "PAROLANIZ_BURAYA_GELECEK", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })
use fame
db.createUser({ user: "fame", pwd: "PAROLANIZ_BURAYA_GELECEK", roles: [ { role: "dbOwner", db: "fame" } ] })
MongoDB’nin ayarlarından RBAC (Role Based Access Control) özelliğini açmak için /etc/mongod.conf security başlığını yorumdan çıkartıyoruz.
Yaptığımız ayarların çalışması için servisi tekrardan başlatıyoruz.
sudo systemctl restart mongodb
veya
sudo service mongod restart
Diğer bileşenlerini yüklediğimize göre şimdi Fame’i yükleyebiliriz. Kendi reposundan Fame’i çekelim.
git clone https://github.com/certsocietegenerale/fame && cd fame
Yüklemek için gerekli betiği çalıştıralım. Burada eklemek istediğim bir not var. Fame’in yapısı gereği bütün komutları utils/run.sh betiğine argüman olarak vererek çalıştırıyoruz.
utils/run.sh utils/install.py
Burada bize bazı sorular soracak. Aşağıda açıklamalarını bulabilrsiniz.
- MongoDB’nin
çalıştığı sunucu. Benim sistemimde localhostta çalışıyor.
- MongoDB’nin
çalıştığı port. Varsayılan olarak gelen 27017 portunda
çalışıyor.
- Veritabanı
adı. Varsayılan olarak ve bizimde oluşturduğumuz gibi “fame”
veritabanında çalışacak.
- Kullanıcı
adı
- Parola
- Kurulum tipi.
Eğer web sunucusuyla işçi aynı sunucuda çalışacaksa 1, işçi
uzak bir sunucuda çalışıcaksa 2 seçeneğini seçiyoruz.
- Fame için
URL seçiyoruz.
- Admin
yetkileriyle oluşacak ilk kullanıcıyı seçiyoruz.
- E-mail
adresini yazıyoruz.
- Grup
ekliyoruz.
- Parola
ve tekrarını yazıyoruz.
utils/run.sh webserver.py
Kurulumu gerçekleştirdikten sonra kontrol amaçlı localhost:4200 veya 0.0.0.0:4200 adresine gidiyoruz. Bizi giriş sayfası karşılıyor.
Web sunucusu ayağa kalktı. Şimdi işçileri çalıştırıyoruz. Bunun için gerekli komut aşağıdadır. Bu aşama biraz uzun sürebilir. Gerekli paketler kurulacak ve hazır hale gelecek.
utils/run.sh worker.py
Kullanım
İşçiyi de kurduktan sonra her şey hazır hale geliyor. localhost:4200 üzerinden Fame’in web uygulamasına gidip, giriş yapıyoruz. Bazı ayarlamaları yapmak için avatarımızın üzerine basıp Configuration menüsünü seçiyoruz.Bu menüde birden fazla kısım göreceksiniz. Configurations kısmında ana modüller için gerekli ayarlar sunuluyor. Module Repositories kısmında ise modülleri aldığımız kaynaklar gözüküyor. Bununla beraber buraya kaynak ekleyip başka modülleride kendi sistemize dahil edebililiyoruz. Processing Modules kısmında sisteme dahil olan modüller görünüyor. Modüllerle ilgili ayarlarla beraber çalışma durumu (aktif, pasif) sunuluyor.
İstediğiniz modülleri aktifleştirdikten sonra şimdi ilk analizimi yapmak için Submit bölümüne gelelim.
Karşımıza aşağıdaki gibi bir ekran geliyor.
Dosyayı
yükleyip gerekli modülleri seçtikten sonra “Submit” butonuna
basıyoruz. Biraz bekledikten sonra analiz bitiyor.Analyses kısmından
yüklediğimiz dosyanın üzerine basarak detaylarına
gidiyoruz. Analizde kullandığım dosya verybad.doc (MD5:
a0a42460dcc1880488df8447fe5cc081) isimli any.run üzerinden bulduğum
ofis dosyası. Analiz sonucunda gelen sayfanın sol tarafında dosya
detayları, hangi modüllerin çalıştığı, detaylı sonuç ve
işçiden çıkan logları görüyoruz. Yani analiz sonucumuzu
bunların kombinasyonu oluşturuyor.
Aynı çıktıyı işçi sistemin terminalinde de görebiliyoruz.
office_macros
modülü sayesinde çok güzel bir analiz çıktısı alıyoruz.
Burada tehlikeli olabilecek fonksiyonları ve açıklamalarını
gösteriyor. Aynı modül bize office uygulamaları için yazılmış
kodu da veriyor. İncelediğimiz dosyanın içerisinde Fransızca
kelimeler ve uyarılar görüyoruz. Tahminimce, analiz ettiğimiz
dosyayı fransız bir ekip kendi sistemlerini test etmek için
oluşturmuş ve kullanıyor.
İşçi
sistemde çalışan modüllere ait loglar. Bunlara işçi sistemin
kendisinden de ulaşabiliriz.
Kaynak
- Fame resmi dokümantasyonu:
https://fame.readthedocs.io/en/latest/concept.html
Burak ÇARIKÇI
Information Security Engineer
CT-Zer0
CT-Zer0
Yorumlar
Yorum Gönder