Как известно специалистам по информационной безопасности, классические антивирусные средства работают на основе сведений об угрозе.
Такими сведениями могут быть:
- сигнатуры (известные строки кода);
- особенности поведения вредоносного ПО.
Для формирования базы данных угроз разработчики средств защиты информации данного типа проводят значительное количество исследований, собирают коллекции сигнатур и зловредных кодов. При выполнении своих функций такие средства защиты информации вынуждены постоянно проводить сканирование или анализ активности всех объектов, содержащих программный код. При обнаружении вируса, его лечение не всегда заканчивается успехом. Кроме того, вирусы научились противодействовать различным видам защиты пользовательских систем. Таким образом, в сегодняшних реалиях уповать только на антивирусную защиту крайне опасно. Поэтому развитие средств борьбы с вредоносными кодами привело к появлению на рынке информационной безопасности решений, работающих на сетевом уровне. Это сетевые шлюзы безопасности и, так называемые, «песочницы». Первые позволяют «чистить» трафик, содержащий вирусы и эксплойты. Вторые – эмулируют пользовательскую среду (внутри программно-аппаратного комплекса или в «облаке»), «провоцируя» зловредный код проявить себя и тем самым обнаруживают его. При этом сетевые шлюзы не могут «видеть» весь контент, передаваемый по сети, не контролируют пользовательские устройства ввода/вывода информации (флеш-карты, CD/DVD и т.д.) и не всегда способны заблокировать подозрительную активность по разрешенным портам. Из минусов «песочниц» следует отметить нереальность эмуляции абсолютно всех пользовательских сред, а также их высокую стоимость. Стоит затронуть и такую проблему – а что делать с хостами, которые уже подверглись атаке злоумышленника (до начала использования «песочницы») и являются зараженными? Как их обнаружить и «вылечить»?
И так, перечислим задачи, которые в сегодняшних реалиях необходимо решать средству защиты информации для конечных точек:
- предотвратить проникновение эксплойтов;
- предотвратить работу вредоносного кода, который уже проник в систему;
- расследовать детали атаки;
- работать в связке с системой сетевой безопасности и с облачными сервисами, предоставляющими сведения об актуальных угрозах.
Одно из таких решений в настоящее время предлагает Palo Alto Networks, после приобретения в 2014 году израильской компании Cyvera Ltd. и их технологии защиты.
Эта технология сейчас является составной частью продуктовой линейки Palo Alto, состоящей из трех компонентов: межсетевого экрана нового поколения, облака для анализа угроз и, собственно, TRAPS — системы расширенной защиты рабочих станций.
TRAPS является решением, способным предотвращать изощренные атаки с использованием эксплойтов или вредоносных исполняемых файлов еще до выполнения каких-либо злонамеренных действий, вне зависимости от наличия установленных на клиентском рабочем месте обновлений операционной системы или клиентских приложений.
При попытке атаки TRAPS блокирует выполняемые вредоносным ПО операции, завершает процесс и сообщает о предотвращении угрозы. После блокирования атаки TRAPS собирает подробные аналитические данные, включающие название вредоносного процесса, состояние памяти во время блокировки и другую информацию, а затем создает отчеты.
Кроме этого, с помощью TRAPS можно обеспечивать безопасность самых разных приложений и процессов, просто добавляя их в настройки. Это может быть использовано для специализированных программных продуктов в различных отраслях. Например, TRAPS позволяет защитить системы для торговых точек (POS), торговые автоматы, системы SCADA и иные решения. Проанализируем, какие же методы использует TRAPS для защиты системы.
Во-первых, TRAPS использует ограничения на основе политик, которые предотвращают выполнение программ в сценариях с высоким риском, что позволяет значительно сократить потенциальные возможности для атак. Например, можно запретить запуск файлов определенного типа напрямую с USB-накопителя или из папок, не являющихся папками приложений. Во-вторых, TRAPS использует многоуровневый подход, использующий следующие функции:
- Ограничение выполнения. В TRAPS имеется расширенный контроль ограничений. Он обеспечивает управление политиками в отношении локальных и сетевых папок, дочерних процессов, внешних накопителей и неподписанных исполняемых файлов.
- Определение допустимых и запрещенных исполняемых файлов. Это осуществляется при помощи файловых хеш-кодов.
- Анализ и предотвращение запуска исполняемых файлов с помощью WildFire. Интеграция с WildFire (облачный сервис обнаружения угроз от Palo Alto) позволяет задавать детализированные параметры запуска и одновременно использовать динамические политики безопасности с автоматическим анализом неизвестных исполняемых файлов. Если на рабочей станции появился новый, никогда ранее не встречавшийся исполняемый файл, TRAPS может незамедлительно отправить хеш-код файла в WildFire для идентификации. Если WildFire сообщит о том, что файл является вредоносным, TRAPS предотвратит его запуск и не позволит этому файлу нанести какой-либо ущерб. Если WildFire уже сталкивался с потенциально опасным файлом, то он обязательно немедленно уведомит об этом TRAPS. А если обнаружена новая вредоносной программа, то имея подписку на WildFire можно в течение часа получить сигнатуры для защиты независимо от местонахождения (так заявляют в Palo Alto).
- Агент выдает предупреждения при обнаружении попыток остановить работу TRAPS, удалить программу или иным образом вмешаться в ее функционирование. После предотвращения атаки с рабочей станции можно собрать дополнительную информацию, например, сделать «снимок» памяти и зафиксировать действия, предпринятые вредоносным кодом. Сохранив «снимок», TRAPS выполняет повторный анализ инцидента и ищет в памяти возможные следы злонамеренных действий.
- Защита от уязвимостей нулевого дня и неизвестного вредоносного кода.
В состав решения входят Traps Exploit Prevention Modules (EPM). В таблице приведены их названия и функционал (информация взята с сайта производителя).
Модуль | Что делает |
---|---|
CPL Protection | Защита от уязвимостей, связанных с несанкционированным созданием элементов панели управления Windows, которые могут быть использованы вредоносными программами |
DEP | Предотвращение выполнения кода из области для памяти (DEP). Предотвращает запуск кода из области памяти, предназначенной для хранения данных. |
DLL-Hijacking Protection | Предотвращает атаки типа DLL-Hijacking, когда злоумышленник пытается загрузить библиотеки DLL из небезопасных мест, чтобы получить контроль над процессом. Также предотвращает загрузку злоумышленниками вредоносных CPL (апплетов) файлов. |
DLL Security | Предотвращает доступ к важнейшим метаданным DLL из ненадежных мест размещения кода. |
Exception Heap Spray Check | Обнаруживает попытки атак вида Heap Spray при наступлении подозрительных прерываний (возможных попыток эксплуатации). |
Font Protection | Предотвращает атаки, связанные с неправильным управлением шрифтами, частую цель эксплойтов. |
GS Cookie | Усиливает стандартные проверки Windows, связанные с угрозами переполнения буфера. |
Heap Corruption Mitigation | Предотвращает повреждение области памяти, выделяемой программам для динамически размещаемых структур данных (уязвимости типа «double free»). |
Hot Patch Protection | Предотвращает использование новых техник, использующих системные функции, чтобы обойти DEP и адресное пространство макета рандомизации (ASLR) |
Library Preallocation | Обеспечивает перемещение конкретных модулей, которые обычно используются при эксплуатации уязвимостей |
Memory Limit Heap Spray Check | Обнаруживает атаки Heap Spray, используя собственный алгоритм, определяющий увеличение потребления памяти |
Null Dereference Protection | Предотвращает выполнение вредоносного кода из сопоставленного нулевого адреса в памяти, что делает уязвимости типа null dereference неэксплуатируемыми |
Packed DLLs | Расширение для модуля безопасности DLL, которое обеспечивает проверку упакованных библиотек DLL, перед их распаковыванием в памяти |
Periodic Heap Spray Check | Обнаруживает экземпляры Heap Spray, используя собственный алгоритм, исследуя память с определенными промежутками времени |
Random Preallocation | Увеличивает энтропию выделяемой памяти, чтобы уменьшить шанс успешной эксплуатации уязвимостей |
ROP Mitigation | Защищает от использования уязвимостей API при вызовах функций языками объектно-ориентированного программирования (ROP), защищая API от эксплойтов, использующих движки компиляции (JIT) |
SEH Protection | Предотвращает Hijacking Structured Exception в обработчике SEH, широко эксплуатируемых структур управления памятью под названием Linked List, который содержит последовательность записей данных |
Shellcode Preallocation | Сохраняет и защищает определенные области памяти, обычно используемые для внутренней полезной нагрузки с использованием техник Heap Spray |
ShellLink Protection | Предотвращает логические уязвимости оболочки shell |
SysExit | Защищает от уязвимостей, связанных с повышением локальных привилегий |
UASLR | Улучшает или полностью защищает адресное пространство макета рандомизации (ASLR) с большей энтропией, надежностью и строгим соответствием |
Имея на клиентских рабочих станциях агенты TRAPS, ИТ-подразделение организации может спокойно подготовиться к установке обновлений/исправлений для операционных систем и приложений. Это важный процесс так как практически в любой организации есть необходимость тщательно тестировать обновления/исправления, прежде чем разворачивать их. Более того, практически в каждой организации имеются устаревшие, но необходимые системы, на которые по тем или иным причинам исправления установить нельзя. Расширенная защита рабочих станций с помощью TRAPS позволяет обеспечить их безопасность вне зависимости от наличия последних исправлений. Но, к сожалению, TRAPS имеет ограничения по совместимости со старыми операционными системами. Кроме того, по данным Palo Alto, отмечаются конфликты между клиентскими приложениями и некоторыми защитными модулям, входящими в состав TRAPS. Подробно эти ограничения приводятся в следующем документе на странице 7.
В таких случаях вендор рекомендует «отключить конфликтующий модуль для конкретного компьютера и/или приложения. При этом приложение будет по-прежнему защищено другими модулями (перечень смотри выше). Поскольку для успешного запуска эксплойтам необходимо использовать последовательность различных алгоритмов, а другие защитные модули с большой вероятностью заблокируют один из этих алгоритмов».
Приведу состав решения TRAPS:
Консоль Endpoint Security Manager
При установке ESM в Microsoft SQL Server создается специальная база данных, а в IIS устанавливается консоль администрирования. Поддерживаются версии Microsoft SQL 2008 и 2012.
Сервер для рабочих станций можно установить на физических или виртуальных машинах с Windows Server 2008 R2, Windows Server 2012 или Windows Server 2012 R2.
Серверы Endpoint Security Manager
Серверы ESM по сути выступают в роли посредников между агентами TRAPS и базой данных ESM. Передача данных между агентами TRAPS и серверами ESM осуществляется по протоколу HTTPS. ESM-серверы можно установить на физических или виртуальных машинах с Windows Server 2008 R2, Windows Server 2012 или Windows Server 2012 R2.
Агент TRAPS
Для установки агента TRAPS используется пакет MSI объемом около 9 МБ. Установить пакет можно с помощью любого инструмента развертывания ПО. Последующие обновления агента осуществляются через ESM. Агент занимает менее 25 МБ на диске и не более 40 МБ в оперативной памяти во время работы. Наблюдаемая загрузка ЦП составляет менее 0,1 процента.
Разработчикам TRAPS можно предложить следующие улучшения решения:
- выпуск агента не только для Windows-платформ;
- повышение уровня совместимости с приложениями.
В заключение, важно отметить тенденцию, когда производитель сетевых средств защиты (в данном случае – Palo Alto) расширил свою линейку продуктов и обеспечил защиту и на конечных точках. Сделали они это за счет приобретения качественного продукта из данного класса средств защиты, разработанного небольшой израильской компанией Cyvera Ltd. и дальнейшей интеграции его со своими сетевыми решениями. Здесь стоит отметить тот факт, что на момент поглощения в Cyvera Ltd работало 55 человек, а стоимость сделки, по сообщению Palo Alto составила 200 миллионов долларов. Это, по моему мнению, достаточно правильный подход, который позволяет строить эшелонированную защиту и снижать риски информационной безопасности.
Андрей Рыбин