Skip to main content

Дополнительные индикаторы компроментации

Управление уязвимостями позволяет снижать вероятность компрометации путем их своевременного обнаружения и устранения. Важно определение приоритетов для исправления уязвимостей на основе их серьезности и вероятности эксплуатации. Набор техник направлен на определение и классификацию уязвимостей в системах и приложениях до использования и анализ потенциального воздействия уязвимостей.

 

Digital Forensic — область, посвященная исследованию и анализу цифровых устройств и данных с целью выявления преступных действий, инцидентов безопасности или других аномалий. В рамках данной области существует множество методов, техник и источников данных. 

Анализ позволяет выявить новые вредоносные объекты или даже техники, пополнив индикаторы компрометации (IOC) и сигнатуры для EDR решений. Таким образом, подобные угрозы будут своевременно предотвращать в будущем.

В случае, если инцидент происходит в данный момент, то по результатам проведенного анализа вы сможете начать противодействие. Первыми простыми шагами противодействия могут оказаться блокировка обнаруженных IP-адресов, доменных имен или вредоносных исполняемых файлов.

Анализ оперативной памяти

Исследование оперативной памяти позволяет увидеть активные процессы, открытые сетевые соединения, пароли, ключи шифрования и многое другое. Сбор дампа оперативной памяти (memory dump) — первый этап анализа оперативной памяти.

Сбор дампа оперативной памяти с ВМ

В этой статье вы можете ознакомиться с техниками сбора дампов с помощью популярных корпоративных средств виртуализации. В гипервизорах от VMware Player/Workstation (для Windows) и Fusion (для MacOS) для получения дампа памяти достаточно поставить ВМ на паузу и скопировать два файла: .vmem и .vmss, хранящиеся в директории расположения ВМ.

Сбор дампа оперативной памяти с "железного" ПК

WinPmem: WinPmem долгое время был драйвером сбора памяти с открытым исходным кодом для Windows по умолчанию. Раньше он находился в проекте Rekall, но недавно был выделен в отдельный репозиторий.
DumpIt: упрощенная утилита, создающая дамп физической памяти компьютеров с Windows и Linux. В Windows он объединяет 32-битную и 64-битную системную физическую память в один выходной файл, что делает его чрезвычайно простым в использовании.
MemDump: MemDump — это бесплатная и простая утилита командной строки, которая позволяет нам захватывать содержимое оперативной памяти системы. Это весьма полезно при криминалистических расследованиях или при анализе системы на предмет вредоносной активности. Простота и удобство использования делают его популярным выбором для сбора дампа памяти.
Belkasoft RAM Capturer: это еще один мощный инструмент, который мы можем использовать для сбора памяти, бесплатно предоставляемый Belkasoft. Он может захватывать оперативную память работающего компьютера под управлением Windows, даже если имеется активная защита от отладки или защиты от дампа. Это делает его высокоэффективным инструментом для извлечения как можно большего количества данных во время оперативного криминалистического расследования.
Magnet RAM Capture: этот инструмент, разработанный компанией Magnet Forensics, предоставляет бесплатный и простой способ захвата энергозависимой памяти системы.
LiME (Linux Memory Extractor): LiME — это загружаемый модуль ядра (LKM), который позволяет получать энергозависимую память. LiME уникален тем, что он спроектирован так, чтобы быть прозрачным для целевой системы, избегая многих распространенных антикриминалистических мер.

Режим гибернации (сон) в Windows

Примечательность этого режима заключается в том, что операционная система перед тем как отключить питание самостоятельно сохраняет состояние операционной системы в файл, который можно найти в корне диска C:\hiberfil.sys, заполучив который мы так же сможем перейти к следующему этапу, непосредственному анализу.

Strings Linux дефолтное приложение, пример:

Поиск IP адресов

strings win_52a.vmem | grep -E "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b"

Поиск почтовых адресов (email)

strings win_52a.vmem | grep -oE "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}\b"

