
Инструмент аудита безопасности 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, и я включил возможность использования флагов оболочки -e (errexit) и -u (nounset) для защиты от ошибок. Флаг оболочки -x (xtrace) можно включить, используя скрипт с флагом -Q или --debug.
В процессе:
Этот скрипт генерирует оценённый отчёт аудита безопасности Unix-хоста. Он основан на CIS и других фреймворках. Где возможно, в документации кода есть ссылки на CIS и другие бенчмарки.
Почему shell-скрипт? Я хотел инструмент, способный работать на заблокированных системах, где другие инструменты могут быть недоступны. Я также хотел инструмент, работающий на всех версиях UNIX. При этом есть некоторые различия между sh и bash, поэтому я использовал только функции из sh.
Никаких гарантий, явных или подразумеваемых, с этим скриптом не предоставляется. Моя рекомендация — использовать этот скрипт только в режиме аудита и устранять каждое предупреждение индивидуально через политику, документацию и управление конфигурацией.
Я отнюдь не программист, поэтому в этом скрипте неизбежно есть ошибки и лучшие способы подхода к вещам, поэтому искренняя благодарность людям, которые предоставили отзывы, обновления и патчи для исправления ошибок/функций в коде.
Он также может выполнять блокировку. В отличие от некоторых других скриптов, я добавил возможность откатывать изменения. Файлы резервируются с помощью cpio в каталог, основанный на дате.
Хотя он может выполнять блокировку, как уже говорилось, я рекомендую вам устранять предупреждения через политику, документацию и управление конфигурацией. Именно так я использую этот инструмент. Аудит AWS Services поддерживает только отчётность, он не предоставляет возможности блокировки.
Поддерживаются следующие операционные системы:
Поддержка Windows потребовала бы установки дополнительного программного обеспечения, поэтому я не рассматривал её. При этом поддержка Windows может появиться в будущем через bash.
Поддерживаются следующие сервисы:
Аудит AWS Services использует AWS CLI и, соответственно, требует пользователя с соответствующими правами. В настоящее время он не поддерживает возможность блокировки, он поддерживает только генерацию отчёта аудита по бенчмарку CIS.
Есть пара проверок, которые можно выполнить или разрешить только через GUI. Примером этого является включение биллинга. Обратитесь к CIS Benchmark для получения дополнительной информации.
Где возможно, я поместил предлагаемые команды исправления в подробный вывод аудита. Опять же, в некоторых случаях их можно выполнить только через CLI. Обратитесь к CIS Benchmark для получения дополнительной информации.
Кроме того, я добавил режим рекомендаций, который проверяет 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