“”/
 
6 декабря 2023

Знакомство с PT Sandbox

Статья 5. Работа с источниками. Часть 2
Приветствуем всех читателей в пятой статье из цикла «Знакомство с PT Sandbox». В прошлый раз мы начали рассматривать варианты источников файлов для проверки, а также способы их подключения (в частности, мы узнали различные варианты заведения почтовых сервисов).

В данной статье мы продолжим рассматривать различные типы источников и изучим, как: подключить NGFW, установить интеграцию с PT NAD для проверки файлов из веб-трафика и начать проверять файлы в общей папке.

Настройка проверки по ICAP

Данный вариант позволяет настроить отправку файлов на проверку в PT Sandbox с различных средств защиты, поддерживающих протокол ICAP: IDS/IPS, прокси, межсетевые экраны, WAF и пр.

В рамках данной статьи мы с вами рассмотрим настройку пересылки по ICAP с межсетевого экрана нового поколения (NGFW) UserGate.

Для добавления такого типа источника необходимо произвести настройку в интерфейсе PT Sandbox, а также настроить пересылку на самом UserGate:

  1. Сначала зайдем в веб-интерфейс PT Sandbox
Затем перейдем во вкладку «Источники» и нажмем кнопку «Добавить источник», после чего система выдаст форму для заполнения параметров источника. Выберем тип источника «ICAP-сервер» и настроим единственный доступный параметр, который можно задать: порт, на который необходимо будет отправлять файлы (по умолчанию 1344):
После указания номера порта жмем кнопку «Добавить источник».

Затем мы можем переходить к настройке на стороне UserGate.

2. Для начала нам необходимо создать ICAP-сервер

Перейдем в раздел Политики безопасности. Выберем ICAP-серверы и нажмем «Добавить».
В открывшемся окне заполним поля на обеих доступных вкладках:
  • адрес и порт сервера ICAP
  • максимальный размер сообщения
  • пути «Reqmod» и «Respmod» и пр
Максимальный размер сообщения определяет максимальный размер сообщения, передаваемого на ICAP-сервер в килобайтах. По умолчанию — 0 (отключено).

Пути «Reqmod» и «Respmod» задаются в соответствии с документацией на PT Sandbox. После заполнения всех полей жмем кнопку «Сохранить». Сервер добавлен.

  • Следующим шагом необходимо создать правило ICAP. Для этого перейдем в раздел «Политики безопасности» выберем ICAP-правила и нажмем «Добавить». В  появившемся окне заполняем необходимые поля.
Для данного типа источника может быть выбран блокирующий режим, однако это возможно только при наличии такой функции на стороне-отправителе.

В случае с UserGate такая возможность есть, это задается в поле «Действие».

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

Выберем «Переслать». На вкладке «ICAP-серверы» кликаем ранее созданный сервер.  Остальные настройки оставим по умолчанию.

  • Если все настроено правильно, то на вкладке «ICAP-серверы» в столбце «Статус» у ранее созданного сервера загорится зеленый индикатор.
На этом настройки на стороне UserGate завершены. Для проверки попробуем скачать вредоносный файл и получим следующий ответ:
Интеграция с PT NAD

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

Для подключения PT NAD в качестве источника файлов необходимо, как и везде ранее, создать в веб-интерфейсе PT Sandbox источник типа «PT NAD», а также провести определенную настройку на стороне самого PT NAD:

1. Перейдем во вкладку «Источники» и нажмем кнопку «Добавить источник» после чего система выдаст форму для заполнения параметров источника.

Выберем тип источника «PT NAD» и увидим, что в качестве параметров тут, так же, как и в случае с ICAP-сервером, можно задать только номер порта для подключения модуля ptdpi-worker@icap к PT Sandbox.

Этот модуль отвечает за отправку файлов на проверку во внешние системы.
После задания порта жмем кнопку «Добавить источник». Далее подключаемся по протоколу SSH к серверу PT NAD.

2. Настройка PT NAD

На стороне PT NAD необходимо настроить модуль ptdpi-worker@icap.

Для этого откроем конфигурационный файл /opt/ptsecurity/etc/ptdpi.settings.yaml и внесем следующие изменения:

  • в строку workers добавим параметр icap
  • в любом месте файла добавим следующие строки:
icap-worker.yaml.icap_product: pt_sandbox //(указываем, что внешняя система проверки - PT Sandbox)
icap-worker.yaml.icap_server: <IP-адрес или доменное имя ICAP-сервера>:<Порт ICAP> //(указываем адрес и порт ICAP-сервера)
  • icap-worker.yaml.nad_server: <Доменное имя или IP-адрес и порт (при необходимости, через двоеточие)> //(указываем адрес и порт веб-интерфейса PT NAD)
После чего сохраняем изменения и выходим из файла. На этом настройка модуля ptdpi-worker@icap завершена.

Можно проверить корректность настройки, отправив файл с сервера PT NAD на проверку вручную с помощью команды sudo /opt/ptsecurity/icap-worker/bin/check-icap <Путь к файлу>
Вывод команды говорит о том, что настройки корректны, и сообщает, что файл не заражен. После настройки ptdpi-worker@icap необходимо также настроить запись извлеченных файлов. Это нужно для того, чтобы указать системе, файлы каких типов необходимо пересылать на проверку в «песочницу».

Для этого снова откроем конфигурационный файл /opt/ptsecurity/etc/ptdpi.settings.yaml и внесем следующие изменения:

  • Раскомментируем строку с параметром file_store_enabled и изменим его значение на «yes» (если такой строки нет, то ее необходимо добавить самостоятельно)
  • Раскомментируем строки вида file-rules.<Тип файлов>.enabled: и поменяем их значение на «yes» для тех типов файлов, которые необходимо проверять в PT Sandbox:
Важно понимать, что чем больше правил вы активируете, тем сильнее будет нагрузка на аппаратные ресурсы сервера с установленным сенсором, что может отрицательно сказаться на производительности PT NAD.

Сохраним файл и закроем его, после чего перезапустим службы PT NAD командой sudo ptdpictl restart-all. На этом настройка закончена. Можно указать параметры проверки в веб-интерфейсе PT Sandbox.

Для источника типа PT NAD параметров не так много, и все они довольно стандартные:
  • Нет блокирующего режима, поскольку PT NAD работает с копией трафика
  • Есть возможность включить поведенческий анализ и т.п
Проверка файлов в общей сетевой папке

Если в информационной системе вашей организации существуют общие папки для работы с файлами: вы можете организовать проверку файлов в этих папках с применением PT Sandbox.

Для доступа к общей папке поддерживаются протоколы SMB версий 2 и 3 и NFS версий 3 и 4. Перед настройкой важно убедиться, что PT Sandbox будет иметь доступ на чтение файлов в этой папке. Для настройки такого источника файлов не требуется производить какие-либо действия на стороне сетевой папки. Вся настройка осуществляется в интерфейсе PT Sandbox.

Перейдем во вкладку «Источники» и нажмем кнопку «Добавить источник», после чего система выдаст форму для заполнения параметров источника.

Выберем тип «Общая папка» и укажем необходимые параметры:

  • Протокол подключения (NFS или SMB)
  • адрес и порт хоста, на котором расположена общая папка
  • логин и пароль в случае если был выбран протокол SMB
  • а также путь на хосте до папки
Заполняем все поля и жмем «Добавить источник». На этом настройка завершена. В указанной сетевой папке при добавлении файлов они будут отправлены на проверку в PT Sandbox.

Параметры проверки для таких источников абсолютно такие же, как и для PT NAD.
Проверка файлов в папке-шлюзе

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

  • В папку-шлюз сотрудники вашей организации помещают файлы, которые требуют проверки с использованием PT Sandbox;
  • После проведения проверки PT Sandbox перемещает файлы, не представляющие угрозы, в папку для безопасных файлов;
  • Файлы, представляющие угрозу, перемещаются PT Sandbox в папку карантина

Эти три папки могут быть отдельными папками или вложенными папками внутри одной основной папки. Также возможно размещение папок на разных серверах. Важно заметить, что папки не должны быть вложены друг в друга, иначе может произойти зацикливание сканирования. Поддерживаются протоколы SMB версии 2.1 и NFS версии 3.

Настройка такого типа источника, как и в случае с общей папкой, выполняется только из интерфейса PT Sandbox (при условии наличия всех трех необходимых папок, разумеется).
Добавим источник типа «Папка-шлюз»: перейдем во вкладку «Источники» и нажмем кнопку «Добавить источник» после чего система выдаст форму для заполнения параметров источника. Выберем тип источника «Папка-шлюз». В открывшемся окне необходимо добавить протокол подключения, адрес и порт, а также путь до папки для каждой из необходимых директорий (папка-шлюз, папка для безопасных файлов и папка карантина). Также, если используется протокол SMB, необходимо указать логин и пароль для подключения отдельно для каждой из папок.

При настройке доступа по протоколу SMB вместе с логином вы можете указать и доменное имя. Для этого в поле «Логин» введите данные в формате <Доменное имя>\<Логин>, например, yourdomain\ivanov.
Для упрощения заполнения формы, если папки находятся на одном сервере и учетные данные для доступа к ним одинаковые, можно установить флаг «Такие же параметры, как у сервера папки шлюза». И тогда для папки для безопасных файлов и папки карантина необходимо будет только указать путь до директории.
Заполняем все поля и жмем «Добавить источник». На этом настройка папки-шлюза завершена.

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

PT Sandbox может получать файлы для проверки от сторонних приложений через публичный API. Для доступа к публичному API нужно получить ключ API и использовать его во всех запросах к API.

Любой запрос к API должен содержать ключ API в поле заголовка X-API-Key.
Ключ API — это уникальная последовательность символов, которая используется для защиты публичного API от несанкционированного доступа.

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

Работа с ключами

Способ 1. Управление ключами через консоль

Для получения ключа API через консоль необходимо подключиться к серверу PT Sandbox по SSH, а затем, используя утилиту ptmsctl, выполнить команду sudo ptmsctl api auth create <Название ключа API>.

Данная команда генерирует ключ с заданным именем. Название ключа API должно быть уникальным и содержать от 5 до 30 символов, среди которых могут быть только буквы латинского алфавита, цифры и дефис. Первым и последним символами могут быть только буквы. Кроме того, перед названием ключа можно добавить флаг -c, после чего написать комментарий к данному ключу (не более 500 символов). Чтобы вывести информацию о созданном ключе, можно также добавить ключ -o и формат вывода (например, JSON).

Создадим файл с названием apikey:
 Ключ API сгенерирован. Теперь с помощью него можно отправить файл на проверку в PT Sandbox.

Для удаления или изменения ключа используются ключевые слова delete и update соответственно.

Так, например, с помощью update можно обновить описание ключа:
Важно помнить, что после обновления информации об API ключе обновляется и сам ключ, то есть его значение будет не таким, каким было изначально.

В веб интерфейсе также появится информация о созданном ключе:
А с помощью delete можно удалить ключ, который уже не нужен. Кроме того, командой list можно вывести список уже имеющихся ключей в виде таблицы (без флагов по умолчанию) или в удобном формате (json, yaml, таблица или просто текстом):
Способ 2. Управление ключами через веб интерфейс

Еще один способ управления ключами – через специальный раздел в веб интерфейсе. Их можно так же создавать, удалять и редактировать описание, однако есть два преимущества работы с API ключами через веб интерфейс: можно ограничить разрешенные действия для конкретного ключа, а также при изменении описания не будет меняться сам токен.
Создадим файл с названием apikey:
Для этого в веб интерфейсе перейдем во вкладку «Система», а затем в раздел «Токены доступа». Для создания нажмем на кнопку «Создать токен доступа.
В всплывающем окне необходимо указать название токена, комментарий к нему (опционально), а также добавить разрешенные действия: Проверка с параметрами источника либо Проверка с передаваемыми параметрами. После указания необходимых параметров нажмем кнопку «Создать».
После создания будет показано окно с токеном, который необходимо сохранить для дальнейшей работы.
Изменение описания для токена можно выполнить, нажав на значок карандаша в строке токена:
Рядом же с ним находится значок для отзыва (удаления) токена.
Проверка файлов через API

Для начала создадим источник типа «API выбранными параметрами проверки». Для этого перейдем во вкладку «Источники» и нажмем кнопку «Добавить источник», указав соответствующий тип источника. Также необходимо указать токен доступа, который будет использоваться данным источником, либо создать его из этого же меню.
Перед запуском проверки файла с помощью публичного API ваше приложение должно загрузить этот файл в PT Sandbox. Для этого используется метод POST в следующем формате:
POST <Корневой URL API>/storage/uploadScanFile

Файл нужно передавать в бинарном виде (MIME-тип - application/octet-stream). Каждый запрос может содержать только один файл.

Попробуем отправить файл, используя сгенерированный ранее токен, указав его в заголовке X-API-Key, а также приложив файл на проверку:
В ответ приходит сообщение о том, что файл успешно загружен:
После этого запустим проверку загруженного файла и получим результаты проверки и(или) идентификатор задания.
  Это можно сделать с помощью запроса следующего вида:
POST <Корневой URL API>/analysis/createScanTask

Отправим запрос по загруженному файлу с выдачей подробного отчета о проверке (параметр "short_result": false):
Полученный ответ:
Дополнительно можно также добавить параметры поведенческого анализа, отображаемое в веб-интерфейсе имя файла, вид вывода результата и др. Кроме того, с помощью API можно также получить результаты предыдущих проверок, скачать из хранилища файл, получить сведения о имеющихся образах ВМ и пр.

В рамках данной статьи нет задачи рассказать все про API, поэтому тот, кто заинтересуется, сможет подробнее прочитать про него в документе «Справка по публичному API» (Об этой справке · PT Sandbox · Справочный портал (ptsecurity.com)
Заключение

В пятой статье цикла про продукт PT Sandbox мы завершили изучение различных источников файлов для проверки, узнали, как правильно интегрировать их с продуктом, а также познакомились с публичным API продукта.

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

Автор статьи: Никита Басынин, инженер по направлению Anti-APT в TS Solution