
ماسح ثغرات جميل جداً
Flan Scan هو أداة مسح ضوئي خفيفة الوزن لشبكاتك. باستخدام Flan Scan يمكنك بسهولة العثور على المنافذ المفتوحة في شبكتك، وتحديد الخدمات وإصداراتها، والحصول على قائمة من الثغرات الأمنية ذات الصلة (CVEs) التي تؤثر على شبكتك.
Flan Scan هو غلاف لـ Nmap والنص البرمجي vulners الذي يحول Nmap إلى أداة مسح ضوئي كاملة للثغرات الأمنية في الشبكة. يجعل Flan Scan من السهل نشر Nmap محليًا داخل حاوية، ودفع النتائج إلى السحابة، ونشر الماسح الضوئي على Kubernetes.
استنساخ هذا المستودع
تأكد من إعداد docker:
$ docker --version
أضف قائمة عناوين IP أو CIDRs التي ترغب في مسحها إلى shared/ips.txt.
بناء الحاوية:
$ make build
$ make start
بشكل افتراضي، يقوم flan بإنشاء تقارير Latex، للحصول على تنسيقات أخرى قم بتشغيل:
$ make html
التنسيقات الإضافية المدعومة هي md (markdown) و html و json.
عند انتهاء المسح، ستجد التقارير التي تلخص المسح في shared/reports. يمكنك أيضًا رؤية إخراج XML الخام من Nmap في shared/xml_files.
بشكل افتراضي، يقوم Flan Scan بتشغيل الأمر التالي لـ Nmap:
$ nmap -sV -oX /shared/xml_files -oN - -v1 $@ --script=vulners/vulners.nse <ip-address>
يضيف العلم -oX نسخة XML من نتائج المسح إلى دليل /shared/xml_files، بينما يخرج العلم -oN - نتائج Nmap "العادية" إلى وحدة التحكم. العلم -v1 يزيد مستوى التفصيل إلى 1، والعلم -sV يشغل مسح كشف الخدمات (بالإضافة إلى مسح المنافذ و SYN الافتراضي لـ Nmap). النص البرمجي --script=vulners/vulners.nse هو الذي يطابق الخدمات المكتشفة مع الثغرات الأمنية ذات الصلة (CVEs).
يسمح Nmap أيضًا بتشغيل مسح UDP ومسح عناوين IPv6. لإضافة هذه الأعلام وغيرها إلى أمر Nmap الخاص بـ Flan Scan، بعد تشغيل make build، قم بتشغيل الحاوية ومرر أعلام Nmap الخاصة بك كما يلي:
$ docker run -v $(CURDIR)/shared:/shared flan_scan <Nmap-flags>
يدعم Flan Scan حاليًا دفع تقارير Latex وملفات إخراج XML الخام من Nmap إلى دلو GCS (Google Cloud Storage) أو دلو S3 من AWS. يتطلب Flan Scan متغيري بيئة لدفع النتائج إلى السحابة. الأول هو 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 على مثال لكيفية إنشاء ConfigMap يسمى shared-files. يتم بعد ذلك تركيب هذا ConfigMap كحجم في ملف deployment.yaml.
فيما يلي بعض الخطوات السهلة لنشر Flan Scan على Kubernetes:
ips.txt المحلي في kustomization.yaml ثم قم بتشغيل kubectl apply -k ..kubectl get configmap للتأكد من إنشاء ConfigMap بشكل صحيح.deployment.yaml.kubectl apply -f deployment.yaml لتشغيل نشر لتطبيق Flan Scan.يجب أن يعمل Flan Scan بنجاح على Kubernetes!