Защита от атак нулевого дня
News | 18.11.2021
Идентифицируя кодировщики шелл-кода, вы получаете надежную защиту от атак нулевого дня. Каким образом – узнайте из обзора Forcepoint.
Эксплойт
Все начинается с уязвимости в программном компоненте на машине жертвы, о которой злоумышленник знает. Злоумышленник подготавливает вектор атаки, будь то файл особого типа, определенный шаблон сетевого трафика или что-то еще, и каким-то образом обманом заставляет жертву реализовать данный вектор атаки.
Когда жертва реализует вектор атаки, срабатывает уязвимость. В некоторых случаях, например, при атаке типа «отказ в обслуживании» (DoS), этого может быть достаточно: система перестанет отвечать или резко замедлится. Но в некоторых случаях уязвимость может позволить злоумышленнику внедрить что-то дополнительное в систему жертвы, и это будет выполнено.
Шелл-код
Шелл-код - это общий термин, используемый для небольших фрагментов кода, которые обычно вводятся в память системы жертвы во время успешного эксплойта. Название происходит от исторического факта, что первоначальные шелл-коды использовались для отображения интерфейса оболочки для злоумышленника. В настоящее время шелл-код может делать и многие другие вещи, например, устанавливать маяк C&C или обратный бэкдор в системе.
В структуре атаки обычно сначала выбирается начальный вектор атаки, то есть «эксплойт». После выбора эксплойта выбирается полезная нагрузка, которую хотят выполнить после успешного эксплойта. Это полезная нагрузка шелл-кода.
Кодировщики шелл-кода
Большинство уязвимостей не позволяют вводить в память действительно произвольные байты. Для доступа к уязвимому коду может потребоваться определенное форматирование полезной нагрузки эксплойта - например, она может не содержать байтов NULL или разрешены только символы ASCII. Чтобы обойти эту проблему, используются кодировщики шелл-кода.
Кодировщик шелл-кода кодирует шелл-код в приемлемую форму, такую как полный ASCII. Сами кодеры часто не пытаются избежать обнаружения поставщиками средств безопасности, такими как AV или IPS. Их основная функция заключается в преобразовании кода в формат, который может быть успешно введен в память. Эти типы кодировщиков легко идентифицировать даже при простом сопоставлении строк.
Однако есть некоторые кодировщики, которые были созданы специально для того, чтобы их трудно обнаружить поставщикам средств безопасности. Полиморфные кодировщики особенно мощны. Шелл-код, создаваемый полиморфным кодировщиком, будет отличаться каждый раз при запуске кодировщика, что делает невозможным его идентификацию системами безопасности, которым для работы требуется начальное совпадение строки.
Отличным примером мощного полиморфного кодировщика шелл-кода является легендарный Shikata-Ga-Nai, полиморфный кодировщик с аддитивной обратной связью XOR. Shikata-Ga-Nai имеет репутацию кодировщика, который сложно обнаружить современными продуктами безопасности.
Стейджеры шелл-кода
Иногда уязвимость, которую собираются использовать, позволяет ввести в память только очень короткий объем кода. В этом случае злоумышленник не может вместить полный шелл-код в полезную нагрузку атаки. Вместо этого злоумышленник может внедрить нечто, называемое «стейджер».
Стейджер - это очень короткий фрагмент кода, который извлекает более крупный фрагмент кода для запуска в системе-жертве. Это позволяет ввести в эксплуатируемую систему шелл-код большего размера. Фреймворки эксплойтов также часто реализуют различные виды стейджеров.
Обнаружение атаки нулевого дня
Обнаружение атаки нулевого дня - сложная задача. Но помимо исходного вектора атаки, который использует уязвимость нулевого дня, эксплойт также обычно состоит из зашифрованных полезных данных шелл-кода. Несмотря на то, что исходный эксплойт может быть разным, и даже несмотря на то, что окончательно выполненная полезная нагрузка шелл-кода может меняться, остается одна часть: кодировщик шелл-кода.
Это означает, что вам не обязательно определять начальный вектор атаки. Вам даже не нужно знать, что будет делать полезная нагрузка, если она будет выполнена. Все, что вам нужно сделать, это определить различные кодировщики шелл-кода. Идентифицируя кодировщики шелл-кода, вы получаете надежную защиту от атак нулевого дня.
Возможности обнаружения в межсетевом экране нового поколения Forcepoint
Встроенная функция снятия отпечатков пальцев на основе DFA в Forcepoint Next-Generation Firewall обеспечивает быстрое снятие отпечатков пальцев на основе регулярных выражений в любом сетевом потоке. Благодаря этому можно идентифицировать даже более сложные кодировщики шелл-кода по любому сетевому трафику. Это важно, поскольку многие продукты безопасности могут выполнять этот уровень обнаружения только для файлов, а не на уровне всей сети.
Обнаружение полиморфных кодировщиков, таких как Shikata-Ga-Nai, входит в состав брандмауэра Forcepoint Next-Generation с 2010 года. На основе исследования Forcepoint X-Labs в 2021 году гораздо более широкий охват кодировщиков шелл-кода и стейджеров теперь доступен для всех типов сетевых протоколов в брандмауэре Forcepoint Next-Generation. Исследовательская группа X-Labs продолжает отслеживать, улучшать и добавлять новые идентификаторы для различных полезных нагрузок шелл-кода, кодировщиков шелл-кода и стейджеров шелл-кода с помощью пакетов динамического обновления.
Обращайтесь за персональной консультацией по решениям Forcepoint и с запросами на проведение пилотных проектов - к специалистам Softprom.
Softprom - Value Added Distributor компании Forcepoint.