Zararlı
yazılım analizi ve bu alandaki araştırma çalışmaları, Stuxnet, Duqu,
Carberp, Zeus ve daha birçok gelişmiş zararlı yazılımın sistemleri
etkisi altına aldığı günümüzde, özellikle de zararlı yazılımlara karşı
bilindik yöntem ve araçların ne kadar etkisiz kaldığı göz önüne
alındığında, bilgi güvenliği açısından büyük bir önem arz etmektedir.
Günümüz
zararlılarının gelişmişlik seviyeleri göz önüne alındığında, gerçekçi
bir analiz ancak davranışsal, statik ve dinamik analiz yöntemlerinin bir
arada kullanımıyla gerçekleştirilebilmektedir.
Davranışsal
ve dinamik analiz bölümünde, zararlının çalışmak için ihtiyaç duyduğu
ortamın hazırlanması da en az analiz aşaması kadar önemli bir iştir. Bu
yazıda, zararlı yazılım analizi için lab ortamının ihtiyaçları
belirlenip, bu ihtiyaçlar doğrultusunda örnek bir lab ortamı
hazırlanmıştır.
Lab Ortamının Gereklilikleri
- İnternetten, analistin ağından ve bilgisayarından izole olmalı. Bu sayede analiz aşamasında zararlının uzaktan kontrol edilmesinin, dışarı bilgi sızdırmasının veya ağdaki diğer sistemlere bulaşmasının önüne geçilmiş olunur.
- Çalışması için ihtiyaç duyduğu işletim sistemi bulunmalı. Kurulan yapıya gerektiğinde ihtiyaca göre linux, windows, android, 32-64 bit versiyonları gibi farklı sistemler dahil edilebilmeli.
- Zararlının ihtiyaç duyduğu komuta merkezi veya başka amaçlarla kullanılan uzak servislere erişebilmesi için yapay bir ağa dahil olmalı ve bu ağ, internet erişimi olmayacağından dolayı gerekli servisleri veya simulasyonlarını içermeli.
- Zararlının çalışacağı makinada gerekli davranışsal, statik ve dinamik analiz araçları bulunmalı. Network analizi için gerekli araçların ayrıca sahte servislerin bulunduğu makinalarda da olmasında yarar var.
- Lab makinalarının durumlarının kaydedilebilir ve gerektiğinde bu kaydedilen noktalara geri döndürülebilir olması gerekmektedir. Böylece her analizden sonra lab makinaları ilk konumlarına geri döndürülebilir, ayrıca analiz aşamasında da bazı noktalarda kayıt yapıp geri dönmek gerekebilir.
Sanal Makinaların ve Ağın Yapılandırılması
Örnek
lab ortamına zararlılar tarafından en çok hedef alınan sistemlerden
olan Windows XP SP3 ve Windows 7 SP1 (ikisi de 32 bit), uzak servis
ihtiyacını karşılamak üzere ise zararlı yazılım analizi için hazırlanmış
REMnux (http://sourceforge.net/projects/remnux/) adlı linux dağıtımı tercih edilmiştir. Ayrıca mobile zararlı analizi için Santoku Linu(https://santoku-linux.com/) dağıtımı, sandbox olaraksa Cuckoo(http://www.cuckoosandbox.org/download.html)
kurulmuştur. Sanallaştırma uygulaması olarak VMware Workstation 9
kullanılmıştır. Tabii ki lab ortamı gereklilikleri bölümünde belirlenen
özellikleri sağlayabilecek diğer sanallaştırma yazılımları da
kullanılabilir.
1. Sanal network oluşturma:
VMware’in
Edit->VMware Network Editor menüsünden, network editor ekranına
geçilir. Bu ekranda görünen vmnet0, vmnet1 ve vmnet8 arayüzleri standart
olarak gelir ve sonradan değiştirilmedilerse sırasıyla VMware’in
bridged, host-only ve NAT networking seçenekleri için kullanılır. Add
Network butonundan yeni bir sanal ağ arayüzü oluşturulur. Ayarları
Host-only
Use local DHCP -> seçili
Connect a host virtual adapter -> seçili değil
Subnet IP -> 10.10.10.0 (herhangi bir yerel ip aralığı verilebilir)
Şeklinde yapılıp kaydedilir. Bu yeni oluşturulan arayüzün adı örnek lab ortamında vmnet2’dir.
2. İşletim Sistemlerinin Yapılandırılması
Zararlı
analizi için kullanılan sanal makinaları bir arada gruplamak çalışırken
kolaylık sağlayabilir. Bunun için VMWare Library panelinde yeni bir
klasör oluşturulup, ilgili sanal makinalar bu klasör içinde
oluşturulurlar/içine taşınırlar. Sanal makinaların örnek ayarları
aşağıda verilmiştir ancak eldeki donanım imkanlarına göre hafıza,
işlemci gibi ayarlar değiştirilebilir.
Windows XP SP3 için sanal makina ayarları:
- Memory: 1 GB
- Number of processors / processor cores: Ayırmak istediğiniz işlemci / çekirdek sayısı (örnekte 1 / 8)
- Hard Disk: 20 gb’a kadar
- Network Adapter: “Custom: Specific virtual network” -> vmnet2, connect at power on işaretli
- USB Controller: Analiz sırasında host sisteme takılan USB’ye zararlı bulaşması ihtimaline karşın “Automatically connect new USB devices” seçeneğinin kaldırılması tavsiye edilir.
- DVD, Ses kartı gibi diğer donanımlar ihtiyaca göre aktif edilebilir.
Windows 7 SP1 için sanal makina ayarları:
- Memory: 2 GB
- Number of processors / processor cores: ayırmak istediğiniz işlemci / çekirdek sayısı (örnekte 1 / 8)
- Hard Disk: 30 gb’a kadar
- Network Adapter: “Custom: Specific virtual network” -> vmnet2, connect at power on işaretli
- USB Controller: Analiz sırasında host sisteme takılan usb’ye zararlı bulaşması ihtimaline karşın Automatically connect new USB devices seçeneğinin kaldırılması tavsiye edilir.
- DVD, Ses kartı gibi diğer donanımlar ihtiyaca göre aktif edilebilir.
REMnux için sanal makina ayarları:
- Network Adapter: “Custom: Specific virtual network” -> vmnet2, connect at power on işaretli
- Diğer ayarlar REMnux sanal makina imajının varsayılan ayarlarında bırakılmıştır.
Santoku-linux sanal makina ayarları:
- Memory: 1 GB
- Number of processors / processor cores: ayırmak istediğiniz işlemci / çekirdek sayısı (örnekte 1 / 8)
- Hard Disk: 20 gb’a kadar
- Network Adapter: “Custom: Specific virtual network” -> vmnet2, connect at power on işaretli
- USB Controller: Analiz sırasında host sisteme takılan usb’ye zararlı bulaşması ihtimaline karşın Automatically connect new USB devices seçeneğinin kaldırılması tavsiye edilir.
- DVD, Ses kartı gibi diğer donanımlar ihtiyaca göre aktif edilebilir.
Zararlının Çalışacağı Makinanın Hazırlanması
Bu bölümde windows sistemlerde zararlı analizi için kullanılan araçlar ele alınmıştır.
Davranışsal analiz için kullanılan araçlar:
- Process Explorer: http://technet.microsoft.com/tr-tr/sysinternals/bb896653.aspx
- Process Monitor: http://technet.microsoft.com/tr-tr/sysinternals/bb896645.aspx
- Wireshark: http://www.wireshark.org/download.html
Statik analiz için kullanılan araçlar:
- Dependency Walker: http://www.dependencywalker.com/
- PEview: http://wjradburn.com/software/
- Resource Hacker: http://www.angusj.com/resourcehacker/
Dinamik Analiz İçin Kullanılan Araçlar:
- Immunity Debugger: http://www.immunityinc.com/products-immdbg.shtml
- Ollydbg (Immunity yerine kullanılabilir): http://www.ollydbg.de/
Hafıza Analizi İçin Kullanılan Araçlar:
Araçlar
sanal makinaya kurulup birer kez çalıştırılır ve istenilen başlangıç
ayarları yapılır. Daha sonra sanal makinanın snapshot’ı alınarak
kaydedilir ki gerektiğinde makina bu haline tekrar getirilebilsin.
Ağ Servislerinin Ayarlanması
REMnux
sanal makina imajı VMWare ile açılır. Sistemin ilk şifresi “malware”
olarak atanmıştır. “ifconfig” komutu ile makinanın IP adresi
görüntülenir, bu adres ApateDNS ile DNS sorguların yönlendirilmesi için
kullanılır.
eth0 Link encap:Ethernet HWaddr 00:0c:29:6c:5b:66
inet addr:10.10.10.129 Bcast:10.10.10.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe6c:5b66/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3 errors:0 dropped:0 overruns:0 frame:0
TX packets:32 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:746 (746.0 B) TX bytes:2160 (2.1 KB)
Interrupt:19 Base address:0x2024
Eğer
makina ip almamışsa “dhclient eth0” komutu ile IP alması sağlanır. Daha
sonra inetsim komutu ile (REMnux’de yüklü gelen bir araç) zararlının
ihtiyaç duyabileceği bir çok servisin simülasyonu çalıştırılır.
=== INetSim main process started (PID 1341) ===
Session ID: 1341
Listening on: 10.10.10.129
Real Date/Time: Mon Aug 5 17:07:01 2013
Fake Date/Time: Mon Aug 5 17:07:01 2013 (Delta: 0 seconds)
Forking services...
* dns_53_tcp_udp - started (PID 1343)
* irc_6667_tcp - started (PID 1353)
* ntp_123_udp - started (PID 1354)
* time_37_udp - started (PID 1359)
* chargen_19_tcp - started (PID 1368)
* time_37_tcp - started (PID 1358)
* chargen_19_udp - started (PID 1369)
* quotd_17_tcp - started (PID 1366)
* echo_7_tcp - started (PID 1362)
* syslog_514_udp - started (PID 1357)
* finger_79_tcp - started (PID 1355)
* ident_113_tcp - started (PID 1356)
* echo_7_udp - started (PID 1363)
* discard_9_udp - started (PID 1365)
* daytime_13_tcp - started (PID 1360)
* discard_9_tcp - started (PID 1364)
* daytime_13_udp - started (PID 1361)
* dummy_1_udp - started (PID 1371)
* tftp_69_udp - started (PID 1352)
* quotd_17_udp - started (PID 1367)
* dummy_1_tcp - started (PID 1370)
* smtps_465_tcp - started (PID 1347)
* pop3s_995_tcp - started (PID 1349)
* ftp_21_tcp - started (PID 1350)
* pop3_110_tcp - started (PID 1348)
* ftps_990_tcp - started (PID 1351)
* smtp_25_tcp - started (PID 1346)
* http_80_tcp - started (PID 1344)
* https_443_tcp - started (PID 1345)
done.
Simulation running.
Zararlı
çalıştırıldığında ise Wireshark aracı ile eth0 arayüzü dinlenerek,
zararlının ağ aktiviteleri incelenir. Eğer zararlı ile ağ üzerinden
etkileşim kurulması gerekirse, “nc -l -p port” komutu ile belirtilen
port dinlenip, zararlı yazılımın netcat’e bağlanması sağlanır. REMnux’de
kurulu daha bir çok araç bulunmaktadır. REMnux’ün masaüstündeki “REMnux
tips” belgesini inceleyip, bu araçlar hakkında bilgi edinmek faydalı
olacaktır.
Sandboxes
Wikipedia tanımına göre: “Bilgi
güvenliği alanında, sandbox, çalışan uygulamaları birbirinden ayırmak
için kullanılan bir güvenlik mekanizmasıdır. Genellikle test edilmemiş
kodları, güvenilmeyen üçüncü parti üreticiler tarafından geliştirilmiş
programları, güvenilmeyen kullanıcıları ve web sitelerini çalıştırmak
için kullanılır.”
Sandbox
kullanarak otomatik malware analizi yapan Joe Sandbox, Norman Sandbox,
Anubis gibi ücretli veya ücretsiz bir çok online servis bulunmaktadır.
Fireeye gibi firmaların yerel sisteme kurulabilecek ürünleri olsa da
bunlar genelde yüksek ücretli ürünlerdir. Ücretsiz ve açık kaynak bir
alternatif olarak Cuckoo sandbox kullanılabilir. Cuckoo Sandbox,
verileri analiz eden bir host (genelde linux) ve zararlının çalışacağı,
sanal makinada kurulu sistemlerden(windows xp gibi) oluşan iki katmalı
bir yapıya sahiptir. Host üzerinde çalışan cuckoo, zararlıyı sanal
makinalarda çalıştırıp zararlının eriştiği dosyalar, ağ aktivitleri,
registery girdileri gibi birçok davranışını raporlayabilir. Ayrıca
virustotal ve benzeri online servisler kullanarak zararlının daha önce
tespit edilip edilmediğini imza tabanlı yöntemlerle belirlemeye çalışır.
Bu sayede hedef zaralı yazılım hakkında genel bir fikir sahibi
olunabilir.
Zararlı
yazılım analizinde sanallaştırma teknolojilerini kullanırken güvenlik
açısından dikkat edilmesi gereken noktaları da atlamamak gerekir. Ağ
yapılandırılmasına çok dikkat edilmeli, zararlının gerçek ağdaki diğer
makinalara erişimi tamamen engellenmelidir. USB bellek gibi harici
cihazlar eğer zararlının çalıştığı makinaya bağlanmışsa, gerçek
makinalara tekrar bağlanmadan önce temiz olduğundan emin olunmalıdır.
Son olarak, sanallaştırma yazılımında bulunabilecek zafiyetler
aracılığıyla zararlının hostu etkilemesi riskini en aza çekmek için
yazılımın güvenlik güncellemelerinin tam olduğundan emin olunmalıdır.
0 yorum:
Yorum Gönderme
Her türlü eleştiri,yorum,ekleme ve düzeltmeye yönelik fikirlerinizi paylaşabilirsiniz.Hakaret içeren yorumlar filtrelenmektedir.