Русский
Русский
English
Статистика
Реклама

Checkpoint

1. NGFW для малого бизнеса. Новая линейка CheckPoint 1500 Security Gateway

13.07.2020 12:11:27 | Автор: admin


После публикации статьи прошло уже более двух лет, модели 1400 серии на сегодняшний день убраны из продажи. Пришло время для изменений и новшеств, эту задачу CheckPoint постарался реализовать в 1500 серии. В статье мы рассмотрим модели для защиты небольших офисов или филиалов компании, будут представлены технические характеристики, особенности поставки (лицензирование, схемы управления и администрирования), коснемся новых технологий и опций.

Модельный ряд


В качестве новых SMB моделей представлены: 1530, 1550, 1570, 1570R. Ознакомиться с продуктами возможно на странице портала CheckPoint. Логически мы разделим их на три группы: офисный шлюз безопасности с поддержкой WIFI (1530, 1550), офисный шлюз безопасности с поддержкой WIFI + 4G/LTE (1570, 1550), шлюз безопасности для промышленности (1570R).

Cерия 1530, 1550




Модели имеют 5 сетевых интерфейсов для локальный сети и 1 интерфейс для выхода в Интернет, их пропускная способность 1 ГБ. Также в наличие USB-C Сonsole. Что касается технических характеристик, то DataSheet к этим моделям предлагает большое количество измеряемых параметров, мы же остановимся на наиболее важных ( по нашему мнению).
Характеристики
1530
1550
Максимальное количество соединений в сек
10 500
14 000
Максимальное количество конкурентных соединений
500 000
500 000
Пропускная способность при Firewall + Threat Prevention (Мбит/C)
340
450
Пропускная способность при Firewall + IPS (Мбит/C)
600
800
Пропускная способность Firewall (Мбит/C)
1000
1000

* Под Threat Prevention подразумеваются следующие запущенные блейды: Firewall, Application Control и IPS.

Модели 1530, 1550 имеют ряд функциональных возможностей:

  • Gaia 80.20 Embedded перечень опций представлен в SK СheckPoint
  • Лицензия Mobile Access на 100 конкурентных подключений поставляется при покупке любого из устройств. Стоит учитывать что эта особенность модельного ряда SMB NGFW, позволяющая вам экономить на отдельной покупке лицензий Mobile Access, которые не идут в комплекте при покупке других серий моделей CheckPoint.
  • Возможность управлять шлюзом безопасности с помощью мобильного приложения Watch Tower (более подробно было написано в нашей статье.)

Для кого серия 1530, 1550: данная линейка подойдет для филиальных офисов до 100 человек, обеспечивает удаленное подключение, в наличие различные способы администрирования.

Cерия 1570, 1590




Старшие модели в линейке 1500 серии обладают 8 интерфейсами для локальных подключений, 1 интерфейсов для DMZ и 1 интерфейсом для соединения Интернет (пропускная способность всех портов 1 ГБ/c). Также в наличие USB 3.0 Port и USB-C Console. Модели идут с поддержкой 4G/LTE модемов. Включена поддержка Micro-SD карт для расширения внутренней памяти устройства.

Технические характеристики представлены ниже:
Характеристики
1570
1590
Максимальное количество соединений в сек
15 750
21 000
Максимальное количество конкурентных соединений
500 000
500 000
Пропускная способность при Threat Prevention (Мбит/C)
500
660
Пропускная способность при Firewall + IPS (Мбит/C)
970
1300
Пропускная способность Firewall (Мбит/C)
2800
2800

Модели 1570, 1590 имеют ряд функциональных возможностей:

  • Gaia 80.20 Embedded перечень опций представлен в SK.
  • Лицензия Mobile Access на 200 конкурентных подключений
    поставляется при покупке любого из устройств. Стоит учитывать что эта особенность модельного ряда SMB NGFW, позволяющая вам экономить на отдельной покупке лицензий Mobile Access, которые не идут в комплекте при покупке других серий моделей CheckPoint.
  • Возможность управлять шлюзом безопасности с помощью мобильного приложения Watch Tower (более подробно было написано в нашей статье).

Для кого серия 1570, 1590: данная линейка подойдет для офисов до 200 человек, обеспечивает удаленное подключение, имеет наиболее высокие показатели среди семейства SMB.

Для сравнения показатели предыдущих моделей:
Характеристики
1470
1490
Пропускная способность при Threat Prevention + Firewall (Мбит/C)
500
550
Пропускная способность при Firewall + IPS (Мбит/C)
625
800

1570R


Отдельного внимания заслуживает NGFW 1570R СheckPoint. Она разработана специально для промышленной индустрии и будет интересна компаниям работающим в сфере: транспортировка, добыча полезных ресурсов (нефть, газ и т.д), производство различных продуктов.



1570R спроектирована с учетом особенностей и условий ее использования:

  • безопасность периметра сети и контроль за умными устройствами;
  • поддержка промышленных протоколов ICS/SCADA, наличие GPS коннектора;
  • отказоустойчивость при работе в экстремальных условиях (высокая/низкая температура, осадки, повышенная вибрация).

Характеристики NGFW
1570 Rugged
Максимальное количество соединений в сек
13 500
Максимальное количество конкурентных соединений
500 000
Пропускная способность при Threat Prevention (Мбит/C)
400
Пропускная способность при Firewall + IPS (Мбит/C)
700
Пропускная способность Firewall (Мбит/C)
1900
Рабочие условия применения
-40C ~ 75C (-40F ~ +167F)
Cертификаты на прочность
EN/IEC 60529, IEC 60068-2-27 shock, IEC 60068-2-6 vibration

Кроме этого выделим отдельно ряд функциональных возможностей 1570R:

  • Gaia 80.20 Embedded перечень опций представлен в SK.
  • Лицензия Mobile Access на 200 конкурентных подключений
    поставляется при покупке устройства. Стоит учитывать что эта особенность нового модельного ряда SMB NGFW, позволяющая вам экономить на отдельной покупке лицензий Mobile Access, которые не идут в комплекте при покупке других серий моделей CheckPoint.
  • Возможность управлять шлюзом безопасности с помощью мобильного приложения Watch Tower (более подробно было написано в нашей статье)
  • Автоматическое формирование политик/правил для IoT устройств, в момент их подключения в вашу локальную сеть. Правило генерируется для каждого умного устройства и разрешает только те протоколы, которые ему необходимы для корректной работы.

Управление 1500 серией


Рассмотрев технические характеристики и возможности новых устройств семейства SMB, стоит отметить что существуют различные подходы в части их управления и администрирования. Существуют следующие типовые схемы:

  1. Локальное управление.

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

  2. Централизованное управление через выделенный Management Server. Данный подход применяется в случае, когда администратор может управлять несколькими NGFW, они могут находиться на различных площадках. Преимуществом данного подхода является гибкость и контроль за общим состоянием инфраструктуры, также некоторые опции Gaia 80.20 Embedded доступны только при такой схеме.

  3. Централизованное управление через Smart-1 Cloud. Это новый сценарий для управления NGFW от CheckPoint. Ваш Management Server разворачивается в облачной среде, все управление происходит через Web-Интерфейс, позволяя не зависеть от ОС вашего ПК. В дополнение обслуживание сервера управления остается за специалистами CheckPoint, его производительность напрямую зависит от выбранных параметров и легко масштабируема.

  4. Централизованное управление через SMP (Security Management Portal). Это решение включает в себя развертывание в облаке или локально одного общего веб-портала, способного одновременно управлять до 10 000 SMB устройств.
  5. Возможность управления через мобильное устройство Watch Tower, доступно только после развертывания полноценного варианта управления (см. пункты 1-4). Подробно об этой функции в нашей статье.

Отметим наиболее важные на наш взгляд:

  1. Отсутствие возможности развернуть Mobile Access Portal. Пользователи смогут использовать Remote Access для доступа к внутренним ресурсам компании, но не будут иметь возможности подключаться на SSL-портал c вашим опубликованным приложениям.
  2. Не поддерживаются следующие блейды или опции: Content Awareness, DLP, Updatable Objects, SSL инспекция без категоризации, Threat Extraction, MTA c проверкой Threat Emulation, Antivirus для сканирования архивов, ClusterXL в режиме Load Sharing.

В конце статьи хотелось бы отметить, что тема NGFW решения для SMB перешла на новый уровень поддержки и взаимодействия, за счет релиза версии 80.20 Embedded достигнут баланс между опциями полноценной версии Gaia и возможностями аппаратной части оборудования для малых офисов. Мы планируем продолжать публиковать цикл обучающих статей, где будем рассматривать базовую настройку SMB-решений, тюнинг производительности и их новые опции.

Большая подборка материалов по Check Point от TS Solution. Следите за обновлениями (Telegram, Facebook, VK, TS Solution Blog, Яндекс.Дзен).
Подробнее..

Процедура обновления Check Point с R80.20R80.30 до R80.40

04.09.2020 10:14:53 | Автор: admin

Более двух лет назад мы писали о том, что перед каждым администратором Check Point рано или поздно встает вопрос обновления на новую версию. В данной статье было описано обновление с версии R77.30 до R80.10. К слову, в январе 2020-го R77.30 стала сертифицированной версией ФСТЭК. Однако за 2 года в Check Point многое изменилось. В статье Check Point Gaia R80.40. Что будет нового? описаны все нововведения, коих много. В данной статье процедура обновления будет описана максимально подробно.

Как известно, существует 2 варианта внедрения Check Point: Standalone и Distributed, то есть без выделенного сервера управления и с выделенным. Вариант Distributed является крайне рекомендованным по нескольким причинам:

  • минимизируется нагрузка на ресурсы шлюза;

  • можно не планировать окно для обслуживания, чтобы провести работы с сервером управления;

  • адекватная работа SmartEvent, так как в Standalone варианте едва ли он будет работать;

  • кластер из шлюзов крайне рекомендуется строить в Distributed конфигурацией.

Учитывая все преимущества Distributed конфигурации, мы рассмотрим обновление сервера управления и шлюза безопасности по отдельности.

Обновление Security Management Server (SMS)

Существует 2 способа обновления SMS:

  • с помощью CPUSE (через Gaia Portal)

  • с помощью Migration Tools (требуется чистая установка - fresh install)

Обновление с помощью CPUSE не рекомендуется коллегами из Check Point, так как у вас не обновится версия файловой системы и ядро. Однако данный способ не требует миграции политик и является намного более быстрым и простым, нежели второй способ.

Чистая установка и миграция политик с помощью Migration Tools - вот рекомендуемый метод. Помимо новых файловой системы и ядра ОС часто бывает, что база данных SMS засоряется, и чистая установка в этом плане - отличный выход, чтобы добавить скорости работы серверу.

1) Первым шагом при любом обновлении является создание бэкапов и снэпшотов. Если у вас имеется физический сервер управления, то бэкап следует сделать из веб-интерфейса Gaia Portal. Зайдите во вкладку Maintenance > System Backup > Backup. Далее вы указываете место сохранения бэкапа. Это может быть SCP, FTP, TFTP сервер или же локально на устройстве, однако тогда придется позже это бэкап скинуть на сервер или компьютер.

Рисунок 1. Создание бэкапа в Gaia PortalРисунок 1. Создание бэкапа в Gaia Portal

2) Далее следует сделать снэпшот во вкладке Maintenance > Snapshot Management > New. Отличия бэкапов от снэпшотов заключается в том, что снэпшоты хранят в себе больше информации, в том числе все установленные хотфиксы. Тем не менее, лучше сделать и то, и то.

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

Рисунок 2. Создание снэпшота в Gaia PortalРисунок 2. Создание снэпшота в Gaia Portal

3) Сохранить конфигурацию устройства из Gaia Portal. Можно заскриншнотить все вкладки настроек, которые есть в Gaia Portal, либо же из Clish ввести команду save configuration <filename>. Далее следует файл с помощью WinSCP или другого клиента забрать к себе на ПК.

Рисунок 3. Сохранение конфигурации в текстовый файл)Рисунок 3. Сохранение конфигурации в текстовый файл)

Примечание: если WinSCP не дает подключиться, смените пользователю shell на /bin/bash либо в веб-интерфейсе во вкладке Users, либо введя команду chsh s /bin/bash <username>.

Обновление с помощью CPUSE

4) Первые 3 шага являются обязательными для любого варианта обновления. Если же вы решили пойти по более простому пути обновления, то в веб-интерфейсе перейдите во вкладку Upgrades (CPUSE) > Status and Actions > Major Versions > Check Point R80.40 Gaia Fresh Install and Upgrade. Нажмите правой клавишей мыши на данное обновление и выберите Verifier. Запуститься процесс проверки на несколько минут, по истечении которых вы увидите сообщение, что устройство может быть обновлено. Если вы видите ошибки, их необходимо исправить.

Рисунок 4. Обновление через CPUSEРисунок 4. Обновление через CPUSE

5) Обновите до последней версии CDT (Central Deployment Tool) - утилиту, которая запущена на сервере управления и позволяет устанавливать обновления, пакеты обновлений, управлять бэкапами, снэпшотами, скриптами и многим другим. Неактуальная версия CDT может привести к проблемам в обновлении. Скачать CDT можно по ссылке.

6) Поместив скачанный архив на SMS в любую директорию через WinSCP, подключитесь по SSH к SMS и зайдите в экспертный режим. Напомню, что пользователь WinSCP должен иметь shell /bin/bash!

7) Введите команды:

cd /somepathtoCDT/

tar -zxvf <NameofCDTPackage>.tgz

rpm -Uhv --force CPcdt-00-00.i386.rpm

Рисунок 5. Установка Central Deployment Tool (CDT)Рисунок 5. Установка Central Deployment Tool (CDT)

8) Следующим шагом является установка образа R80.40. Правой клавишей мыши на обновление Download, затем Install. Имейте в виду, что обновление занимает минут 20-30, и сервер управления будет недоступен какое-то время. Следовательно, имеет смысл согласовать окно для обслуживания.

9) Все лицензии и политики безопасности сохраняются, поэтому далее вам следует скачать новую SmartConsole R80.40.

10) Подключитесь к SMS новой SmartConsole и установите политики безопасности. Кнопка Install Policy в левом верхнем углу.

11) Ваш SMS обновлён, далее следует установить самый последний хотфикс. Во вкладке Upgrades (CPUSE) > Status and Actions > Hotfixes нажмите на правую клавишу мыши Verifier, затем Install Update. Устройство само уйдет в перезагрузку после установки обновления.

Рисунок 6. Установка последнего хотфикса через CPUSEРисунок 6. Установка последнего хотфикса через CPUSE
Обновление с помощью Migration Tools

4) Для начала следует так же обновить до последней версии CDT - пункты 5, 6, 7 из раздела Обновление с помощью CPUSE.

5) Установите пакет Migration Tools необходимый для миграции политик с сервера управления. По данной ссылке можно найти Migration Tools для версий: R80.20, R80.20 M1, R80.20 M2, R80.30, R80.40. Скачивать следует Migration Tools той версии, на которую вы хотите обновиться, а не той, которая у вас сейчас! В нашем случае это R80.40.

6) Далее в веб-интерфейсе SMS идем во вкладку Upgrades (CPUSE) > Status and Actions > Import Package > Browse > Выбираем скачанный файл > Import.

Рисунок 7. Импорт Migration ToolsРисунок 7. Импорт Migration Tools

7) Из экспертного режима на SMS проверьте, что пакет Migration Tools установлен с помощью команды (вывод команды должен совпадать с числом в названии архива Migration Tools):

cpprod_util CPPROD_GetValue CPupgrade-tools-R80.40 BuildNumber 1

Рисунок 8. Проверка установки Migration ToolsРисунок 8. Проверка установки Migration Tools

8) Перейдите в папку $FWDIR/scripts на сервере управления:

cd $FWDIR/scripts

9) Запустите pre-upgrade verifier (проверочный скрипт) с помощью команды (если есть ошибки, исправьте их перед дальнейшими шагами):

./migrate_server verify -v R80.40

Примечание: если видите ошибку Failed to retrieve Upgrade Tools package, но вы проверили, что архив успешно импортирован (см. пункт 4), используйте команду:

./migrate_server verify -v R80.40 -skip_upgrade_tools_check

Рисунок 9. Запуск скрипта проверкиРисунок 9. Запуск скрипта проверки

10) Экспортируйте политики безопасности с помощью команды:

./migrate_server export -v R80.40 /<Full Path>/<Name of Exported File>.tgz

Рисунок 10. Экспорт политики безопасностиРисунок 10. Экспорт политики безопасности

Примечание: если видите ошибку Failed to retrieve Upgrade Tools package, но вы проверили, что архив успешно импортирован (пункт 7), используйте команду:

./migrate_server export -skip_upgrade_tools_check -v R80.40 /<Full Path>/<Name of Exported File>.tgz

11) Посчитайте MD5 хэш-сумму и сохраните себе вывод команды:

md5sum /<Full Path>/<Name of Exported File>.tgz

Рисунок 11. Высчитывание MD5 хэш-суммыРисунок 11. Высчитывание MD5 хэш-суммы

12) С помощью WinSCP переместите данный файл к себе на компьютер.

13) Введите команду df -h и сохраните себе процентное соотношение директорий, исходя из занимаемого места.

Рисунок 12. Процентное соотношение директорий на SMSРисунок 12. Процентное соотношение директорий на SMS

14.1) В случае, если у вас реальный SMS

14.1.1) С помощью Isomorphic Tool создается загрузочная USB флешка с образом Gaia R80.40.

14.1.2) Рекомендую подготовить минимум 2 загрузочные флешки, так как бывает, что не всегда читается флешка.

14.1.3) От имени администратора на компьютере запустите ISOmorphic.exe. В пункте 1 выбираете скачанный образ Gaia R80.40, в пункте 4 флешку. Пункты 2 и 3 изменять не надо!

Рисунок 13. Создание загрузочной флешкиРисунок 13. Создание загрузочной флешки

14.1.4) Выбираете пункт Install automatically without confirmation и важно указать модель вашего сервера управления. В случае с SMS следует выбрать 3 или 4 строка.

Рисунок 14. Выбор модели устройства для создания загрузочной флешкиРисунок 14. Выбор модели устройства для создания загрузочной флешки

14.1.5) Далее вы выключаете аплайнс, вставляете флешку в USB порт, подключаетесь консольным кабелем через COM порт к устройству и включаете SMS. Процесс установки происходит сам собой. IP-адрес по умолчанию - 192.168.1.1/24, а данные для входа admin / admin.

14.1.6) Следующим шагом следует подключение к веб интерфейсу на Gaia Portal (адрес по умолчанию https://192.168.1.1), где вы проходите инициализацию устройства. Во время инициализации вы в основном нажимаете Next, ибо почти все настройки можно поменять в будущем. Однако вы можете изменить сразу IP-адрес, настройки DNS и hostname.

14.2) В случае, если у вас виртуальный SMS

14.2.1) Ни в коем случае не следует удалять старый SMS, создайте новую виртуальную машину с такими же ресурсами (CPU, RAM, HDD) с тем же IP-адресом. Кстати, RAM и HDD можете добавить, так как версия R80.40 чуть более требовательна. Дабы не было конфликта IP-адресов, выключите старый SMS и начните установку нового.

14.2.2) Во время установки Gaia настройте актуальный IP-адрес и выделите под директорию /root адекватное количество места. Процентное соотношение директорий у вас должно примерно сохраниться, используйте вывод df -h.

15) На моменте выбора типа установки Installation Type выбирайте первый вариант, так как, скорее всего, у вас не MDS (Multi-Domain Server). Если MDS, то значит вы управляли многими доменами из под разных сущностей SMS одновременно. Выбирать в это случае следует второй пункт.

Рисунок 15.Выбор типа установки GaiaРисунок 15.Выбор типа установки Gaia

16) Самый важный момент, который нельзя исправить без переустановки - выбор сущности. Следует выбрать Security Management и нажать Next. Далее все по умолчанию.

Рисунок 16. Выбор типа сущности при установке GaiaРисунок 16. Выбор типа сущности при установке Gaia

17) Как только устройство перезагрузится, подключитесь к веб интерфейсу по https://192.168.1.1 или другому IP-адресу, если вы меняли его.

18)Перенесите настройки из скриншотов во все вкладки Gaia Portal, в которых что-то было настроено или же из clish выполните команду load configuration <filename>.txt. Данный файл конфига следует предварительно закинуть на SMS.

Примечание: ввиду того, что ОС новая, WinSCP не даст подключиться под админом, смените пользователю shell на /bin/bash либо в веб-интерфейсе во вкладке Users, либо введя команду chsh s /bin/bash <username> или создайте нового пользователя.

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

md5sum /<Full Path>/<Name of Exported File>.tgz

20) Повторите пункт 6 и установите Upgrade Tools на новый SMS в Gaia Portal во вкладке Upgrades (CPUSE) > Status and Actions.

21) Введите команду в экспертном режиме:

./migrate_server import -v R80.40 -skip_upgrade_tools_check /<Full Path>/<Name of Exported File>.tgz

Рисунок 17. Импорт политики безопасности на новый SMSРисунок 17. Импорт политики безопасности на новый SMS

22) Включите сервисы командой cpstart.

23) Скачайте новую SmartConsole R80.40 и подключитесь к серверу управления. Зайдите в Menu > Manage Licenses and Packages (SmartUpdate) и проверьте, что у вас сохранилась лицензия.

Рисунок 18. Проверка установленных лицензийРисунок 18. Проверка установленных лицензий

24) Установите политику безопасности на шлюз или кластер - Install Policy.

Обновление Security Gateway (SG)

Шлюз безопасности можно обновить через CPUSE, так же как и сервер управления, или установить заново - fresh install. Из моей практики в 99% случаев все заново устанавливают Security Gateway ввиду того, что это занимает практически столько же времени, как и обновление через CPUSE, однако вы получаете чистую обновленную ОС без багов.

По аналогии с SMS сперва требуется создать бэкап и снэпшот, а также сохранить настройки из Gaia Portal. Обратитесь к пунктам 1, 2 и 3 в разделе "Обновление Security Management Server".

Обновление с помощью CPUSE

Обновление Security Gateway через CPUSE происходит точно так же, как и обновление Security Management Server, поэтому, обратитесь в начало статьи.

Важный момент: обновление SG требует перезагрузки! Поэтому проводите обновление в окно для обслуживания. Если у вас кластер, обновите сначала пассивную ноду, затем переключите роли и обновите другую ноду. В случае с кластером окна для обслуживания можно избежать.

Установка новой версии ОС на Security Gateway

1.1) В случае, если у вас реальный SG

1.1.1) С помощью Isomorphic Tool создается загрузочная USB флешка с образом Gaia R80.40. Образ тот же самый, что и на SMS, однако немного иначе выглядит процедура создания загрузочной флешки.

1.1.2) Рекомендую подготовить минимум 2 загрузочные флешки, так как бывает, что не всегда читается флешка.

1.1.3) От имени администратора на компьютере запустите ISOmorphic.exe. В пункте 1 выбираете скачанный образ Gaia R80.40, в пункте 4 флешку. Пункты 2 и 3 изменять не надо!

Рисунок 19. Создание загрузочной флешкиРисунок 19. Создание загрузочной флешки

1.1.4) Выбираете пункт Install automatically without confirmation, и важно указать модель вашего Security Gateway - строки 2 или 3. Если это физическая песочница (SandBlast Appliance), то выбираем строку 5.

Рисунок 20. Выбор модели устройства для создания загрузочной флешкиРисунок 20. Выбор модели устройства для создания загрузочной флешки

1.1.5) Далее вы выключаете аплайнс, вставляете флешку в USB порт, подключаетесь консольным кабелем через COM порт к устройству и включаете шлюз. Процесс установки происходит сам собой. IP-адрес по умолчанию - 192.168.1.1/24, а данные для входа admin / admin. Сперва следует обновлять пассивную ноду, затем установить на нее политику, переключить роли и потом обновить другую ноду. Скорее всего, понадобится окно для обслуживания.

1.1.6) Следующим шагом следует подключение к веб интерфейсу на Gaia Portal, где вы проходите первую инициализацию устройства. Во время инициализации вы в основном нажимаете Next, ибо почти все настройки можно поменять в будущем. Однако вы можете изменить сразу IP-адрес, настройки DNS и hostname.

1.2) В случае, если у вас виртуальный SG

1.2.1) Создайте новую виртуальную машину с такими же ресурсами (CPU, RAM, HDD) или больше, так как версия R80.40 чуть более требовательна. Дабы не было конфликта IP-адресов выключите старый шлюз и начните установку нового с тем же IP-адресом. Старый SG можно спокойно удалить, так как ничего ценного на нем нет, ибо все самое главное - политика безопасности - находится на сервере управления.

1.2.2) Во время установки ОС настройте актуальный IP-адрес и выделите под директорию /root адекватное количество места.

3) Подключитесь по HTTPS порту к шлюзу и начните процесс инициализации. На моменте выбора типа установки Installation Type выберите первый вариант - Security Gateway and/or Security Management.

Рисунок 21. Выбор типа установки GaiaРисунок 21. Выбор типа установки Gaia

4) Важнейший момент - выбор сущности (Products). Следует выбрать Security Gateway и, если у вас кластер, поставить галочку Unit is a part of a cluster, type: ClusterXL. Если у вас кластер VRRP, то выберите такой тип, но это маловероятно.

Рисунок 22. Выбор типа сущности при установке GaiaРисунок 22. Выбор типа сущности при установке Gaia

5)В следующем шаге задайте одноразовый пароль SIC для установления доверия с сервером управления. С помощью этого пароля генерируется сертификат, и по шифрованному каналу взаимодействия сервер управления будет общаться со шлюзом. Галочку Connect to your Management as a Service следует ставить, если сервер управления находится в облаке. Мы буквально недавно написали об этом статью и о том, насколько удобен и прост облачный менеджмент сервер.

Рисунок 23. Создание SIC Рисунок 23. Создание SIC

6) Начните процесс инициализации на следующей вкладке. Как только устройство перезагрузится, подключитесь к веб интерфейсу и перенесите настройки из скриншотов во все вкладки Gaia Portal, в которых что-то было настроено или же из clish выполните команду load configuration <filename>.txt. Данный файл конфига следует предварительно закинуть на шлюз безопасности.

Примечание: ввиду того, что ОС новая, WinSCP не даст подключиться под админом, смените пользователю shell на /bin/bash либо в веб-интерфейсе во вкладке Users, либо введя команду chsh s /bin/bash <username> или создайте нового пользователя с таким shell.

7) Откройте SmartConsole R80.40 и зайдите в объект шлюза безопасности, который вы только что переустановили. Откройте вкладку General Properties > Communication > Reset SIC и введите пароль, заданный в пункте 5.

Рисунок 24. Установка доверия с новым шлюзом безопасностиРисунок 24. Установка доверия с новым шлюзом безопасности

8) Версия Gaia у объекта должна смениться, если не изменится, то поменяйте ее руками. Затем установите политику на шлюз.

9) В Gaia Portal зайдите во вкладку Upgrades (CPUSE) > Status and Actions > Hotfixes и установите последний хотфикс. Устройство уйдет в перезагрузку во время установки!

10) В случае кластера, смените роли нод и проделайте те же шаги для другой ноды.

Заключение

Я постарался сделать максимально понятный и всеобъемлющий гайд по обновлению с версии R80.20/R80.30 до актуальной на данный момент R80.40, так как многое изменилось. Версия Gaia R81 уже появилась в демо режиме, однако процедура обновления более или менее остается идентична. Руководствуясь официальным гайдом от Check Point, вы и сами сможете разобраться во всех тонкостях.

По всем вопросам вы можете обращаться к нам. Мы будем рады помочь с самыми сложными обновлениями и кейсами в рамках нашей технической поддержки CPSupport. Также на нашем сайте есть возможность заказать аудит настроек Check Point или оставить бесплатную заявку на технический кейс.

Большая подборка материалов по Check Point от TS Solution. Следите за обновлениями (Telegram, Facebook, VK, TS Solution Blog, Яндекс.Дзен).

Подробнее..

Взаимодействие с Check Point SandBlast через API

11.09.2020 12:04:11 | Автор: admin

Эта статья будет полезна тем, кто знаком с технологиями Check Point по эмуляции файлов (Threat Emulation) и проактивной очистке файлов (Threat Extraction) и желает сделать шаг в сторону автоматизации данных задач. У Check Point есть Threat Prevention API, который работает как в облаке , так и на локальных устройствах, и функционально он идентичен проверке файлов в потоках web/smtp/ftp/smb/nfs трафика. Данная статья отчасти является авторской трактовкой набора статей из официальной документации, но построенная на своем опыте эксплуатации и на собственных примерах. Также в статье вы найдете авторские коллекции Postman для работы с Threat Prevention API.

Основные сокращения

