
Ein UNIX-Sicherheitsaudit-Tool basierend auf mehreren Sicherheitsrahmenwerken.

Lockdown UNix Auditing und Reporting
Aktuelle Version 15.9.1
Beachten Sie lunar.sh und das Changelog für aktuellere Versionsinformationen.
CC BY-SA: https://creativecommons.org/licenses/by-sa/4.0/
Unterstützen Sie mich hier: https://ko-fi.com/richardatlateralblast
Führen Sie diesen Code nur im Audit-Modus aus, z. B. mit der Option -a oder --audit. Führen Sie den Lockdown auf eigenes Risiko durch. Wie bei jeder Systemänderung sollten Sie Backups haben. Ich arbeite daran, den Wiederherstellungsmodus zu verbessern, aber es kann immer noch Fehler geben.
Ich habe versucht, dieses Skript mit shellcheck so weit wie möglich zu bereinigen, und ich habe die Option aktiviert, die Shell-Flags -e (errexit) und -u (nounset) zu verwenden, um vor Fehlern zu schützen. Das Shell-Flag -x (xtrace) kann durch Verwendung des Skripts mit der Option -Q oder --debug aktiviert werden.
In Arbeit:
Dieses Skript erstellt einen bewerteten Audit-Bericht über die Sicherheit eines Unix-Hosts. Es basiert auf CIS und anderen Frameworks. Wo möglich, gibt es Verweise auf CIS und andere Benchmarks in der Codedokumentation.
Warum ein Shell-Skript? Ich wollte ein Tool, das auf abgesicherten Systemen läuft, auf denen andere Tools möglicherweise nicht verfügbar sind. Ich wollte auch ein Tool, das auf allen Versionen von UNIX läuft. Allerdings gibt es einige Unterschiede zwischen sh und bash, daher habe ich nur Funktionen aus sh verwendet.
Es wird keine ausdrückliche oder stillschweigende Garantie für dieses Skript gegeben. Meine Empfehlung ist, dieses Skript nur im Audit-Modus zu verwenden und jede Warnung einzeln über Richtlinien, Dokumentation und Konfigurationsmanagement zu adressieren.
Ich bin keineswegs ein Programmierer, daher wird es mit Sicherheit Fehler und bessere Wege geben, Dinge in diesem Skript anzugehen. Ein aufrichtiger Dank geht an die Personen, die Feedback, Updates und Patches zur Behebung von Fehlern/Features im Code bereitgestellt haben.
Es kann auch einen Lockdown durchführen. Im Gegensatz zu anderen Skripten habe ich die Möglichkeit hinzugefügt, Änderungen rückgängig zu machen. Dateien werden mit cpio in ein Verzeichnis gesichert, das auf dem Datum basiert.
Obwohl es einen Lockdown durchführen kann, empfehle ich, wie bereits erwähnt, die Warnungen über Richtlinien, Dokumentation und Konfigurationsmanagement zu adressieren. So verwende ich das Tool. Das AWS Services-Audit unterstützt nur die Berichterstellung, es bietet keine Lockdown-Funktion.
Die folgenden Betriebssysteme werden unterstützt:
Windows-Unterstützung würde die Installation zusätzlicher Software erfordern, daher habe ich mich nicht damit befasst. Allerdings könnte Windows-Unterstützung in Zukunft über bash kommen.
Die folgenden Dienste werden unterstützt:
Das AWS Services-Audit verwendet die AWS CLI und erfordert daher einen Benutzer mit den entsprechenden Rechten. Es unterstützt derzeit keine Lockdown-Funktion, es generiert nur einen Audit-Bericht gemäß dem CIS-Benchmark.
Einige der Prüfungen können nur über die GUI durchgeführt oder gelöst werden. Ein Beispiel hierfür ist das Aktivieren der Abrechnung. Weitere Informationen finden Sie im CIS-Benchmark.
Wo möglich habe ich vorgeschlagene Behebungsbefehle in die ausführliche Audit-Ausgabe eingefügt. Auch hier können einige in manchen Fällen nur über die CLI durchgeführt werden. Weitere Informationen finden Sie im CIS-Benchmark.
Darüber hinaus habe ich einen Empfehlungsmodus hinzugefügt, der AWS anhand öffentlich verfügbarer Best Practices von Unternehmen wie Cloud Conformity überprüft.
Die folgende Konfigurationsmanagement-Ausgabe wird unterstützt:
Diese Option gibt beispielhaften Ansible-Konfigurationsmanagement-Code/-Strophen aus, um die Empfehlung umzusetzen.
Für UNIX:
Für AWS:
Für 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
Vollständigen Audit durchführen (ohne rekursive Dateisystemprüfungen):
./lunar.sh --audit
Tests auflisten:
./lunar.sh --tests
AWS-Tests auflisten:
./lunar.sh --tests aws
Einen bestimmten Test durchführen:
./lunar.sh --audit --select remote_shell
Eine Ubuntu 24.04-Multipass-VM zum Testen erstellen:
./lunar.sh --action create --machine multipass --osver 24.04
Weitere Informationen finden Sie im Wiki:
Ein einfaches Test-Framework zum Debuggen des lunar-Skripts selbst wurde hinzugefügt. Es verwendet Docker Compose, um einen Container zu starten, das lunar-Verzeichnis einzubinden und lunar auszuführen.