SOT

Security Orchestration Tools

Напишите нам на sales@securityvision.ru или закажите демонстрацию

Configuration-as-Code

Configuration-as-Code

  |  Слушать на Google Podcasts  |   Слушать на Mave  |   Слушать на Яндекс Музыке  |  


Алексей Пешик, Security Vision


За последнее десятилетие мы убедились, что выполнение вручную процессов расследования и реагирования ограничивает нас по скорости, что сильно сказывается на возможности обрабатывать прирастающий с каждым днем поток инцидентов и угроз. Для того, чтобы помочь в решении складывающейся ситуации специалисты ИБ начинают применять в своей практике новые подходы, такие как Everything as Code (EaC), который зародился на базе практик разработки ПО.


Одна из основных проблематик обнаружения инцидентов, процедур Threat hunting и обнаружения угроз (TI) — высокая гранулярность скриптов и функций, необходимость контроля версий и учета изменений. Поэтому инженеры по информационной безопасности, стремясь повысить эффективность детекта и улучшить качество работы переняли лучшие практики из IT-разработки и назвали этот метод Configuration-as-Code. Давайте разберемся, что он из себя представляет.


Что такое обнаружение как код?


Configuration-as-Code (или CI/CD в информационной безопасности) – это разбиение процессов и процедур на максимально атомарные функции, работа с которыми ведется по образу и подобию кода: они отдельно хранятся, редактируются, версионируются, тестируются, анализируются на качество и в последующем используются при необходимости в совершенно разных процессах.


Например, процедура аудита учетной записи:

  • во-первых, разбивается на множество реализаций и версий в зависимости от используемых инструментов;

  • во-вторых, используется одна и та же процедура в разных процессах: в инцидент-менеджменте, в ассет-менеджементе и в любых других по необходимости.


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

 

рис 1 2.png


Аналогично концепции Everything as Code (IaC) в Configuration-as-Code (CaC) применяется машиночитаемый формат файлов и описываются масштабируемые модели данных, которые позволяют построить любые инфраструктуры, не ограниченные по объемам, типам и структурам данных.


Здесь можно провести аналогию с DevOps направлением, которое использует практики, помогающие из кирпичиков выстраивать большие сложные pipeline. Так вот, процессы security management также можно декомпозировать, разделить на атомарные функции, многократно переиспользуя четко работающие винтики в большом слаженном механизме.


Подобно рабочему процессу CI/CD, процесс разработки и внедрения функций ИБ должен включать следующие обязательные этапы:

     1. Идентификация логики подозрительного или вредоносного поведения;

     2. Воспроизведение (моделирование) этого поведения в коде. Например, если процесс запущен из нестандартного родителя – сработка;

     3. Написание различных тест кейсов для проверки работоспособности функции;

     4. Включение функции в систему контроля версий;

     5. Сборка, раскатка в прод, сборка билда;

     6. Постоянная поддержка, обновление (процесс поддержки функции ИБ работает в PDCA цикле постоянного обновления и поддержки, для совершенно разных случаев отклонений, нарушений корректности работы).


Эти шаги показывают, что рабочий процесс Configuration-as-Code должен учитывать процедуру улучшения существующего репозитория функций ИБ. При необходимости по каждой функции можно вернуться на первый шаг и обкатать сложные операции вновь через процедуру тестирования и раскатки.


Концепция Detection-as-Code возникла из потребности в автоматизированных, систематически повторяемых и фиксируемых подходах к безопасности, что и является ее ценностью. Ранее обнаружение угроз не было полностью развито как систематическая регулярная дисциплина с эффективной автоматизацией и фиксацией результатов.


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


Каковы преимущества Configuration-as-Code?

 

рис 2 2.png


Преимущества Configuration-as-Code включают:

     1. Создание собственных гибких средств обнаружения с помощью языка программирования;

     2 Применение подхода разработки через тестирование (TDD);

     3. Интеграция с системами контроля версий;

     4. Автоматизация рабочих процессов;

     5. Повторное использование кода.


Написание обнаружений на распространённом, гибком и удобном языке, таком как Python, имеет множество преимуществ.


Удобство и простота


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


За вас уже многое разработано


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


TDD


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


Кроме того, подход TDD улучшает качество кода обнаружения, делая его более модульным, расширяемым и гибким. Инженеры могут легко вносить изменения в свой код, не опасаясь нарушить работу алертов или ослабить безопасность инфраструктуры.


Системы контроля версий


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


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


Автоматизация процессов безопасности


Инженеры по информационной безопасности, ожидавшие сдвиг в автоматизации, получат преимущества от интеграции конвейера CI/CD. Внедрение этого метода на ранних этапах процесса доставки помогает достичь двух целей:

  • Устранение разрозненности между командами, которые работают на общей платформе и проверяют код друг друга;

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


Переиспользование своей работы


Наконец, Detection-as-Code способствует повторному использованию кода для широкого спектра обнаружений. По мере того, как инженеры по информационной безопасности пишут код для обнаружения, они начинают выявлять неочевидные закономерности и неоднократные повторения процедур. Эта декомпозиция дает возможность оптимизировать процесс и повторно переиспользовать код в аналогичных кейсах в других детектах.


Заключение


Каждая инфраструктура уникальна и требует индивидуального подхода к методам обнаружения. Концепция Detection-as-Code (DaC) позволяет инженерам ИБ создавать индивидуальные правила, регулярно проводя улучшения за счет тестирования кода, управляя версиями с помощью различных программных средств. Гибкость и надежность языков программирования позволяет выявлять как простые, так и сложные действия злоумышленников, обеспечивая при этом необходимое обогащение контекста. В рамках этого подхода специалисты даже структурируют и нормализовывают журналы в строгую схему для выполнения SQL-запросов, что помогает в исследовании отказоустойчивости при обработке больших объемов данных о событиях безопасности.


Обнаружение как код (DaC) занимает свое заслуженное место рядом с инфраструктурой как код (IaC) в рамках быстро развивающейся концепции "Everything as Code" (EaC), где каждый уровень стека выражается посредством кода.

 

TIP Управление ИБ Практика ИБ Подкасты ИБ

Похожие статьи

Безопасная разработка без барьеров: как построить SSDLC, который реально работает
Безопасная разработка без барьеров: как построить SSDLC, который реально работает
Next Generation Firewall (NGFW) – что это и от чего защищает
Next Generation Firewall (NGFW) – что это и от чего защищает
Out of the box: отчуждаемый механизм корреляции
Out of the box: отчуждаемый механизм корреляции
No-code-разработка и ML-помощники – инструменты аналитиков SOC нового поколения
No-code-разработка и ML-помощники – инструменты аналитиков SOC нового поколения
Авторизация
Авторизация
Процесс поиска, анализа и оценки уязвимостей
Процесс поиска, анализа и оценки уязвимостей
Управление непрерывностью бизнеса
Управление непрерывностью бизнеса
Сканер уязвимостей
Сканер уязвимостей
Как устроены вредоносные программы
Как устроены вредоносные программы
Безопасность контейнеров на новом уровне: погружение в Trivy
Безопасность контейнеров на новом уровне: погружение в Trivy
Разумный комплаенс как способ избежать когнитивных искажений при построении СМИБ
Разумный комплаенс как способ избежать когнитивных искажений при построении СМИБ

Похожие статьи

Безопасная разработка без барьеров: как построить SSDLC, который реально работает
Безопасная разработка без барьеров: как построить SSDLC, который реально работает
Next Generation Firewall (NGFW) – что это и от чего защищает
Next Generation Firewall (NGFW) – что это и от чего защищает
Out of the box: отчуждаемый механизм корреляции
Out of the box: отчуждаемый механизм корреляции
No-code-разработка и ML-помощники – инструменты аналитиков SOC нового поколения
No-code-разработка и ML-помощники – инструменты аналитиков SOC нового поколения
Авторизация
Авторизация
Процесс поиска, анализа и оценки уязвимостей
Процесс поиска, анализа и оценки уязвимостей
Управление непрерывностью бизнеса
Управление непрерывностью бизнеса
Сканер уязвимостей
Сканер уязвимостей
Как устроены вредоносные программы
Как устроены вредоносные программы
Безопасность контейнеров на новом уровне: погружение в Trivy
Безопасность контейнеров на новом уровне: погружение в Trivy
Разумный комплаенс как способ избежать когнитивных искажений при построении СМИБ
Разумный комплаенс как способ избежать когнитивных искажений при построении СМИБ