
كجزء من هدفنا المتمثل في توفير حل شامل للأمن مفتوح المصدر للجميع ، قمنا بتوحيد جميع جهودنا المتعلقة بالمسح في مكان واحد ، وهذا هو trivy.
على مدار العام الماضي ، وضعت TFSEC الأسس لقدرات المسح الضوئي لـ Trivy IAC & Misconfigurations ، بما في ذلك Terraform Scanning ، والتي تم دعمها أصليًا في Trivy لفترة طويلة الآن.
للمضي قدمًا ، نريد تشجيع مجتمع TFSEC على الانتقال إلى Trivy. يمنحك الانتقال إلى Trivy نفس محرك مسح Terraform الممتاز ، مع بعض الفوائد الإضافية:
لمزيد من المعلومات حول كيفية مقارنة Trivy بـ TFSEC والانتقال من TFSEC إلى Trivy ، ألق نظرة على دليل الترحيل.
يستخدم TFSEC تحليلًا ثابتًا لرمز Terraform الخاص بك لاكتشاف عمليات السوء المحتملة.
concat()تم تبنيه من قبل رادار Thatworks Tech:
بالنسبة لمشاريعنا التي تستخدم Terraform ، سرعان ما أصبحت TFSEC أداة تحليل ثابت الافتراضية للكشف عن مخاطر الأمن المحتملة. من السهل الاندماج في خط أنابيب CI ولديه مكتبة متزايدة من الشيكات ضد جميع مقدمي الخدمات والمنصات السحابية الرئيسية مثل Kubernetes. نظرًا لسهولة الاستخدام ، نعتقد أن TFSEC يمكن أن يكون إضافة جيدة لأي مشروع Terraform.

تثبيت مع Brew/Linuxbrew
brew install tfsecتثبيت مع الشوكولاتة
choco install tfsecتثبيت مع السبق الصحفي
scoop install tfsecنص Bash (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 حيث تريد تجاوز الأمر |
| Aquasec/TFSEC-scratch | يخدش | صورة مبنية على الخدش - لا شيء مريح ، فقط يدير tfsec |
لتشغيل:
docker run --rm -it -v " $( pwd ) :/src " aquasec/tfsec /srcيتم تطوير امتداد رمز Visual Studio للتكامل مع نتائج TFSEC. يمكن العثور على مزيد من المعلومات على صفحة سوق TFSEC
إذا كنت ترغب في تشغيل 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 |
| الشيكات الرقمية |
| شيكات جيثب |
| الشيكات Kubernetes |
| الشيكات OpenStack |
| شيكات أوراكل |
تم تصميم TFSEC للتشغيل في خط أنابيب CI. قد ترغب في تشغيل TFSEC كجزء من البناء الخاص بك دون إخراج ملون. يمكنك القيام بذلك باستخدام --no-colour (أو --no-color لأصدقائنا الأمريكيين).
يمكنك إخراج نتائج TFSEC مثل JSON أو CSV أو CheckStyle أو SARIF أو JUNIT أو مجرد تنسيق قديم قابل للقراءة البشرية. استخدم علامة --format لتحديد التنسيق المطلوب.
إذا كنت ترغب في الاندماج مع تنبيهات أمان Github وتضمين إخراج عمليات التحقق من TFSEC ، فيمكنك استخدام إجراء GITHUB TFSEC-SARIF لتشغيل التحليل الثابت ، ثم قم بتحميل النتائج إلى علامة التبويب تنبيهات الأمان.
التنبيهات التي تم إنشاؤها لـ TFSEC-Example-project تبدو مثل هذا.

عند النقر فوق التنبيهات للفرع ، تحصل على مزيد من المعلومات حول المشكلة الفعلية.

لمزيد من المعلومات حول إضافة تنبيهات الأمان ، تحقق من وثائق GitHub
إذا كنت بحاجة إلى دعم إصدارات Terraform التي تستخدم HCL V1 (Terraform <0.12) ، فيمكنك استخدام v0.1.3 من TFSEC ، على الرغم من أن الدعم محدود للغاية ولديه فحوصات أقل.
نرحب دائمًا بالمساهمات ؛ كبير أو صغير ، يمكن أن يكون تحديثات الوثائق ، إضافة شيكات جديدة أو شيء أكبر. يرجى التحقق من دليل المساهمة للحصول على تفاصيل حول كيفية المساعدة.
صنع مع المساهمين-IMG.
tfsec هو مشروع Open Source Security Aqua. تعرف على عملنا مفتوح المصدر ومحفظة هنا. انضم إلى المجتمع ، وتحدث إلينا عن أي مسألة في مناقشة جيثب أو الركود.