Поиск артефактов командной строки

strings win_52a.vmem | grep -E "(cmd|powershell|bash)[^\s]+"

Volatility

Утилита Volatility стала де-факто главным инструментом для анализа оперативной памяти.

Volatility2 vs Volatility3

  • Volatility 2 работа с дампами памяти для Win новее Windows 10 build 19041 не гарантируется.
  • Volatility 2 на python2
  • Для устаревших ОС.
  • В Volatilit 2 необходимо указывать профайл версии операционной системы, дамп который мы изучаем. Volatility 3 проанализирует дамп и примет решение самостоятельно в автоматическом режиме.
  • список основных команд в сравнении для обеих версий можно посмотреть по ссылке https://blog.onfvp.com/post/volatility-cheatsheet/.

Наиболее часто используемые модули:

  • pslist: покажет список запущенных процессов;
  • pstree: покажет список запущенных процессов, выстроенных в виде дерева родительских отношений;
  • psscan: поиск процессов, может показать чуть больше чем обычный pslist;
  • cmdline: покажет процессы и их аргументы;
  • netscan: покажет сетевые конекты и связанные с ними процессы;
  • malfind: покажет процессы, содержащие потенциально зловредный код;
  • svcscan: покажет список сервисов Windows;
  • dlllist: покажет список загруженных DLL в указанный процесс.

Вывод списка процессов

# vol -f win_52a.vmem windows.pslist
Volatility 3 Framework 2.5.2
Progress:  100.00		PDB scanning finished                        
PID	PPID	ImageFileName	Offset(V)	Threads	Handles	SessionId	Wow64	CreateTime	ExitTime	File output

4	0	System	0xa80934e81040	120	-	N/A	False	2023-11-07 06:34:32.000000 	N/A	Disabled
92	4	Registry	0xa80934ebd080	4	-	N/A	False	2023-11-07 06:34:25.000000 	N/A	Disabled
316	4	smss.exe	0xa80935b93040	2	-	N/A	False	2023-11-07 06:34:32.000000 	N/A	Disabled
...

Вывод дерева процессов

# vol -f win_52a.vmem windows.pstree
Volatility 3 Framework 2.5.2
Progress:  100.00		PDB scanning finished                        
PID	PPID	ImageFileName	Offset(V)	Threads	Handles	SessionId	Wow64	CreateTime	ExitTime

4	0	System	0xa80934e81040	120	-	N/A	False	2023-11-07 06:34:32.000000 	N/A
* 1676	4	MemCompression	0xa80939902080	26	-	N/A	False	2023-11-07 06:34:41.000000 	N/A
508	428	wininit.exe	0xa8093608e300	1	-	0	False	2023-11-07 06:34:39.000000 	N/A
* 644	508	services.exe	0xa80936ed0180	9	-	0	False	2023-11-07 06:34:39.000000 	N/A
** 1048	644	svchost.exe	0xa8093b5e8340	4	-	0	False	2023-11-07 06:35:43.000000 	N/A
** 1564	644	svchost.exe	0xa809398a5340	3	-	0	False	2023-11-07 06:34:41.000000 	N/A
...

Сканирование процессов

# vol -f win_52a.vmem windows.psscan
Volatility 3 Framework 2.5.2
Progress:  100.00		PDB scanning finished                        
PID	PPID	ImageFileName	Offset(V)	Threads	Handles	SessionId	Wow64	CreateTime	ExitTime	File output

