TS Solution
TS Solution
10 июня 2020

Red Hat Ansible Automation

Автоматизация средств информационной безопасности
В условиях постоянной нехватки человеческих ресурсов и времени мы всегда задаемся вопросами:
  • Как быстро выполнять большой объем простых монотонных действий?
  • Как избежать при этом ошибок?
В статье мы разберемся, как платформа автоматизации Red Hat Ansible Automation помогает решить все эти задачи.
1.Зачем автоматизировать?
Если говорить про область информационной безопасности, то здесь важна и скорость принятия решения, и скорость его реализации. Если мы смогли в короткий срок детектировать угрозу, но ответные меры заняли продолжительное время или наоборот, в спешке мы изменили политику на каком-либо средстве защиты и заблокировали доступ к критически важным ресурсам для бизнеса, то это можно назвать «неидеальным» результатом.

Таким образом, мы видим, что есть ситуации, в которых нам необходимо действовать быстро и без ошибок (исключим человеческий фактор в виде «в спешке удалили не то правило») и автоматизация нам может в этом помочь.

Примеры:
  • Автоматизация «рутины» - в нашей работе есть множество простых повторяющихся действий, выполнение которых можно возложить на системы автоматизации и тем самым освободить себе время для более сложных/важных задач
  • Ускорение процессов – многие процессы в организации (к примеру, процесс внесения изменений в политику определенного средства защиты) регламентированы, и в них четко определено, кому и какое действие необходимо выполнять. Автоматизация позволит как уменьшить время на выполнение задачи, так и добавить дополнительную проверку корректности действий (сотрудник использует заранее подготовленный шаблон, и шанс опечататься/ошибиться снижается)
  • «Hardening» - мы можем автоматизированно выставлять или проверять параметры безопасности как IT ресурсов, так и, к примеру, средств защиты
2. Red Hat Ansible Automation
В качестве платформы автоматизации рассмотрим Red Hat Ansible Automation:
Red Hat Ansible Automation
Платформа Red Hat Ansible Automation состоит из нескольких компонентов:

Red Hat Ansible Engine – система для управления конфигурациями, установки программного обеспечения и выполнения более сложных IT-задач. Одни из интересных особенностей данного продукта:

  • Не требуется установка агента на целевую систему
  • Для выполнения каких-либо действий используются такие сущности как playbooks — это документ в «формате» YAML («дружественный» формат сериализации данных, концептуально близкий к языкам разметки, но ориентированный на удобство ввода-вывода типичных структур данных многих языков программирования» (c) Википедия), что довольно удобно, так как YAML довольно прост в изучении
  • Коллекции – существует большое количество различных коллекций, которые содержат playbooks, roles, modules, plugins. Мы можем использовать их, добавив их простой командой "ansible-galaxy collection install"
Red Hat Ansible Tower - графический интерфейс для управления и мониторинга работы Red Hat Ansible Engine. Несколько важных особенностей:
  • RBAC – мы можем разграничивать доступ к системе для наших команд и сотрудников
  • Запуск задач по расписанию и использование web-hooks для интеграции с gitlab и github
  • Workflow – мы можем задать последовательность операций в виде комбинации шаблонов заданий
3. Автоматизация работы с NGFW Check Point
Рассмотрим одну из задач платформы автоматизации: автоматизация «рутины».

Для этого нам потребуется:
  • NGFW Check Point с включенным Management API
  • Red Hat Ansible Engine c коллекцией check_point.mgmt
Management API устанавливается как часть Check Point Management Server, но может быть не активирована:
  • API server включен, если у Check Point Management Server есть как 4GB RAM или у stand-alone server имеется 8GB RAM
  • Если у Check Point Management Server меньше 4GB RAM ,то API server можно активировать через SmartConsole (Manage & Settings > Blades > Management API > Advanced Settings)
Проверим, запущен ли Management API, командой "api status":
API status
Для добавления коллекции check_point.mgmt на Red Hat Ansible Engine воспользуемся командой " ansible-galaxy collection install check_point.mgmt " и добавим переменные:

[check_point]
%CHECK_POINT_MANAGEMENT_SERVER_IP% [check_point:vars] ansible_httpapi_use_ssl=True ansible_httpapi_validate_certs=False ansible_user=%CHECK_POINT_MANAGEMENT_SERVER_USER% ansible_password=%CHECK_POINT_MANAGEMENT_SERVER_PASSWORD% ansible_network_os=check_point.mgmt.checkpoint

После этого мы сможем воспользоваться множеством готовых модулей для работы с Check Point и задействовать их в наших playbooks.

Ниже представлен пример playbook, который добавляет хост и подсеть с заданными настройками NAT в Check Point Management Server:
Playbook для создания хоста и подсети
Используя подобный playbook как шаблон и добавив в него необходимые параметры объектов (имя, адреса, итп), мы можем автоматизированно создать большое количество сетевых объектов, даже не заходя на консоль управления Check Point SmartConsole. Это может быть полезно, к примеру, при добавлении нового филиала со своей инфраструктурой к средству защиты, в нашем примере Check Point.
4. Автоматизация работы с NGFW FortiGate
На данном примере рассмотрим другую задачу автоматизации – это «Hardening» и выполним её для другого продукта – NGFW FortiGate. Для этого нам также потребуется отдельная коллекция, в данном случае это "fortinet.fortios:1.0.9". Установим её командой "ansible-galaxy collection install fortinet.fortios:1.0.9".

С помощью соответствующего playbook настроим параметр "admintimeout" - «Number of minutes before an idle administrator session times out (5 - 480 minutes (8 hours)). A shorter idle timeout is more secure»:
Playbook изменения параметров timeout сессии администратора
Даже если кто-то из администраторов системы изменил её параметры и сделал менее безопасной, запуская подобный playbook, мы всегда можем вернуть исходное значение.
5. Автоматизация работы, используя Red Hat Ansible Tower
До этого момента мы создавали различные playbook и запускали их по отдельности из командной строки Red Hat Ansible (ansible-playbook "playbook.yml"). Но это может быть не очень удобно, поэтому воспользуемся возможностями Red Hat Ansible Tower, чтобы еще больше облегчить себе жизнь.

В качестве примера рассмотрим задачу: нам необходимо выполнять проверку настроек средств защиты (hardening) с какой-либо периодичностью. Возможные решения:

  1. Создаем необходимые playbooks и руками запускаем их в нужном порядке с определенной периодичностью
  2. Создаем необходимые playbooks и настраиваем их автозапуск средства ОС и Red Hat Ansible Engine
  3. Создаем необходимые playbooks и настраиваем необходимый нам workflow с помощью Red Hat Ansible Tower
Вариант №3 предпочтительнее. Далее рассмотрим его подробнее.
Создаем workflow:
Workflow
В данной цепочке мы запускаем необходимые нам playbooks:
  • forti_admin_timeout – playbook из предыдущего примера, где мы выставляем время таймаута сессии администратора для NGFW Forti Gate
  • cp_must_have_access_rules – в данном playbook мы проверяем, есть ли в политике доступа для NGFW Check Point необходимые нам правила (например, Stealth и CleanUp правила)
Если хоть один из необходимых нам playbook не может быть выполнен, то мы запускаем другой playbook – telegram (оповещение о том, что workflow не выполнился в канал telegram). Также настроим автозапуск нашего workflow каждую неделю в определенное время:
Schedule
6. Заключение
Используя платформу автоматизации Red Hat Ansible Automation, мы получаем инструмент, который позволяет нам быстро выполнять большой объем простых монотонных действий, контролировать различные процессы внесения изменений, проверку эталонных параметров в системах, и в итоге выполнять наши задачи быстрее и с меньшим риском ошибок.
Коллеги, благодарим за прочтение статьи!
Приглашаем вас узнать больше о решении, приняв участие в вебинаре "Автоматизация средств ИБ с помощью Red Hat Ansible Automation на примере Check Point"

Читайте также: