СОДЕРЖАНИЕ
Бизнес-риски и атаки хакеров
У каждой компании существует определенный перечень бизнес-рисков, которые могут негативно повлиять на ее работу и положение на рынке. В зависимости от рода деятельности это может быть, к примеру, приостановка производственных процессов, сбой в работе или повреждение оборудования, невыполнение контрактных обязательств, крупные финансовые потери, утечка конфиденциальной информации. Многие из этих рисков могут быть прямым или косвенным следствием кибератаки.
Руководство организации, как правило, точно понимает, какие бизнес-риски для компании неприемлемы. Для достижения реальной эффективности кибербезопасность должна строиться с учетом этих рисков. Важно понимать, на какие бизнес-системы направить внимание в первую очередь. Для этого нужно знать, как будет развиваться атака, которая может привести к реализации того или иного риска: тогда можно выделить наиболее значимые для бизнеса компоненты инфраструктуры, определить необходимые средства защиты и подходы к выявлению атак.
В этом отчете мы рассмотрим один из важнейших рисков для любой организации, независимо от ее сферы деятельности, — это кража денег. По нашим данным, 42% кибератак на компании совершаются с целью получения прямой финансовой выгоды. Сценариев подобных атак существует множество, мы разберем два распространенных варианта: кража денег вручную с помощью программ для удаленного управления и хищение с использованием специального ВПО — банковского трояна. Покажем, как выявить атаку на каждом из ее этапов и свести риск к минимуму.
Сценарий атаки
Составим один из вероятных сценариев атаки. Каждый этап будет состоять из тех техник, которые, по нашим оценкам, с большой долей вероятности могут использоваться злоумышленниками. Некоторые техники успешно применяются в ходе тестов на проникновение и не привлекают внимания специалистов по безопасности. На отдельных этапах, например на этапе проникновения в инфраструктуру, приведем несколько вариантов развития атаки, поскольку они представляются нам равноценными и часто используются киберпреступниками.
В качестве атакующего может выступать как внешний нарушитель, так и сотрудник компании. Во втором случае злоумышленник уже находится в инфраструктуре, поэтому этап проникновения будет отсутствовать, а начальная точка будет зависеть от имеющихся привилегий. Если сотрудник компании не знаком с точным устройством сети и не работает с финансовыми системами, то он начнет атаку с разведки, как и внешний нарушитель.
Проникновение в сеть компании
Рассмотрим три возможных техники проникновения в инфраструктуру компании, которые часто используются в атаках.
Чаще всего злоумышленники проникают в локальную сеть при помощи рассылки фишинговых писем с вредоносными вложениями. По нашим данным, именно так начинают свою атаку 9 из 10 APT-группировок.
Другой распространенный способ взлома — это эксплуатация уязвимости в веб-приложении на периметре компании. Результаты проектов по тестированию на проникновение, которые проводят наши эксперты, показывают, что в 86% компаний существует хотя бы один способ проникнуть во внутреннюю сеть через уязвимое веб-приложение.
Третий способ — это подбор учетных данных к доступным сервисам на периметре. Если злоумышленник попробует подбирать пароли к одной учетной записи, то такая атака быстро будет замечена, а учетная запись — заблокирована. Поэтому преступники скорее прибегнут к методу Password Spraying — это атака, в ходе которой подбирается учетная запись к одному распространенному паролю.
Закрепление
Когда злоумышленник получил возможность выполнять команды в системе, ему нужно закрепиться, чтобы иметь постоянный канал доступа к инфраструктуре. Мы рассмотрим одну из популярных техник, которая заключается в обеспечении автоматического запуска полезной нагрузки. Тогда при перезагрузке компьютера, вредоносный файл запустится вновь, при этом файл можно замаскировать под легитимный и его присутствие не вызовет подозрений. Эта техника очень распространена среди APT-группировок, ее используют 82% групп.
Сбор данных об инфраструктуре
Злоумышленнику нужно понять, где он оказался, какие узлы инфраструктуры представляют интерес и как до них добраться. В нашем сценарии, когда целью является кража денег, это будут компьютеры, на которых есть доступ к финансовым системам. Поэтому преступник проводит разведку: смотрит, какие узлы доступны, получает адрес контроллера домена и список администраторов; выясняет, какие привилегии у него есть на текущий момент, в каких группах состоит пользователь, от имени которого он выполняет команды. Помимо этого, злоумышленнику необходимо знать, с какой системой он работает, например получить версию ОС и список запущенных процессов.
Развитие атаки во внутренней сети
Для подключения к разным узлам инфраструктуры (серверам и рабочим станциям), нужно знать пароли пользователей или хеши паролей, либо иметь соответствующий билет Kerberos. В современных версиях Windows предусмотрены механизмы, которые при корректной настройке препятствуют получению хешей паролей из памяти ОС, однако существуют и другие способы, среди них атака Kerberoasting. С ее помощью злоумышленник может получить пароли сервисных учетных записей, которые зачастую бывают привилегированными. Любой пользователь домена может запросить Kerberos-билет для доступа к сервису, и такой запрос будет считаться легитимным. Для шифрования билета используется хеш пароля сервисной учетной записи, и злоумышленник может попробовать расшифровать его в режиме офлайн, подбирая пароль. Эта техника широко применяется и в тестировании на проникновение: ее успешно используют в 61% проектов.
Зная пароль или хеш пароля пользователя, злоумышленник может подключиться к компьютеру с использованием общих административных ресурсов, таких как C$, ADMIN$, IPC$. Эта техника (Remote Services: SMB/Windows Admin Shares) используется как для передачи исполняемого файла, так и для запуска службы.
Получение контроля над инфраструктурой
Как правило, для проведения мошеннической операции не нужен полный контроль над инфраструктурой. Однако максимальные привилегии позволяют беспрепятственно перемещаться между компьютерами, поэтому вполне вероятно, что злоумышленник попробует получить учетную запись KRBTGT. Привилегии этой учетной записи позволяют создавать Kerberos-билеты для доступа к любым ресурсам с максимальными привилегиями. Такие известные методы атак, как создание дампа памяти процесса lsass.exe или копирование файла ntds.dit, достаточно заметны для средств защиты, поэтому рассмотрим другой метод, который не так просто обнаружить, — это репликация учетных записей на поддельный контроллер домена (атака DCSync).
Доступ к финансовым системам
Получив на предыдущем шаге привилегии учетной записи KRBTGT, злоумышленник может сформировать билет Kerberos для доступа к тем компьютерам, на которых ведется работа с финансовыми системами, например к компьютеру сотрудника бухгалтерии. Такая атака называется Golden Ticket.
Кража денег
Существуют специальные банковские трояны, способные автоматически подменять платежные реквизиты. В последние несколько лет в атаках широко используется троян RTM. Кроме того, злоумышленник может провести мошенническую операцию и вручную, проследив за рабочим процессом и действиями сотрудников компании. С этой целью на компьютеры устанавливается ВПО для удаленного управления. В даркнете продаются модифицированные версии популярных легитимных продуктов, например TeamViewer или VNC, которые работают незаметно для пользователя. Такие программы позволяют шпионить за пользователями, делать скриншоты экранов, записывать видео, перехватывать ввод с клавиатуры. Собрав достаточное количество информации, злоумышленник может подключиться к компьютеру и самостоятельно провести платеж либо подменить платежные реквизиты.
Как выявить атаку
Выявить атаку можно на разных ее этапах — от проникновения в сеть и до того момента, когда хакеры приступят к выводу денег. Разберем, как выявить перечисленные в предыдущем разделе техники и где искать признаки присутствия злоумышленников.
На этапе проникновения
Фишинговая рассылка
В большинстве случаев в фишинговой рассылке используется документ .doc, .docx, .xls, .xlsx с одним из видов полезной нагрузки:
- макрос VBA или Excel 4.0;
- эксплойт для уязвимости в компоненте Microsoft Office, например CVE-2017-0199, CVE-2017-11882, CVE-2018-0802.
Перед запуском документа следует сперва провести статический анализ, который уже может показать, что файл является вредоносным. Подходов к детектированию достаточно много: по точным хеш-суммам файла (MD5, SHA1, SHA256), по более гибким хеш-суммам, таким как SSDEEP. В самом простом случае можно найти в файле строки в формате ASCII и Unicode. Но наиболее достоверным будет анализ участков кода, в ходе которого можно выделить характерную последовательность операций, особенности шифрования и другие закономерности.
Техники MITRE ATT&CK
Phishing: Spearphishing Attachment (T1566.001)
Где искать признаки атаки
Вложения, получаемые по электронной почте
Сетевой трафик
Журнал событий безопасности Windows
Общий подход к детектированию
Проводить статический анализ файлов перед запуском.
Использовать специальные решения для анализа поведения файлов в виртуальной среде (песочнице).
Однако статический анализ позволяет выявить подозрительные файлы далеко не всегда. Более надежным способом является запуск файла в виртуальной среде — песочнице, где анализируется его поведение.
В результате запуска вредоносного файла, как правило, происходит создание подпроцесса в контексте офисного приложения. Вызовы для создания нового процесса в пользовательском пространстве, к примеру CreateProcessA или CreateProcessW, перехватываются на уровне ядра за счет вызовов NtCreateUserProcess или NtCreateProcessEx. Но запуск процесса с вредоносной нагрузкой может пройти и иными способами:
-
Создание задачи в планировщике задач. В общем случае факт создания задачи можно обнаружить за счет нескольких характерных действий.
Во-первых, это создание дополнительных ключей в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree со свойствами задачи. Во-вторых, это новые файлы задач в каталогах C:\Windows\Tasks и C:\Windows\System32\Tasks. В-третьих, появление записей о создании запланированной задачи в журналах событий (события с идентификатором 4698). Более того, можно не только создавать задачу, но и изменять уже существующую, в этом случае события в журнале будут иметь идентификатор 4702.
Есть и другой прием: отслеживать обращение к COM-интерфейсу 0F87369F-A4E5-4CFC-BD3E-73E6154572DD и взаимодействия с ним, поскольку именно так поступает, например, стандартная утилита Windows для создания задач в консоли schtasks.exe, к использованию которой часто прибегают злоумышленники.
- Создание службы. Факт создания новой службы можно обнаружить по появлению дополнительных ключей в ветках реестра HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services и HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\ROOT\LEGACY_*. В журналах событий Windows создание службы будет соответствовать записям с идентификатором 4697 или 7045. Кроме этого, можно отследить RPC-вызов к интерфейсу 367ABB81-9844-35F1-AD32-98F038001003 RPC сервера \PIPE\svcctl.
- Автозапуск через каталог автозагрузки или реестр. В первом случае это запись файла в каталоги %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup или %ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup. Во втором — ключи реестра HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run, HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce, HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon и другие (выявлении этой техники детально рассматривается в разделе «Закрепление»).
Новые файлы в системе и память созданных процессов также нужно сканировать на наличие вредоносного кода.
Перед запуском полезной нагрузки могут производиться промежуточные действия разного характера, которые должны привлечь внимание, например:
- Сбор сведений о системе путем чтения значений ключей реестра, например ключа HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor для получения информации о процессоре.
- Запуск процесса PowerShell.
- Повышение привилегий с помощью различных техник. К примеру, DLL Search Order Hijacking, которая может быть реализована следующим образом. Вредоносное ПО создает системный каталог Windows, но с пробелом в имени. В этот каталог копируется легитимный исполняемый файл с опцией autoElevate в манифесте и поддельная библиотека DLL. При запуске файла происходит проверка, действительно ли можно позволить запустить его без проверки UAC, но пробел в имени каталога при этом не учитывается. В результате будет подгружена библиотека злоумышленника, и вредоносный код выполнится с максимальными привилегиями.
Сам процесс загрузки дополнительных вредоносных модулей может быть специфичным, поэтому изучение сетевого трафика, генерируемого при запуске анализируемого файла, также дает возможность выявить некоторые образцы ВПО.
Атака на веб-приложение
При попытке взломать сеть компании злоумышленники могут эксплуатировать уязвимости в публично доступных веб-приложениях. Такие атаки можно выявить как в сетевом трафике, так и по журналам событий.
Детектирование по журналам событий
Необходимо отслеживать подозрительные запуски процессов по событиям журнала событий безопасности Windows с ID 4688 или журнала Sysmon с ID 1. Например, подозрительным будет запуск командной строки cmd.exe, родительским процессом которого является w3wp.exe (сервис OWA). Также следует контролировать создание новых процессов от имени пользователя, который запустил процесс, отвечающий за функционирование атакуемого сервиса.
Об успешной эксплуатации уязвимости и загрузке веб-шелла могут свидетельствовать события создания файлов с определенными расширениями, например .asmx, .jsp, .php, .aspx в файловых директориях работающих сервисов.
Техники MITRE ATT&CK
Exploit Public-Facing Application (T1190)
Где искать признаки атаки
Журнал событий безопасности Windows
Журнал агента Sysmon
Сетевой трафик
Общий подход к детектированию
Отслеживать известны техник эксплуатации уязвимостей.
Отслеживать подозрительную активность для обнаружения неизвестных эксплойтов.
Детектирование по сетевому трафику
Анализ сетевого трафика позволяет выявлять известные техники эксплуатации уязвимостей (например, Path Traversal) или признаки использования конкретных эксплойтов.
Для обнаружения эксплуатации неизвестных уязвимостей нужно отслеживать подозрительную активность, к примеру наличие в трафике строк запуска консольных утилит или паттернов консольного вывода данных утилит. Такой трафик может свидетельствовать об использовании веб-интерпретатора командной строки, что часто является следующим шагом после успешной эксплуатации уязвимости. Другой аномалией могут являться множественные запросы, содержащие некорректные данные, исходящие с ограниченного количества внешних адресов.
Password Spraying для доступных сервисов
Детектирование по журналам событий
Атаку Password Spraying можно выявить путем мониторинга журналов событий. Для этого необходимо отслеживать следующие события в журнале событий безопасности:
- 4625 «Отказ входа в систему» с узлов, на которых установлены сервисы, доступные на сетевом периметре, например, OWA;
- 4771 «Не удалось выполнить предварительную проверку подлинности Kerberos» с кодом ошибки 0х6 «Имя пользователя не найдено» и 0х18 «Недопустимые данные предварительной аутентификации»;
- 4776 «Компьютер попытался проверить учетные данные учетной записи» в случае NTLM-аутентификации, с кодами ошибок C0000064 «Имя пользователя не существует» и C000006A «Верное имя пользователя, но неверный пароль».
Техники MITRE ATT&CK
Valid Accounts (T1078)
External Remote Services (T1133)
Где искать признаки атаки
Журнал событий безопасности Windows
Сетевой трафик
Общий подход к детектированию
Выявлять частые попытки аутентификации под разными учетными записями, но с одним и тем же паролем.
Для событий 4625 существует возможность обнаружить адрес, с которого осуществляется атака Password Spraying, поэтому логика обнаружения строится на поиске множественных срабатываний с одного и того же IP-адреса, но для разных пользователей. События 4776 и 4771 появляются на контроллере домена и в качестве исходного адреса будут иметь адреса узлов, на которых расположены сервисы. В таком случае необходимо отслеживать множественные неуспешные попытки аутентификации с разными учетными записями за определенный промежуток времени, например 30 секунд.
Детектирование по сетевому трафику
Для выявления атаки в трафике нужно четко различать источники запросов на аутентификацию и имена используемых учетных записей. Обычно такая атака порождает большое количество неуспешных попыток аутентификации. Чтобы однозначно констатировать, что множественные неуспешные попытки аутентификации являются атакой Password Spraying, нужно либо видеть в трафике пароль, либо каким-то другим образом понять, что используется фиксированный пароль в разных запросах. С высокой точностью можно выявить атаку, если используются варианты аутентификации, при которых пароль передается в открытом виде, например:
- Basic-аутентификация, когда логин и пароль передаются в заголовках HTTP-запроса;
- аутентификация LDAP cleartext, когда логин и пароль передаются по протоколу LDAP.
Но чаще всего пароли в открытом виде не передаются, поэтому можно обратить внимание на следующие признаки проведения Password Spraying:
- очень частые (от одного до десяти запросов в секунду) неудачные попытки аутентификации с одного адреса, но с разными именами учетных записей;
- более редкие попытки аутентификации (например один запрос через каждые 5—10 секунд), но с фиксированным интервалом между запросами и разными именами учетных записей.
О переборе имен пользователей может свидетельствовать присутствие в трафике сессий с ошибкой KDC_ERR_C_PRINCIPAL_UNKNOWN с разными учетными записями.
В трафике будут также отражены попытки входа с подобранными учетными записями и ошибки Kerberos. Сессии без ошибок с успешными ответами AS_REP и выданными билетами показывают, к каким учетным записям были подобраны пароли.
Закрепление
Один из распространенных способов закрепления на узле — добавление вредоносного исполняемого файла в автозагрузку. Разберем, как выявить его по журналам событий и в некоторых случаях — в сетевом трафике.
Техники MITRE ATT&CK
Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder (T1078)
Где искать признаки атаки
Журнал агента Sysmon
Сетевой трафик
Общий подход к детектированию
Контроль изменения определенных ключей реестра и создания файлов в директориях.
Детектирование по журналам событий
В журналах Sysmon нужно отслеживать добавление или изменение ключей реестра и их значений по событиям 12 «Добавление ключей» и 13 «Добавление значений» для определенных веток реестра, связанных с функцией автозагрузки.
Ветки реестра
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserShell Folders
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellFolders
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellFolders
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\UserShell Folders
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
- HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows
Дополнительно рекомендуется отслеживать события Sysmon с идентификатором 11 «Создание файла» в директории C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp и проверять файлы с расширением .lnk, .vbs, .js, .cmd, .com, .bat, или .exe.
Детектирование по сетевому трафику
Рассматриваемая техника не отражается в сетевом трафике, если действия выполняются локально на узле. Однако, можно представить себе ситуацию, в которой атакующая сторона производит манипуляции удаленно. Например, используя доступ к удаленному реестру по протоколу WINREG (Windows Remote Registry Protocol), атакующий добавляет значение в ключ реестра HKCU\Software\Microsoft\Windows\CurrentVersion\Run. Также при наличии соответствующих прав доступа, атакующий может скопировать файл по протоколу SMB. Например, при копировании исполняемого файла или BAT-файла с инструкциями командного интерпретатора в папку C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp операционная система автоматически запустит такой файл при входе любого пользователя в систему.
Сбор данных об инфраструктуре
В ходе разведки злоумышленнику придется использовать множество техник из тактики Discovery. Рассмотрим методы обнаружения двух техник, которые будут задействованы в обязательном порядке, – это получение информации о системе (System Information Discovery) и о группах пользователей (Permission Groups Discovery).
Техники MITRE ATT&CK
Permission Groups Discovery (T1069)
System Information Discovery (T1082)
Где искать признаки атаки
Журнал событий безопасности Windows
Журнал агента Sysmon
Сетевой трафик
Общий подход к детектированию
Существует несколько механизмов, которые помогают получить информацию о группах. К ним относятся LDAP и SAMR. Зачастую операционные системы позволяют их использовать из командной строки (например, net <group|localgroup> /domain или rpcclient). С точки зрения обнаружения по событиям необходимо находить запуск подобных процессов, а с точки зрения трафика находить такие запросы в сети.
Такой же подход применяется и для обнаружения действий, направленных на получение информации о системе: необходимо отслеживать запуск процессов, команд Powerhell, запросов WMI, отвечающих за предоставление информации, а также обращения к определенным веткам реестра, в которых прописаны данные об операционной системе.
Поиск информации о системе
Детектирование по журналам событий
Применение техники System Information Discovery можно обнаружить по журналам событий безопасности и PowerShell в Windows, а также по журналу Sysmon. Выявлять нужно следующие события:
- запуск процессов:
- net.exe или net1.exe с командой config,
- wmic.exe с командами os, qfe,
- win32_quickfixengineering,
- win32_operatingsystem;
- systeminfo.exe,
- ipconfig.exe,
- netstat.exe,
- arp.exe,
- reg.exe;
- чтение раздела реестра \Software\Microsoft\ Windows\CurrentVersion;
- запуск команд PowerShell, в том числе для WMI-запросов, позволяющих получить информацию о системе.
Изучение прав доступа групп пользователей
Детектирование по журналам событий
Признаком использования техники Permission Groups Discovery на локальном узле является запуск процесса net.exe или net1.exe с командами localgroup, group /domain или group /dom. В журнале событий безопасности события запуска процесса имеют идентификатор 4688, а в Sysmon — идентификатор 1.
Детектирование по сетевому трафику
Выявить технику в сетевом трафике возможно путем отслеживания соответствующих запросов. Для получения информации о группах могут использоваться сетевые протоколы LDAP, SAMR. В случае LDAP для обнаружения интересны прежде всего запросы searchRequest и их поле filter. Для перечисления всех групп может использоваться запрос:
Для перечисления участников конкретной группы зачастую используется ключевое слово memberof. Например, ниже показано перечисление членов группы администраторов домена.
В случае протокола SAMR могут использоваться операции QueryDisplayInfo, QueryDisplayInfo2, QueryDisplayInfo3, QueryGroupInfo, QueryGroupMember. Они позволяют перечислить группы, получить о них информацию и перечислить участников.
Развитие атаки во внутренней сети
Техники MITRE ATT&CK
Steal or Forge Kerberos Tickets: Kerberoasting (T1558.003)
Где искать признаки атаки
Журнал событий безопасности Windows контроллера домена
Сетевой трафик
Общий подход к детектированию
Так как этапы данной атака похожи на легитимное поведение пользователей в доменной инфраструктуре, то выявлять подобные атаки можно через профилирования событий запросов сервисных билетов: к каким учетным данным был выполнен запрос, а также с какого IP-адреса.
Следует анализировать алгоритм шифрования в запросах TGS-билетов. Использование алгоритма RC4 один из признаков проведения атаки Kerberoasting.
Атака Kerberoasting
Детектирование по журналам событий
В журналах событий нужно выявлять аномалии в запросах TGS-билетов (событие 4769 «Запрошен билет службы Kerberos»): анализировать все учетные записи и IP-адреса, с которых был выполнен запрос к сервису, и проверять, запрашивает ли обычно учетная запись с этого же IP-адреса TGS-билет к рассматриваемому сервису.
Также нужно проверять алгоритм шифрования в запросах: использование алгоритма RC4 — это один из признаков проведения атаки Kerberoasting.
Детектирование по сетевому трафику
В сетевом трафике нужно фиксировать запросы на перечисление сервисов в Active Directory, которые могут стать целями для атаки. Данный этап необходим злоумышленникам, чтобы выбрать сервис для атаки, и предшествует запросу TGS-билета и подбору пароля офлайн. Перечислить сервисы можно, например, с помощью LDAP и ключевого слова servicePrincipalName в поле фильтра.
В данном случае запрашиваются включенные учетные записи пользователей.
Также можно использовать описанный выше подход к профилированию запросов TGS-билетов и выявлять запросы, зашифрованные алгоритмом RC4.
Административные общие ресурсы SMB/Windows
Общие административные ресурсы, такие как C$, ADMIN$, IPC$ могут использоваться злоумышленником для удаленной работы с системой. Эта техника применяется как для передачи файла, так и запуска службы на удаленном компьютере.
Техники MITRE ATT&CK
Remote Services: SMB/Windows Admin Shares (T1021.002)
Где искать признаки атаки
Журнал событий безопасности Windows
Сетевой трафик
Общий подход к детектированию
В журналах событий и сетевом трафике следует анализировать обращения к общим административным ресурсам. В журналах событий также необходимо анализировать факты запуска процессов и регистрации сервисов.
Детектирование по журналам событий
Для обнаружения действий злоумышленников необходимо анализировать события, которые указывают на факты доступа к общим административным ресурсам и запуска процессов:
- 4624 «Успешный вход в систему»;
- 5140 и 5145 – события доступа к объектам общей сетевой папки;
- 7045 «Установка новой службы»;
- 4688 «Создан процесс», где имя родительского процесса — services.exe. При эксплуатации smbexec создается сервис не в системной директории, а дальнейшие команды исполняются через services.exe.
Детектирование по сетевому трафику
Для обнаружения работы с файлами необходимо отслеживать сетевые обращения к общим административным ресурсам. Мониторинг обращений по протоколу SVCCTL позволяет обнаружить работу с сервисами. Например, запрос CreateServiceW используется для создания сервисов, а StartServiceW — для их запуска, сами команды при этом передаются в поле Binary Path Name.
Получение контроля над инфраструктурой
Получив пароль или хеш пароля администратора домена, злоумышленник может выполнить репликацию учетной записи KRBTGT с контроллера домена, например с использованием утилиты secretsdump. Привилегии этой учетной записи позволят ему создавать билеты Kerberos для доступа к любому компьютеру домена. Рассмотрим, как обнаружить попытки репликации учетных данных.
Техники MITRE ATT&CK
OS Credential Dumping: DCSync (T1003.006)
Где искать признаки атаки
Журнал событий безопасности Windows контроллера домена
Сетевой трафик
Общий подход к детектированию
В журналах событий необходимо отслеживать получение привилегий, необходимых для репликации учетных данных с контроллера домена.
В сетевом трафике следует выявлять запросы на репликацию, которые исходят не от контроллера домена.
Детектирование по журналам событий
Для репликации учетных с контроллера домена необходимы привилегии DS-Replication-Get-Changes, DS-Replication-Get-Changes-All, DS-Replication-Get-Changes-In-Filtered-Set.
В журнале событий безопасности на контроллерах домена в событиях с идентификатором 4662 «Операция выполнена для объекта» необходимо отслеживать эти привилегии, а для обнаружения источника атаки нужно сопоставлять данные события с событием 4624 «Успешный вход в систему», у которых будет одинаковый идентификатор входа.
Детектирование по сетевому трафику
При указании ключа -just-dc-user утилита secretsdump использует технику DCSync для получения доменных учетных данных. Атака заключается в том, что подконтрольный атакующему узел представляется контроллером домена и запрашивает репликацию учетных данных конкретных пользователей.
Контроллеры домена для репликации используют протокол Directory Replication Service (DRS) Remote Protocol, а точнее вызовы RPC-интерфейса, который реализует данный протокол — DRSUAPI RPC interface. У этого интерфейса есть метод DRSGetNCChanges, который и вызывает репликацию. Если такие вызовы исходят от компьютера, который не является контроллером домена, то это явный признак атаки DCSync.
Доступ к финансовым системам
Следующий шаг атаки после получения учетной записи KRBTGT — это создание билета Kerberos для подключения к любым ресурсам домена с максимальными привилегиями или атака Kerberos Golden Ticket.
Техники MITRE ATT&CK
Use Alternate Authentication Material: Pass the Ticket (T1550.003)
Где искать признаки атаки
Журнал событий безопасности Windows контроллера домена
Сетевой трафик
Общий подход к детектированию
Активность в ходе атаки Golden Ticket отличается от легитимного сценария использования билетов Kerberos в Active Directory: отсутствует процесс получения билета TGT. Общий подход к выявлению атаки состоит в обнаружении использования билетов, которые не были выданы контроллером домена.
Детектирование по журналам событий
Необходимо искать аномалии в поле DOMAIN ACCOUNT в событиях с ID:
- 4624 «Успешный вход в систему»;
- 4634 «Осуществлен выход учетной записи из системы»;
- 4672 «Специальные привилегии, назначенные новому входу».
Некоторые утилиты для проведения атаки Golden Ticket могут некорректно вписывать значения в данное поле: оно может быть пустым или отличаться от имени домена. Нужно смотреть и на тип шифрования билета: если используется RC4, то это может являться признаком атаки. Кроме того, при атаке Golden Ticket отсутствуют события запроса билета TGT (Event ID 4769) с компьютера пользователя.
Детектирование по сетевому трафику
В легитимном сценарии работы протокола Kerberos пользователь должен получить билет TGT при первичной аутентификации. Для этого он отправляет запрос AS-REQ контроллеру домена, который в теле ответа AS-REP возвращает ему TGT. Затем пользователь может запрашивать доступ к доменным сервисам. Для аутентификации на сервисе необходим билет TGS. Чтобы его получить, пользователь отправляет запрос TGS-REQ контроллеру домена, в который вкладывает свой билет TGT. Сервер отправляет TGS-REP ответ, содержащий запрошенный TGS билет.
Так как атака Golden Ticket предполагает создание билета TGT вне контроллера домена, в трафике будут отсутствовать шаги AS-REQ/AS-REP, то есть будет использоваться билет, который не был выдан. Поэтому цель анализа трафика состоит в обнаружении использования билетов, которые не были выданы контроллером домена.
Кража денег
Использование ПО для удаленного управления
Злоумышленники могут использовать разные инструменты удаленного доступа к рабочему столу, в том числе технологию VNC: TightVNC, UltraVNC, RealVNC, VNC Connect. В даркнете продаются модифицированные версии этих программ, которые работают незаметно для пользователя. Принцип действия всех продуктов с применением VNC очень схож, поэтому рассмотрим особенности поведения на примере TightVNC, так как его исходный код .
Для того чтобы организовать удаленное управление по технологии VNC, требуется обеспечить следующие функции:
- перехват изменений изображения на целевом компьютере;
- внедрение ввода клавиатуры на целевой компьютер;
- внедрение нажатий кнопок мыши на целевой компьютер;
- передача содержимого буфера обмена;
- передача кадров изображений и вводимых команд по сети.
Рассмотрим, как можно обнаружить вредоносную активность по каждому из пунктов.
Функция удаленного управления |
Подход к обнаружению |
Перехват изменений изображения на целевом компьютере |
Отслеживание установки перехватов (SetWindowsHookEx) и частого получения скриншотов (CreateCompatibleDC, CreateDIBSection, BitBlt, GetDIBits) |
Внедрение ввода клавиатуры на целевой компьютер |
Отслеживание установки перехватов (SetWindowsHookEx) на нажатие клавиш, проверки и назначения состояния нажатых клавиш (GetKeyboardState, SetKeyboardState, GetAsyncKeyState) |
Внедрение нажатий кнопок мыши на целевой компьютер |
Отслеживание получения (GetCursorPos) и присваивания (SetCursorPos) позиции курсора, а также перехвата и обработки нажатий кнопок мыши (SetWindowsHookEx) |
Передача содержимого буфера обмена |
Отслеживание чтения (GetClipboardData) и записи (SetClipboardData) в буфер обмена, факта изменения состояния буфера обмена средствами SetClipboardViewer |
Передача кадров изображений и вводимых команд по сети |
Для передачи данных оператору используется протокол RFB. Кроме того, что протокол может характеризоваться использованием заданных сетевых интерфейсов (5900-5906), формат пакетов также поддается описанию и обнаруживается сетевыми сигнатурами |
Использование банковских троянов
Зачастую цель банковских троянов — получить удаленный доступ к системе ДБО или платежной системе. Поэтому обычно используются общие методы кражи доступа, такие как перехват нажатий клавиш, снятие снимков экрана, запись данных из буфера обмена или встраивание в браузеры. Но есть и специфические техники для данного типа троянов, на которых стоит остановиться подробнее:
- подмена реквизитов в буфере обмена;
- подмена платежных распоряжений;
- модификация файлов ДБО;
- кража ключей от платежных систем и кошельков.
Подмена платежных реквизитов в буфере обмена
Метод заключается в мониторинге буфера обмена на наличие платежных реквизитов и их подмену на реквизиты злоумышленника. Троян Buhtrap ClipBanker проверяет содержимое буфера обмена на наличие электронных или криптокошельков, и в случае обнаружения подменяет их. В списке этого ВПО более 30 наименований кошельков.
Детектировать такое поведение можно в песочнице, копируя в буфер обмена «фейковые» кошельки наиболее распространенных платежных систем, а затем отслеживая содержимое буфера обмена. При этом копировать в буфер обмена можно и другие данные. Тогда по характеру измененных данных можно с уверенностью определить такой тип троянов.
Подмена платежных распоряжений
В странах СНГ наибольшее распространение получила бухгалтерская система «1С: Предприятие», которая позволяет отправлять платежи в банк, используя системы ДБО. При передаче платежных данных в ДБО используется файл «1c_to_kl.txt». Злоумышленники могут внести изменения в этот файл для перевода денег на свои счета, например, так действует троян RTM.
Доступ к файлу 1c_to_kl.txt обычно осуществляется при помощи перехвата функций CreateFile и WriteFile. Модуль RTM содержит агенты, которые перехватывают событие WH_CBT при помощи функции SetWindowsHookExA, чтобы внедриться во все процессы, а затем проверяют, что оказались в одном из процессов «1С: Предприятие».
И если это так, то дальше троян перехватывает функции CreateFileW и WriteFile, устанавливая доступ к первым 0x40 байтам каждой из функции параметр защиты памяти PAGE_EXECUTE_READWRITE при помощи функции VirtualProtect, а затем перезаписывая их собственным кодом. Выявлять можно сам факт перехвата событий, отслеживая вызов VirtualProtect с параметром защиты памяти PAGE_EXECUTE_READWRITE по адресу, указывающему на функции CreateFileW или WriteFile. В качестве косвенного признака также подойдет обнаружение вызова установки перехватов SetWindowsHookExA.
Модификация файлов ДБО
Эта техника используется для обхода самозащиты систем ДБО. В качестве примера можно привести троян BlueNoroff, который изменяет в памяти модули банковской программы SWIFT Alliance, чтобы отключить проверку базы данных и дать злоумышленникам возможность ее редактировать. Троян использует функции VirtualProtectEx для разрешения записи в участок кода, ReadProcessMemory — чтобы убедиться, что он изменяет нужный участок, WriteProcessMemory — чтобы перезаписать нужные байты.
Детектировать можно сам факт модификации процессов и файлов систем ДБО. Вызов VirtualProtectEx с параметром защиты памяти PAGE_EXECUTE_READWRITE для процессов ДБО является крайне подозрительным, а в сочетании с вызовом WriteProcessMemory может служить индикатором изменения процессов ДБО.
Кража ключей от платежных систем и кошельков
Некоторые трояны крадут приватные ключи от платежных систем и кошельков: к примеру, Buhtrap ClipBanker крадет ключи от кошельков Electrum и Bitcoin. Ищет он эти ключи по путям %appdata%\eLectrUm*\wAllEts\ и %appdata%\BiTcOin\wAllEts\walLet.dAt.
Детектировать такое поведение можно по обращению к данным путям. Обычно поиск файлов происходит при помощи функций FindFirstFile и FindNextFile. Кроме этого, можно отслеживать попытки открыть файлы средствами CreateFileA, проверяя пути до файлов. В песочницу можно поместить подставные файлы по соответствующим путям, а затем следить за доступом к ним.
Обнаружение факта разведки
Операторы ВПО должны понимать, что они попали на нужный компьютер. Отсюда вытекает другой вариант детектирования – обнаруживать факт сбора информации, которая может относиться к финансовым системам. Таким образом можно выявить атаку еще на этапе разведки или первичного заражения. Стоит отметить, что эти методы довольно часто реализованы в дополнительных модулях или выполняются по команде от управляющего сервера, поэтому выявить их в песочнице может быть затруднительно.
К таким индикаторам можно отнести, например, анализ вкладок и истории браузера. Один из модулей RTM содержит большой список шаблонов URL, связанных с разными банками и платежными системами, вхождение которых он ищет в адресах вкладок или истории браузеров. Другой модуль занимается мониторингом открытых окон и вкладок. Детектировать можно сам процесс перебора и мониторинга вкладок и истории браузеров, но это не позволит точно сказать, для чего будут использоваться данные. Чтобы однозначно выявлять эту технику по поведению, нужно перехватывать функции работы со строками, тогда можно среди строк находить шаблоны вида «online.payment.ru», даже если они зашифрованы.
Еще один индикатор – это поиск файлов, относящихся к системам ДБО. К примеру, модуль BlueNoroff ищет в переданном ему файле определенные SWIFT коды, извлекая оттуда информацию об отправителе, получателе, номере счета и номерах заявлений. Его запускает другой модуль, который перехватывает функцию CopyFileA, поэтому такое поведение внешне не отличается от обычного перебора файлов и не позволяет однозначно определить, что это банковский троян. Но в этом случае вредоносные программы можно детектировать по наличию в файле или дампе памяти специфичных для SWIFT значений: «MOT», «M95», «M94», «MMY», «25: Account Identification», «28C: Statement Number», «:25:», «:28C:».
Выводы
Действия злоумышленников можно обнаружить на разных этапах – начиная с момента первичного проникновения в сеть компании и вплоть до этапа, на котором непосредственно осуществляется кража денег. В ходе своей кампании злоумышленникам придется применить множество техник. Для того, чтобы выявить атаку в целом, вовсе не обязательно выявлять все без исключения техники, достаточно вовремя заметить какой-либо из ее шагов. Однако, чем раньше будут обнаружены действия хакеров, тем проще предотвратить негативные последствия.
Атака может затрагивать различные узлы инфраструктуры, однако есть точки, в которых наиболее велика вероятность обнаружить вредоносную активность, – за ними должен быть установлен особый контроль. В первую очередь, это те узлы, в которых злоумышленники получают ключевые привилегии, необходимые для дальнейшего продвижения, например, контроллеры домена. Это и рабочие станции, с которых возможен доступ к финансовым системам. В целом, чем больше элементов инфраструктуры находится под контролем, тем выше шансы заметить атаку на ранних этапах, если же под наблюдением находятся только критичные узлы, то атака будет выявлена уже на заключительных стадиях. При этом более длинный путь злоумышленника от точки проникновения до целевой системы (например, за счет правильной сегментации сетей) дает дополнительные возможности для обнаружения атаки на ранней стадии.
Использование разных средств обнаружения атак позволяет получить более полное видение всего, что происходит в сети, и детально отслеживать события. Атака может состоять из техник, которые детектируются с помощью разных инструментов, например, некоторые из них можно отследить по журналам событий, для других более надежным способом обнаружения будет являться анализ сетевого трафика, а в каких-то случаях подозрительное поведение будет выявлено в песочнице.