Threat Prevention API работает с тремя основными компонентами, которые в API вызываются через следующие текстовые значения:

av - компонент Anti-Virus, отвечает за сигнатурный анализ известных угроз.

te - компонент Threat Emulation, отвечает за проверку файлов в песочнице, и вынесение вердикта зловредный (malicious)/чистый(benign) после эмуляции.

extraction - компонент Threat Extraction, отвечающий за быструю конвертацию офисных документов в безопасный вид (в котором удаляется весь потенциально вредоносный контент), в целях их быстрой доставки пользователям/системам.

Структура API и основные ограничения

Threat Prevention API использует всего 4 запроса - upload, query, download и quota. В заголовке для всех четырех запросов нужно передать API ключ, используя параметр Authorization. На первый взгляд, структура может показаться гораздо проще, чем в Management API, но количество полей в запросах upload и query и структура этих запросов достаточно комплексные. Их можно функционально сравнить с профилями Threat Prevention в политике безопасности шлюза/песочницы.

На данный момент, выпущена единственная версия Threat Prevention API - 1.0, в URL для API вызовов следует указывать v1 в той части, где требуется указать версию. В отличии от Management API, указывать версию API в URL адресе обязательно, иначе запрос не выполнится.

Компонент Anti-Virus при вызове без других компонентов (te, extraction) на данный момент поддерживает только запросы query с md5 хэш суммами. Threat Emulation и Threat Extraction поддерживает также sha1 и sha256 хэш суммы.

Очень важно не делать ошибок в запросах! Запрос может быть исполнен без ошибки, но не полностью. Чуть забегая вперед рассмотрим что может происходить при ошибках/опечатках в запросах.

Запрос с опечаткой с слове reports(reportss)
{ "request":  [  {"sha256": {{sha256}},"features": ["te"] , "te": {"images": [                    {                        "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",                        "revision": 1                    }                ],                reportss: ["tar", "pdf", "xml"]            }}] }
В ответе ошибки не будет, но при этом информации об отчетах не будет вовсе
{  "response": [    {      "status": {        "code": 1001,        "label": "FOUND",        "message": "The request has been fully answered."      },      "sha256": "9cc488fa6209caeb201678f8360a6bb806bd2f85b59d108517ddbbf90baec33a",      "file_type": "pdf",      "file_name": "",      "features": [        "te"      ],      "te": {        "trust": 10,        "images": [          {            "report": {              "verdict": "malicious"            },            "status": "found",            "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",            "revision": 1          }        ],        "score": -2147483648,        "combined_verdict": "malicious",        "severity": 4,        "confidence": 3,        "status": {          "code": 1001,          "label": "FOUND",          "message": "The request has been fully answered."        }      }    }  ]}
А вот на запрос без опечатки в ключе reports
{ "request":  [  {"sha256": {{sha256}},"features": ["te"] , "te": {"images": [                    {                        "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",                        "revision": 1                    }                ],                reports: ["tar", "pdf", "xml"]            }}] }
Мы получаем ответ, в котором уже содержатся id для загрузки отчетов
{  "response": [    {      "status": {        "code": 1001,        "label": "FOUND",        "message": "The request has been fully answered."      },      "sha256": "9cc488fa6209caeb201678f8360a6bb806bd2f85b59d108517ddbbf90baec33a",      "file_type": "pdf",      "file_name": "",      "features": [        "te"      ],      "te": {        "trust": 10,        "images": [          {            "report": {              "verdict": "malicious",              "full_report": "b684066e-e41c-481a-a5b4-be43c27d8b65",              "pdf_report": "e48f14f1-bcc7-4776-b04b-1a0a09335115",              "xml_report": "d416d4a9-4b7c-4d6d-84b9-62545c588963"            },            "status": "found",            "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",            "revision": 1          }        ],        "score": -2147483648,        "combined_verdict": "malicious",        "severity": 4,        "confidence": 3,        "status": {          "code": 1001,          "label": "FOUND",          "message": "The request has been fully answered."        }      }    }  ]}

Если же отправить неправильный/просроченный API ключ, то в ответ получим ошибку 403.

SandBlast API: в облаке и на локальных устройствах

API запросы можно отправлять на устройства Check Point, на которых включен компонент (blade) Threat Emulation. В качестве адреса для запросов нужно использовать ip/url устройства и порт 18194 (например - https://10.10.57.19:18194/tecloud/api/v1/file/query). Также следует убедиться в том, что политикой безопасности на устройстве разрешено такое подключение. Авторизация через API ключ на локальных устройствах по умолчанию выключена и ключ Authorization в заголовках запросов можно не отправлять вовсе.

API запросы в облако CheckPoint нужно отправлять на адрес te.checkpoint.com (например - https://te.checkpoint.com/tecloud/api/v1/file/query). API ключ можно получить в виде триальной лицензии на 60 дней, обратившись к партнерам Check Point или в локальный офис компании.

На локальных устройствах Threat Extraction пока не поддерживается в стандартном Threat Prevention API и следует использовать Threat Prevention API for Security Gateway (о нем мы поговорим подробнее в конце статьи).

Локальные устройства не поддерживают запрос quota.

В остальном отличий между запросами к локальным устройствам и к облаку нет.

Вызов Upload API

Используемый метод - POST

Адрес для вызова - https://<service_address>/tecloud/api/v1/file/upload

Запрос состоит из двух частей (form-data): файла предназначенный для эмуляции/очистки и тела запроса с текстом.

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

Необходимый минимум для запроса upload

HTTP POST

https://<service_address>/tecloud/api/v1/file/upload

Headers:

Authorization: <api_key>

Body

{

"request":{

}

}

File

File

В таком случае файл на обработку попадет в соответствии с параметрами по умолчанию: компонент - te, образы ОС - Win XP и Win 7, без генерации отчета.

Комментарии по основным полям в текстовом запросе:

file_name и file_type можно оставить пустыми или не отправлять вовсе, так как это не особо полезная информация при загрузке файла. В API ответе данные поля заполнятся автоматически на основе имени загружаемого файла, а информацию в кэше все равно придется искать по md5/sha1/sha256 hash суммам.

Пример запроса с пустыми file_name и file_type
{"request":{"file_name": "","file_type": "",}}

features - список, в котором указывается необходимый функционал при обработке в песочнице - av (Anti-Virus), te (Threat Emulation), extraction (Threat Extraction). Если данный параметр не передать вовсе, то будет задействован только компонент по умолчанию - te(Threat Emulation).

Чтобы включить проверку в трех доступных компонентах, нужно указать эти компоненты в API запросе.

Пример запроса с проверкой в av, te и extraction
{ "request":  [  {"sha256": {{sha256}},"features": ["av", "te", "extraction"]  }] }

Ключи в разделе te

images - список, внутри которого должны быть указаны словари с id и номером ревизии операционных систем, в которых будет выполняться проверка. ID и номера ревизий одинаковые для всех локальных устройств и облака.

Список операционных систем и ревизий

Available OS Image ID

Revision

Image OS and Application

e50e99f3-5963-4573-af9e-e3f4750b55e2

1

Microsoft Windows: XP - 32bit SP3
Office: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player9r115 andActiveX10.0
Java Runtime:1.6.0u22

7e6fe36e-889e-4c25-8704-56378f0830df

1

Microsoft Windows: 7 - 32bit
Office: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player:10.2r152 (Plugin&ActiveX)
Java Runtime:1.6.0u0

8d188031-1010-4466-828b-0cd13d4303ff

1

Microsoft Windows: 7 - 32bit
Office: 2010
Adobe Acrobat Reader: 9.4
Flash Player:11.0.1.152 (Plugin&ActiveX)
Java Runtime:1.7.0u0

5e5de275-a103-4f67-b55b-47532918fa59

1

Microsoft Windows: 7 - 32bit
Office: 2013
Adobe Acrobat Reader: 11.0
Flash Player:15 (Plugin&ActiveX)
Java Runtime:1.7.0u9

3ff3ddae-e7fd-4969-818c-d5f1a2be336d

1

Microsoft Windows: 7 - 64bit
Office: 2013 (32bit)
Adobe Acrobat Reader: 11.0.01
Flash Player:13 (Plugin&ActiveX)
Java Runtime:1.7.0u9

6c453c9b-20f7-471a-956c-3198a868dc92

1

Microsoft Windows: 8.1 - 64bit
Office: 2013 (64bit)
Adobe Acrobat Reader: 11.0.10
Flash Player:18.0.0.160 (Plugin&ActiveX)
Java Runtime:1.7.0u9

10b4a9c6-e414-425c-ae8b-fe4dd7b25244

1

Microsoft Windows: 10
Office: Professional Plus 2016 en-us
Adobe Acrobat Reader: DC 2015 MUI
Flash Player:20 (Plugin&ActiveX)
Java Runtime:1.7.0u9

Если ключ images не указать вовсе, то эмуляция будет проходить в образах, рекомендованных Check Point (на данный момент это Win XP и Win 7). Данные образы рекомендованы исходя из соображений наилучшего баланса производительности и catch rate.

reports - список отчетов, которые мы запрашиваем на случай, если файл окажется вредоносным. Доступны следующие варианты:

  1. summary - .tar.gz архив, содержащий в себе отчет об эмуляции по всем запрошенным image'ам (как html страницу, так и такие компоненты как видеоролик из ОС эмулятора, дамп сетевого трафика, отчет в json, так и сам сэмпл в архиве под защитой пароля). В ответе ищем ключ - summary_report для последующей загрузки отчета.

  2. pdf - документ об эмуляции в одном image, который многие привыкли получать через Smart Console. В ответе ищем ключ - pdf_report для последующей загрузки отчета.

  3. xml - документ об эмуляции в одном image, удобный для последующего парсинга параметров в отчете. В ответе ищем ключ - xml_report для последующей загрузки отчета.

  4. tar - .tar.gz архив, содержащий в себе отчет об эмуляции в одном запрошенным image'ам (как html страницу, так и такие компоненты как видеоролик из ОС эмулятора, дамп сетевого трафика, отчет в json, так и сам сэмпл в архиве под защитой пароля). В ответе ищем ключ - full_report для последующей загрузки отчета.

Что внутри отчета summary
Ключи full_report, pdf_report, xml_report есть в словаре для каждой ОС
{  "response": [    {      "status": {        "code": 1001,        "label": "FOUND",        "message": "The request has been fully answered."      },      "sha256": "9e6f07d03b37db0d3902bde4e239687a9e3d650e8c368188c7095750e24ad2d5",      "file_type": "html",      "file_name": "",      "features": [        "te"      ],      "te": {        "trust": 10,        "images": [          {            "report": {              "verdict": "malicious",              "full_report": "8d18067e-b24d-4103-8469-0117cd25eea9",              "pdf_report": "05848b2a-4cfd-494d-b949-6cfe15d0dc0b",              "xml_report": "ecb17c9d-8607-4904-af49-0970722dd5c8"            },            "status": "found",            "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",            "revision": 1          },          {            "report": {              "verdict": "malicious",              "full_report": "d7c27012-8e0c-4c7e-8472-46cc895d9185",              "pdf_report": "488e850c-7c96-4da9-9bc9-7195506afe03",              "xml_report": "e5a3a78d-c8f0-4044-84c2-39dc80ddaea2"            },            "status": "found",            "id": "6c453c9b-20f7-471a-956c-3198a868dc92",            "revision": 1          }        ],        "score": -2147483648,        "combined_verdict": "malicious",        "severity": 4,        "confidence": 3,        "status": {          "code": 1001,          "label": "FOUND",          "message": "The request has been fully answered."        }      }    }  ]}
А вот ключ summary_report - есть один для эмуляции в целом
{  "response": [    {      "status": {        "code": 1001,        "label": "FOUND",        "message": "The request has been fully answered."      },      "sha256": "d57eadb7b2f91eea66ea77a9e098d049c4ecebd5a4c70fb984688df08d1fa833",      "file_type": "exe",      "file_name": "",      "features": [        "te"      ],      "te": {        "trust": 10,        "images": [          {            "report": {              "verdict": "malicious",              "full_report": "c9a1767b-741e-49da-996f-7d632296cf9f",              "xml_report": "cc4dbea9-518c-4e59-b6a3-4ea463ca384b"            },            "status": "found",            "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",            "revision": 1          },          {            "report": {              "verdict": "malicious",              "full_report": "ba520713-8c0b-4672-a12f-0b4a1575b913",              "xml_report": "87bdb8ca-dc44-449d-a9ab-2d95e7fe2503"            },            "status": "found",            "id": "6c453c9b-20f7-471a-956c-3198a868dc92",            "revision": 1          }        ],        "score": -2147483648,        "combined_verdict": "malicious",        "severity": 4,        "confidence": 3,        "summary_report": "7e7db12d-5df6-4e14-85f3-2c1e29cd3e34",        "status": {          "code": 1001,          "label": "FOUND",          "message": "The request has been fully answered."        }      }    }  ]}

Можно запросить одновременно отчеты tar и xml и pdf, можно summary и tar и xml. Одновременно запросить summary отчет и pdf не получится.

Ключи в разделе extraction

Для threat extraction используется всего два ключа:

method - pdf(конвертация в pdf, используется по умолчанию) или clean(очистка активного содержимого).

extracted_parts_codes - список кодов для удаления активного содержимого, применимо только для метода clean

Коды для удаления содержимого из файлов

Code

Description

1025

Linked Objects

1026

Macros and Code

1034

Sensitive Hyperlinks

1137

PDF GoToR Actions

1139

PDF Launch Actions

1141

PDF URI Actions

1142

PDF Sound Actions

1143

PDF Movie Actions

1150

PDF JavaScript Actions

1151

PDF Submit Form Actions

1018

Database Queries

1019

Embedded Objects

1021

Fast Save Data

1017

Custom Properties

1036

Statistic Properties

1037

Summary Properties

Для загрузки очищенной копии потребуется сделать ещё и запрос query (о нем пойдет речь далее) через несколько секунд, указав hash сумму файла и компонент extraction в тексте запроса. Забрать очищенный файл можно будет с помощью id из ответа на запрос query - extracted_file_download_id. Ещё раз, чуть забегая вперед, привожу примеры запроса и ответа query для поиска id на загрузку очищенного документа.

Запрос query для поиска ключа extracted_file_download_id
{ "request":  [  {"sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876","features": ["extraction"] , "extraction": {        "method": "pdf"            }}] }
Ответ на запрос query (найдите ключ extracted_file_download_id)
{    "response": [        {            "status": {                "code": 1001,                "label": "FOUND",                "message": "The request has been fully answered."            },            "sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",            "file_type": "",            "file_name": "",            "features": [                "extraction"            ],            "extraction": {                "method": "pdf",                "extract_result": "CP_EXTRACT_RESULT_SUCCESS",                "extracted_file_download_id": "b5f2b34e-3603-4627-9e0e-54665a531ab2",                "output_file_name": "kp-20-xls.cleaned.xls.pdf",                "time": "0.013",                "extract_content": "Macros and Code",                "extraction_data": {                    "input_extension": "xls",                    "input_real_extension": "xls",                    "message": "OK",                    "output_file_name": "kp-20-xls.cleaned.xls.pdf",                    "protection_name": "Potential malicious content extracted",                    "protection_type": "Conversion to PDF",                    "protocol_version": "1.0",                    "risk": 5.0,                    "scrub_activity": "Active content was found - XLS file was converted to PDF",                    "scrub_method": "Convert to PDF",                    "scrub_result": 0.0,                    "scrub_time": "0.013",                    "scrubbed_content": "Macros and Code"                },                "tex_product": false,                "status": {                    "code": 1001,                    "label": "FOUND",                    "message": "The request has been fully answered."                }            }        }    ]}

Общие сведения

В одном API вызове можно отправить только один файл на проверку.

Компонент av не требует дополнительного раздела с ключами, достаточно указать его в словаре features.

Вызов Query API

Используемый метод - POST

Адрес для вызова - https://<service_address>/tecloud/api/v1/file/query

Перед тем как отправлять файл на загрузку (запрос upload), желательно выполнить проверку кэша песочницы (запрос query) в целях оптимизации нагрузки на API сервер, так как возможно на API сервере уже есть информация и вердикт по загружаемому файлу. Вызов состоит только из текстовой части. Обязательная часть запроса - sha1/sha256/md5 hash сумма файла. Её кстати можно получить в ответе на запрос upload.

Необходимый минимум для запроса query

HTTP POST

https://<service_address>/tecloud/api/v1/file/query

Headers:

Authorization: <api_key>

Body

{

"request":{

"sha256": <sha256 hash sum>

}

}

Пример ответа на запрос upload, где видны sha1/md5/sha256 hash суммы
{  "response": {    "status": {      "code": 1002,      "label": "UPLOAD_SUCCESS",      "message": "The file was uploaded successfully."    },    "sha1": "954b5a851993d49ef8b2412b44f213153bfbdb32",    "md5": "ac29b7c26e7dcf6c6fdb13ac0efe98ec",    "sha256": "313c0feb009356495b7f4a60e96737120beb30e1912c6d866218cee830aebd90",    "file_type": "",    "file_name": "kp-20-doc.doc",    "features": [      "te"    ],    "te": {      "trust": 0,      "images": [        {          "report": {            "verdict": "unknown"          },          "status": "not_found",          "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",          "revision": 1        }      ],      "score": -2147483648,      "status": {        "code": 1002,        "label": "UPLOAD_SUCCESS",        "message": "The file was uploaded successfully."      }    }  }}

Запрос query помимо hash суммы в идеале должен быть таким же, как был (или планируется быть) запрос upload, или даже "уже" (содержать в запросе query меньше полей чем в запросе upload). В случае, когда запрос query содержит в себе больше полей, чем было в запросе upload, вы получите в ответе не всю требуемую информацию.

Вот пример ответа на запрос query, где были найдены не все требуемые данные
{  "response": [    {      "status": {        "code": 1006,        "label": "PARTIALLY_FOUND",        "message": "The request cannot be fully answered at this time."      },      "sha256": "313c0feb009356495b7f4a60e96737120beb30e1912c6d866218cee830aebd90",      "file_type": "doc",      "file_name": "",      "features": [        "te",        "extraction"      ],      "te": {        "trust": 10,        "images": [          {            "report": {              "verdict": "malicious",              "pdf_report": "4e9cddaf-03a4-489f-aa03-3c18f8d57a52",              "xml_report": "9c18018f-c761-4dea-9372-6a12fcb15170"            },            "status": "found",            "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",            "revision": 1          }        ],        "score": -2147483648,        "combined_verdict": "malicious",        "severity": 4,        "confidence": 1,        "status": {          "code": 1001,          "label": "FOUND",          "message": "The request has been fully answered."        }      },      "extraction": {        "method": "pdf",        "tex_product": false,        "status": {          "code": 1004,          "label": "NOT_FOUND",          "message": "Could not find the requested file. Please upload it."        }      }    }  ]}

Обратите внимание на поля code и label. Данные поля встречаются три раза в словарях status. Вначале видим глобальный ключ "code": 1006 и "label": "PARTIALLY_FOUND". Далее данные ключи встречаются по каждому отдельному компоненту, которые мы запросили - te и extraction. И если для te понятно, что данные найдены, то для extraction информация отсутствует.

Вот так выглядел запрос query для примера выше
{ "request":  [  {"sha256": {{sha256}},"features": ["te", "extraction"] , "te": {"images": [                    {                        "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",                        "revision": 1                    }                ],                "reports": [                    "xml", "pdf"                ]            }}] }
Если отправить запрос query без компонента extraction
{ "request":  [  {"sha256": {{sha256}},"features": ["te"] , "te": {"images": [                    {                        "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",                        "revision": 1                    }                ],                "reports": [                    "xml", "pdf"                ]            }}] }
То и в ответе будет полная информация ("code": 1001, "label": "FOUND")
{  "response": [    {      "status": {        "code": 1001,        "label": "FOUND",        "message": "The request has been fully answered."      },      "sha256": "313c0feb009356495b7f4a60e96737120beb30e1912c6d866218cee830aebd90",      "file_type": "doc",      "file_name": "",      "features": [        "te"      ],      "te": {        "trust": 10,        "images": [          {            "report": {              "verdict": "malicious",              "pdf_report": "4e9cddaf-03a4-489f-aa03-3c18f8d57a52",              "xml_report": "9c18018f-c761-4dea-9372-6a12fcb15170"            },            "status": "found",            "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",            "revision": 1          }        ],        "score": -2147483648,        "combined_verdict": "malicious",        "severity": 4,        "confidence": 1,        "status": {          "code": 1001,          "label": "FOUND",          "message": "The request has been fully answered."        }      }    }  ]}
Если никакой информации в кэше нет вовсе, то в ответе будет "label": "NOT_FOUND"
{  "response": [    {      "status": {        "code": 1004,        "label": "NOT_FOUND",        "message": "Could not find the requested file. Please upload it."      },      "sha256": "313c0feb009356495b7f4a60e96737120beb30e1912c6d866218cee830aebd91",      "file_type": "",      "file_name": "",      "features": [        "te"      ],      "te": {        "trust": 0,        "images": [          {            "report": {              "verdict": "unknown"            },            "status": "not_found",            "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",            "revision": 1          }        ],        "score": -2147483648,        "status": {          "code": 1004,          "label": "NOT_FOUND",          "message": "Could not find the requested file. Please upload it."        }      }    }  ]}

В одном API вызове можно отправить сразу несколько хэш сумм на проверку. В ответе будут возвращены данные в том же самом порядке, как они были отправлены в запросе.

Пример запроса query с несколькими sha256 суммами
{ "request":  [  {"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81"        },        {"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82"        }] }
Ответ на запрос query с несколькими sha256 суммами
{  "response": [    {      "status": {        "code": 1001,        "label": "FOUND",        "message": "The request has been fully answered."      },      "sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81",      "file_type": "dll",      "file_name": "",      "features": [        "te"      ],      "te": {        "trust": 10,        "images": [          {            "report": {              "verdict": "malicious"            },            "status": "found",            "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",            "revision": 1          }        ],        "score": -2147483648,        "combined_verdict": "malicious",        "severity": 4,        "confidence": 3,        "status": {          "code": 1001,          "label": "FOUND",          "message": "The request has been fully answered."        }      }    },    {      "status": {        "code": 1004,        "label": "NOT_FOUND",        "message": "Could not find the requested file. Please upload it."      },      "sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82",      "file_type": "",      "file_name": "",      "features": [        "te"      ],      "te": {        "trust": 0,        "images": [          {            "report": {              "verdict": "unknown"            },            "status": "not_found",            "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",            "revision": 1          }        ],        "score": -2147483648,        "status": {          "code": 1004,          "label": "NOT_FOUND",          "message": "Could not find the requested file. Please upload it."        }      }    }  ]}

Запрос сразу нескольких hash сумму в запросе query также благоприятно скажется на производительности API сервера.

Вызов Download API

Используемый метод - POST (согласно документации), GET также работает (и может показаться более логичным)

Адрес для вызова - https://<service_address>/tecloud/api/v1/file/download?id=<id>

В заголовке требуется передать API ключ, тело запроса - пустое, id для загрузки передается в url адресе.

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

Итого, ключами в ответе на запрос query, содержащими значение id для загрузки могут быть:

  • summary_report

  • full_report

  • pdf_report

  • xml_report

  • extracted_file_download_id

Безусловно, чтобы в ответе на запрос query были получена эти ключи, их нужно указать в запросе (для отчетов) или не забыть сделать запрос по функции extraction (для очищенных документов)

Вызов Quota API

Используемый метод - POST

Адрес для вызова - https://<service_address>/tecloud/api/v1/file/quota

Для проверки оставшейся квоты в облаке используется запрос quota. Тело запроса пустое.

Пример ответа на запрос quota
{  "response": [    {      "remain_quota_hour": 1250,      "remain_quota_month": 10000000,      "assigned_quota_hour": 1250,      "assigned_quota_month": 10000000,      "hourly_quota_next_reset": "1599141600",      "monthly_quota_next_reset": "1601510400",      "quota_id": "TEST",      "cloud_monthly_quota_period_start": "1421712300",      "cloud_monthly_quota_usage_for_this_gw": 0,      "cloud_hourly_quota_usage_for_this_gw": 0,      "cloud_monthly_quota_usage_for_quota_id": 0,      "cloud_hourly_quota_usage_for_quota_id": 0,      "monthly_exceeded_quota": 0,      "hourly_exceeded_quota": 0,      "cloud_quota_max_allow_to_exceed_percentage": 1000,      "pod_time_gmt": "1599138715",      "quota_expiration": "0",      "action": "ALLOW"    }  ]}

Threat Prevention API for Security Gateway

Данный API был разработан раньше, чем Threat Prevention API и предназначался только для локальных устройств. На данный момент он может быть полезен только в том случае, если вам нужен Threat Extraction API. Для Threat Emulation лучше использовать обычный Threat Prevention API. Чтобы включить TP API for SG и сконфигурировать API ключ требуется выполнить действия из sk113599. Рекомендую обратить внимание на шаг 6b и проверить доступность страницы https://<IPAddressofSecurityGateway>/UserCheck/TPAPI потому как в случае отрицательного результата дальнейшая конфигурация не имеет смысла. На данный url будут отправляться все API вызовы. Тип вызова (upload/query) регулируется в ключе тела вызова - request_name. Также обязательными ключами являются - api_key (нужно запомнить его в процессе конфигурации) и protocol_version (на данный момент актуальная версия 1.1). Официальную документацию для данного API вы можете найти в sk137032. К относительным преимуществам можно отнести возможность отправлять сразу несколько файлов на эмуляцию при их загрузке, так как файлы отправляются в виде текстовой строки base64. Чтобы кодировать/декодировать файлы в/из base64 можно использовать для целей демонстрации в Postman онлайн конвертер, например - https://base64.guru. В практических целях при написании кода следует использовать встроенные методы encode и decode.

Теперь остановимся подробнее на функциях te и extraction в данном API.

Для компонента te предусмотрен словарь te_options в запросах upload/query, а ключи в данном запросе полностью совпадают с ключами te в Threat Prevention API.

Пример запроса для эмуляции файла в Win10 с отчетами
{"request": [{    "protocol_version": "1.1",    "api_key": "<api_key>",    "request_name": "UploadFile",    "file_enc_data": "<base64_encoded_file>",    "file_orig_name": "<filename>",    "te_options": {        "images": [                {                    "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",                    "revision": 1                }            ],        "reports": ["summary", "xml"]    }    }    ]}

Для компонента extraction предусмотрен словарь scrub_options. В данном запросе указывается метод очистки: конвертация в PDF, очистка от активного содержимого или же выбрать режим в соответствии с профилем Threat Prevention(указывается имя профиля). Отличительной особенностью ответа на API запрос с extraction для файла является то, что вы получаете очищенную копию в ответе на этот запрос в виде шифрованной строки base64 (вам не нужно делать запрос query и искать id для загрузки документа)

Пример запроса на очистку файла
    {"request": [{"protocol_version": "1.1","api_key": "<API_KEY>","request_name": "UploadFile","file_enc_data": "<base64_encoded_file>","file_orig_name": "hi.txt","scrub_options": {"scrub_method": 2}}]}
Ответ на запрос
{"response": [{"protocol_version": "1.1","src_ip": "<IP_ADDRESS>","scrub": {"file_enc_data": "<base64_encoded_converted_to_PDF_file>","input_real_extension": "js","message": "OK","orig_file_url": "","output_file_name": "hi.cleaned.pdf","protection_name": "Extract potentially malicious content","protection_type": "Conversion to PDF","real_extension": "txt","risk": 0,"scrub_activity": "TXT file was converted to PDF","scrub_method": "Convert to PDF","scrub_result": 0,"scrub_time": "0.011","scrubbed_content": ""}}]} 

Несмотря на то, что для получения очищенной копии требуется меньше API запросов, я считаю такой вариант менее предпочтительным и удобным, нежели запрос form-data, используемый в Threat Prevention API.

Коллекции Postman

Мною были созданы коллекции в Postman как для Threat Prevention API, так и для Threat Prevention API for Security Gateway, где представлены наиболее распространённые API запросы. Для того, чтобы ip/url API сервера и ключ подставлялись в запросы автоматически, а hash сумма sha256 после загрузки файла также запоминалась, внутри коллекций созданы три переменные(найти их можно перейдя в настройках коллекции Edit -> Variables): te_api(требуется заполнить), api_key(требуется заполнить, кроме случая использования TP API с локальными устройствами), sha256 (оставить пустым, в TP API for SG не используется).

Скачать коллекцию Postman для Threat Prevention API

Скачать коллекцию Postman для Threat Prevention for Security Gateway API

Примеры использования

В сообществе Check Mates представлены скрипты, написанные на Python, которые проверяют файлы из нужной директории как через TP API, так и TP API for SG.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru