
모든 사람에게 포괄적 인 오픈 소스 보안 솔루션을 제공하려는 목표의 일환으로, 우리는 모든 스캔 관련 노력을 한 곳에서 통합 해 왔으며, 이는 사소한 일입니다.
지난 1 년 동안 TFSEC는 Terraform 스캐닝을 포함하여 Trivy의 IAC & Misconfigurations 스캔 기능에 기초를 세웠습니다.
앞으로 우리는 TFSEC 커뮤니티가 Trivy로 전환하도록 격려하고 싶습니다. Trivy로 이동하면 몇 가지 추가 이점이있는 것과 동일한 우수한 테라 양식 스캐닝 엔진이 제공됩니다.
Trivy가 TFSEC와 어떻게 비교하고 TFSEC에서 Trivy로 이동하는지에 대한 자세한 내용은 마이그레이션 가이드를 살펴보십시오.
TFSEC는 TerraForm 코드의 정적 분석을 사용하여 잠재적 인 오해를 발견합니다.
concat()Thoughtworks 기술 레이더에 의해 채택 된 등급 :
Terraform을 사용하는 프로젝트의 경우 TFSEC는 잠재적 인 보안 위험을 감지하기위한 기본 정적 분석 도구가되었습니다. CI 파이프 라인에 쉽게 통합 할 수 있으며 Kubernetes와 같은 모든 주요 클라우드 제공 업체 및 플랫폼에 대한 수표 라이브러리가 점점 커지고 있습니다. 사용 편의성을 감안할 때, 우리는 TFSEC가 모든 TerraForm 프로젝트에 좋은 추가가 될 수 있다고 생각합니다.

Brew/Linuxbrew로 설치하십시오
brew install tfsec초콜릿으로 설치하십시오
choco install tfsecScoop로 설치하십시오
scoop install tfsec배쉬 스크립트 (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 를 통해 버전 번호는보고되지 않습니다.
릴리스 페이지의 Binaries는 TFSEC 서명 키 D66B222A3EA4C25D5D1A097FC34ACEFB46EC39CE 와 함께 서명합니다.
자세한 정보를 작성하십시오. 확인에 대한 지침은 서명 페이지를 확인하십시오.
TFSEC는 지정된 디렉토리를 스캔합니다. 디렉토리가 지정되지 않으면 현재 작업 디렉토리가 사용됩니다.
TFSEC가 문제를 발견하면 출구 상태가 0이 아닙니다. 그렇지 않으면 종료 상태가 0이됩니다.
tfsec . 시스템에 TFSEC를 설치하고 실행하는 대안으로 Docker 컨테이너에서 TFSEC를 실행할 수 있습니다.
사용 가능한 여러 Docker 옵션이 있습니다
| 이미지 이름 | 베이스 | 논평 |
|---|---|---|
| Aquasec/tfsec | 알파인 | 정상적인 TFSEC 이미지 |
| aquasec/tfsec-alpine | 알파인 | aquasec/tfsec와 정확히 동일하지만, 전체 사람들은 명백한 것을 좋아합니다. |
| aquasec/tfsec-ci | 알파인 | EntryPoint가없는 TFSEC- 명령을 재정의하려는 CI 빌드에 유용합니다. |
| aquasec/tfsec-scratch | 할퀴다 | 스크래치에 구축 된 이미지 - Frilly Nothing은 TFSEC를 실행합니다. |
실행 :
docker run --rm -it -v " $( pwd ) :/src " aquasec/tfsec /srcTFSEC 결과와 통합하기 위해 Visual Studio Code Extension이 개발되고 있습니다. 자세한 정보는 TFSEC Marketplace 페이지에서 확인할 수 있습니다.
저장소에서 GitHub 작업으로 TFSEC를 실행하려면 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 "
} yyyy-mm-dd 형식으로 ignore 위한 만료 날짜를 설정할 수 있습니다. 이것은 무시 된 문제가 잊혀지지 않도록하고 향후 재검토해야 할 때 유용한 기능입니다.
#tfsec:ignore:aws-s3-enable-bucket-encryption:exp:2025-01-02
이 날짜 이후에는 2025-01-02 까지만 활성화 될 것입니다.
실행에서 일부 수표를 제외 할 수 있습니다. 그렇게하려면 CMD 명령에 새로운 인수 -e check1,check2,etc 추가 할 수 있습니다.
tfsec . -e general-secrets-sensitive-in-variable,google-compute-disk-encryption-customer-keys 스캔에 TFVARS 파일의 값을 포함하여 (예 : --tfvars-file terraform.tfvars 포함 할 수 있습니다.
TFSEC는 많은 인기있는 클라우드 및 플랫폼 제공 업체를 지원합니다
| 체크 무늬 |
|---|
| AWS 수표 |
| 푸른 점검 |
| GCP 점검 |
| CloudStack 확인 |
| DigitalOcean 수표 |
| github 확인 |
| Kubernetes 확인 |
| OpenStack 확인 |
| 오라클 확인 |
TFSEC는 CI 파이프 라인에서 실행하도록 설계되었습니다. 색상 출력없이 빌드의 일부로 TFSEC를 실행할 수 있습니다. --no-colour (또는 우리의 미국 친구들을위한 --no-color )를 사용하여이를 수행 할 수 있습니다.
JSON, CSV, CheckStyle, Sarif, Junit 또는 일반적인 인간이 읽을 수있는 형식으로 TFSEC 결과를 출력 할 수 있습니다. --format 플래그를 사용하여 원하는 형식을 지정하십시오.
GitHub 보안 알림과 통합하고 TFSEC 검사의 출력을 포함하려면 TFSEC-Sarif-Action GitHub 작업을 사용하여 정적 분석을 실행 한 다음 결과를 보안 알림 탭에 업로드 할 수 있습니다.
tfsec-example-project에 대해 생성 된 경고는 이것처럼 보입니다.

지점의 경고를 클릭하면 실제 문제에 대한 자세한 정보가 제공됩니다.

보안 알림 추가에 대한 자세한 내용은 Github 문서를 확인하십시오.
HCL V1 (Terraform <0.12)을 사용하는 Terraform 버전을 지원 해야하는 경우 TFSEC의 v0.1.3 사용할 수 있지만 지원이 매우 제한적이고 점검이 적습니다.
우리는 항상 기여를 환영합니다. 크든 작든 문서화 업데이트, 새로운 수표 또는 더 큰 것을 추가 할 수 있습니다. 도움이되는 방법에 대한 자세한 내용은 기고 안내서를 확인하십시오.
기고자와 함께 만들어졌습니다.
tfsec 는 Aqua Security 오픈 소스 프로젝트입니다. 여기에서 우리의 오픈 소스 작업 및 포트폴리오에 대해 알아보십시오. 지역 사회에 가입하고 Github 토론 또는 슬랙의 문제에 대해 이야기하십시오.