
Tfsec अब Trivy का हिस्सा है
सभी के लिए एक व्यापक ओपन सोर्स सुरक्षा समाधान प्रदान करने के हमारे लक्ष्य के भाग के रूप में, हम अपने सभी स्कैनिंग-संबंधी प्रयासों को एक स्थान पर समेकित कर रहे हैं, और वह है Trivy।
पिछले वर्ष में, tfsec ने Trivy की IaC और गलत कॉन्फ़िगरेशन स्कैनिंग क्षमताओं की नींव रखी है, जिसमें Terraform स्कैनिंग भी शामिल है, जो अब लंबे समय से Trivy में मूल रूप से समर्थित है।
आगे बढ़ते हुए हम tfsec समुदाय को Trivy पर स्थानांतरित होने के लिए प्रोत्साहित करना चाहते हैं। Trivy पर जाने से आपको वही उत्कृष्ट Terraform स्कैनिंग इंजन मिलता है, कुछ अतिरिक्त लाभों के साथ:
Trivy की तुलना tfsec से कैसे की जाती है और tfsec से Trivy में स्थानांतरित होने के बारे में अधिक जानकारी के लिए, स्थानांतरण गाइड पर एक नज़र डालें।
tfsec संभावित गलत कॉन्फ़िगरेशन का पता लगाने के लिए आपके terraform कोड का स्थैतिक विश्लेषण उपयोग करता है।
concat()Thoughtworks Tech Radar द्वारा Adopt रेटेड:
Terraform का उपयोग करने वाली हमारी परियोजनाओं के लिए, tfsec तेज़ी से संभावित सुरक्षा जोखिमों का पता लगाने के लिए एक डिफ़ॉल्ट स्थैतिक विश्लेषण उपकरण बन गया है। इसे CI पाइपलाइन में एकीकृत करना आसान है और सभी प्रमुख क्लाउड प्रदाताओं और Kubernetes जैसे प्लेटफार्मों के विरुद्ध जाँचों की एक बढ़ती हुई लाइब्रेरी है। इसके उपयोग में आसानी को देखते हुए, हमारा मानना है कि tfsec किसी भी Terraform परियोजना के लिए एक अच्छा अतिरिक्त हो सकता है।

brew/linuxbrew से स्थापित करें
brew install tfsec
Chocolatey से स्थापित करें
choco install tfsec
Scoop से स्थापित करें
scoop install tfsec
Bash स्क्रिप्ट (Linux):
curl -s https://raw.githubusercontent.com/aquasecurity/tfsec/master/scripts/install_linux.sh | bash
आप अपने सिस्टम के लिए बाइनरी releases पृष्ठ से भी प्राप्त कर सकते हैं।
वैकल्पिक रूप से, Go से स्थापित करें:
go install github.com/aquasecurity/tfsec/cmd/tfsec@latest
कृपया ध्यान दें कि go install का उपयोग करने पर सीधे master शाखा से स्थापना होगी और tfsec --version के माध्यम से संस्करण संख्याएँ रिपोर्ट नहीं की जाएंगी।
releases पृष्ठ पर मौजूद बाइनरी tfsec हस्ताक्षर कुंजी D66B222A3EA4C25D5D1A097FC34ACEFB46EC39CE के साथ हस्ताक्षरित हैं
अधिक जानकारी के लिए सत्यापन निर्देश हेतु हस्ताक्षर पृष्ठ देखें।
tfsec निर्दिष्ट निर्देशिका को स्कैन करेगा। यदि कोई निर्देशिका निर्दिष्ट नहीं है, तो वर्तमान कार्यशील निर्देशिका का उपयोग किया जाएगा।
यदि tfsec समस्याएँ पाता है तो निकास स्थिति (exit status) गैर-शून्य होगी, अन्यथा निकास स्थिति शून्य होगी।
tfsec .
tfsec को अपने सिस्टम पर स्थापित करने और चलाने के विकल्प के रूप में, आप tfsec को Docker कंटेनर में चला सकते हैं।
कई Docker विकल्प उपलब्ध हैं
चलाने के लिए:
docker run --rm -it -v "$(pwd):/src" aquasec/tfsec /src
tfsec परिणामों के साथ एकीकृत करने के लिए एक Visual Studio Code एक्सटेंशन विकसित किया जा रहा है। अधिक जानकारी tfsec Marketplace पृष्ठ पर पाई जा सकती है
यदि आप अपने रिपॉजिटरी पर tfsec को GitHub Action के रूप में चलाना चाहते हैं, तो आप 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 तक सक्रिय रहेगी, इस तिथि के बाद यह निष्क्रिय हो जाएगी।
आप कुछ जाँचों को चलने से बाहर करना चाह सकते हैं। यदि आप ऐसा करना चाहते हैं, तो आप अपने cmd कमांड में नया तर्क -e check1,check2,etc जोड़ सकते हैं
tfsec . -e general-secrets-sensitive-in-variable,google-compute-disk-encryption-customer-keys
आप स्कैन में tfvars फ़ाइल से मान शामिल कर सकते हैं, उदाहरण के लिए: --tfvars-file terraform.tfvars।
tfsec कई लोकप्रिय क्लाउड और प्लेटफ़ॉर्म प्रदाताओं का समर्थन करता है
tfsec CI पाइपलाइन में चलाने के लिए डिज़ाइन किया गया है। आप रंगीन आउटपुट के बिना अपने बिल्ड के भाग के रूप में tfsec चलाना चाह सकते हैं। आप --no-colour (या हमारे अमेरिकी मित्रों के लिए --no-color) का उपयोग करके ऐसा कर सकते हैं।
आप tfsec परिणामों को JSON, CSV, Checkstyle, Sarif, JUnit या सरल मानव-पठनीय प्रारूप में आउटपुट कर सकते हैं। अपना वांछित प्रारूप निर्दिष्ट करने के लिए --format फ़्लैग का उपयोग करें।
यदि आप GitHub सुरक्षा अलर्ट के साथ एकीकृत करना चाहते हैं और अपनी tfsec जाँचों का आउटपुट शामिल करना चाहते हैं, तो आप स्थैतिक विश्लेषण चलाने के लिए tfsec-sarif-action GitHub action का उपयोग कर सकते हैं और फिर परिणामों को सुरक्षा अलर्ट टैब पर अपलोड कर सकते हैं।
tfsec-example-project के लिए उत्पन्न अलर्ट इस प्रकार दिखते हैं।

जब आप शाखा के लिए अलर्ट पर क्लिक करते हैं, तो आपको वास्तविक समस्या के बारे में अधिक जानकारी मिलती है।

सुरक्षा अलर्ट जोड़ने के बारे में अधिक जानकारी के लिए, GitHub दस्तावेज़ देखें
यदि आपको HCL v1 (terraform <0.12) का उपयोग करने वाले terraform संस्करणों के लिए समर्थन चाहिए, तो आप tfsec का v0.1.3 उपयोग कर सकते हैं, हालाँकि समर्थन बहुत सीमित है और इसमें कम जाँचें हैं।
हम हमेशा योगदान का स्वागत करते हैं; बड़ा या छोटा, यह दस्तावेज़ अद्यतन, नई जाँचें जोड़ना या कुछ बड़ा हो सकता है। कृपया सहायता करने के तरीके के विवरण के लिए योगदान गाइड देखें।
contributors-img के साथ निर्मित।
tfsec एक Aqua Security ओपन सोर्स परियोजना है।
हमारे ओपन सोर्स कार्य और पोर्टफोलियो के बारे में यहाँ जानें।
समुदाय से जुड़ें, और GitHub Discussion या Slack में किसी भी विषय पर हमसे बात करें।
| Image Name | Base | Comment |
|---|
| aquasec/tfsec | alpine | सामान्य tfsec इमेज |
| aquasec/tfsec-alpine | alpine | बिल्कुल aquasec/tfsec के समान, लेकिन उन लोगों के लिए जो स्पष्ट होना पसंद करते हैं |
| aquasec/tfsec-ci | alpine | बिना entrypoint वाला tfsec - CI बिल्ड के लिए उपयोगी जहाँ आप कमांड को ओवरराइड करना चाहते हैं |
| aquasec/tfsec-scratch | scratch | scratch पर निर्मित एक इमेज - कोई अतिरिक्त विशेषता नहीं, केवल tfsec चलाती है |
| Checks |
|---|
| AWS जाँचें |
| Azure जाँचें |
| GCP जाँचें |
| CloudStack जाँचें |
| DigitalOcean जाँचें |
| GitHub जाँचें |
| Kubernetes जाँचें |
| OpenStack जाँचें |
| Oracle जाँचें |