Strings dalam malware


Melakukan analisa malware itu seru. Kita seperti seorang polisi yang berusaha melakukan penyidikan terhadap sebuah kasus kejahatan. Langkah pertama yang dilakukan tentunya mengumpulkan semua informasi yang bisa kita peroleh dari sampel malware.  Diantara langkah awal yang sering dilakukan dalam proses analisa adalah mencari strings dalam malware.

Strings adalah sequence of characters pada sebuah program. Mencari strings dalam sebuah malware adalah langkah awal untuk memahami cara kerja malware. Contohnya bila malware memiliki fungsi untuk mengakses sebuah alamat web, maka kita bisa temukan alamat URL tersebut pada strings. Atau bila sampel malware menampilkan sebuah pesan tertentu, biasanya pesan tersebut bisa kita temukan juga pada strings. Biasanya strings ini berupa karakter kode ASCII atau Unicode.

Contohnya dari buku Practical Malware Analysis karya Michael Sikorski dan Andrew Honig. Di buku tersebut ada contoh dari sebuah sampel malware misalnya diperoleh strings berikut:

C:>strings bp6.ex_ 
VP3
VW3
t$@
D$4
99.124.22.1 
e-@
GetLayout 
GDI32.DLL 
SetLayout 
M}C
Mail system DLL is invalid.!Send Mail failed to send message. 

Dari hasil string diatas kita menemukan beberapa informasi bermanfaat diantaranya:

  1. Malware mengakses GetLayout dan SetLayout. Keduanya adalah sebuah fungsi yang digunakan Windows pada Windows Graphic Library.
  2. Kemudian GDI32.dll adalah sebuah dynamic link library (dll) pada windows yang digunakan oleh aplikasi grafis di windows.
  3. Informasi berikutnya adalah 99.124.22.1 adalah sebuah alamat IP. Berarti malware mencoba mengakses alamat IP ini.
  4. Baris terakhir Mail system…. adalah sebuah error message. Keliatannya malware berusaha mengirim pesan melalui email tapi gagal.

Contoh berikutnya saya ambil dari infosecinstitute ada contoh hasil strings dari sebuah malware adalah sebagai berikut:

from http://resources.infosecinstitute.com/malware-analysis-basics-static-analysis/
from http://resources.infosecinstitute.com/malware-analysis-basics-static-analysis/

Dari hasil pencarian strings diketahui Sampel malware memiliki fungsi “FindNextFileA” dan “FindFirstFileA”. Yang bisa kita pahami bahwa malware akan mencari sebuah file. Kemudian ditemukan juga string “CopyFileA”, yang diduga malware akan mencari dan mengganti file tersebut dengan file lain.

Contoh lainnya dari web malwaremusings.com ditemukan contoh strings dari sebuah malware sebagai berikut:

 HTTP/1.1
Host: [censored].jp
lg1=%s&lg2=%s&lg3=%s&lg4=%s&lg5=%s&lg6=%s
1.003
GET /updata/TPDA.php?
555.206.117.59
lg1=%s&lg2=%s&lg3=%s&lg4=%s&lg5=%s&lg6=%s&lg7=%d
GET /updata/TPDB.php?
NONE

Diduga malware membuat dua HTTP requests,  TPDA.php dan TPDB.php.Sementara strings ‘updata’  diduga merupakan fungsi untuk mengupload data dst

Ada banyak informasi yang bisa kita dapatkan dengan mencari strings pada sampel malware. Informasi ini bisa berharga untuk memahami cara kerja malware. Namun bila malware memiliki teknik obfuscation biasanya strings ini akan sulit untuk dipahami. Teknik obfuscation adalah cara yang digunakan oleh pembuat malware untuk membuat malwarenya sulit untuk dianalisa.

Semoga Bermanfaat!

Beberapa bahan bacaan:

Buku:
Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software [Michael Sikorski, Andrew Honig]

Silahkan tuliskan tanggapan, kritik maupun saran