jungbusch-auditorium

command module
v0.0.0-...-caac4fb Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 11, 2021 License: MIT Imports: 19 Imported by: 0

README

Jungbusch-Auditorium

Dieses Repository enthält den Quellcode für das Jungbusch-Auditorium. Das Jungbusch-Auditorium ist ein Framework zum Erstellen Modularer System-Audits.

Download der Binaries

Siehe Releases

Quickstart

  1. Binary herunterladen: Download

  2. Im Pfad der Executable eine Datei mit dem Namen audit.jba erstellen

  3. Eine Audit-Konfiguration einfügen:

Windows (Aufklappen)

/*
	Autor: Jungbusch Softwareschmiede
	Date: 06.07.2021
	Version: 1.0
	Anmerkungen: keine
	Vorlage: CIS Microsoft Windows 10 Enterprise (Release 20H2 or older) Benchmark | v1.10.0 - 27-01-2021
*/
{
	stepid: "1"
	desc: "Ensure 'Interactive logon: Do not require CTRL+ALT+DEL' is set to 'Disabled' (Automated)"
	module: "RegistryQuery"

	key: "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
	value: "DisableCAD"
	passed: if("%result% == '0'")
},

// Check if the Group Policy Template 'AdmPwd.admx' and the language file 'AdmPwd.adml' is present
{
	stepid: "2"
	desc: "Check if template 'AdmPwd.admx/adml' is present."
	module: "IsGPTemplatePresent"
	templateName: "AdmPwd.admx/adml"
	
	passed: if("%result%")
	%templatePresent% = %passed%

	{
		condition: if("%templatePresent%")
		stepid: "2.1"
		desc: "Ensure 'Password Settings: Password Length' is set to 'Enabled: 15 ormore' (Automated)"
		module: "RegistryQuery"

		key: "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft Services\AdmPwd"
		value: "PasswordLengt"
		passed: if("%result% >= '15'")
	},
},

Linux (Aufklappen)

/*
	Autor: Jungbusch Softwareschmiede
	Date: 06.07.2021
	Version: 1.0
	Anmerkungen: Keine
	Vorlage: CIS Red Hat Enterprise Linux 8 Benchmark | v1.0.0 09-30-2019
*/
{
	stepid: "1"
	desc: "Ensure mounting of cramfs filesystems is disabled"
	module: "Modprobe"
	name: "cramfs"
	passed: if("%result%")
},
{
	stepid: "2"
	desc: "Ensure /tmp is configured"
	module: "CheckPartition"
	grep: "\s/tmp\s"
	passed: if("%result%.includes('tmpfs on /tmp')")
},
  1. (Optional) Eine Konfigurationsdatei erstellen via Commandline-Parameter -createDefault. Es wird eine config.ini-Datei mit den Default-Werten erstellt.

  2. Die Executeable per Commandline (ohne weitere Commandline-Parameter) ausführen.

Übersicht der Jungbusch-Repositories

Siehe Jungbusch-Overview

Handbuch

Siehe Jungbusch-Manual

Dokumentation

Siehe Jungbusch-Documentation

Roadmap

  1. Vollständiges Überarbeiten der Programm-Konfiguration und Auslagern in ein Go-Module (work in progress)

  2. Übersetzen der Doku/des Handbuchs in Englisch

  3. Die Möglichkeit, Variablennamen in der Audit-Konfiguration zu escapen, da sonst Windows-Umgebungspfade als Variablen erkannt werden

  4. Variablen generell (Parser sollte mehr Logik bzgl. der Variablen übernehmen, Interpreter so wenig wie möglich)

  5. Spezifisch: Überarbeiten der Logik zur Verwendung von Variablen in Parametern (Relatiert: Punkt 3, 4)

About

Dieses Projekt wurde im Rahmen des Projektsemesters im Studiengang Cybersecurity an der Hochschule Mannheim im Zeitraum von 03/2021 - 07/2021 entwickelt.

Mitwirkende

Christian Höfig

Tim Philipp

Marius Schmalz

Felix Klör

Tobias Nöth

Lukas Hagmaier

Documentation

Overview

Dieses Package führt das Jungbusch-Auditorium aus. Es ist unterteilt in einige Hilfs-Methoden, die das Ziel haben, auf den ersten Blick irrelevante Funktionalität (Error-Behandlung, Log-Ausgaben, etc.) aus der Main-Funktion zu entfernen um diese möglichst übersichtlich und lesbar zu halten. So kann man sich beispielsweise beim Debuggen leicht an den Methoden entlanghangeln und der Ablauf des Programms ist auf den ersten Blick ersichtlich.

Directories

Path Synopsis
auditorium
auditconfig/acutil
Dieses Package ist ein Utility-Package für das Validieren und Parsen der Audit-Konfiguration.
Dieses Package ist ein Utility-Package für das Validieren und Parsen der Audit-Konfiguration.
auditconfig/parser
Dieses Package ist für das Einlesen der Auditkonfigurations-Datei in models.AuditModule -Objekte zuständig.
Dieses Package ist für das Einlesen der Auditkonfigurations-Datei in models.AuditModule -Objekte zuständig.
auditconfig/syntaxchecker
Dieses Package ist für das Überprüfen des Syntaxes der Audit-Konfigurationsdatei zuständig.
Dieses Package ist für das Überprüfen des Syntaxes der Audit-Konfigurationsdatei zuständig.
config/config-interpreter
In diesem Package wird die vorher eingelesene Konfiguration interpretiert und validiert.
In diesem Package wird die vorher eingelesene Konfiguration interpretiert und validiert.
config/config-parser
Dieses Package verwaltet die Commandline-Flags, sucht und liest eine Konfigurations-Datei ein und liefert ein Objekt vom Typ models.ConfigStruct mit allen gesetzten Werten zurück.
Dieses Package verwaltet die Commandline-Flags, sucht und liest eine Konfigurations-Datei ein und liefert ein Objekt vom Typ models.ConfigStruct mit allen gesetzten Werten zurück.
modulecontroller
Dieses Package übernimmt die Kommunikation zwischen dem Rest des Frameworks und der Module.
Dieses Package übernimmt die Kommunikation zwischen dem Rest des Frameworks und der Module.
In diesem Package werden im Jungbusch-Auditorium an unterschiedlichen Stellen verwendete Datentypen gesammelt.
In diesem Package werden im Jungbusch-Auditorium an unterschiedlichen Stellen verwendete Datentypen gesammelt.
In diesem Package sind alle Module des Jungbusch-Auditoriums enthalten.
In diesem Package sind alle Module des Jungbusch-Auditoriums enthalten.
Im Package static werden Konstanten und "Konstanten-ähnliche" Variablen gesammelt.
Im Package static werden Konstanten und "Konstanten-ähnliche" Variablen gesammelt.
logger
Dieses package übernimmt das Schreiben der Log-Datei, das Ausgeben von Informationen auf der Konsole, sowie das Behandeln von Error-Nachrichten und das Beenden des Programms.
Dieses package übernimmt das Schreiben der Log-Datei, das Ausgeben von Informationen auf der Konsole, sowie das Behandeln von Error-Nachrichten und das Beenden des Programms.
permissions
Erlaubt das bestimmen von Datei- oder Directory-Permissions basierend auf den Berechtigungen des aktuellen Prozesses
Erlaubt das bestimmen von Datei- oder Directory-Permissions basierend auf den Berechtigungen des aktuellen Prozesses
privilege
Überprüft, ob der auszuführende Nutzer Administrator/ Root-Privilegien hat
Überprüft, ob der auszuführende Nutzer Administrator/ Root-Privilegien hat

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL