
В рамках нашей цели обеспечить всеобъемлющее решение для обеспечения безопасности с открытым исходным кодом, мы консолидировали все наши усилия, связанные с сканированием в одном месте, и это тривиано.
За прошедший год TFSEC заложил фонды на возможности сканирования IAC и неправильных конфигураций Trivy, в том числе сканирование Terraform, которое уже давно поддерживается в Trivy.
В дальнейшем мы хотим поощрять сообщество TFSEC к переходу на Trivy. Переход в тривиал дает вам такой же превосходный двигатель сканирования терраформ, с некоторыми дополнительными преимуществами:
Для получения дополнительной информации о том, как Trivy сравнивается с TFSEC и переход от TFSEC к Trivy, посмотрите на руководство по миграции.
TFSEC использует статический анализ вашего кода Terraform для определения потенциальных неправильных сборов.
concat()Рейтинг принял технологический радар мысли:
Для наших проектов с использованием Terraform TFSEC быстро стал инструментом статического анализа по умолчанию для обнаружения потенциальных рисков безопасности. Это легко интегрироваться в трубопровод CI и имеет растущую библиотеку чеков против всех основных облачных поставщиков и платформ, таких как Kubernetes. Учитывая его простоту использования, мы считаем, что TFSEC может быть хорошим дополнением к любому проекту Terraform.

Установите с помощью Brew/Linuxbrew
brew install tfsecУстановите с шоколадным
choco install tfsecУстановите со Scoop
scoop install tfsecBash Script (Linux):
curl -s https://raw.githubusercontent.com/aquasecurity/tfsec/master/scripts/install_linux.sh | bashВы также можете взять двоичный файл для вашей системы со страницы релизов.
В качестве альтернативы установите с Go:
go install github.com/aquasecurity/tfsec/cmd/tfsec@latest Обратите внимание, что использование go install будет установлен непосредственно из master ветви, а номера версий не будут сообщены через tfsec --version .
Двоичные файлы на странице выпусков подписаны с ключом подписи TFSEC D66B222A3EA4C25D5D1A097FC34ACEFB46EC39CE
Форма больше информации Проверьте страницу подписи для инструкций по проверке.
TFSEC сканирует указанный каталог. Если не указан каталог, будет использоваться текущий рабочий каталог.
Статус выхода будет ненулевым, если TFSEC найдет проблемы, в противном случае статус выхода будет нулевым.
tfsec . В качестве альтернативы установке и запуску TFSEC в вашей системе вы можете запустить TFSEC в контейнере Docker.
Доступно ряд вариантов Docker
| Название изображения | База | Комментарий |
|---|---|---|
| Aquasec/Tfsec | альпийский | Нормальное изображение TFSEC |
| Aquasec/Tfsec-Alpine | альпийский | Точно так же, как Aquasec/Tfsec, но для тех, кто хотел бы быть явным |
| Aquasec/Tfsec-Ci | альпийский | TFSEC без входа - Полезно для CI Builds, где вы хотите переопределить команду |
| Aquasec/Tfsec-Scratch | царапать | Изображение, построенное на царапине - ничего не вырвавшего, просто запускает tfsec |
Запустить:
docker run --rm -it -v " $( pwd ) :/src " aquasec/tfsec /srcРазрабатывается расширение кода Visual Studio для интеграции с результатами TFSEC. Больше информации можно найти на странице TFSEC Marketplace
Если вы хотите запустить TFSEC в своем хранилище в качестве действия GitHub, вы можете использовать https://github.com/aquasecurity/tfsec-pr-commenter-action.
Теперь вы можете установить официальную задачу TFSEC. Пожалуйста, поднимите любые вопросы/запросы функций в хранилище задачи.
Вы можете проигнорировать некоторые предупреждения. Если вы хотите это сделать, вы можете просто добавить комментарий, содержащий tfsec:ignore:<rule> в линию нарушения в ваших шаблонах. В качестве альтернативы, вы можете добавить комментарий к строке над блоком, содержащей проблему, или в блок модуля, чтобы игнорировать все возникновение проблемы внутри модуля.
Например, игнорировать правило открытой группы безопасности:
resource "aws_security_group_rule" "my-rule" {
type = " ingress "
cidr_blocks = [ " 0.0.0.0/0 " ] # tfsec:ignore:aws-vpc-no-public-ingress-sgr
}...или...
resource "aws_security_group_rule" "my-rule" {
type = " ingress "
# tfsec:ignore:aws-vpc-no-public-ingress-sgr
cidr_blocks = [ " 0.0.0.0/0 " ]
}Если вы не уверены, какую строку добавить комментарий, просто проверьте выход TFSEC для номера строки обнаруженной проблемы.
Вы можете игнорировать несколько правил, объединив правила на одной строке:
# tfsec:ignore:aws-s3-enable-bucket-encryption tfsec:ignore:aws-s3-enable-bucket-logging
resource "aws_s3_bucket" "my-bucket" {
bucket = " foobar "
acl = " private "
} Вы можете установить дату истечения срока действия для ignore форматом yyyy-mm-dd . Это полезная функция, когда вы хотите убедиться, что игнорируемая проблема не будет забыта и должна быть пересмотрена в будущем.
#tfsec:ignore:aws-s3-enable-bucket-encryption:exp:2025-01-02
Игнорировать, как это будет активно только до 2025-01-02 , после этой даты она будет деактивирована.
Вы можете исключить некоторые чеки из работы. Если вы хотите сделать это, вы можете просто добавить новый аргумент -e check1,check2,etc в команду CMD
tfsec . -e general-secrets-sensitive-in-variable,google-compute-disk-encryption-customer-keys Вы можете включить значения из файла TFVARS в сканирование, используя, например: --tfvars-file terraform.tfvars .
TFSEC поддерживает многие популярные поставщики облаков и платформ
| Чеки |
|---|
| AWS чеки |
| Azure проверяет |
| GCP проверяет |
| CloudStack проверяет |
| Digitalocean проверки |
| GitHub проверяет |
| Kubernetes проверяет |
| OpenStack проверяет |
| Oracle проверяет |
TFSEC предназначен для работы в трубопроводе CI. Вы можете запустить TFSEC как часть вашей сборки без цветного вывода. Вы можете сделать это, используя --no-colour (или --no-color для наших американских друзей).
Вы можете вывести результаты TFSEC как JSON, CSV, Checkstyle, SARIF, JUNIT или просто старый читаемый формат. Используйте флаг --format , чтобы указать желаемый формат.
Если вы хотите интегрироваться с оповещениями GitHub Security и включите вывод ваших проверок TFSEC, вы можете использовать действие GitHub TFSEC-SARIF-действия для запуска статического анализа, затем загрузите результаты на вкладку оповещений безопасности.
Оповещения, генерируемые для TFSEC-Example-Project, выглядят так.

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

Для получения дополнительной информации о добавлении оповещений о безопасности проверьте документацию GitHub
Если вам нужно поддерживать версии Terraform, которые используют HCL V1 (Terraform <0,12), вы можете использовать v0.1.3 TFSEC, хотя поддержка очень ограничена и имеет меньше проверок.
Мы всегда приветствуем вклад; Большой или маленький, это могут быть обновления документации, добавление новых чеков или что -то большее. Пожалуйста, проверьте руководство для получения подробной информации о том, как помочь.
Сделано с участниками-Имг.
tfsec - это проект с открытым исходным кодом Aqua. Узнайте о нашей работе с открытым исходным кодом и портфелем здесь. Присоединяйтесь к сообществу и поговорите с нами о любом вопросе в обсуждении или слабых.