Технологии песочниц. Check Point SandBlast. Часть 2

1c992e823ab945e6bc03ae45462ece95.png
Продолжаем тему сетевых песочниц. В предыдущем модуле я уже привел небольшую «печальную» статистику целенаправленных атак. Резюмируя ранее сказанное, можно сделать несколько основных выводов:
  • 99% зловредов были замечены всего один раз. По этой причине сигнатруная защита просто бессильна.
  • Почта является излюбленным иснтрументом хакера. Как правило зловреды доставляются в виде файлов, либо ссылок на файлы.
  • Вопреки обыйденному мнению, заразными могут быть не только файлы типа exe, flash и java файлы. Т.е. запретив этот тип файлов, вы все еще не защищены. Зловред может быть спрятан в разрешенные документы такие как: doc, excel, pdf, powerpoint, архивы и так далее.


3b011f3a18c6438dbe9ed0de6326ed0a.png
В связи с этим появился относительно новый тип средств защиты…

Песочница

На текущий день это наверно единственный способ борьбы с атаками нулевого дня. В чем собственно заключается задача классической песочницы? Далее будет много картинок из презентации и как обычно видео в конце (как теоретическая, так и практическая часть).

b9dbe9885a9843bca0511ae303f64680.png
Задача Песочницы очень простая:

  • Открыть файл (даже зараженный)
  • Проанализировать активность (изменения в реестре, изменения в сетевой активности, активность файловой системы, запуск системных процессов и т.д.)
  • Заблокировать или пропустить файл

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

Технологии обхода Песочниц

Как только были анонсированы песочницы как новое средство защиты, началась так называемая «Гонка вооружений». Хакеры стали писать более умные зловреды:

d72085f7e6f94bdd84b9693493fa2e27.png

  • К примеру зловред мог уходить в спячку и не запускаться сразу, чтобы песочница могла пропустить этот файл дальше в сеть. Разработчики песочницы тут же отреагировали и начали ускорять время в виртуальных машинах. На что хакеры ответили использованием собственных таймеров внутри зловреда (обычно запуская какое-то «больше» вычисление внутри программы), т.е. перестали смотреть на системные часы.
  • Далее зловреды начали пытаться отыскать песочницу, т.е. определить, где их запустили. Песочницы стали пытаться скрыть факт своего присутствия путем эмулирования физического CPU. Но зловреды довольно быстро научились определять эту эмуляцию.
  • Более новые версии зловредов стали пытаться отыскать человека за компьютером, т.е. пытаться определить что их запустил не робот. Это были различные датчики движения мышки, нажатия на клавиатуру и т.д. Песочницы начали имитировать поведение человека. Но это весьма сложно. Зловреды довольно легко стали определять «виртуального» человека. К примеру один из зловредов упаковывался в документ формата doc, где в середине документа вставлялась картинка с голой женщиной. Любой здоровый человек при просмотре документа задерживался на этой картинке. Песочница этого не делала и просто проматывала файл, имитируя поведение человека. Таким образом зловред легко определял, что его открыл робот, т.е. песочница.

Данная «гонка» вооружений продолжается до сих пор.

Check Point SandBlast

В связи с озвученными выше проблемами, относительно недавно была представлена новая технология песочниц — CheckPoint SandBlast.

07fe1874e5dd4f3ea2c07a546e2b53ec.png

Данная технология предоставляет очень широкий спектр средств защиты:

  1. Threat Emulation — технология эмуляции файлов
  2. Threat Extraction -технология очистки файлов
  3. Zero Phishing — защита от фишинга
  4. Endpoint Forensics — модуль расследования инцидентов ИБ
  5. Zero Ransomware — защита от шифровальщиков

В этой статье и лабораторных работах мы сосредоточимся на Threat Emulation (т.е.эмуляции файлов) и Threat Extraction (т.е. очистке файлов).

Особенности Threat Emulation

В чем же особенность технологии эмуляции от компании Check Point? Как она справляется с ранее озвученной «гонкой вооружений»? Давайте рассмотрим работу модуля Threat Emulation на примере типового жизненного цикла практических всех зловредов.

1026b667415248f89d4c2029218fce9d.png

  1. Первое с чего начинается процесс доставки зловреда это с какой-либо уязвимости программного обеспечения. Этих уязвимостей тысячи, все зависит от ПО, которое вы используете (это может быть браузер, акробат ридер, почтовый клиент и т.д.). Большинство этих уязвимостей неизвестны даже самим производителям ПО, иначе бы они выпустили патч (что они периодически и делают), но это практически всегда уже после того, как кто-то воспользовался этой уязвимостью.
  2. Для того чтобы использовать эти уязвимости, нужны специальные эксплойты. Т.е. мини программы, которые выполнив определенную последовательность действий могут получить определенный уровень доступа к системе жертвы. Эксплойтов совсем немного и новые появляются крайне редко.
  3. Эксплойт может нести внутри себя так называемый shellcode (т.е. еще одну мини программу, которая будет выполнена непосредственно на компьютере жертвы). Как правило этот shellcode используется для скачивания дополнительных вредоносов, либо для создания вредоноса непосредственно на компьютере жертвы с использованием «подручных средств». Чуть позже рассмотрим как это происходит.
  4. Shellcod-ы используют различные техники обхода средств защиты.
  5. В результате мы получаем огромное кол-во возможных вариаций зловредов. Которые будут также обладать различными технологиями обхода песочниц.

Классические (традиционные) песочницы начинают работать именно на этом этапе. Такие песочницы еще называют OS Level. При этом велика вероятность, что песочница все же не сможет справиться с подобным кол-вом типов зловредов.

Подход чекпоинта в данном случае более логичен. Гораздо разумнее перехватывать зловредов там, где меньше всего их вариантов и вероятность их определения стремиться к 100%. Это этап эксплойтов.

Чекпоинт на уровне процессора видит выполнение эксплойта и позволяет заблокировать файл еще до выполнения или скачивания дополнительных модулей. Этот революционный подход (CPU Level) стал возможен после появления процессоров Intel Haswell, где на аппаратном уровне позволяется подобный мониторинг. При этом чекпоинт поддерживает и классический режим песочницы, т.е. OS Level.

Давайте теперь посмотрим как собственно выглядит сбор необходимого shellcodа.

07c9d3f70ddc4ee98a01acd8fea29430.png
Начнем с того, что передавать зловредный файл целиком на компьютер жертвы весьма примитивно, т.к. в этом случае различные антивирусы или IPS-ы могут определить атаку. Поэтому хакерами был придуман довольно интересный способ. Они стали собирать зловредный код прямо на компьютере жертвы используя уже запущенные процессы. Данный метод был назван ROP, т.е. return oriented programming. На данном слайде можно увидеть как происходит сбор кода для зловреда. Здесь представлена работа Adobe Reader в шеснадцатеричном виде. Выделяются нужные функции и собирается так называемый гаджет. Именно этот процесс (неправильного использования программы) позволяет увидеть и предотвратить Threat Emulation. Мы не будем подробно рассматривать ROP, т.к. это весьма сложная тема и заслуживает отдельного цикла статей.

Проблемы традиционных песочниц

Теперь давайте рассмотрим основные проблемы традиционных песочниц.

8bce089bd25c44bf8bf574820c92d3b7.png

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

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

Решить данную проблему призвана технология Threat Extraction.

Преимущества Threat Extraction

Данная технология предназначена для моментальной очистки файлов и отправке его пользователю. В это время исходный файл эмулируется с помощью модуля Threat Emulation.

03b67efa54d040dd9bd692f402e97853.png

Есть два основных способа очистки поступающих файлов:

  1. Первый это конвертация исходного файла в pdf. Фактически происходит «распечатка» файла на виртуальном принтере. Пользователь получает pdf документ без опасного содержимого. В 90% случаях пользователю этого достаточно, чтобы ознакомиться с документом.
  2. Второй способ это очистка всего активного содержимого из исходного файла. Вырезаются все макросы и на выходе получается совершенно стерильный файл с сохранением исходного расширения (doc, ppt и т.д.).

Очень рекомендую обратить внимание именно на первый способ, т.к. в этом случае у зловреда нет ни малейшего шанса на выживание. Безопаснее будет только распечатка файла на реальную бумагу.

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

e74855f1315f468589d8554d69c4e173.png

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

Продуктовая линейка Check Point SandBlast

8cf40d214d7c45c7a8c791d5a458fec9.png
Если рассмотреть продуктовую линейку CheckPoint SandBlast, то можно выделить 4 области. Это:

  1. Сетевые устройства, для защиты периметра или каких либо сегментов
  2. Агенты, для защиты конечных рабочих станций
  3. Облачная защита для Office 365 (в скором времени ожидается поддержка Gmail)
  4. И специализированное API, которое позволяет использовать облако чекпоинт сторонним приложениям и производителям

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

44033210c394417fb09128d7f22696e0.png

  1. Использование облачной песочницы. На существующем шлюзе CheckPoint активируется лицензия NGTX. Файлы отправляются на эмуляцию в облако. На мой взгляд это самый оптимальный и экономичный вариант. Однако в некоторых компаниях запрещено отправлять собственные файлы во внешнюю сеть, даже для анализа.
  2. Локальная песочница. Используется отдельно стоящая «железка» — SandBlast Applince. В этом случае шлюз Check Point с лицензий NGTX отправляет файл уже на ваше устройство SandBlast, где проверяются файлы.
  3. Локальная песочница в Inline режиме. Подходит в том случае, если у вас нет шлюза Check Point.

Теперь мы можем перейти к лабораторным работам и на практике опробовать решения Threat Emulation и Threat Extraction.

Видеокурс по второй части

Всю вышеизложенную теор. часть можно посмотреть в формате видео:


Кроме того есть три лабораторные работы:

Лабораторная работа №3


В ходе этого урока мы настроим блейд Threat Emulation (облачную версию) и попробуем смоделировать прохождение зараженных файлов через шлюз. Затем мы снова проанализируем логи и заблокируем скачку вредоносных файлов для пользователя Win7.

Лабораторная работа №4


На этот раз мы рассмотрим вариант локальной эмуляции, т.е. без отсылки файлов в облако. Также мы опробуем проверку email сообщений, для этого настроим Check Point как MTA, т.е. mail transfer agent. Затем мы попробуем отправить зараженный файл по почте и убедимся, что он заблокируется. Ну и конечно же проанализируем логи.

Лабораторная работа №5


Как мы убедились в прошлом уроке, эмуляция файлов это очень эффективное средство защиты, однако это занимает некоторое время! Специально для тех, кто не любит ждать пока эмулируются файлы, существует технология Threat Extraction. В ходе урока мы ее активируем и попробуем еще раз отправить по почте зараженный файл. В результате мы должны получить уже очищенный, а точнее сконвертированный документ в формате pdf.

Продолжение следует…

Комментарии (6)

  • 7 апреля 2017 в 10:33

    0

    Интересно было прочитать про новые методы. Идея с принтером, по-моему, очень классная!

    А вот с анализом эксплоитов я не очень понял.

    Песочница
    На текущий день это наверно единственный способ борьбы с атаками нулевого дня.

    Чекпоинт на уровне процессора видит выполнение эксплойта и позволяет заблокировать файл еще до выполнения или скачивания дополнительных модулей.
    Фактически это получается база сигнатур эксплоитов на уровне процессора. Как в этой ситуации Check Point сумеет детектировать 0-day?
    • 7 апреля 2017 в 10:45

      +1

      Все немного сложнее. Процессор позволяет видеть «неправильный» вызов функций. Т.е. мы например заранее знаем, как должен работать adobe reader и видим, когда он начинает работать не так (момент эксплойта, когда порядок вызова функций нарушается). Более точно я вряд ли расскажу, т.к. эта технология на текущий момент есть только у CheckPoint. Да и я не эксперт в ROP…
      • 7 апреля 2017 в 11:13

        0

        Я, к сожалению, тоже очень плохо разбираюсь в этой теме. Но хотелось бы понять хотя бы общий концепт.
        Ведь чтобы знать, как должен работать Adobe Reader, мы должны иметь опять-таки сигнатуру, «слепок» его поведения. Для каждой версии (потому что эксплоиты часто предназначены для разных версий).
        Это же нереальный объём данных.
        • 7 апреля 2017 в 11:37

          +1

          Кол-во эмулируемых типов файлов ограниченное. Объемы будут весьма скромными.
          • 7 апреля 2017 в 12:11

            0

            Всё равно прилично. У одного только Adobe Reader’а билдов не счесть. У MS Office — тем более.

            P.S. Check Point — неплохая компания, но её совершенно еврейская политика прятать от не-клиентов всё, включая форумы поддержки (!) и документацию (!), дико бесит. :-(

            • 7 апреля 2017 в 12:17

              +1

              Да, есть такое. Комьюнити (особенно русскоязычный) у них пока очень слабо развит. Мы потихоньку стараемся заполнять информационный вакуум)

© Habrahabr.ru