Статья IaC Security: сканирование Terraform и Pulumi на уязвимости

1769196715262.webp

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

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

От misconfiguration к breach​

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

Вот пример: ты настраиваешь ресурсы в облаке, и забываешь установить ограничения. Вроде «потом сделаю», а на самом деле - вуаля! Все данные на виду. Не веришь? Открыл S3 бакет публично - за пару минут кто-то из "незваных гостей" может скачать твою информацию. Просто потому что ты забыл ограничить доступ. Или - Security Groups в AWS. Открытые порты на всё, что хочешь. Звучит знакомо? Да-да, это можно легко пропустить в процессе разработки, и вот ты уже в беде.

Эти ошибки, на первый взгляд мелкие, но когда они становятся уязвимыми точками - начинается беда. Проблемы с cloud breaches. Эти ошибки остаются незамеченными, а потом ты сидишь и думаешь: «Вот как я мог этого не заметить?». Погугли про SolarWinds, если вдруг у тебя есть сомнения - все те же ошибки конфигурации, которые в итоге привели к огромной утечке.

Типичные ошибки: public S3, открытые SG​

А теперь давай по пунктам. Открытые S3 бакеты - это уже классика. Часто их оставляют «публичными», думая, что ничего страшного. И тут в этом баге - одна огромная проблема. Все твои данные могут быть просто на виду у каждого. Безопасность? Ну, ты ж только что «обновил» код и забыл об этом. А потом бац - и твой бакет скачивает кто угодно.

И это только верхушка айсберга. Security Groups (SG) - это то, с чем сталкиваются многие. Они должны фильтровать трафик, ограничивать доступ. Но если настроить их на "открыто для всех" - считай, ты сам себе открыл ворота. Порты открыты, и кто угодно может проникнуть в твою систему. Этого тоже можно не заметить, пока не будет слишком поздно.

1769198455200.webp


Compliance requirements​

Но дело не только в ошибках, как таковых. Когда ты работаешь с конфиденциальными данными, всё становится еще сложнее. Compliance - вот что тебе ещё предстоит учесть. Как бы ты ни настраивал инфраструктуру через IaC, нельзя забывать про стандартные требования, такие как GDPR, HIPAA, SOC2. И если ты забудешь что-то учесть, проблемы будут не только техническими, но и юридическими.

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

Если ты хочешь понять, как IaC может стать уязвимым для атак, и узнать, какие ошибки настройки наиболее опасны в облачной инфраструктуре, стоит ознакомиться с этим материалом, который описывает реальные угрозы и риски, с которыми сталкиваются разработчики: "Безопасность облачных сред: Гайд для ИБ-специалиста по защите данных в Cloud".

Checkov​

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

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

Архитектура и поддержка frameworks​

Checkov умеет работать не только с Terraform. Он поддерживает ещё и CloudFormation, и даже Kubernetes. Это для тех случаев, когда твоя инфраструктура не сводится только к одному фреймворку, а разбросана по нескольким платформам. И тут Checkov сильно выигрывает, потому что он универсален. То есть, можно интегрировать его с разными CI/CD пайплайнами и проверять конфигурации в любых облачных сервисах.

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

Built-in policies​

Checkov поставляется с набором уже готовых политик безопасности, которые включают самые важные проверки. То есть, тебе не нужно сидеть и писать что-то с нуля, эти политики уже сделаны, чтобы не дать ошибкам проскользнуть через твою конфигурацию. Проверяются такие вещи, как публичные S3 бакеты, слабые настройки IAM ролей или Security Groups в AWS - это всё, что потенциально может открыть доступ к данным или сервисам.

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

Custom Python policies​

Но вот что прикольно: если тебе нужно больше, чем стандартные политики, Checkov даёт тебе возможность создавать свои собственные правила на Python. Это круто, мы все любим Python, это универсальный инструмент, который даёт тебе полную свободу для настройки. Ты можешь легко прописать, например, правило, которое будет проверять, что каждый IAM роль имеет только необходимые права, или что все конфигурации соответствуют твоим внутренним стандартам безопасности.

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

SARIF и интеграции​

С одной стороны, Checkov позволяет всё настроить через Python и кастомные правила. Но с другой стороны, он ещё поддерживает SARIF - формат для вывода результатов анализа, который широко используется в разных инструментах для разработки. Это открывает возможности для интеграции с такими платформами, как GitHub Actions, Jenkins, GitLab CI и другими. То есть ты можешь настроить проверку прямо в процессе CI/CD, так что проблемы будут фиксироваться прямо до того, как код попадёт в продакшн.

Такие интеграции помогают не просто автоматизировать проверку, но и делать её частью рабочего процесса. Это важно, потому что чем раньше обнаружишь ошибку, тем проще и дешевле её исправить.

tfsec​

tfsec - это ещё один инструмент, который заслуживает внимания. Ориентирован tfsec только на Terraform. Если твоё окружение завязано только на Terraform, то это, возможно, тот инструмент, который ты искал.

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

Terraform-focused подход​

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

Accuracy и performance​

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

Я повторюсь про его производительность. Всё происходит быстро. Причём очень быстро. Если ты используешь его в CI/CD pipeline, то tfsec не замедлит процесс деплоя, и это, по сути, идеальный вариант для проектов с высоким темпом.

Custom YAML rules​

А что если стандартных правил недостаточно? Да ничего страшного, потому что у tfsec есть отличная возможность - писать кастомные правила через YAML. Это, согласись, очень удобно, особенно если ты не хочешь глубоко копаться в коде или писать Python-скрипты.

YAML - это не так сложно, и с ним легко работать, даже если ты не программист. Ты просто прописываешь свои правила, которые отвечают на конкретные вопросы безопасности для твоей инфраструктуры. Предположим, вы хотите создать правило, которое будет проверять, что все S3 бакеты, которые используются для хранения чувствительных данных, имеют включённое шифрование. Это простой пример, который можно легко реализовать в tfsec.
YAML:
rule:
  id: s3-encryption-check
  message: "S3 Bucket should have encryption enabled"
  severity: HIGH
  resource: aws_s3_bucket
  condition:
    - encryption:
        enabled: false
  action: fail
Здесь мы создаём правило, которое будет срабатывать, если S3 бакет не имеет включённого шифрования. Когда правило применяется, если ресурс не соответствует настройкам, будет выведено сообщение с указанием на необходимость включить шифрование.

VS Code extension​

Ещё один приятный момент: tfsec имеет расширение для Visual Studio Code. Если ты разработчик, который работает с Terraform в VS Code, тебе точно понравится эта фишка. Это расширение позволяет находить уязвимости прямо в редакторе, не выходя из него. А значит, все ошибки ты можешь исправить сразу в процессе разработки.

Я, лично, всегда за то, чтобы не переходить из одного инструмента в другой, а всё делать в одном месте. Поэтому возможность работать с tfsec прямо в VS коде - это круто.

Terrascan​

Terrascan - это инструмент, который сочетает в себе мощь и гибкость. Если ты работаешь в мульти-облачном окружении, где не обойтись без облаков вроде AWS, GCP и Azure, то Terrascan - твой верный товарищ. В отличие от tfsec, который фокусируется на Terraform, или Checkov, который охватывает несколько фреймворков, Terrascan даёт тебе универсальное решение для управления безопасностью в Policy-as-Code формате, используя Rego (да, тот самый язык от Open Policy Agent).

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

Policy-as-code с Rego​

Что тут интересного? Ну, Terrascan использует подход Policy-as-Code. Это значит, что политики безопасности прописываются в виде кода. А конкретно в Rego - это язык, который, как я уже сказал, тесно связан с OPA (Open Policy Agent).

Это, по сути, даёт тебе свободу в создании проверок, которые идеально подойдут под твои нужды. Ты можешь настроить правила, которые будут проверять безопасность ресурсов на разных облаках, контролировать доступ, следить за compliance и вообще всё, что угодно. Например, можешь настроить, чтобы каждое новое облачное приложение автоматически проходило проверку на соответствие внутренним стандартам безопасности компании.

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

Multi-cloud support​

Самое классное в Terrascan - это его поддержка мульти-облачных конфигураций. В отличие от других инструментов, которые могут быть ограничены одной платформой, Terrascan отлично работает с AWS, GCP, Azure, даже Yandex Cloud.

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

Terrascan помогает обеспечивать безопасность инфраструктуры без необходимости делать кучу разных настроек для каждого облака. Всё это можно настроить в одном месте, и не надо заморачиваться с отдельными инструментами для разных облаков.

Compliance frameworks​

И ещё один плюс - Terrascan поддерживает множество compliance framework'ов, таких как CIS, SOC2, NIST и другие. Это поможет тебе не только находить уязвимости, но и убедиться, что твоя инфраструктура соответствует самым строгим требованиям.

Например, если твоя компания работает с чувствительными данными и обязана соблюдать GDPR, Terrascan поможет тебе настроить проверки так, чтобы все данные хранились в безопасности, и не выходили за пределы стран, где это запрещено. Так что можно быть уверенным: твоя инфраструктура будет соответствовать всем нужным стандартам и защитит компанию от возможных юридических проблем.

Сравнительный анализ​

Теперь, когда мы разобрались с каждым инструментом по отдельности, давайте взглянем на их сравнительный анализ. Пора понять, кто из этих ребят на самом деле лучший в своём деле. Каждый инструмент имеет свои сильные и слабые стороны, и важно понять, какой из них будет наиболее подходящим для твоего проекта. Мы поговорим про покрытие проверок, ложные срабатывания и, конечно, производительность.
1769198491198.webp

Покрытие проверок​

Первое, на что стоит обратить внимание, - это, собственно, покрытие проверок. У каждого инструмента есть свои особенности. Некоторые из них ориентированы на конкретные технологии, другие - на мультифреймворк и мультиоблачные проекты.
  • Checkov поддерживает несколько фреймворков: Terraform, CloudFormation, Kubernetes и другие. Это даёт ему огромное преимущество в том случае, если ты работаешь с разными облаками и фреймворками. Он будет проверять конфигурации для всех этих технологий, не зависая на одном.
  • tfsec, в свою очередь, полностью сосредоточен на Terraform. Это позволяет ему быть очень точным, но в то же время ограничивает его в плане мультифреймворк и мультиоблачных окружений. Если твоя инфраструктура целиком на Terraform, tfsec - твой выбор.
  • Terrascan не ограничивается одним фреймворком. Он поддерживает AWS, GCP, Azure и другие облака. Это классно, если у тебя несколько облаков и ты хочешь, чтобы проверки охватывали их все. Однако, за счёт такой мульти-облачности, настройка и использование могут быть немного сложнее для новичков.
Так что, если ты работаешь в мультифреймворк или мультиоблачной среде, Checkov будет твоим фаворитом. Если же ты сосредоточен только на Terraform, tfsec обеспечит тебе максимальную точность. А для мульти-облачных сред с кастомными требованиями безопасности стоит попробовать Terrascan.

False positive rates​

Следующий важный момент - ложные срабатывания. Это когда инструмент сообщает о проблеме, которой на самом деле нет. И такие ложные срабатывания могут замедлить твою работу, потому что придётся разбираться, где правда, а где ошибка.
  • Checkov показывает довольно хорошую балансировку между точностью и ложными срабатываниями. Но, как и любой инструмент с большим набором проверок, он иногда может ошибаться - особенно при работе с нестандартными конфигурациями.
  • tfsec в этом плане менее склонен к ложным срабатываниям. Это потому, что он очень точен в проверке Terraform. Но в случае с более сложными проектами и интеграциями, ложные срабатывания тоже могут проявляться, если не настроить правильно.
  • Terrascan иногда даёт больше ложных срабатываний, особенно если политики написаны слишком строго. Однако его поддержка Rego позволяет более гибко настроить проверки, чтобы минимизировать это.
Если ложные срабатывания - твоя головная боль, tfsec будет лучшим выбором. Если тебе нужно больше гибкости и ты не боишься настроить Checkov или Terrascan, то они тоже подойдут, но с учётом их особенностей.

Производительность​

Когда работаешь с большими проектами, производительность становится важным фактором. Нельзя себе позволить затягивать процесс проверки и тестирования, особенно если речь о CI/CD pipeline.
  • tfsec справляется с этим на ура. Быстро работает с конфигурациями Terraform, не замедляя работу проекта. Это важно, когда каждый шаг на счету и время на тесты ограничено.
  • Checkov немного медленнее, особенно если ты работаешь с несколькими фреймворками. Из-за этого время на анализ может немного увеличиться, но это не критично, если у тебя есть время на такие проверки.
  • Terrascan, как и Checkov, может быть немного медленнее из-за своей гибкости и мульти-облачной поддержки. Но всё зависит от сложности твоей инфраструктуры и количества проверок, которые ты включишь в процесс.
Если тебе важна скорость, tfsec будет идеален. Для более гибких решений с множеством фреймворков и облаков тебе подойдут Checkov или Terrascan, но с учётом их производительности.

Cloud-специфичные проверки​

Теперь давай поговорим о cloud-специфичных проверках. Это когда инструмент не просто проверяет стандартные настройки, а фокусируется на уязвимостях, которые свойственны конкретным облачным провайдерам. У каждого облака свои особенности в настройках безопасности, и важно, чтобы инструменты для IaC могли эти особенности учитывать.

Каждое облако - это как своя экосистема, где есть свои типы ресурсов и особенности настройки. Например, в AWS ты сталкиваешься с такими штуками, как S3 бакеты и IAM роли, а в GCP - с Compute Instances и Cloud Storage. И если эти ресурсы не настроены должным образом, это может стать дверью для атакующих. Вот и важно, чтобы инструмент мог найти и указать на такие ошибки.

AWS​

Когда речь идёт о AWS, самые распространённые ошибки - это публичные S3 бакеты, неправильные настройки IAM ролей и Security Groups. Неудивительно, что именно эти уязвимости чаще всего встречаются в IaC проектах. Когда ты работаешь с Terraform или Pulumi, проверить настройки доступа к этим ресурсам бывает не так-то просто. И как раз тут важно иметь инструмент, который поможет сразу заметить, что кто-то случайно оставил бакет публичным или открыл порты на все горизонты.
  • Checkov здесь на высоте. Он предоставляет массу встроенных политик для проверки S3 бакетов, IAM ролей и SG в AWS. Он сразу даст знать, если что-то пошло не так с правами доступа.
  • tfsec тоже хорошо справляется с этим. Он фокусируется на точности и не упустит ни одной ошибки в настройках. Например, если ты по ошибке открыл S3 бакет, tfsec поднимет об этом шум.
  • Terrascan тоже не остаётся в стороне. Он проверяет AWS-конфигурации через compliance frameworks - такие как CIS для AWS, что даёт ещё больше уверенности в безопасности.

GCP​

В Google Cloud ключевыми точками уязвимости будут IAM роли, Compute Engine инстансы и Cloud Storage. В общем, всё, что связано с доступом и хранилищами. Очень важно правильно настроить, кто может получить доступ к этим сервисам и как контролировать их использование.
  • Checkov поддерживает GCP, но тут нужно понимать, что его фокус немного меньше, чем на AWS. Он проверяет базовые элементы, но не так глубоко, как в случае с AWS.
  • tfsec тоже покрывает GCP, но его функционал ограничен в этом облаке, и иногда нужно будет настроить дополнительные проверки.
  • Terrascan в этом плане выигрывает, так как он активно работает с GCP, позволяя настраивать проверки для IAM ролей, сервисных аккаунтов и даже Cloud Storage. Это даёт большой плюс, особенно для крупных проектов с несколькими облаками.

Azure​

Если говорить об Azure, то тут основные проблемы могут быть с настройками Network Security Groups (NSG), Virtual Machines и Azure Active Directory. Неправильная настройка NSG или открытые порты могут привести к серьёзным уязвимостям.
  • Checkov также имеет хорошие встроенные проверки для Azure, особенно в части NSG и Azure Active Directory. Это важные моменты, и Checkov не даст тебе забыть об этом.
  • tfsec, как и с GCP, покрывает Azure, но его фокус, опять же, больше на Terraform, а не на всей экосистеме Azure. Тут тоже придётся делать настройки под свою инфраструктуру.
  • Terrascan здесь реально подходит для более сложных сценариев. Он проверяет как NSG, так и Azure Active Directory и даже настройки безопасности для виртуальных машин.

Yandex Cloud​

Для Yandex Cloud (не такой популярный игрок, но всё равно имеющий свои особенности) ошибки могут возникать в IAM ролях, Object Storage и Compute Cloud инстансах. Несмотря на то, что это не самый распространённый провайдер, важно следить за настройками, чтобы не пропустить уязвимости.
  • Checkov пока поддерживает только базовые проверки для Yandex Cloud, но, по сути, возможности ограничены. Для более глубокого анализа нужно будет искать другие решения.
  • tfsec на данный момент не поддерживает Yandex Cloud, что создаёт проблему для тех, кто активно использует этот облачный провайдер в своих конфигурациях.
  • Terrascan, напротив, поддерживает Yandex Cloud и помогает проверять все ключевые элементы безопасности. Это даёт серьёзное преимущество тем, кто работает в этом облаке.

Интеграция в CI/CD​

Теперь давай поговорим о том, как все эти инструменты интегрируются в CI/CD pipeline. Если твой инструмент для сканирования не интегрируется с твоей системой автоматизации, то зачем вообще его использовать? Все эти инструменты, о которых мы говорили, имеют свои интеграции, и важно настроить их так, чтобы безопасность была проверена на каждом шаге разработки.

GitHub Actions и GitLab CI​

Когда ты работаешь с такими платформами, как GitHub Actions или GitLab CI, интеграция инструментов безопасности - это must-have. Эти платформы позволяют тебе автоматизировать проверку конфигураций прямо перед слиянием изменений в основную ветку. Включая Checkov, tfsec и Terrascan, ты получаешь возможность запускать автоматические проверки на каждом этапе процесса разработки.

Pre-commit hooks​

Всем, кто работает с pre-commit hooks, тоже будет интересно, что с помощью этих инструментов можно интегрировать сканирование непосредственно в процессы коммита. Это значит, что перед тем, как код попадёт в репозиторий, он будет проверён на соответствие безопасности. Это реально помогает избежать проблем с безопасностью, ещё до того как код попадёт в основную ветку.

1769198427239.webp


Если тебе интересен практический разбор того, как DevSecOps‑подход помогает встроить безопасность в CI/CD пайплайн (от сканеров до автоматических проверок), у нас есть материал, который даст более подробный взгляд на процессы и инструменты.

Custom rules и exceptions​

Custom rules и исключения - вот то, что делает твой инструмент для сканирования инфраструктуры по-настоящему мощным. Почему? Потому что стандартных политик безопасности часто не хватает. Да, они хороши, но что делать, если у тебя есть специфические требования или процессы, которые нельзя покрыть стандартными настройками?

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

Custom rules: Python (Checkov) и YAML (tfsec)​

Вот для чего мы и любим Checkov и tfsec - они дают полную свободу в написании кастомных правил. У каждого из этих инструментов своя система.
  • Checkov использует Python для написания кастомных политик. Это даёт тебе полную свободу действий, чтобы прописывать свои собственные правила безопасности. Не нравится как проверяются IAM роли или S3 бакеты? Напиши своё правило. В Python ты можешь настроить проверки настолько детально, что они будут соответствовать даже самым специфическим требованиям твоей компании.

    У этого подхода есть свои плюсы: ты можешь прописывать сложные логические проверки, интегрировать свои правила с другими системами безопасности. Даже если ты не являешься Python-разработчиком, вникнуть в это вполне реально - не такой уж сложный язык.
  • А вот tfsec делает всё через YAML, что тоже круто. Это более декларативный подход, который не требует глубоких знаний программирования. Ты просто прописываешь правила в YAML - и всё. Это упрощает настройку, если ты хочешь сделать проверку на определённые теги или контролировать доступ к ресурсам в облаке. С YAML всё будет быстро и просто, без лишних заморочек.
Так что выбор между Python и YAML зависит от твоих предпочтений и нужд. Если тебе нужна мощь и гибкость - Checkov на Python, если нужно быстро и удобно - tfsec на YAML.

Управление исключениями​

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

Вот тут и вступают в игру исключения. Все эти инструменты позволяют настроить исключения, чтобы ты мог не беспокоиться о лишних предупреждениях. Например:
  • В Checkov можно использовать параметр --exclude, чтобы исключить определённые файлы или правила из анализа. Это удобно, если есть какие-то настройки, которые ты заранее знаешь, что они не должны быть проверены.
  • В tfsec исключения можно прописать через теги, что позволяет в любой момент адаптировать проверки под реальные условия проекта.
  • В Terrascan можно настроить исключения с помощью Rego. Это даёт ещё большую гибкость: можно прописать, какие ресурсы не стоит проверять, и для каких случаев такое исключение оправдано.

Подведем итоги​

IaC - это мощный инструмент для автоматизации инфраструктуры, но ошибки в настройках могут привести к серьёзным проблемам. Мы разобрали три основных инструмента для проверки безопасности: Checkov, tfsec и Terrascan.

Выбор инструмента зависит от специфики проекта, но важно, чтобы безопасность была встроена в процесс разработки. Чем раньше начнёшь думать о безопасности, тем меньше рисков для твоей инфраструктуры.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab