
एक बहुत अच्छा भेद्यता स्कैनर
Flan Scan एक हल्का नेटवर्क भेद्यता स्कैनर है। Flan Scan के साथ आप आसानी से अपने नेटवर्क पर खुले पोर्ट पा सकते हैं, सेवाओं और उनके संस्करण की पहचान कर सकते हैं, और अपने नेटवर्क को प्रभावित करने वाले प्रासंगिक CVE की सूची प्राप्त कर सकते हैं।
Flan Scan, Nmap और vulners स्क्रिप्ट के ऊपर एक रैपर है जो Nmap को एक पूर्ण नेटवर्क भेद्यता स्कैनर में बदल देता है। Flan Scan एक कंटेनर के भीतर Nmap को स्थानीय रूप से तैनात करना, परिणामों को क्लाउड पर पुश करना और स्कैनर को Kubernetes पर तैनात करना आसान बनाता है।
इस रिपॉजिटरी को क्लोन करें
सुनिश्चित करें कि आपके पास docker सेटअप है:
$ docker --version
आप जिन IP पतों या CIDR को स्कैन करना चाहते हैं उनकी सूची shared/ips.txt में जोड़ें।
कंटेनर बनाएं:
$ make build
$ make start
डिफ़ॉल्ट रूप से flan Latex रिपोर्ट बनाता है, अन्य प्रारूप प्राप्त करने के लिए चलाएँ:
$ make html
अतिरिक्त समर्थित प्रारूप md (मार्कडाउन), html और json हैं।
स्कैन समाप्त होने पर आपको shared/reports में स्कैन का सारांश देने वाली रिपोर्ट मिलेंगी। आप shared/xml_files में Nmap से कच्चा XML आउटपुट भी देख सकते हैं।
डिफ़ॉल्ट रूप से Flan Scan निम्नलिखित Nmap कमांड चलाता है:
$ nmap -sV -oX /shared/xml_files -oN - -v1 $@ --script=vulners/vulners.nse <ip-address>
-oX फ़्लैग /shared/xml_files निर्देशिका में स्कैन परिणामों का XML संस्करण जोड़ता है और -oN - फ़्लैग "सामान्य" Nmap परिणामों को कंसोल पर आउटपुट करता है। -v1 फ़्लैग वर्बोसिटी को 1 तक बढ़ाता है और -sV फ़्लैग एक सेवा पहचान स्कैन चलाता है (Nmap के डिफ़ॉल्ट पोर्ट और SYN स्कैन के अलावा)। --script=vulners/vulners.nse वह स्क्रिप्ट है जो पहचानी गई सेवाओं को प्रासंगिक CVE से मेल करती है।
Nmap आपको UDP स्कैन चलाने और IPv6 पतों को स्कैन करने की भी अनुमति देता है। इन और अन्य फ़्लैग को Flan Scan के Nmap कमांड में जोड़ने के लिए make build चलाने के बाद कंटेनर चलाएँ और अपने Nmap फ़्लैग इस प्रकार पास करें:
$ docker run -v $(CURDIR)/shared:/shared flan_scan <Nmap-flags>
Flan Scan वर्तमान में Latex रिपोर्ट और कच्ची XML Nmap आउटपुट फ़ाइलों को GCS बकेट या AWS S3 बकेट में पुश करने का समर्थन करता है। Flan Scan को परिणामों को क्लाउड पर पुश करने के लिए 2 पर्यावरण चरों की आवश्यकता होती है। पहला upload है जो दो मानों में से एक लेता है: gcp या aws। दूसरा bucket है और इसका मान S3 या GCS बकेट का नाम है जिसमें परिणाम अपलोड करने हैं। पर्यावरण चर सेट करने के लिए, make build चलाने के बाद कंटेनर चलाएँ और पर्यावरण चर इस प्रकार सेट करें:
$ docker run --name <container-name> \
-v $(CURDIR)/shared:/shared \
-e upload=<gcp or aws> \
-e bucket=<bucket-name> \
-e format=<optional, one of: md, html or json> \
flan_scan
नीचे आवश्यक AWS या GCP प्रमाणीकरण कुंजियों को कंटेनर में पर्यावरण चर के रूप में जोड़ने के कुछ उदाहरण दिए गए हैं। हालाँकि, इसे Kubernetes में एक सीक्रेट के साथ भी पूरा किया जा सकता है जो आवश्यक पर्यावरण चर को उजागर करता है या अन्य सीक्रेट प्रबंधन उपकरणों के साथ।
अपनी GCS निजी कुंजी को एक सेवा खाते के लिए /shared फ़ाइल में कॉपी करें
$ cp <path-to-local-gcs-key>/key.json shared/
GOOGLE_APPLICATION_CREDENTIALS पर्यावरण चर को GCS कुंजी के पथ के रूप में सेट करके कंटेनर चलाएँ
$ docker run --name <container-name> \
-v $(CURDIR)/shared:/shared \
-e upload=gcp \
-e bucket=<bucket-name> \
-e GOOGLE_APPLICATION_CREDENTIALS=/shared/key.json
-e format=<optional, one of: md, html or json> \
flan_scan
AWS_ACCESS_KEY_ID और AWS_SECRET_ACCESS_KEY पर्यावरण चर को अपने S3 सेवा खाते के संबंधित चर पर सेट करें।
docker run --name <container-name> \
-v $(CURDIR)/shared:/shared \
-e upload=aws \
-e bucket=<s3-bucket-name> \
-e AWS_ACCESS_KEY_ID=<your-aws-access-key-id> \
-e AWS_SECRET_ACCESS_KEY=<your-aws-secret-access-key> \
-e format=<optional, one of: md, html or json> \
flan_scan
Flan Scan को कंटेनर ऑर्केस्ट्रेशन सिस्टम, जैसे Kubernetes, में तैनात करते समय, आपको यह सुनिश्चित करना होगा कि कंटेनर के पास / निर्देशिका पर ips.txt नामक फ़ाइल तक पहुँच हो। Kubernetes में, यह ConfigMap के साथ किया जा सकता है जो आपकी स्थानीय फ़ाइल सिस्टम पर एक फ़ाइल को एक वॉल्यूम के रूप में माउंट करेगा जिसे तैनात होने के बाद कंटेनर एक्सेस कर सकता है। kustomization.yaml फ़ाइल में एक उदाहरण है कि shared-files नामक ConfigMap कैसे बनाया जाए। यह ConfigMap तब deployment.yaml फ़ाइल में एक वॉल्यूम के रूप में माउंट किया जाता है।
Kubernetes पर Flan Scan तैनात करने के लिए यहाँ कुछ आसान कदम दिए गए हैं:
kustomization.yaml में स्थानीय ips.txt फ़ाइल का पथ जोड़ें और फिर kubectl apply -k . चलाएँ।kubectl get configmap चलाकर सुनिश्चित करें कि ConfigMap ठीक से बन गया है।deployment.yaml के भीतर अपने क्लाउड प्रदाता के लिए आवश्यक पर्यावरण चर और सीक्रेट सेट करें।kubectl apply -f deployment.yaml चलाकर एक डिप्लॉयमेंट लॉन्च करें जो Flan Scan चलाएगा।Flan Scan को Kubernetes पर सफलतापूर्वक चलना चाहिए!