
Como parte de nosso objetivo de fornecer uma solução abrangente de segurança de código aberto para todos, estamos consolidando todos os nossos esforços relacionados à digitalização em um só lugar, e isso é curado.
No ano passado, o TFSEC lançou as fundações às capacidades de digitalização do IAC & IAC de trivy, incluindo a digitalização da Terraform, que é apoiada nativamente em trivy há muito tempo.
No futuro, queremos incentivar a comunidade TFSEC a fazer a transição para o Curvy. Mudar para trivy oferece o mesmo excelente motor de varredura de terraforma, com alguns benefícios extras:
Para obter mais informações sobre como trivy se compara ao TFSEC e se move de TFSEC para Trivy, dê uma olhada no Guia de Migração.
O TFSEC usa a análise estática do seu código Terraform para identificar possíveis configurações incorretas.
concat()Adota classificada pelo Radar de Tecnologia do pensamento:
Para nossos projetos usando o Terraform, o TFSEC rapidamente se tornou uma ferramenta de análise estática padrão para detectar possíveis riscos de segurança. É fácil integrar -se a um pipeline de CI e possui uma biblioteca crescente de cheques em relação a todos os principais provedores e plataformas de nuvem como Kubernetes. Dada a sua facilidade de uso, acreditamos que o TFSEC pode ser um bom complemento para qualquer projeto Terraform.

Instale com Brew/LinuxBrew
brew install tfsecInstale com chocolate
choco install tfsecInstale com SCOOP
scoop install tfsecScript Bash (Linux):
curl -s https://raw.githubusercontent.com/aquasecurity/tfsec/master/scripts/install_linux.sh | bashVocê também pode pegar o binário para o seu sistema na página de lançamentos.
Como alternativa, instale com Go:
go install github.com/aquasecurity/tfsec/cmd/tfsec@latest Observe que o uso go install instalará diretamente a partir do ramo master e os números de versão não serão relatados via tfsec --version .
Os binários na página de lançamentos são assinados com a chave de assinatura do TFSEC D66B222A3EA4C25D5D1A097FC34ACEFB46EC39CE
Formulário Mais informações Verifique a página de assinatura para obter instruções sobre verificação.
O TFSEC digitalizará o diretório especificado. Se nenhum diretório for especificado, o diretório de trabalho atual será usado.
O status de saída será diferente de zero se o TFSEC encontrar problemas, caso contrário, o status de saída será zero.
tfsec . Como alternativa à instalação e execução do TFSEC no seu sistema, você pode executar o TFSEC em um contêiner do Docker.
Existem várias opções de docker disponíveis
| Nome da imagem | Base | Comentário |
|---|---|---|
| aquasec/tfsec | alpino | Imagem TFSEC normal |
| Aquasec/TfSec-alpine | alpino | Exatamente o mesmo que aquasec/tfsec, mas para aqueles que gostam de ser explícitos |
| aquasec/tfsec-ci | alpino | TFSEC sem ponto de entrada - útil para construções de IC, onde você deseja substituir o comando |
| aquasec/tfsec-scratch | arranhar | Uma imagem construída no Scratch - nada com babados, apenas executa o TFSEC |
Para correr:
docker run --rm -it -v " $( pwd ) :/src " aquasec/tfsec /srcUma extensão de código do Visual Studio está sendo desenvolvida para se integrar aos resultados do TFSEC. Mais informações podem ser encontradas na página do mercado TFSEC
Se você deseja executar o TFSEC em seu repositório como uma ação do GitHub, pode usar https://github.com/aquasecurity/tfsec-pr-commenter-action.
Agora você pode instalar a tarefa oficial do TFSEC. Aumente quaisquer problemas/solicitações de recursos no repositório de tarefas.
Você pode querer ignorar alguns avisos. Se você quiser fazê -lo, basta adicionar um comentário contendo tfsec:ignore:<rule> à linha ofensiva em seus modelos. Como alternativa, você pode adicionar o comentário à linha acima do bloco que contém o problema ou ao bloco do módulo para ignorar todas as ocorrências de um problema dentro do módulo.
Por exemplo, para ignorar uma regra de grupo de segurança aberta:
resource "aws_security_group_rule" "my-rule" {
type = " ingress "
cidr_blocks = [ " 0.0.0.0/0 " ] # tfsec:ignore:aws-vpc-no-public-ingress-sgr
}...ou...
resource "aws_security_group_rule" "my-rule" {
type = " ingress "
# tfsec:ignore:aws-vpc-no-public-ingress-sgr
cidr_blocks = [ " 0.0.0.0/0 " ]
}Se você não tiver certeza de qual linha adicionar o comentário, basta verificar a saída TFSEC para o número da linha do problema descoberto.
Você pode ignorar várias regras concatenando as regras em uma única linha:
# tfsec:ignore:aws-s3-enable-bucket-encryption tfsec:ignore:aws-s3-enable-bucket-logging
resource "aws_s3_bucket" "my-bucket" {
bucket = " foobar "
acl = " private "
} Você pode definir a data de expiração para ignore com o formato yyyy-mm-dd . Esse é um recurso útil quando você deseja garantir que o problema ignorado não seja esquecido e deve ser revisado no futuro.
#tfsec:ignore:aws-s3-enable-bucket-encryption:exp:2025-01-02
Ignore como esse estará ativo apenas até 2025-01-02 , após essa data, será desativado.
Você pode excluir alguns cheques da corrida. Se você quiser fazer isso, você pode simplesmente adicionar novo argumento -e check1,check2,etc ao seu comando cmd
tfsec . -e general-secrets-sensitive-in-variable,google-compute-disk-encryption-customer-keys Você pode incluir valores de um arquivo TFVARS na verificação, usando, por exemplo: --tfvars-file terraform.tfvars .
O TFSEC suporta muitos provedores populares de nuvem e plataforma
| Cheques |
|---|
| Cheques da AWS |
| Verificações do Azure |
| Verificações do GCP |
| Cheques CloudStack |
| Verificações digitais |
| Verificações do Github |
| Cheques de Kubernetes |
| Verificações do OpenStack |
| Oracle cheques |
O TFSEC foi projetado para executar em um pipeline de CI. Você pode executar o TFSEC como parte da sua compilação sem saída colorida. Você pode fazer isso usando --no-colour (ou --no-color para nossos amigos americanos).
Você pode gerar resultados TFSEC como JSON, CSV, Checkstyle, Sarif, Junit ou apenas formato antigo e legível pelo homem. Use o sinalizador --format para especificar o formato desejado.
Se você deseja integrar-se aos alertas de segurança do GitHub e incluir a saída das verificações do TFSEC, você pode usar a ação do GitHub TFSEC-SARIF-ACTION para executar a análise estática, faça o upload dos resultados na guia Alertas de segurança.
Os alertas gerados para o projeto do Exemplo TFSEC são assim.

Quando você clica nos alertas da filial, obtém mais informações sobre o problema real.

Para obter mais informações sobre como adicionar alertas de segurança, verifique a documentação do GitHub
Se você precisar suportar versões do Terraform que usam HCl V1 (Terraform <0,12), você pode usar v0.1.3 do TFSEC, embora o suporte seja muito limitado e tenha menos cheques.
Sempre agradecemos contribuições; Grande ou pequeno, pode ser atualizações de documentação, adicionando novos cheques ou algo maior. Verifique o guia contribuinte para obter detalhes sobre como ajudar.
Feito com colaboradores-img.
tfsec é um projeto de código aberto de segurança aqua. Aprenda sobre nosso trabalho de código aberto e portfólio aqui. Junte -se à comunidade e converse conosco sobre qualquer assunto em discussão ou folga no Github.