
Легковесная песочница для анализа вредоносного ПО на macOS, которая отслеживает системную активность через OpenBSM или Monitor.app, создавая подробные отчёты и временные шкалы событий файловой системы, процессов и сети.
"Norimaci" — это простая и легковесная песочница для анализа вредоносных программ под macOS. Этот инструмент был вдохновлён "Noriben". Norimaci использует возможности OpenBSM или Monitor.app для мониторинга системной активности macOS вместо Sysinternals Process Monitor (procmon).
Norimaci состоит из 3 скриптов Python.
OpenBSM — это фреймворк для аудита активности на macOS. Подробнее см. на их веб-сайте.
Monitor.app — это бесплатный инструмент, созданный FireEye. Подробнее см. на их веб-сайте.
Мой бывший коллега (@cci_forensics) предложил это название.
"Norimaci" — это искусственное слово, объединяющее "Noriben" и "Macintosh". Произносится "Norimaki" и означает "のり巻き" по-японски. По-английски это "sushi roll".
Норибэн — это японский обед-бокс, состоящий из минимальных ингредиентов. Ингредиенты норимаки похожи на норибэн (морская капуста, рис и другие по вашему вкусу).
Поэтому я решил назвать этот инструмент "Norimaci".
Обратите внимание, что Monitor.app поддерживает только macOS 10.12–10.14. Если вы хотите запускать вредоносное ПО на macOS 10.15 или новее, устанавливать его не обязательно. Вместо него нужно использовать OpenBSM.
Необходимо установить следующие библиотеки из их исходных репозиториев или через pip, если вы используете Norimaci с Monitor.app.
Необходимо создать виртуальную машину macOS для запуска образцов вредоносных программ. Кроме того, настоятельно рекомендуется создать ещё одну виртуальную машину для имитации интернет-соединений. Потому что многие вредоносные программы пытаются подключиться к своим серверам (например, C2).
PolarProxy и INetSim — очень полезные инструменты для предоставления фальшивых HTTP/HTTPS и DNS сервисов. Пожалуйста, обратитесь к блогу NETRESEC для создания фальшивого интернета.
Если вы используете OpenBSM для мониторинга системной активности, вам нужно изменить файл /etc/security/audit_control, как показано ниже. Потому что по умолчанию OpenBSM записывает журналы аудита только о входе и аутентификации. Но Norimaci требует больше типов журналов аудита (создание файлов, удаление, выполнение процессов, сетевая активность и т.д.).
Компьютер необходимо перезагрузить после изменения для применения настроек.
#
# $P4: //depot/projects/trustedbsd/openbsm/etc/audit_control#8 $
#
dir:/var/audit
flags:lo,aa,fc,fd,pc,nt,ex <- отредактируйте здесь так
minfree:5
naflags:lo,aa,fc,fd,pc,nt,ex <- отредактируйте здесь так
policy:cnt,argv
filesz:2M
expire-after:10M
superuser-set-sflags-mask:has_authenticated,has_console_access
superuser-clear-sflags-mask:has_authenticated,has_console_access
member-set-sflags-mask:
member-clear-sflags-mask:has_authenticated
$ sudo python3 ./norimaci.py -m openbsm -o ./out/
Password:
--===[ Norimaci v0.1.0
--===[ Minoru Kobayashi [@unkn0wnbit]
[*] Launching OpenBSM agent...
[*] When runtime is complete, press CTRL+C to stop logging.
^C
[*] Termination of OpenBSM agent commencing... please wait
[*] Converting OpenBSM data ...
[*] Loading converted macOS activity data ...
[*] Saving report to: /Users/macforensics/tools/norimaci/out/Norimaci_14_Jan_20__15_55_093219.txt
[*] Saving timeline to: /Users/macforensics/tools/norimaci/out/Norimaci_14_Jan_20__15_55_093219_timeline.csv
Примечание: Monitor.app не может работать на macOS 10.15. Но он работает на macOS 10.14 и старше.
$ python3 ./norimaci.py -h
--===[ Norimaci v0.1.0
--===[ Minoru Kobayashi [@unkn0wnbit]
usage: norimaci.py [-h] [-m MONITOR] [-j JSON] [-bl OPENBSM_LOG] [-p PROCLIST]
[-ml MONITORAPP_LOG] [-o OUTPUT] [--force] [--debug]
Light weight sandbox which works with OpenBSM or Fireeye's Monitor.app
optional arguments:
-h, --help show this help message and exit
-m MONITOR, --monitor MONITOR
Specify a program to monitor macOS activity. You can
choose 'openbsm' or 'monitorapp'.
-j JSON, --json JSON Path to a JSON file which is converted by
'openbsmconv.py' or 'monitorappconv.py'.
-bl OPENBSM_LOG, --openbsm-log OPENBSM_LOG
Path to an OpenBSM log file.
-p PROCLIST, --proclist PROCLIST
Path to a process list file to process OpenBSM log
file. A file which has ".proclist" extnsion would be
used, if this option is not specified.
-ml MONITORAPP_LOG, --monitorapp-log MONITORAPP_LOG
Path to a Monitor.app data file.
-o OUTPUT, --output OUTPUT
Path to an output directory.
--force Enable to overwrite output files.
--debug Enable debug mode.
$ python3 ./openbsmconv.py -h
usage: openbsmconv.py [-h] [-f FILE] [-p PROCLIST] [-o OUT] [-c] [-rp]
[--with-failure] [--with-failure-socket] [--force]
[--debug]
Converts OpenBSM log file to JSON format.