2992	644	svchost.exe	0xa60000081080	8	-	0	False	2023-11-07 06:34:44.000000 	N/A	Disabled
3224	644	svchost.exe	0xa600001b7080	6	-	0	False	2023-11-07 06:34:44.000000 	N/A	Disabled
4	0	System	0xa80934e81040	120	-	N/A	False	2023-11-07 06:34:32.000000 	N/A	Disabled
92	4	Registry	0xa80934ebd080	4	-	N/A	False	2023-11-07 06:34:25.000000 	N/A	Disabled
528	2976	cmd.exe	0xa80934f44080	0	-	0	False	2023-11-07 08:49:34.000000 	2023-11-07 08:49:34.000000 	Disabled
2340	644	spoolsv.exe	0xa8093542f080	9	-	0	False	2023-11-07 06:34:42.000000 	N/A	Disabled
316	4	smss.exe	0xa80935b93040	2	-	N/A	False	2023-11-07 06:34:32.000000 	N/A	Disabled
516	500	csrss.exe	0xa80935fc3080	12	-	1	False	2023-11-07 06:34:39.000000 	N/A	Disabled
508	428	wininit.exe	0xa8093608e300	1	-	0	False	2023-11-07 06:34:39.000000 	N/A	Disabled
436	428	csrss.exe	0xa80936c9a080	10	-	0	False	2023-11-07 06:34:38.000000 	N/A	Disabled
...

Сканирование процессов (psscan) может показать больше информации, чем обычное отображение списка процессов (pslist), если у каких-то процессов использовались техники сокрытия.

Поиск зловредной активности

# vol -f win_52a.vmem windows.malfind
Volatility 3 Framework 2.5.2
Progress:  100.00		PDB scanning finished                        
PID	Process	Start VPN	End VPN	Tag	Protection	CommitCharge	PrivateMemory	File output	Hexdump	Disasm

...
2216	cybered_beacon	0x1b2017f0000	0x1b20183dfff	VadS	PAGE_EXECUTE_READWRITE	78	1	Disabled	
4d 5a 41 52 55 48 89 e5	MZARUH..
48 81 ec 20 00 00 00 48	H......H
8d 1d ea ff ff ff 48 89	......H.
df 48 81 c3 cc 60 01 00	.H...`..
ff d3 41 b8 f0 b5 a2 56	..A....V
68 04 00 00 00 5a 48 89	h....ZH.
f9 ff d0 00 00 00 00 00	........
00 00 00 00 f8 00 00 00	........	4d 5a 41 52 55 48 89 e5 48 81 ec 20 00 00 00 48 8d 1d ea ff ff ff 48 89 df 48 81 c3 cc 60 01 00 ff d3 41 b8 f0 b5 a2 56 68 04 00 00 00 5a 48 89 f9 ff d0 00 00 00 00 00 00 00 00 00 f8 00 00 00
8620	rundll32.exe	0x1f182510000	0x1f18255dfff	VadS	PAGE_EXECUTE_READWRITE	78	1	Disabled	
4d 5a 41 52 55 48 89 e5	MZARUH..
48 81 ec 20 00 00 00 48	H......H
8d 1d ea ff ff ff 48 89	......H.
df 48 81 c3 cc 60 01 00	.H...`..
ff d3 41 b8 f0 b5 a2 56	..A....V
68 04 00 00 00 5a 48 89	h....ZH.
f9 ff d0 00 00 00 00 00	........
00 00 00 00 f8 00 00 00	........	4d 5a 41 52 55 48 89 e5 48 81 ec 20 00 00 00 48 8d 1d ea ff ff ff 48 89 df 48 81 c3 cc 60 01 00 ff d3 41 b8 f0 b5 a2 56 68 04 00 00 00 5a 48 89 f9 ff d0 00 00 00 00 00 00 00 00 00 f8 00 00 00

...

Вывод информации о сетевых взаимодействиях процессов

# vol -f win_52a.vmem windows.netscan.NetScan
Volatility 3 Framework 2.5.2
Progress:  100.00		PDB scanning finished                        
Offset	Proto	LocalAddr	LocalPort	ForeignAddr	ForeignPort	State	PID	Owner	Created

0xa80935d55050	TCPv4	0.0.0.0	49664	0.0.0.0	0	LISTENING	664	lsass.exe	2023-11-07 06:34:40.000000 
0xa80935d555d0	TCPv4	0.0.0.0	49664	0.0.0.0	0	LISTENING	664	lsass.exe	2023-11-07 06:34:40.000000 
0xa80935d555d0	TCPv6	::	49664	::	0	LISTENING	664	lsass.exe	2023-11-07 06:34:40.000000 
0xa80935d55890	TCPv4	0.0.0.0	135	0.0.0.0	0	LISTENING	892	svchost.exe	2023-11-07 06:34:40.000000 
0xa80935d559f0	TCPv4	0.0.0.0	135	0.0.0.0	0	LISTENING	892	svchost.exe	2023-11-07 06:34:40.000000 
...

Поиск по Yara-правилам

# vol -f win_52a.vmem windows.vadyarascan.VadYaraScan --yara-file "./malware_rules.yar"
Volatility 3 Framework 2.5.2
Progress:  100.00		PDB scanning finished                        
Offset	PID	Rule	Component	Value

0x18201b6bec9	92	spyeye_plugins	$o	72 64 70 2e 64 6c 6c
0x182020eb214	92	spyeye_plugins	$o	72 64 70 2e 64 6c 6c
0x182020eb494	92	spyeye_plugins	$o	72 64 70 2e 64 6c 6c
0x182025e8fb7	92	spyeye_plugins	$o	72 64 70 2e 64 6c 6c
0x18202e3f53f	92	spyeye_plugins	$o	72 64 70 2e 64 6c 6c
0x18202e4a83f	92	spyeye_plugins	$o	72 64 70 2e 64 6c 6c
0x182031bef0c	92	spyeye_plugins	$o	72 64 70 2e 64 6c 6c
0x182032bbf6f	92	spyeye_plugins	$o	72 64 70 2e 64 6c 6c
0x182032c293f	92	spyeye_plugins	$o	72 64 70 2e 64 6c 6c
0x182033015b4	92	spyeye_plugins	$o	72 64 70 2e 64 6c 6c
0x18204295fec	92	spyeye_plugins	$o	72 64 70 2e 64 6c 6c
0x182071b6479	92	Insta11Strings	$	42 31 32 41 45 38 39 38 2d 44 30 35 36 2d 34 33 37 38 2d 41 38 34 34 2d 36 44 33 39 33 46 45 33 37 39 35 36
0x182072a3a31	92	Insta11Strings	$	45 43 44 34 46 43 34 44 2d 35 32 31 43 2d 31 31 44 30 2d 42 37 39 32 2d 30 30 41 30 43 39 30 33 31 32 45 31
0x182079b80c9	92	Insta11Strings	$	42 31 32 41 45 38 39 38 2d 44 30 35 36 2d 34 33 37 38 2d 41 38 34 34 2d 36 44 33 39 33 46 45 33 37 39 35 36
0x18207a74911	92	Insta11Strings	$	45 43 44 34 46 43 34 44 2d 35 32 31 43 2d 31 31 44 30 2d 42 37 39 32 2d 30 30 41 30 43 39 30 33 31 32 45 31
0x255fc21709c	780	SharedStrings	$m4	00 00 00 00 45 00 52 00 00 00 00 00
...

Использование дополнительных плагинов

# vol -r pretty -f win_52a.vmem -p /opt/volatility3/volatility3/framework/plugins/ cobaltstrike
Volatility 3 Framework 2.5.2
Formatting...0.00               PDB scanning finished                        
  |  PID |        Process | Port | Sleep | Jitter |                                       Server |   POST_PATH |               x86 Install_Path |                x64 Install_Path | Pipe | License ID
* | 2216 | cybered_beacon |  443 | 60000 |      0 |              cybered-c2.gopherz.ru,/activity | /submit.php | %windir%\syswow64\rundll32.exe | %windir%\sysnative\rundll32.exe |      | 1580103824
* | 8620 |   rundll32.exe |  443 | 60000 |      0 | cybered-c2.gopherz.ru,/IE9CompatViewList.xml | /submit.php | %windir%\syswow64\rundll32.exe | %windir%\sysnative\rundll32.exe |      | 1580103824

В этом примере используется дополнительный плагин volatility 3 для поиска процесса, в рамках которого устанавливается связь с популярным Command&Control системой CobaltStrike.

Возможные ошибки YARA-библиотек

Работая с плагинами cobaltstrike и yarascan, вы, возможно, встретите ошибки загрузки этих плагинов. Введя флаг -vvv в конец команды vol, вы увидите, что приложение ругается на то, что не может выполнить команду import yara.

Причина в том, что cobaltstrike основан на yarascan, а он в свою очередь требует python-модуль yara версии 3.8.0 и выше. Поэтому нам надо удалить устаревший модуль yara и установить новый yara-python. А затем поправить некоторые ссылки на библиотеку.

В итоге, фиксим и проверяем себя так:

pip3 uninstall yara
pip3 install yara-python

# python3
Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import yara
Failed to import '/usr/lib/libyara.so'


# find / -name libyara.so
/usr/local/lib/python3.10/dist-packages/usr/lib/libyara.so

# ln -s /usr/local/lib/python3.10/dist-packages/usr/lib/libyara.so /usr/lib/libyara.so

# python3
Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import yara
>>> yara.__version__
'4.5.0'
>>> 

Анализ HDD

Для групп реагирования на инциденты выделяются определенные функции:

  • Анализ структуры файлов. Возможность перемещаться и видеть иерархию файлов на диске имеет решающее значение. Криминалистические инструменты должны отображать эту структуру, обеспечивая быстрый доступ к определенным файлам, особенно в известных местах подозрительной системы.
  • Hex Viewer: в те моменты, когда вам требуется поближе познакомиться с вашими данными, просмотр файлов в шестнадцатеричном формате необходим. Эта возможность особенно удобна при работе с такими угрозами, как специализированное вредоносное ПО или уникальные эксплойты.
  • Анализ веб-артефактов. Учитывая такой большой объем пользовательских данных, связанных с веб-активностью, выбранный инструмент должен эффективно анализировать и представлять эти данные. Это меняет правила игры, когда вы собираете воедино события, которые привели к тому, что пользователь попал на вредоносный веб-сайт.
  • Работа с электронной почты. Иногда след ведет к внутренним угрозам. Может быть, это мошенник-сотрудник или просто кто-то ошибся. В таких случаях электронные письма часто имеют ключевое значение. Инструмент, который может извлекать и представлять эти данные, упрощает процесс, упрощая соединение точек.
  • Средство просмотра изображений. Иногда изображения, хранящиеся в системах, могут рассказать собственную историю. Будь то проверка политики или более глубокое погружение, наличие встроенного средства просмотра является благом.
  • Анализ метаданных. Такие детали, как временные метки создания файлов, хеши и расположение диска, могут иметь неоценимое значение. Рассмотрим сценарий, в котором вы пытаетесь сопоставить время запуска приложения с предупреждением о вредоносном ПО. Такие корреляции могут стать стержнем вашего расследования.

Все перечисленные выше критерии отлично реализованы в бесплатном программном обеспечении Autopsy.

Autopsy

Функции: построение временной диаграммы, поиск ключевых слов, извлечение артефактов из Интернета и электронной почты, а также возможность фильтровать результаты на основе известных хешей вредоносных файлов.

Loki / Thor

Основываясь на YARA-правилах, будучи запущенными непосредственно на зараженном ПК, они помогут вам определить подозрительные файлы и процессы.

Loki — бесплатная, но устаревшая и не поддерживаемая версия продукта, написанная на python.

Thor Lite — бесплатная новая версия с 4000 YARA правилами, идущими в комплекте. Вы всегда можете подгрузить свои.

Thor — платная версия с 25000 YARA правилами.

Разработчик: https://www.nextron-systems.com/compare-our-scanners/