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.
Aşağıdaki görsel Fame’in mimarisini çok güzel anlatı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.

 Kurulumu sorunsuz bir şekilde gerçekleştirdikten sonra sıra Fame’i çalıştırmaya geldi. Web sunucusunu ayağa kaldırmak için aşağıdaki komutu kullanı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.



Aşağı indiğimizde çalışan modülleri görüyoruz.


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

  1. Fame resmi dokümantasyonu: https://fame.readthedocs.io/en/latest/concept.html
Burak ÇARIKÇI
Information Security Engineer
CT-Zer0

Yorumlar

Bu blogdaki popüler yayınlar

1. Geleneksel Stajyer CTF Soru ve Cevapları

B*-Tree (BTree, BPlusTree) Veri Yapısı ile Veri İndeksleme

2. Geleneksel Stajyer CTF Soru ve Cevapları - 2017