
أداة تدقيق أمني لنظام UNIX تعتمد على عدة أطر أمنية

تدقيق وتقارير إغلاق أنظمة UNIX
الإصدار الحالي 15.9.3
راجع lunar.sh و CHANGELOG.md للحصول على معلومات أكثر حداثة حول الإصدار
CC BY-NC-SA: https://creativecommons.org/licenses/by-nc-sa/4.0/
ادعمني هنا: https://ko-fi.com/richardatlateralblast
شغّل هذا الكود في وضع التدقيق فقط، على سبيل المثال باستخدام المفتاح -a أو --audit. شغّل وضع الإغلاق على مسؤوليتك الخاصة. كما هو الحال مع أي تغيير في النظام، احتفظ بنسخ احتياطية. أعمل على تحسين وضع الاسترداد، لكن قد تظل هناك أخطاء.
حاولت تنظيف هذا السكربت قدر الإمكان باستخدام shellcheck، وقد فعّلت خيار استخدام علامات shell الخاصة بـ -e (errexit) و -u (nounset) للمساعدة في الحماية من الأخطاء. يمكن تفعيل علامة shell الخاصة بـ -x (xtrace) باستخدام السكربت مع المفتاح -Q أو --debug.
قيد التقدم:
يولّد هذا السكربت تقرير تدقيق مُقيَّم لأمان مضيف Unix. وهو مبني على معايير CIS وأطر أخرى. حيثما أمكن توجد إشارات إلى CIS ومعايير أخرى في توثيق الكود.
لماذا سكربت shell؟ أردت أداة قادرة على العمل على أنظمة مُغلقة حيث قد لا تتوفر أدوات أخرى. أردت أيضًا أداة تعمل على جميع إصدارات UNIX. ومع ذلك، هناك بعض الاختلافات بين sh و bash، لذا استخدمت دوالًا من sh فقط.
لا يوجد أي ضمان صريح أو ضمني مع هذا السكربت. توصيتي هي استخدام هذا السكربت في وضع التدقيق فقط، ومعالجة كل تحذير على حدة عبر السياسات والتوثيق وإدارة التكوين.
أنا لست مبرمجًا بأي حال، لذا لا بد من وجود أخطاء وطرق أفضل لمعالجة الأمور في هذا السكربت، لذا شكرًا صادقًا للأشخاص الذين قدّموا ملاحظات وتحديثات وترقيعات لإصلاح الأخطاء/الميزات في الكود.
يمكنه أيضًا تنفيذ إغلاق. على عكس بعض السكربتات الأخرى، أضفت القدرة على التراجع عن التغييرات. يتم عمل نسخ احتياطية للملفات باستخدام cpio إلى دليل بناءً على التاريخ.
على الرغم من أنه يمكنه تنفيذ إغلاق، كما ذُكر سابقًا، أوصيك بمعالجة التحذيرات عبر السياسات والتوثيق وإدارة التكوين. هذه هي الطريقة التي أستخدم بها الأداة. تدقيق خدمات AWS يدعم التقارير فقط، ولا يوفر قدرة الإغلاق.
أنظمة التشغيل التالية مدعومة:
دعم Windows سيتطلب تثبيت برامج إضافية، لذا لم أبحث فيه. ومع ذلك، قد يأتي دعم Windows في المستقبل عبر bash.
الخدمات التالية مدعومة:
يستخدم تدقيق خدمات AWS أداة AWS CLI، وبالتالي يتطلب مستخدمًا بالصلاحيات المناسبة. لا يدعم حاليًا قدرة الإغلاق، بل يدعم فقط توليد تقرير تدقيق مقابل معيار CIS.
هناك بعض الفحوصات التي يمكن إجراؤها أو حلها فقط عبر واجهة المستخدم الرسومية. مثال على ذلك تفعيل الفوترة. راجع معيار CIS لمزيد من المعلومات.
حيثما أمكن، وضعت أوامر إصلاح مقترحة في مخرجات التدقيق المطوّلة. ومرة أخرى في بعض الحالات، لا يمكن تنفيذها إلا عبر CLI. راجع معيار CIS لمزيد من المعلومات.
بالإضافة إلى ذلك، أضفت وضع التوصيات الذي يفحص AWS مقابل أفضل الممارسات المتاحة للعموم من شركات مثل Cloud Conformity.
مخرجات إدارة التكوين التالية مدعومة:
يُخرج هذا الخيار مثالًا لكود/مقاطع إدارة تكوين ansible لتنفيذ التوصية.
لـ UNIX:
لـ AWS:
لـ Azure:
Usage: ./lunar.sh -switch|--switch
switch(es):
-----------
-1|--list)
List changes/backups
-2|--tests)
Print tests
-3|--printfunct)
Print function
-4|--dryrun)
Run in dryrun mode
-6|--format)
Outpt format/type
-7|--file)
Output file
-8|--usesudo)
Use sudo
-9|--shellcheck)
Run shellcheck against script
-0|--force)
Force action
-a|--audit)
Run in audit mode (for Operating Systems - no changes made to system)
-A|--fullaudit)
Run in audit mode and include filesystems (for Operating Systems - no changes made to system)
-b|--backups|--listbackups)
List backups
-B|--basedir)
Set base directory
-c|--codename|--distro)
Distro/Code name (used with docker/multipass)
-C|--shell)
Run docker-compose testing suite (drops to shell in order to do more testing)
-d|--dockeraudit)
Run in audit mode (for Docker - no changes made to system)
-D|--dockertests)
List all Docker functions available to selective mode
-e|--host)
Run in audit mode on external host (for Operating Systems - no changes made to system)
-E|--hash|--passwordhash)
Password hash
-f|--action)
Action (e.g delete - used with multipass)
-F|--tempfile)
Temporary file to use for operations
-g|--giturl)
Git URL for code to copy to container
-G|--wheelgroup)
Set wheel group
-h|--help)
Display help
-H|--usage)
Display usage
-i|--anacron)
Enable/Disable anacron
-I|--type)
Audit type
-k|--kubeaudit)
Run in audit mode (for Kubernetes - no changes made to system)
-K|--function|--test)
Do a specific function
-l|--lockdown)
Run in lockdown mode (for Operating Systems - changes made to system)
-L|--fulllockdown|fulllock)
Run in lockdown mode (for Operating Systems - changes made to system)
-m|--machine|--vm)
Set virtualisation type
-M|--workdir)
Set work directory
-n|--ansible)
Output ansible
-N|--nocat)
Do output cat in score
-o|--os|--osver)
Set OS version
-O|--osinfo|--systeminfo)
Print OS/System information
-p|--previous)
Print previous audit information
-P|--sshsandbox|--sandbox)
Enable/Disabe SSH sandbox
-q|--quiet|--nostrict)
Run in quiet mode
-Q|--debug)
Run in debug mode
-r|--awsregion|--region)
Set AWS region
-R|--moduleinfo|--testinfo)
Print information about a module
-s|--select|--check)
Run in selective mode (only run tests you want to)
-S|--unixtests|--unix)
List UNIX tests
-t|--tag|--name)
Set docker tag
-T|--tempdir)
Set temp directoru
-u|--undo)
Undo lockdown (for Operating Systems - changes made to system)
-U|--dofiles)
Include filesystems
-v|--verbose)
Run in verbose mode
-V|--version)
Print version
-w|--awsaudit)
Run in audit mode (for AWS - no changes made to system)
-W|--awstests|--aws)
List all AWS functions available to selective mode
-x|--awsrec)
Run in recommendations mode (for AWS - no changes made to system)
-X|--strict)
Run shellcheck against script
-z)
Run specified audit function in lockdown mode
-Z|--changes|--listchanges)
List changes
تنفيذ تدقيق كامل (بدون فحوصات نظام الملفات العودية):
./lunar.sh --audit
عرض الاختبارات:
./lunar.sh --tests
عرض اختبارات AWS:
./lunar.sh --tests aws
تنفيذ اختبار محدد:
./lunar.sh --audit --select remote_shell
إنشاء جهاز Ubuntu 24.04 multipass VM للاختبار:
./lunar.sh --action create --machine multipass --osver 24.04
لمزيد من المعلومات راجع wiki: