Русский
Русский
English
Статистика
Реклама

Песочницы

Детектирование техник обхода песочниц и виртуализации на примере PT Sandbox

23.06.2020 18:09:52 | Автор: admin
Когда заходит речь о песочницах, все представляют себе виртуальную машину, напичканную различными инструментами для отслеживания действий подозрительного ПО. И большинство продуктов работают именно таким образом. Следовательно, возникает вопрос как же быть, если вредоносное ПО обнаружит ненастоящее окружение и завершит свою работу? Здесь мнения расходятся: кто-то скажет, что мы можем хорошенько поработать с виртуальным образом, изменив значения характеристик среды (харденинг), в которых малварь будет искать подвох. Другие считают, что эта игра не стоит свеч. Тем не менее сам факт попытки провести разведку и определить свойство окружения подозрительное действие, которое нехарактерно для большинства легитимного софта. Конечно, такого поведения недостаточно, чтобы сделать однозначный вывод о злонамеренных целях ПО, однако в совокупности с другими признаками оно заслуживает отдельного внимания безопасника.

В интернете несложно найти примеры утилит (один, второй), сочетающие в себе сразу несколько хорошо известных техник для обнаружения песочниц, виртуализации или просто окружения для анализа вредоносного ПО (отладочных инструментов, снифферов, мониторов). Эти базы знаний пополняются находками самих исследователей, которые ищут новые методы, и способами, извлекаемыми при анализе вредоносов. Для так называемой массовой малвари, которая рассчитана на заражение произвольно взятой системы, умение определить неподходящее окружение жизненно необходимо, ведь шанс того, что вскоре оно попадет в средство анализа вредоносного ПО или на машину с установленным антивирусом, крайне велик, а значит, нужно уметь не выдавать себя как можно дольше.

С целенаправленными атаками ситуация меняется. Перед проведением такой атаки злоумышленники собирают как можно больше информации о цели, а значит, порой понимают, что нет необходимости тщательно маскироваться от виртуальных сред после успешного заражения. Кроме того, не всякие действия могут расцениваться как подозрительные, особенно если им не сопутствуют чрезмерные попытки малвари себя обезопасить. Также не стоит забывать, что в ряде организаций (например, у разработчиков ПО) существование виртуальной инфраструктуры типичная ситуация.

В этой статье мы рассмотрим несколько примеров сложного вредоносного ПО, используемого в таргетированных атаках, и покажем, каким образом мы выявляем попытки обойти неподходящую среду по техникам T1497 и T1063 из MITRE ATT&CK.

PlugX .NET Wrapper


MD5: ca8042a6d13751ef5c908cf5bc334600


PlugX можно назвать классическим бэкдором, он известен более 10 лет. Широко используется преимущественно злоумышленниками из азиатских стран (в том числе и APT-группами). Его новые модификации обнаруживаются до сих пор. В качестве примера мы взяли исполняемый PE-файл на платформе .NET. Это лишь обертка для PlugX. Дроппер проверяет, существует ли процесс vmtoolsd в системе, если нет внедряет шелл-код для распаковки и запуска полезной нагрузки бэкдора.



Поиск процесса vmtoolsd

Для того чтобы найти нужный нам процесс, требуется получить список всех процессов в системе. Убрав за скобки сопутствующие вызовы, мы упремся в вызов функции ядра NtQuerySystemInformation (здесь и далее будем использовать префикс Nt вместо Zw, чтобы не было расхождения с вырезками из журналов событий) со значением поля SystemInformationClass, равным SystemProcessInformation, или 0x5:

syscall Time=??????9276.891649,PID=2996,PPID=1368,TID=2848,ProcessName="\Device\HarddiskVolume2\***.exe",Method=NtQuerySystemInformation,Module=nt,vCPU=1,CR3=0xC7FA000,Syscall=51,SystemInformationClass=0x5,SystemInformation=0x4C36A0,SystemInformationLength=0x20400,ReturnLength=0x8DEF0

К слову, проверить результат можно на более простом примере, проследив вызов хорошо известной API-функции CreateToolhelp32Snapshot из kernel32:



Вызов NtQuerySystemInformation из ntdll в ходе работы функции CreateToolhelp32Snapshot из kernel32



Вызов функции ядра в функции NtQuerySystemInformation из ntdll

В результате мы трактуем перехваченный вызов как попытку перечисления процессов в системе с вытекающим подозрительным поведением Read.Process.Name.Enumeration.

{"detect.name": "Read.Process.Name.Enumeration","detect.type": "suspicious","process.id": "2996","process.name": "***.exe","unixtime": "??????9276.891649"}

PipeMon


SHA1: 93628ed36d3b70c685be8a3436bd489a


Приведем более свежий пример. Двадцать первого мая наши коллеги из ESET опубликовали статью о новом бэкдоре PipeMon APT-группы Winnti, хорошо известной успешными атаками на цепочку поставок (supply chain) и заражениями крупных организаций из игровой индустрии. В этот раз они использовали новое вредоносное ПО, которое использует множества именованных каналов (named pipe) для взаимодействия между своими модулями. В процессе инсталляции, прежде чем внедрить в процесс главный и сторожевой (watchdog) модули, один из компонентов проверяет, принадлежит ли процесс ESET (ekrn.exe) и Kaspersky (avp.exe). Любопытно, что наличие антивирусного ПО не является преградой: вредонос продолжает свою деятельность, выбирая другой процесс-жертву, минуя обнаружение в попытке внедриться в охраняемый процесс. Не самая сложная техника, но мы не могли пройти мимо, с одной стороны, недавнего, с другой смелого случая, который аналогичным образом определяется как подозрительное поведение Read.Process.Name.Enumeration.

CozyDuke


MD5: 3d3363598f87c78826c859077606e514


APT Cozy Bear (она же APT29, The Dukes, YTTRIUM) одна из группировок, участники которой, предположительно, говорят на русском языке. Про их активность известно с 2008 года, а вредоносная кампания Operation Ghost показывает, что качество используемого ими ВПО по-прежнему высоко. Сфокусируемся на одном из флагманских бэкдоров группы CozyDuke. В начале своей работы для обнаружения антивирусного ПО (Kaspersky, Dr.Web, Avira) вредонос запускает WMI-запросы SELECT * FROM AntiVirusProduct и SELECT * FROM FireWallProduct.

Кроме этого, бэкдор ищет антивирусные продукты в списке установленного софта, перечисляя ветку реестра SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. WMI-вызовы отслеживаются путем наблюдения за использованием COM-интерфейса {4590F811-1D3A-11D0-891F-00AA004B2E24} (CLSID_WbemLocator) средствами вызова API CoCreateInstanse и дальнейшего разбора структур класса объекта:

wmimon Time=??????9653.749016,PID=556,PPID=1476,TID=1256,ProcessName="\Device\HarddiskVolume2\***.exe",Method=ConnectServer,Resource=root\SecurityCenter2

wmimon Time=??????9653.865526,PID=556,PPID=1476,TID=1256,ProcessName="\Device\HarddiskVolume2\***.exe",Method=ExecQuery,Command="SELECT * FROM AntiVirusProduct"

wmimon Time=??????9654.718217,PID=556,PPID=1476,TID=1256,ProcessName="\Device\HarddiskVolume2\***.exe",Method=ExecQuery,Command="SELECT * FROM FireWallProduct"


Обращение к реестру фиксируется вызовом функции ядра NtEnumerateKey:

regmon Time=??????9653.942010,PID=556,PPID=1476,TID=1256,ProcessName="\Device\HarddiskVolume2\******.exe",Method=NtEnumerateKey,Key="\REGISTRY\MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\UNINSTALL"

В результате получаем подозрительные события Create.Query.WMI.CheckVM и Read.Registry.Key.CheckInstalledSoft:

{"detect.name": "Create.Query.WMI.CheckVM","detect.type": "suspicious","process.id": "556","process.name": "***.exe","unixtime": "??????9653.865526"}{"detect.name": " Read.Registry.Key.CheckInstalledSoft ","detect.type": "suspicious","process.id": "556","process.name": "***.exe","unixtime": "??????9653.942010"}



Опасное поведение CozyDuke, обнаруженное PT Sandbox

Zebrocy AutoIt loader


MD5: 4d552f8927599915990c27fd606bd82f


APT Fancy Bear (она же APT28, Sofacy, Sednit) является одной из самых продвинутых группировок. За их авторством десятки бэкдоров, проксирующих троянов и инфостилеров: семейства троянов Xagent, Xtunnel, Sedreco, Downdelph и др. Создатели первого в мире UEFI-руткита LoJax не ограничиваются лишь вредоносами для Windows. Мы рассмотрим образец вредоносного семейства Zebrocy, написанный на языке AutoIt. Дополнительный слой упаковки с помощью UPX не усложняет получение Au3-интерпретируемого скрипта, в котором проверяется наличие процессов виртуального окружения VMware, VirtualBox или Parallels:



Поиск процессов VMware, VirtualBox или Parallels

Такая активность регистрируется уже рассмотренным ранее подозрительным поведением Read.Process.Name.Enumeration.

Стоит отметить, что с 2013 года для создания вариаций Zebrocy использовались и другие языки программирования: Delphi, C#, Python, а также набравший популярность Go. В одном из образцов на Go (MD5: f3ec38b8d5a6e29db299e2eadacbcebe) мы обнаружили простой, но очень эффективный трюк для обхода песочницы: троян проверяет, что собственное имя библиотеки (вредонос представляет собой элемент управления OLE, который регистрируется в системе с помощью regsvr) начинается с подстроки sap_. Шанс на то, что случайно попавший в систему для анализа вредонос будет проименован корректно, очень мал. Для успешной работы потребуется запустить цепочку заражения с самого начала, что не гарантирует получение загрузчика Zebrocy в качестве полезной нагрузки от управляющего сервера.



Расшифровка строки spa_ в Zebrocy Go

SmokeLoader


MD5: 5fc6f24d43bc7ca45a81d159291955d1


Мы решили включить известный вредоносный загрузчик SmokeLoader в список рассматриваемых семейств, так как, казалось бы, его достаточно простому целевому назначению (загрузить и запустить полезную нагрузку) сопутствуют немало приемов, усложняющих его анализ. Отметим, что мы наблюдали случаи использования этого вредоносного ПО хакерской группировкой TA505.

Для обнаружения средств виртуализации SmokeLoader считывает значения ключей реестра System\CurrentControlSet\Enum\IDE и System\CurrentControlSet\Enum\SCSI и ищет в них подстроки продуктов виртуализации QEMU, VirtualBox, VMware и Xen:

regmon Time=??????6940.916639,PID=2168,PPID=2716,TID=2848,ProcessName="\Device\HarddiskVolume2\***.exe",Method=NtOpenKeyEx,Key="\REGISTRY\MACHINE\System\CurrentControlSet\Enum\IDE"

Кроме этого, вредонос проверяет, запущен ли он под отладкой, обращаясь к API-функции NtQueryInformationProcess со значением параметра ProcessInformationClass, равным ProcessDebugPort:

syscall Time=??????6940.915990,PID=2168,PPID=2716,TID=2848,ProcessName="\Device\HarddiskVolume2\*.exe",Method=NtQueryInformationProcess,Module=nt,vCPU=1,CR3=0x1F861000,Syscall=22,ProcessHandle=0xFFFFFFFFFFFFFFFF,ProcessInformationClass=0x7,ProcessInformation=0x8EBD0,ProcessInformationLength=0x8,ReturnLength=0x8E310



Описание значений параметра ProcessInformationClass, ссылка

В результате регистрируются подозрительные события Read.Process.Info.AntiDebug и Read.Registry.Key.CheckVM:

{"detect.name": "Read.Process.Info.AntiDebug","detect.type": "suspicious","process.id": "2168","process.name": "***.exe","unixtime": "??????6940.915990"}{"detect.name": Read.Registry.Key.CheckVM","detect.type": "suspicious","process.id": "2168","process.name": "*.exe","unixtime": "??????6940.916639"}

Обратим внимание, что SmokeLoader создает копию библиотеки ntdll и импортирует из нее все необходимые для работы Nt-функции, тем самым избегая трассировки вызовов. Этот пример отражает преимущества перехвата вызовов на уровне ядра, несмотря на некоторые ограничения и сложности реализации.

ROKRAT


MD5: bedc4b9f39dcc0907f8645db1acce59e


APT-группу ScarCruft (также известную как APT37, Group123, TEMP.Reaper) ассоциируют с корейским полуостровом, и ее целями являются страны Азии и Среднего Востока. Некоторые исследователи обобщают кластер активности ScarCruft с группировкой Lazarus (HIDDEN COBRA), которая считается причастной к эпидемии WannaCry в 2017 году.

Бэкдор группы ROKRAT, как и SmokeLoader, использует технику антиотладки с помощью API-функции NtQueryInformationProcess с параметром ProcessInformationClass, равным ProcessDebugPort, тем самым создавая подозрительное событие Read.Process.Info.AntiDebug. Кроме этого, он получает значение ключа SystemBiosVersion ветки реестра HARDWARE\DESCRIPTION\System для определения среды виртуализации:

regmon Time=??????8504.062491,PID=3448,PPID=1476,TID=2032,ProcessName="\Device\HarddiskVolume2\***.exe",Method=NtQueryValueKey,Key="\REGISTRY\MACHINE\HARDWARE\DESCRIPTION\SYSTEM",ValueName="SystemBiosVersion"

Еще один прием: проверка списка имен библиотек средств анализа (SbieDll.dll, dbghelp.dll, api_log.dll, dir_watch.dll) и того, загружены ли они в адресное пространство вредоноса:

librarymon Time=??????8504.052513,PID=3448,PPID=1476,TID=2032,ProcessName="\Device\HarddiskVolume2\***.exe",Method=LdrGetDllHandle,ModuleName="SbieDll.dll",ModulePath=""

librarymon Time=??????8504.053067,PID=3448,PPID=1476,TID=2032,ProcessName="\Device\HarddiskVolume2\***.exe",Method=LdrGetDllHandle,ModuleName="dbghelp.dll",ModulePath=""

librarymon Time=??????8504.053635,PID=3448,PPID=1476,TID=2032,ProcessName="\Device\HarddiskVolume2\***.exe",Method=LdrGetDllHandle,ModuleName="api_log.dll",ModulePath=""

librarymon Time=??????8504.054151,PID=3448,PPID=1476,TID=2032,ProcessName="\Device\HarddiskVolume2\***.exe",Method=LdrGetDllHandle,ModuleName="dir_watch.dll",ModulePath=""

Таким образом мы получаем еще два подозрительных срабатывания: Read.Registry.Key.CheckBios и Read.File.Module.CheckVM:

{"detect.name": "Read.Registry.Key.CheckBios","detect.type": "suspicious","process.id": "3448","process.name": "***.exe","unixtime": "??????8504.062491"}{"detect.name": "Read.File.Module.CheckVM","detect.type": "suspicious","process.id": "3448","process.name": "***.exe","unixtime": "??????8504.054151"}

OopsIE


MD5: 5998ef679682878e68d5ac4a1733fac5


Группировка OilRig (APT34, HELIX KITTEN) более пяти лет атакует цели преимущественно в средневосточном регионе. В апреле 2019 года произошла утечка набора инструментов группы, позволившая лучше изучить техники преступников. А в октябре того же года выяснилось, что другая APT-группа Turla взламывала инфраструктуру OilRig для ее дальнейшего использования в своих кампаниях.

Бэкдор группы OopsIE выполняет серию уже знакомых нам WMI-запросов для обнаружения песочницы:

wmimon Time=??????4570.575516,PID=852,PPID=1476,TID=2668,ProcessName="\Device\HarddiskVolume2\***.exe",Method=ExecQuery,Command="Select * from Win32_PointingDevice"

wmimon Time=??????4574.405101,PID=852,PPID=1476,TID=2668,ProcessName="\Device\HarddiskVolume2\***.exe",Method=ExecQuery,Command="Select * from Win32_DiskDrive"

wmimon Time=??????4575.607899,PID=852,PPID=1476,TID=2668,ProcessName="\Device\HarddiskVolume2\***.exe",Method=ExecQuery,Command="Select * from Win32_BaseBoard"

Проверяет библиотеку SbieDll.dll в своем адресном пространстве:

librarymon Time=??????4575.807535,PID=852,PPID=1476,TID=2668,ProcessName="\Device\HarddiskVolume2\***.exe",Method=LdrLoadDll,ModuleName="SbieDll.dll",ModulePath=""

В качестве подозрительных получаем события Create.Query.WMI.CheckVM и Read.File.Module.CheckVM.

Lo2


MD5: 22f41b6238290913fc4d196b8423724d


В ноябре 2019 года мы опубликовали исследование активности группы Donot Team (APT-C-35, SectorE02). Интерес представляет вредоносный загрузчик Lo2, который является промежуточным звеном в загрузке компонентов yty модульного вредоносного фреймворка.

После запуска Lo2 пытается определить установленное антивирусное ПО Avast и eScan путем проверки существования каталогов в результате установки продукта:

filetracer Time=??????7260.502664,PID=2648,PPID=1368,TID=1684,ProcessName="\Device\HarddiskVolume2\***.exe",Method=NtQueryAttributesFile,FileName="\??\C:\Program Files\eScan",FileHandle=0x0,OBJ_CASE_INSENSITIVE=1

filetracer Time=??????7260.503217,PID=2648,PPID=1368,TID=1684,ProcessName="\Device\HarddiskVolume2\***.exe",Method=NtQueryAttributesFile,FileName="\??\C:\Program Files (x86)\eScan",FileHandle=0x0,OBJ_CASE_INSENSITIVE=1

filetracer Time=??????7260.503750,PID=2648,PPID=1368,TID=1684,ProcessName="\Device\HarddiskVolume2\***.exe",Method=NtQueryAttributesFile,FileName="\??\C:\Program Files\Avast Software",FileHandle=0x0,OBJ_CASE_INSENSITIVE=1

filetracer Time=??????7260.504231,PID=2648,PPID=1368,TID=1684,ProcessName="\Device\HarddiskVolume2\***.exe",Method=NtQueryAttributesFile,FileName="\??\C:\Program Files (x86)\Avast Software",FileHandle=0x0,OBJ_CASE_INSENSITIVE=1

В результате получим подозрительное событие Read.File.Name.CheckAntivirus:

{"detect.name": "Read.File.Name.CheckAntivirus","detect.type": "suspicious","process.id": "2648","process.name": "***.exe","unixtime": "??????7260.504231"}

Для обнаружения виртуальной среды используется обращение к порту ввода-вывода 0x5658. Его использует VMware для взаимодействия с виртуальной машиной.



Обнаружение VMware загрузчиком Lo2

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

rule tool_mem_ZZ_antiVM__Risktool__VMwarePort{strings:$asm_code_x86 = {BB 00 00 00 00B9 0A 00 00 00BA 58 56 00 00ED81 FB 68 58 4D 56}condition:any of them}

FinFisher


MD5: a7b990d5f57b244dd17e9a937a41e7f5


В 2018 году мы проводили вебинар, на котором представили исследование особенностей программы-шпиона FinFisher (FinSpy), разработанной компанией Gamma Group. Ниже перечень действий, направленный на обход песочницы:

  • Проверяет ключ DigitalProductId ветки реестра SOFTWARE\Microsoft\Windows NT\CurrentVersion на содержание следующих строк: 55274-649-6478953-23109, A22-00001, 47220.

regmon Time=??????7840.046022,PID=2724,PPID=1324,TID=2648,ProcessName="\Device\HarddiskVolume2\***.exe",Method=NtQueryValueKey,Key="\REGISTRY\MACHINE\SOFTWARE\WOW6432NODE\MICROSOFT\WINDOWS NT\CURRENTVERSION",ValueName="DigitalProductId"

  • Проверяет ключ SystemBiosDate ветки реестра HARDWARE\Description\System на равенство строке 01/02/03.

regmon Time=***7840.051014,PID=2724,PPID=1324,TID=2648,ProcessName="\Device\HarddiskVolume2\***.exe",Method=NtQueryValueKey,Key="\REGISTRY\MACHINE\HARDWARE\DESCRIPTION\SYSTEM",ValueName="SystemBiosDate"

  • Проверяет имена процессов и драйверов через вызов API-функции NtQuerySystemInformation.

syscall Time=??????7827.116200,PID=2724,PPID=1324,TID=2648,ProcessName="\Device\HarddiskVolume2\***.exe",Method=NtQuerySystemInformation,Module=nt,vCPU=1,CR3=0x51C15000,Syscall=51,SystemInformationClass=0x5,SystemInformation=0x4036E0,SystemInformationLength=0x10400,ReturnLength=0x9BE290

  • Вызывает API-функцию NtSetInformationThread с параметром ThreadInformationClass, равным 0x11 (HideFromDebugger).

syscall Time=??????7835.094102,PID=2724,PPID=1324,TID=908,ProcessName="\Device\HarddiskVolume2\***.exe",Method=NtSetInformationThread,Module=nt,vCPU=1,CR3=0x4E1FC000,Syscall=10,ThreadHandle=0xFFFFFFFFFFFFFFFE,ThreadInformationClass=0x11,ThreadInformation=0x0,ThreadInformationLength=0x0

  • Вызывает API-функцию NtQueryInformationProcess с параметром ProcessInformationClass, равным 0x7 (DebugPort).

syscall Time=??????7841.348199,PID=2724,PPID=1324,TID=2648,ProcessName="\Device\HarddiskVolume2\***.exe",Method=NtQueryInformationProcess,Module=nt,vCPU=0,CR3=0x51C15000,Syscall=22,ProcessHandle=0xFFFFFFFFFFFFFFFF,ProcessInformationClass=0x7,ProcessInformation=0x9BEC20,ProcessInformationLength=0x8,ReturnLength=0x9BE360

  • Вызывает API-функцию NtQueryInformationProcess с параметром ProcessInformationClass, равным 0x1e (ProcessDebugObjectHandle).

syscall Time=??????7841.348624,PID=2724,PPID=1324,TID=2648,ProcessName="\Device\HarddiskVolume2\***.exe",Method=NtQueryInformationProcess,Module=nt,vCPU=0,CR3=0x51C15000,Syscall=22,ProcessHandle=0xFFFFFFFFFFFFFFFF,ProcessInformationClass=0x1E,ProcessInformation=0x9BEC20,ProcessInformationLength=0x8,ReturnLength=0x9BE360

В результате мы получаем список подозрительных событий:

  • Read.Registry.Key.DigitalProductId,
  • Read.Registry.Key.CheckBios,
  • Read.Process.Name.Enumeration.
  • Write.Thread.Info.AntiDebug,
  • Read.Process.Info.AntiDebug.



Опасное поведение FinFisher, обнаруженное PT Sandbox

Заключение


В этой статье мы рассмотрели некоторые техники обнаружения окружений, не подходящих для работы вредоносного ПО: приемы антиотладки, детект виртуализации и присутствия антивирусного ПО. В качестве примеров рассмотрели различные вредоносные семейства сложных троянов и инструментов APT-атак. Конечно, многообразие используемых подходов не сравнится с комбайнами по распознаванию анализирующих машин. Тем не менее техники применяются пусть и не самые продвинутые, но дополнительный пункт в графе детектов никогда не помешает.

Автор: Алексей Вишняков, старший специалист группы исследования угроз экспертного центра безопасности Positive Technologies
Подробнее..

Linux Sandbox

30.03.2021 20:09:12 | Автор: admin

Для будущих студентов курса "Administrator Linux. Professional" и всех интересующихся подготовили статью, автором которой является Александр Колесников.


Цель данной статьи показать какие проекты существуют на сегодняшний день для автоматического анализа исполняемых файлов для ОС Linux. Предоставленная информация может быть использована для развертывания тестового стенда для анализа вредоносного кода. Тема может быть актуальна для администраторов и исследователей вредоносного программного обеспечения.

Linux особенности песочниц

Основная проблема песочниц ОС Linux для анализа приложений это ограниченная поддержка процессоров, на которых работает операционная система. Так как использовать для каждой архитектуры свою физическую машину весьма дорого. То как компромисс используют виртуализированные решения типа Hyper-V, VMWare или VBox. Эти решения достаточно хорошо справляются со своей задачей, но они позволяют проводить виртуализацию только на той архитектуре, на которой работает основной хост. Чтобы запустить код для ARM, MIPS и других архитектур, придется обращаться к другим продуктам, которые могут эмулировать необходимые команды процессора. Попробуем собрать как можно больше проектов и посмотреть какие архитектуры процессоров поддерживаются.

Cuckoo Sandbox

Абсолютным лидером среди бесплатных автоматизированных песочниц долгое время была песочница Cuckoo. Эта песочница позволяет настроить любую популярную платформу для запуска приложений. Песочница оснащена веб интерфейсом, который используется для управления песочницей и для получения результатов работы приложений. Архитектура этой песочницы позволяет писать собственные плагины, которые могут изменять характеристики и поведение песочницы в зависимости от запускаемого файла или установленных дополнительных настроек. Общую схему архитектуры можно найти ниже:

Эта песочница очень популярна для анализа вредоносного программного обеспечения для ОС Windows. Разработчики утверждают, что она так же может работать и с ОС Linux. Разница только будет заключаться в том, что вместо виртуальной машины на Windows, должна быть настроена виртуальная машина на Linux. Попробуем найти еще аналоги.

LiSA Sandbox

Opensource песочница для анализа кода под ОС Linux. Найти репозиторий песочницы можно тут. Документация гласит, что эта песочница может анализировать исполняемые файлы с платформ:

  • x86_64

  • i386

  • arm

  • mips

  • aarch64

Подобная эмуляция возможна из-за использования эмулятора Qemu. Также песочница предлагает статический и динамический анализ исполняемого файла. Статический анализ производится за счёт инструмента radare2, а динамический за счет специального расширения ядра, которое собирает события взаимодействия с ОС: файловые операции, сетевые взаимодействия, запуск команд и процессов. В документации описывается, что поддержка такого большого количества процессоров позволяет работать с прошивками устройств. То есть можно просмотреть что выполняет программное обеспечение, которое будет записано на IoT устройства. Весьма полезная фича, учитывая, что вредоносы могут быть записаны в образ прошивки устройств и работать там на постоянной основе.

Из особенностей использование контейнеров Docker. Это качественно ускоряет настройку песочницы. Интерфейс песочницы:

Limon Sandbox

Относительно простой набор скриптов, который используется для анализа приложений. Не имеет возможностей для расширения.(Кроме написания новой логики). Может анализировать приложения теоритически на любом процессоре, так как полностью функционал записан на Python. Найти репозиторий можно здесь. Песочница оперирует следующими инструментами:

  • Yara

  • ssdeep

  • ldd

  • strace

  • Inetsim

  • tcpdump

  • volatility

  • sysdig

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

drakvuf Sandbox

Найти репозиторий можно тут. Единственный набор инструментов, который не направлен специально на исследование вредоносного кода. Этот набор используется для изучения программного обеспечения в целом. Записываемые артефакты выполнения приложений настолько подробны, что можно анализировать и вредоносное программное обеспечение. Документация гласит, что этот набор инструментов может работать практически со всеми популярными ОС. Единственное условие, которое нужно выполнить на устройстве - вложенная виртуализация. Все действия песочницы реализуются за счет перехвата системных функций ОС, которая используется в качестве хостовой для исследуемого приложения. К сожалению, для просмотра данных песочницы необходимо самостоятельно парсить данные из json.

Detux

Репозиторий песочницы можно найти здесь. Песочница для анализа вредоносного кода. Умеет анализировать следующие архитектуры:

  • х86

  • х86_64

  • ARM

  • MIPS

  • MIPSEL

В качестве базового гипервизора используется проект Qemu. Песочница автоматически собирает трафик и идентификаторы компрометации. Вся информация помещается в отчет. В отличии от аналогов не предоставляет красивого интерфейса, а записывает всё в отчет в формате json.

Как видно из списка выше, выбор хоть и небольшой среди песочниц все-таки есть. Однако, набор инструментов практически везде одинаковый:

  • radare2

  • Volatility

  • Yara

  • кастомный перехватчик для системных вызовов.

Поэтому пользователю придется сделать выбор, будет ли он анализировать данные, которые производит песочница или нет.


Узнать больше о курсе "Administrator Linux. Professional".

Также приглашаем всех желающих посетить открытый вебинар на тему Практикум по написанию Ansible роли. В ходе занятия мы научимся писать, тестировать и отлаживать ansible роли. Это важно для тех, кто хочет автоматизировать настройку инфраструктуры, т.к. это один из инструментов, который это позволяет сделать. Присоединяйтесь!

Подробнее..

Технология песочниц для защиты отвредоносногоПО

21.05.2021 12:08:14 | Автор: admin

Одно из обязательных свойств современных целевых атак их способность проникнуть в ИТ-инфраструктуру жертвы незаметно для защитных систем. Передовое вредоносное ПО использует методы маскировки, которые превращают его в невидимку. Помочь в таких случаях может динамический анализ, который выполняется в специализированной среде песочнице. Технологии песочниц занимают центральное место в концепции киберзащиты Trend Micro, получившей название Connected Threat Defence. В этом посте мы поговорим о том, как песочницы используются в решениях Trend Micro.

О песочницах

Технологии песочниц предоставляют самые эффективные механизмы по защите от целевых атак и атак с использованием уязвимостей нулевого дня. Принцип работы песочницы заключается в том, что подозрительное ПО запускается в специально подготовленной для него среде, изолированной от остальной инфраструктуры. Известный и заведомо вредоносный код не попадает в песочницу, поскольку он блокируется на уровне межсетевого экрана или сигнатурного анализа. А вот если у этих средств не набирается достаточного объёма данных для принятия решения, файл направляется в песочницу.

Использование изолированных виртуальных машин для выполнения проверяемых объектов и эмуляция взаимодействия с пользователем позволяет подробно отследить характер выполняемых действий потенциально небезопасного ПО и решить, можно ли возвращать объект пользователю для запуска на рабочей станции.

Интеграция анализа в песочнице с сигнатурным анализом и другими способами проверки в стандартных продуктах безопасности позволяет повысить эффективность выявления потенциальных угроз и улучшить от целевых атак.

Локальные песочницы

Локальные песочницы входят в состав многих антивирусов. Они реализуют изоляцию на базе частичной виртуализации файловой системы и реестра. Вместо того, чтобы создавать для каждого проверяемого процесса отдельную виртуальную машину, локальная песочница создаёт для них дубликаты объектов файловой системы и реестра. Получается безопасная среда-песочница на компьютере пользователя. Если процесс изменит файлы или запишет что-то в реестр, изменятся лишь копии внутри песочницы, а реальные объекты не будут затронуты. Изоляция от основной системы обеспечивается с помощью контроля прав.

Достоинством такого подхода является относительная простота реализации и невысокие затраты системных ресурсов. А в качестве недостатков можно отметить необходимость постоянной очистки контейнеров виртуализации для запуска каждого проверяемого файла. Помимо этого, встречаются обходы такой реализации песочницы, которые позволяют вредоносному коду сбежать в основную систему и разгуляться по полной.

Более защищённый вариант локальной песочницы предполагает создание отдельной виртуальной машины, копирующей рабочее окружение. Но затраты ресурсов на такой вариант оказываются неприемлемо высокими, поэтому вместо него используются сетевые песочницы, которые располагаются на выделенном сервере внутри сети компании (on-premise) или в облаке производителя антивирусного решения.

Сетевые песочницы облачные и on-premise

Сетевые песочницы имеют меньше ограничений, чем локальные они не снижают производительность компьютера пользователя и позволяют проверять потенциальные угрозы на различных операционных системах. Даже успешный побег из такой песочницы не станет проблемой, поскольку она полностью изолирована от рабочего компьютера пользователя. При необходимости такие песочницы могут эмулировать подключение к интернету и работу со съёмными носителями.

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

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

В случае с облачными песочницам добиться такого соответствия сложнее, в то время как загрузка образа рабочей станции на on-premise сервер не составляет сложности. Главное, чтобы выбранный вариант сервера-песочницы поддерживал работу с кастомными образами.

Другими словами, чтобы максимально приблизить конфигурацию виртуальных машин внутри песочницы к продакшн-среде, нужно иметь возможность тонко настраивать их содержимое: изменять настройки ОС, редактировать перечень установленных языков, драйверов периферийных устройств, устанавливать дополнительный, либо нестандартный софт и даже управлять содержимым рабочего стола, поскольку всё это и многое другое может расцениваться киберзлоумышленниками как условие для запуска либо незапуска вредоносных инструкций.

Использование же стандартизированных образов для разворачивания виртуальных машин внутри песочниц легко отслеживается и позволяет применить механизмы обхода детектирования в песочницах.

Песочницы Trend Micro поддерживают возможность загрузки кастомизированных образов ВМ, что на практике неоднократно показывало более высокую эффективность при обнаружении вредоносного ПО в сравнении с песочницами производителей, использующих стандартизированные образы ВМ для анализа.

Исходя из соображений необходимости обеспечения максимальной эффективности на сегодняшний день предпочтение следует отдать on-premise-варианту. Известные нам реализации облачных песочниц на сегодняшний день ни у одного из производителей не поддерживают в качестве среды тестирования кастомизированные образы виртуальных машин, точно отражающих инфраструктуру конкретного заказчика.

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

Критерии для выбора поставщика песочницы

Поставщика следует выбирать из соображений его осведомленности о самых новых тактиках, которыми пользуются злоумышленники для обхода защитных решений, применяемых в компании. Здесь важную роль играют несколько факторов:

  1. специализация компании-производителя: являются ли продукты обеспечения ИБ основными в профиле, либо же это сопутствующие или вспомогательные разработки;

  2. история компании-производителя: как часто меняются собственники бизнеса, а вместе с ними приоритеты и вектора развития продуктовой линейки;

  3. присутствие на рынке: чем оно шире, тем больше информационная база вредоносных объектов и моделей вредоносного поведения, на которых строятся и оттачиваются модели машинного обучения, поведенческого анализа и других средств выявления и противодействия угрозам;

  4. оперативный доступ к самой передовой информации о выявленных уязвимостях в ОС и ПО: чем быстрее производитель средств защиты получает такую информацию из собственных исследований или от энтузиастов-исследователей и частных специалистов в области киберзащиты, тем быстрее будут разработаны и внедрены контрмеры, блокирующие возможность использования новейших уязвимостей, даже если патч от официального производителя ОС или ПО ещё не выпущен.

Видение Trend Micro

Примером конкретной реализации описанного подхода к песочницам является продукт Trend Micro Deep Discovery Analyzer. Он представляет собой масштабируемый аппаратный сервер песочниц и позволяет загружать в виртуальные машины различные образы рабочей среды компании. Он полностью интегрируется с нашими решениями для защиты почты и веба, но позволяет принимать образцы на анализ из продуктов других производителей с помощью Web Services API.

Он умеет анализировать исполняемые файлы, веб-контент и потенциально вредоносные офисные документы, выявляет вредоносные URL и позволяет отправлять образцы на анализ через API или вручную. Deep Discovery Analyzer получает актуальную информацию из нашей глобальной системы выявления угроз, поэтому всегда в курсе последних разработок киберпреступников.

Количество данных в мире растет из года в год, поэтому основным вектором развития технологий песочниц является повышение производительности, расширение перечня типов анализируемых объектов и добавление новых моделей обнаружения потенциальных угроз.

Что касается будущего, наиболее очевидным сценарием мы считаем расширение перечня поддерживаемых операционных систем в качестве сред анализа объектов, а также расширение функциональности, которая позволит встраивать песочницы в существующие экосистемы заказчиков с минимальными изменениями конфигураций устоявшейся ИТ-инфраструктуры.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru