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

تدقيق وتقارير إغلاق UNIX
الإصدار الحالي 16.6.1
راجع 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، وفعّلت خيار استخدام أعلام الشل -e (errexit) و -u (nounset) للمساعدة في الحماية من الأخطاء. يمكن تفعيل علم الشل -x (xtrace) باستخدام السكربت مع مفتاح -Q أو --debug.
قيد التقدم:
يولّد هذا السكربت تقرير تدقيق مُقيَّم لأمن مضيف Unix. وهو مبني على CIS وأطر أخرى. حيثما أمكن توجد إشارات إلى CIS ومعايير أخرى في توثيق الكود.
لماذا سكربت شل؟ أردت أداة قادرة على العمل على أنظمة مغلقة حيث قد لا تتوفر أدوات أخرى. أردت أيضًا أداة تعمل على جميع إصدارات 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|--checkenv)
Run a selected environment check (for example, shellcheck)
-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)
Docker image name, or Multipass release codename
-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|--shellcheck)
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 للاختبار:
./lunar.sh --action create --machine multipass --osver 24.04
لمزيد من المعلومات راجع الويكي: