Отличительным признаком современного мира является стремительное развитие информационного общества, проявление и широкое распространение технологий мультимедиа, электронных информационных ресурсов, сетевых технологий. Применение информационных технологий требует повышенного внимания к вопросам информационной безопасности.
Информационная безопасность – это защищённость информации и поддерживающей инфраструктуры от случайных или преднамеренных воздействий естественного или искусственного характера, которые могут нанести неприемлемый ущерб субъектам информационных отношений [1].
В настоящее время выделяются различные направления деятельности по обеспечению информационной безопасности: составление модели угроз и нарушителей ИБ; оценка рисков нарушений ИБ; внедрение и совершенствование защитных мер; создание службы ИБ; менеджмент ИБ; менеджмент инцидентов ИБ; защита персональных данных и другие.
Вопрос менеджмента инцидентов информационной безопасности является достаточно актуальным. Именно во время расследования и реагирования на инцидент проявляются конкретные уязвимости информационной системы, обнаруживаются следы атак и вторжений, проверяется работа защитных механизмов, качество архитектуры системы ИБ и ее управления.
Целью работы является анализ тестовой операционной системы посредством применения возможностей инструмента Volatility Framework.
Инцидент информационной безопасности – одно или серия нежелательных или неожиданных событий в системе информационной безопасности, которые имеют большой шанс скомпрометировать деловые операции и поставить под угрозу защиту информации [2].
Volatility Framework – программа для исследования копий (образов) оперативной памяти. Фрэймворк с полностью открытым кодом, представляющий собой набор Python – инструментов для извлечения цифровых артефактов из энергонезависимой памяти (RAM). Эта утилита может быть полезна при расследовании инцидентов информационной безопасности или просто при исследовании работы программы с критичными данными.
Самой последней версией Volatility Framework является версия 2.5, выпущенная в октябре 2015 года. Более поздние версии также доступны в разделе Releases на официальном сайте Volatility Framework [3]. Некоторые параметры командной строки, опции и плагины могут незначительно отличаться от версии к версии. С полным списком команд Volatility Framework можно ознакомиться в [4].
Volatility Framework распространяется как в виде открытого исходного кода, так и в виде исполняемого файла (только для Windows).
На сегодняшний день программа поддерживает следующие платформы: Windows, Linux, OS X. Volatility Framework является одним из самых многофункциональных пакетов для исследования памяти. В его возможности входит извлечение информации о: списке запущенных процессов; списке открытых сетевых соединений; списке открытых сетевых сокетов; списке загруженных динамических библиотек (DLL) для каждого процесса; именах открытых файлов для каждого процесса; адресуемую память; открытых записей реестра; извлечение образов процессов.
Как было описано выше, целью данной работы является анализ тестовой операционной системы посредством применения возможностей инструмента Volatility Framework.
Результаты работы и их анализ
В ходе выполнения работы была получена первичная информация об образе памяти, представленная на рис. 1.
Рис. 1. Первичная информация о тестовом образе памяти
Анализ первичной информации позволяет выяснить дату и время получения данного образа памяти, а также тип операционной системы: Windows XP Service Pack 3 (x86).
В первую очередь, после получения первичной общей информации об образе памяти, был проанализирован список процессов:
C:\Users\ДНС\Desktop\volatility_2.5.win.standalone>volatility-2.5.standalone.exe
--profile=WinXPSP3x86 -f C:\Users\ДНС\Desktop\volatility_2.5.win.standalone\tas
k3.vmem pslist
Volatility Foundation Volatility Framework 2.5
Offset(V) Name PID PPID Thds Hnds Sess Wow64 Star
t Exit
---------- -------------------- ------ ------ ------ -------- ------ ---
-------------------------- ------------------------------
0x823c8830 System 4 0 59 403 ------ 0
0x820df020 smss.exe 376 4 3 19 ------ 0 2010
-10-29 17:08:53 UTC+0000
0x821a2da0 csrss.exe 600 376 11 395 0 0 2010
-10-29 17:08:54 UTC+0000
0x81da5650 winlogon.exe 624 376 19 570 0 0 2010
-10-29 17:08:54 UTC+0000
0x82073020 services.exe 668 624 21 431 0 0 2010
-10-29 17:08:54 UTC+0000
0x81e70020 lsass.exe 680 624 19 342 0 0 2010
-10-29 17:08:54 UTC+0000
0x823315d8 vmacthlp.exe 844 668 1 25 0 0 2010
-10-29 17:08:55 UTC+0000
0x81db8da0 svchost.exe 856 668 17 193 0 0 2010
-10-29 17:08:55 UTC+0000
0x81e61da0 svchost.exe 940 668 13 312 0 0 2010
-10-29 17:08:55 UTC+0000
0x822843e8 svchost.exe 1032 668 61 1169 0 0 2010
-10-29 17:08:55 UTC+0000
0x81e18b28 svchost.exe 1080 668 5 80 0 0 2010
-10-29 17:08:55 UTC+0000
0x81ff7020 svchost.exe 1200 668 14 197 0 0 2010
-10-29 17:08:55 UTC+0000
0x81fee8b0 spoolsv.exe 1412 668 10 118 0 0 2010
-10-29 17:08:56 UTC+0000
0x81e0eda0 jqs.exe 1580 668 5 148 0 0 2010
-10-29 17:09:05 UTC+0000
0x81fe52d0 vmtoolsd.exe 1664 668 5 284 0 0 2010
-10-29 17:09:05 UTC+0000
0x821a0568 VMUpgradeHelper 1816 668 3 96 0 0 2010
-10-29 17:09:08 UTC+0000
0x8205ada0 alg.exe 188 668 6 107 0 0 2010
-10-29 17:09:09 UTC+0000
0x820ec7e8 explorer.exe 1196 1728 16 582 0 0 2010
-10-29 17:11:49 UTC+0000
0x820ecc10 wscntfy.exe 2040 1032 1 28 0 0 2010
-10-29 17:11:49 UTC+0000
0x81e86978 TSVNCache.exe 324 1196 7 54 0 0 2010
-10-29 17:11:49 UTC+0000
0x81fc5da0 VMwareTray.exe 1912 1196 1 50 0 0 2010
-10-29 17:11:50 UTC+0000
0x81e6b660 VMwareUser.exe 1356 1196 9 251 0 0 2010
-10-29 17:11:50 UTC+0000
0x8210d478 jusched.exe 1712 1196 1 26 0 0 2010
-10-29 17:11:50 UTC+0000
0x82279998 imapi.exe 756 668 4 116 0 0 2010
-10-29 17:11:54 UTC+0000
0x822b9a10 wuauclt.exe 976 1032 3 133 0 0 2010
-10-29 17:12:03 UTC+0000
0x81c543a0 Procmon.exe 660 1196 13 189 0 0 2011
-06-03 04:25:56 UTC+0000
0x81fa5390 wmiprvse.exe 1872 856 5 134 0 0 2011
-06-03 04:25:58 UTC+0000
0x81c498c8 lsass.exe 868 668 2 23 0 0 2011
-06-03 04:26:55 UTC+0000
0x81c47c00 lsass.exe 1928 668 4 65 0 0 2011
-06-03 04:26:55 UTC+0000
0x81c0cda0 cmd.exe 968 1664 0 -------- 0 0 2011
-06-03 04:31:35 UTC+0000 2011-06-03 04:31:36 UTC+0000
0x81f14938 ipconfig.exe 304 968 0 -------- 0 0 2011
-06-03 04:31:35 UTC+0000 2011-06-03 04:31:36 UTC+0000
Полученный список процессов был проанализирован. Большинство из процессов являются системными, остальные связаны с работой программы VMware. В сети Интернет выполнен поиск описания по каждому из процессов. В ходе анализа была найдена информация о том, что один из процессов lsass.exe – необходимый системный процесс, отвечающий за работу локального сервера проверки подлинности, политику безопасности и авторизацию пользователей. Взаимодействует со службой Winlogon. Однако, lsass.exe может также быть процессом, известным как троянский вирус. Эта троянская программа позволяет злоумышленникам получать доступ к вашему ПК, похищать пароли и персональные данные. Под именем lsass.exe известен также downloader – программа, загружающая данные (в том числе вирусы) из Интернета на ПК пользователя без их ведома [5].
В ходе более детального исследования процесса lsass.exe было отмечен его неоднократный старт, причем с ощутимой разницей во времени старта. Более того, процесс lsass.exe находится в числе «первых» загружаемых при загрузке. В силу этого значение идентификатора этого процесса является небольшим. Однако подозрительные процессы с PID = 868 и PID = 1928 имеют более высокое значение идентификатора, нежели процесс с PID = 680.
Также можно заметить, что процесс с PID = 680 был порожден процессом с PID = 624 (а именно, процессом winlogon.exe). Это является правильным поведением процесса lsass.exe, так как он взаимодействует со службой Winlogon. В случае процессов с PID = 1928 и PID = 868 такого взаимодействия не наблюдается. В этом можно наглядно убедиться, построив дерево процессов:
C:\Users\ДНС\Desktop\volatility_2.5.win.standalone>volatility-2.5.standalone.exe
--profile=WinXPSP3x86 -f C:\Users\ДНС\Desktop\volatility_2.5.win.standalone\tas
k3.vmem pstree
Volatility Foundation Volatility Framework 2.5
Name Pid PPid Thds Hnds T
ime
-------------------------------------------------- ------ ------ ------ ---
---
.. 0x81da5650:winlogon.exe 624 376 19 570 2
010-10-29 17:08:54 UTC+0000
... 0x82073020:services.exe 668 624 21 431 2
010-10-29 17:08:54 UTC+0000
.... 0x81c47c00:lsass.exe 1928 668 4 65 2
011-06-03 04:26:55 UTC+0000
.... 0x81c498c8:lsass.exe 868 668 2 23 2
011-06-03 04:26:55 UTC+0000
... 0x81e70020:lsass.exe 680 624 19 342 2
010-10-29 17:08:54 UTC+0000
В ходе дальнейшего исследования были проанализированы список открытых сетевых соединений и список открытых сетевых сокетов. Было установлено, что на момент получения образа памяти никаких сетевых соединений не было установлено (рис. 2).
Рис. 2. Список открытых сетевых соединений
Анализ списка открытых сетевых сокетов (рис. 3) дает еще одно основание полагать, что процесс с PID = 680 является безопасным процессом с характерным для него поведением. Дело в том, что назначение процесса lsass.exe предполагает, как правило прослушивание портов (в данном случае, это порты 500 и 4500. В то же время, анализ сокетов дает еще один аргумент в пользу подозрительности процессов с PID = 868 и PID = 1928.
Рис. 3. Список открытых сетевых сокетов
Затем для каждого из процессов с PID = 680, 868, 1928 был получен список загруженных библиотек. Их анализ позволил выявить небольшое количество DLL для подозрительных процессов с PID = 868, 1928 по сравнению с PID = 680 (в четыре и два раза меньшее количество DLL соответственно). Ниже представлен список DLL для процесса с PID = 868:
C:\Users\ДНС\Desktop\volatility_2.5.win.standalone>volatility-2.5.standalone.exe
--profile=WinXPSP3x86 -f C:\Users\ДНС\Desktop\volatility_2.5.win.standalone\tas
k3.vmem dlllist -p 868
Volatility Foundation Volatility Framework 2.5
***********************************************************************
lsass.exe pid: 868
Command line : «C:\WINDOWS\\system32\\lsass.exe»
Service Pack 3
Base Size LoadCount Path
---------- ---------- ---------- ----
0x01000000 0x6000 0xffff C:\WINDOWS\system32\lsass.exe
0x7c900000 0xaf000 0xffff C:\WINDOWS\system32\ntdll.dll
0x7c800000 0xf6000 0xffff C:\WINDOWS\system32\kernel32.dll
0x77dd0000 0x9b000 0xffff C:\WINDOWS\system32\ADVAPI32.dll
0x77e70000 0x92000 0xffff C:\WINDOWS\system32\RPCRT4.dll
0x77fe0000 0x11000 0xffff C:\WINDOWS\system32\Secur32.dll
0x7e410000 0x91000 0xffff C:\WINDOWS\system32\USER32.dll
0x77f10000 0x49000 0xffff C:\WINDOWS\system32\GDI32.dll
Далее, используя ключ –malfind, был выполнен поиск скрытых DLL для подозрительных процессов. Для подозрительных процессов были получены Crash Dump Files:
C:\Users\ДНС\Desktop\volatility_2.5.win.standalone>volatility-2.5.standalone.exe
--profile=WinXPSP3x86 -f C:\Users\ДНС\Desktop\volatility_2.5.win.standalone\tas
k3.vmem malfind -p 868 -D C:\Users\ДНС\Desktop\volatility_2.5.win.standalone\Але
ксеев1
Volatility Foundation Volatility Framework 2.5
Process: lsass.exe Pid: 868 Address: 0x80000
Vad Tag: Vad Protection: PAGE_EXECUTE_READWRITE
Flags: Protection: 6
0x00080000 4d 5a 90 00 03 00 00 00 04 00 00 00 ff ff 00 00 MZ..............
0x00080010 b8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 ........@.......
0x00080020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x00080030 00 00 00 00 00 00 00 00 00 00 00 00 08 01 00 00 ................
Для дальнейшего анализа файлы были загружены на VirusTotal. Каждый из файлов был распознан большинством антивирусов как троянская программа – Stuxnet (рис. 4).
Рис. 4. Результат анализа файлов
Затем был проанализирован список драйверов (рис. 5) с помощью команды modscan (позволяет получить список ранее выгруженных драйверов и драйверов, которые были скрыты). Попытка поиска в сети Интернет имени первого же драйвера из списка принесла результат: Первая модификация червя Stuxnet, созданная в 2009 году, использовала только один файл драйвера – mrxcls.sys, – и в нем отсутствовала цифровая подпись. В 2010 году авторы создали второй драйвер mrxnet.sys (его целью было сокрытие файлов червя на USB-дисках) и снабдили mrxnet.sys и драйвер mrxcls.sys цифровыми сертификатами компании Realtek [6].
Рис. 5. Список драйверов
В ходе проведенного исследования тестового образа памяти Task3.vmem было обнаружено действие вредоносной троянской программы – Stuxnet. Win32/Stuxnet – компьютерный червь, поражающий компьютеры под управлением операционной системы Microsoft Windows. Данный вирус использует четыре уязвимости системы Microsoft Windows (уязвимость «нулевого дня» (zero-day) и три ранее неизвестные уязвимости), позволяющие ему распространяться при помощи USB-flash накопителей.
В ходе работы установлено, что червь установил в систему два драйвера, один из которых является драйвером-фильтром файловой системы, скрывающим наличие компонентов вредоносной программы на съемном носителе. Второй драйвер используется для внедрения зашифрованной динамической библиотеки в системные процессы и содержит в себе специализированное ПО для выполнения основной задачи. Драйверы, которые троян устанавливает в систему, снабжены цифровыми подписями, украденными у производителей легального программного обеспечения. Злоумышленники используют цифровую подпись для «тихой» установки драйверов руткита в целевую систему. В системах безопасности многих производителей файлы, подписанные известными фирмами, заведомо считаются безопасными, и наличие подписи дает возможность беспрепятственно, не выдавая себя, производить действия в системе. Кроме того, червь располагает механизмами контроля количества заражений, самоликвидации и дистанционного управления.
Подводя итог, стоит отметить, что управление инцидентами информационной безопасности является важной частью системы ИБ в любой современной организации. В связи с этим, велика роль инструментов и средств расследования инцидентов информационной безопасности.