
Sebagai bagian dari tujuan kami untuk memberikan solusi keamanan open source yang komprehensif untuk semua, kami telah mengkonsolidasikan semua upaya terkait pemindaian kami di satu tempat, dan itu sepele.
Selama setahun terakhir, TFSEC telah meletakkan fondasi untuk kemampuan pemindaian IAC & salah konfigurasi Trivy, termasuk pemindaian terraform, yang telah secara native didukung pada waktu yang sepele untuk waktu yang lama sekarang.
Ke depan kami ingin mendorong komunitas TFSEC untuk beralih ke Trivy. Pindah ke Trivy memberi Anda mesin pemindaian terraform yang sama, dengan beberapa manfaat tambahan:
Untuk informasi lebih lanjut tentang seberapa trivy dibandingkan dengan TFSEC dan pindah dari TFSEC ke TRIVY, lihatlah Panduan Migrasi.
TFSEC menggunakan analisis statis kode terraform Anda untuk menemukan salah konfigurasi potensial.
concat()Dinilai adopsi oleh radar Tech ThinkWorks:
Untuk proyek kami menggunakan Terraform, TFSEC dengan cepat menjadi alat analisis statis default untuk mendeteksi potensi risiko keamanan. Sangat mudah untuk berintegrasi ke dalam pipa CI dan memiliki perpustakaan cek yang berkembang terhadap semua penyedia cloud dan platform utama seperti Kubernetes. Mengingat kemudahan penggunaannya, kami percaya TFSEC bisa menjadi tambahan yang baik untuk proyek Terraform.

Instal dengan brew/linuxbrew
brew install tfsecPasang dengan cokelat
choco install tfsecInstal dengan scoop
scoop install tfsecBash Script (Linux):
curl -s https://raw.githubusercontent.com/aquasecurity/tfsec/master/scripts/install_linux.sh | bashAnda juga dapat mengambil biner untuk sistem Anda dari halaman rilis.
Atau, instal dengan Go:
go install github.com/aquasecurity/tfsec/cmd/tfsec@latest Harap dicatat bahwa menggunakan go install akan menginstal langsung dari cabang master dan nomor versi tidak akan dilaporkan melalui tfsec --version .
Binari pada halaman rilis ditandatangani dengan kunci penandatanganan TFSEC D66B222A3EA4C25D5D1A097FC34ACEFB46EC39CE
Bentuk informasi lebih lanjut Periksa halaman penandatanganan untuk instruksi tentang verifikasi.
TFSEC akan memindai direktori yang ditentukan. Jika tidak ada direktori yang ditentukan, direktori kerja saat ini akan digunakan.
Status keluar akan menjadi tidak nol jika TFSEC menemukan masalah, jika tidak status keluar akan menjadi nol.
tfsec . Sebagai alternatif untuk memasang dan menjalankan TFSEC pada sistem Anda, Anda dapat menjalankan TFSEC dalam wadah Docker.
Ada sejumlah opsi Docker yang tersedia
| Nama gambar | Basis | Komentar |
|---|---|---|
| Aquasec/TFSEC | Alpine | Gambar TFSEC normal |
| AQUASEC/TFSEC-ALPINE | Alpine | Persis sama dengan Aquasec/TFSEC, tetapi untuk mereka yang suka menjadi eksplisit |
| Aquasec/TFSEC-CI | Alpine | TFSEC tanpa entri titik - berguna untuk ci build di mana Anda ingin menimpa perintah |
| AQUASEC/TFSEC-SCRATCH | menggores | Gambar yang dibangun di atas awal - tidak ada yang berenda, hanya menjalankan TFSEC |
Untuk menjalankan:
docker run --rm -it -v " $( pwd ) :/src " aquasec/tfsec /srcEkstensi kode studio visual sedang dikembangkan untuk berintegrasi dengan hasil TFSEC. Informasi lebih lanjut dapat ditemukan di halaman TFSEC Marketplace
Jika Anda ingin menjalankan TFSEC di repositori Anda sebagai tindakan github, Anda dapat menggunakan https://github.com/aquasecurity/tfsec-pr-commenter-action.
Anda sekarang dapat menginstal tugas TFSEC resmi. Harap ajukan masalah/permintaan fitur apa pun pada repositori tugas.
Anda mungkin ingin mengabaikan beberapa peringatan. Jika Anda ingin melakukannya, Anda dapat menambahkan komentar yang berisi tfsec:ignore:<rule> ke garis yang menyinggung di templat Anda. Atau, Anda dapat menambahkan komentar ke baris di atas blok yang berisi masalah, atau ke blok modul untuk mengabaikan semua kemunculan masalah di dalam modul.
Misalnya, mengabaikan aturan grup keamanan terbuka:
resource "aws_security_group_rule" "my-rule" {
type = " ingress "
cidr_blocks = [ " 0.0.0.0/0 " ] # tfsec:ignore:aws-vpc-no-public-ingress-sgr
}...atau...
resource "aws_security_group_rule" "my-rule" {
type = " ingress "
# tfsec:ignore:aws-vpc-no-public-ingress-sgr
cidr_blocks = [ " 0.0.0.0/0 " ]
}Jika Anda tidak yakin baris mana yang akan ditambahkan komentar, cukup periksa output TFSEC untuk nomor baris dari masalah yang ditemukan.
Anda dapat mengabaikan banyak aturan dengan menggabungkan aturan pada satu baris:
# tfsec:ignore:aws-s3-enable-bucket-encryption tfsec:ignore:aws-s3-enable-bucket-logging
resource "aws_s3_bucket" "my-bucket" {
bucket = " foobar "
acl = " private "
} Anda dapat menetapkan tanggal kedaluwarsa untuk ignore dengan format yyyy-mm-dd . Ini adalah fitur yang berguna ketika Anda ingin memastikan masalah yang diabaikan tidak akan dilupakan dan harus ditinjau kembali di masa depan.
#tfsec:ignore:aws-s3-enable-bucket-encryption:exp:2025-01-02
Abaikan seperti ini hanya akan aktif sampai 2025-01-02 , setelah tanggal ini akan dinonaktifkan.
Anda mungkin ingin mengecualikan beberapa cek dari berjalan. Jika Anda ingin melakukannya, Anda dapat menambahkan argumen baru -e check1,check2,etc ke perintah cmd Anda
tfsec . -e general-secrets-sensitive-in-variable,google-compute-disk-encryption-customer-keys Anda dapat memasukkan nilai-nilai dari file TFVARS dalam pemindaian, menggunakan, misalnya: --tfvars-file terraform.tfvars .
TFSEC mendukung banyak penyedia cloud dan platform populer
| Cek |
|---|
| AWS Checks |
| Cek biru |
| Pemeriksaan GCP |
| Pemeriksaan CloudStack |
| Pemeriksaan Digitalocean |
| Pemeriksaan GitHub |
| Cek Kubernetes |
| Pemeriksaan OpenStack |
| Cek oracle |
TFSEC dirancang untuk berjalan dalam pipa CI. Anda mungkin ingin menjalankan TFSEC sebagai bagian dari build Anda tanpa output berwarna. Anda dapat melakukan ini dengan menggunakan --no-colour (atau --no-color untuk teman-teman Amerika kami).
Anda dapat mengeluarkan hasil TFSEC sebagai JSON, CSV, CheckStyle, Sarif, Junit, atau sekadar format yang dapat dibaca oleh manusia tua. Gunakan bendera --format untuk menentukan format yang Anda inginkan.
Jika Anda ingin berintegrasi dengan peringatan keamanan GitHub dan menyertakan output dari pemeriksaan TFSEC Anda, Anda dapat menggunakan tindakan GitHub TFSEC-Sarif-action untuk menjalankan analisis statis kemudian mengunggah hasil ke tab Alerts keamanan.
Lansiran yang dihasilkan untuk proyek TFSEC-EXAMPLE terlihat seperti ini.

Saat Anda mengklik peringatan untuk cabang, Anda mendapatkan informasi lebih lanjut tentang masalah yang sebenarnya.

Untuk informasi lebih lanjut tentang menambahkan peringatan keamanan, periksa dokumentasi GitHub
Jika Anda perlu mendukung versi Terraform yang menggunakan HCL V1 (Terraform <0,12), Anda dapat menggunakan v0.1.3 dari TFSEC, meskipun dukungan sangat terbatas dan memiliki lebih sedikit pemeriksaan.
Kami selalu menyambut kontribusi; Besar atau kecil, ini bisa menjadi pembaruan dokumentasi, menambahkan cek baru atau sesuatu yang lebih besar. Silakan periksa panduan yang berkontribusi untuk detail tentang cara membantu.
Dibuat dengan kontributor-IMG.
tfsec adalah proyek open source Aqua Security. Pelajari tentang pekerjaan open source dan portofolio kami di sini. Bergabunglah dengan komunitas, dan bicaralah dengan kami tentang masalah apa pun dalam diskusi gitub atau kendur.