Zararlı Yazılım Analizi İçin Lab Ortamı Hazırlama

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



  1. İ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.
  2. Ç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.
  3. 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.
  4. 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.
  5. 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 olarak da 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:



Statik analiz için kullanılan araçlar:



Dinamik Analiz İçin Kullanılan Araçlar:



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.

Onur ALANBEL <onur.alanbel@bga.com.tr>