Предполагам повечето от нас когато чуят Loki се сещат за героя, представящ бога на хитростите, от филмите на Марвел, изигран по един изключителен начин от Том Хидълстън. Други може да направят асоциация със скандинавския епос и картини от преди няколко века, а някои от нас свързват името и с един много полезен инструмент за откриване на IOC.

Преди да разгледаме накратко Loki (инструмента, не бога) нека да си зададем въпроса - важно ли е да извършваме периодично търсене на IOC и какви ще са позлите от това? Също така е едно предупреждение - заредете се с търпение, защото анализите изискват немалко време.

Nextron Systems разработват комерсиални инструменти за анализ и откриване на инциденти, свързани с киберсигурността. Един от основните продукти е THOR - APT скенер за Microsoft Windows, включващ 26 отделни модула и около 9000 Yara сигнатури. За LOKI може да се каже, че е по-малкия брат на THOR - безплатен скенер за IOC, поддържащ Microsoft Windows, Linux и MacOS, който по същество е базиран на пренаписани основни модули на THOR. LOKI поддържа три основни категории IOC:

  1. MD5/SHA1/SHA256 хешове;
  2. Yara правила (анализиращи файлове и процесите в паметта на системата);
  3. Имена на файлове (базирани на RegEx).

Въпреки, че Yara правилата са около 3000, те могат успешно да установят наличие на зловреден код, пропуснат от антивирусни системи, както и голям брой инструменти, използвани от злонамерени лица.

Резултатите от работата на LOKI могат да попаднат в една от следните три групи:

  1. Системата е чиста - всички редове в конзолата са в зелен цвят;
  2. Открити са съмнителни файлове - текста в конзолата е в жълто;
  3. Налични са IOC - текстът е в червен цвят.

За мен цветовото кодиране е много полезно, защото с бърз поглед се вижда, дали докато се изпълняват проверките, инструмента е открил нещо, с две думи не се налага да се чете текста от конзолата.

Открити съмнителни файлове (Linux хост)

Инсталиране на LOKI

Ако е необходимо LOKI да се стартира под Microsoft Windows просто трябва да се изтеглят компилираните файлове от GitHib.

При Linux стъпките са няколко - клониране с git и инсталиране на необходимите компоненти:

git clone https://github.com/Neo23x0/Loki.git
pip install -r requirements.txt

Стартиране на анализ

LOKI поддържа следните програмни аргументи:

usage: loki.py [-h] [-p path] [-s kilobyte] [-l log-file] [-r remote-loghost]
               [-t remote-syslog-port] [-a alert-level] [-w warning-level]
               [-n notice-level] [--printAll] [--allreasons] [--noprocscan]
               [--nofilescan] [--nolevcheck] [--scriptanalysis] [--rootkit]
               [--noindicator] [--reginfs] [--dontwait] [--intense] [--csv]
               [--onlyrelevant] [--nolog] [--update] [--debug]
               [--maxworkingset MAXWORKINGSET]

Loki - Simple IOC Scanner

optional arguments:
  -h, --help            show this help message and exit
  -p path               Path to scan
  -s kilobyte           Maximum file size to check in KB (default 5000 KB)
  -l log-file           Log file
  -r remote-loghost     Remote syslog system
  -t remote-syslog-port
                        Remote syslog port
  -a alert-level        Alert score
  -w warning-level      Warning score
  -n notice-level       Notice score
  --printAll            Print all files that are scanned
  --allreasons          Print all reasons that caused the score
  --noprocscan          Skip the process scan
  --nofilescan          Skip the file scan
  --nolevcheck          Skip the Levenshtein distance check
  --scriptanalysis      Activate script analysis (beta)
  --rootkit             Skip the rootkit check
  --noindicator         Do not show a progress indicator
  --reginfs             Do check for Regin virtual file system
  --dontwait            Do not wait on exit
  --intense             Intense scan mode (also scan unknown file types and
                        all extensions)
  --csv                 Write CSV log format to STDOUT (machine prcoessing)
  --onlyrelevant        Only print warnings or alerts
  --nolog               Don't write a local log file
  --update              Update the signatures from the "signature-base" sub
                        repository
  --debug               Debug output
  --maxworkingset 		MAXWORKINGSET
                        Maximum working set size of processes to scan (in MB,
                        default 100 MB)

Важно е да се отбележи, че са необходими административни права за правилната работа на инструмента.

За базова проверка, аз използвам следните параметри:

loki.py --update
loki.py -l "/tmp/$(date +"%m_%d_%Y")_loki.txt" --allreasons

Инструмент Thor Lite

Въпреки че Loki има добра функционалност, неговият по-голям брат Thor е основният инструмент на Nextron Systems. Той е платен, но безплатно може да се използва негова ограничена версия.

За разлика от работата на Loki под Linux, тук ще трябва да проявите търпение, защото сканирането може да отнеме значително време.

Най-често стартирам Thor Lite със следните параметри:

thor-lite-util upgrade
thor-lite64.exe --allhds --lowprio --cpulimit 50 --allreasons --htmlfile --dbfile f:\THOR\thor_lite.db

Генерираните резултати от Thor Lite са достатъчно подробни и най-вече полезни.

Очаквани резултати

Да се върнем на въпроса от началото на публикацията. Личното ми мнение е, че е препоръчително периодично да се извършва сканиране с инструменти като Loki и Thor (Lite), а причината за това е, че винаги съществува риск антивирусната система да пропусне зловреден код, както и да открием артефакти за наличието на такъв, който е бил премахнат.

Да не забравяме, че на много малко Linux системи имат инсталирани продукти за защита от зловреден код и при необходимост от одит, Loki е едно не-лошо решение.

Както се казва "малко  повече предпазливост, не вреди".