From dd66adbb83c37579e68470900123d863042325d6 Mon Sep 17 00:00:00 2001 From: jbergner Date: Sun, 26 Apr 2026 19:30:36 +0200 Subject: [PATCH] =?UTF-8?q?Update=20Versioning=20und=20Men=C3=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy/mariadb/init/001-schema.sql | 497 ++++++++++++++++++++++++----- main.go | 4 +- 2 files changed, 422 insertions(+), 79 deletions(-) diff --git a/deploy/mariadb/init/001-schema.sql b/deploy/mariadb/init/001-schema.sql index 31e31cc..631c1e4 100644 --- a/deploy/mariadb/init/001-schema.sql +++ b/deploy/mariadb/init/001-schema.sql @@ -138,7 +138,7 @@ VALUES -- ============================================================ ( - 'security_log_cleared', + 'v1_security_log_cleared', 'Security Log wurde gelöscht. Das ist fast immer sicherheitsrelevant.', 'high', 'Security', @@ -153,7 +153,7 @@ VALUES ), ( - 'audit_policy_changed', + 'v1_audit_policy_changed', 'Audit Policy wurde geändert.', 'high', 'Security', @@ -168,7 +168,7 @@ VALUES ), ( - 'system_audit_policy_changed', + 'v1_system_audit_policy_changed', 'System Audit Policy wurde geändert.', 'high', 'Security', @@ -183,7 +183,7 @@ VALUES ), ( - 'special_logon', + 'v1_special_logon', 'Anmeldung mit speziellen Rechten erkannt.', 'medium', 'Security', @@ -191,14 +191,14 @@ VALUES '', '', '', - 1, - 0, - 900, + 20, + 300, + 1800, 1 ), ( - 'privileged_service_called', + 'v1_privileged_service_called', 'Privilegierter Dienst wurde aufgerufen.', 'medium', 'Security', @@ -217,7 +217,7 @@ VALUES -- ============================================================ ( - 'user_created', + 'v1_user_created', 'Neuer AD-Benutzer wurde erstellt.', 'medium', 'Security', @@ -232,7 +232,7 @@ VALUES ), ( - 'user_enabled', + 'v1_user_enabled', 'AD-Benutzer wurde aktiviert.', 'medium', 'Security', @@ -247,7 +247,7 @@ VALUES ), ( - 'user_disabled', + 'v1_user_disabled', 'AD-Benutzer wurde deaktiviert.', 'low', 'Security', @@ -262,7 +262,7 @@ VALUES ), ( - 'user_deleted', + 'v1_user_deleted', 'AD-Benutzer wurde gelöscht.', 'medium', 'Security', @@ -277,7 +277,7 @@ VALUES ), ( - 'user_changed', + 'v1_user_changed', 'AD-Benutzerobjekt wurde geändert.', 'low', 'Security', @@ -292,7 +292,7 @@ VALUES ), ( - 'password_changed_by_user', + 'v1_password_changed_by_user', 'Benutzer hat eigenes Passwort geändert.', 'low', 'Security', @@ -307,7 +307,7 @@ VALUES ), ( - 'password_reset', + 'v1_password_reset', 'Passwort wurde durch Admin oder berechtigten Benutzer zurückgesetzt.', 'medium', 'Security', @@ -322,7 +322,7 @@ VALUES ), ( - 'account_lockout', + 'v1_account_lockout', 'Benutzerkonto wurde gesperrt.', 'low', 'Security', @@ -337,7 +337,7 @@ VALUES ), ( - 'account_lockout_spike', + 'v1_account_lockout_spike', 'Viele Account Lockouts innerhalb kurzer Zeit.', 'medium', 'Security', @@ -356,7 +356,7 @@ VALUES -- ============================================================ ( - 'security_group_created', + 'v1_security_group_created', 'Security-Gruppe wurde erstellt.', 'medium', 'Security', @@ -371,7 +371,7 @@ VALUES ), ( - 'security_group_deleted', + 'v1_security_group_deleted', 'Security-Gruppe wurde gelöscht.', 'medium', 'Security', @@ -386,7 +386,7 @@ VALUES ), ( - 'security_group_changed', + 'v1_security_group_changed', 'Security-Gruppe wurde geändert.', 'medium', 'Security', @@ -401,7 +401,7 @@ VALUES ), ( - 'group_member_added', + 'v1_group_member_added', 'Mitglied wurde zu einer Security-Gruppe hinzugefügt.', 'medium', 'Security', @@ -416,7 +416,7 @@ VALUES ), ( - 'group_member_removed', + 'v1_group_member_removed', 'Mitglied wurde aus einer Security-Gruppe entfernt.', 'medium', 'Security', @@ -436,7 +436,7 @@ VALUES -- ============================================================ ( - 'privileged_group_member_added', + 'v1_privileged_group_member_added', 'Mitglied wurde zu einer privilegierten AD-Gruppe hinzugefügt.', 'high', 'Security', @@ -451,7 +451,7 @@ VALUES ), ( - 'privileged_group_member_removed', + 'v1_privileged_group_member_removed', 'Mitglied wurde aus einer privilegierten AD-Gruppe entfernt.', 'medium', 'Security', @@ -466,7 +466,7 @@ VALUES ), ( - 'domain_admins_changed', + 'v1_domain_admins_changed', 'Änderung an Domain Admins erkannt.', 'high', 'Security', @@ -481,7 +481,7 @@ VALUES ), ( - 'enterprise_admins_changed', + 'v1_enterprise_admins_changed', 'Änderung an Enterprise Admins erkannt.', 'high', 'Security', @@ -496,7 +496,7 @@ VALUES ), ( - 'schema_admins_changed', + 'v1_schema_admins_changed', 'Änderung an Schema Admins erkannt.', 'high', 'Security', @@ -511,7 +511,7 @@ VALUES ), ( - 'dnsadmins_changed', + 'v1_dnsadmins_changed', 'Änderung an DNSAdmins erkannt. DNSAdmins können in vielen Umgebungen kritisch sein.', 'high', 'Security', @@ -530,7 +530,7 @@ VALUES -- ============================================================ ( - 'computer_account_created', + 'v1_computer_account_created', 'Computer-Konto wurde erstellt.', 'low', 'Security', @@ -545,7 +545,7 @@ VALUES ), ( - 'computer_account_changed', + 'v1_computer_account_changed', 'Computer-Konto wurde geändert.', 'low', 'Security', @@ -560,7 +560,7 @@ VALUES ), ( - 'computer_account_deleted', + 'v1_computer_account_deleted', 'Computer-Konto wurde gelöscht.', 'medium', 'Security', @@ -579,7 +579,7 @@ VALUES -- ============================================================ ( - 'kerberos_preauth_failure', + 'v1_kerberos_preauth_failure', 'Kerberos PreAuth Fehler erkannt.', 'low', 'Security', @@ -594,7 +594,7 @@ VALUES ), ( - 'kerberos_preauth_spike', + 'v1_kerberos_preauth_spike', 'Viele Kerberos PreAuth Fehler. Möglicher Password-Spray oder Bruteforce.', 'high', 'Security', @@ -609,7 +609,7 @@ VALUES ), ( - 'kerberos_tgt_failed_spike', + 'v1_kerberos_tgt_failed_spike', 'Viele fehlgeschlagene Kerberos-TGT-Anfragen.', 'medium', 'Security', @@ -624,7 +624,7 @@ VALUES ), ( - 'kerberos_service_ticket_spike', + 'v1_kerberos_service_ticket_spike', 'Viele Kerberos-Service-Ticket-Anfragen. Kann auf Kerberoasting oder ungewöhnliche Service-Nutzung hindeuten.', 'medium', 'Security', @@ -639,7 +639,7 @@ VALUES ), ( - 'ntlm_authentication_spike', + 'v1_ntlm_authentication_spike', 'Viele NTLM-Authentifizierungen erkannt.', 'medium', 'Security', @@ -654,7 +654,7 @@ VALUES ), ( - 'logon_failed_spike', + 'v1_logon_failed_spike', 'Viele fehlgeschlagene Logons.', 'medium', 'Security', @@ -669,7 +669,7 @@ VALUES ), ( - 'explicit_credentials_used', + 'v1_explicit_credentials_used', 'Anmeldung mit expliziten Anmeldeinformationen erkannt.', 'medium', 'Security', @@ -684,7 +684,7 @@ VALUES ), ( - 'many_explicit_credentials_used', + 'v1_many_explicit_credentials_used', 'Viele Anmeldungen mit expliziten Anmeldeinformationen.', 'high', 'Security', @@ -703,7 +703,7 @@ VALUES -- ============================================================ ( - 'service_installed_security', + 'v1_service_installed_security', 'Neuer Dienst laut Security Log installiert.', 'high', 'Security', @@ -718,7 +718,7 @@ VALUES ), ( - 'service_installed_system', + 'v1_service_installed_system', 'Neuer Dienst laut System Log installiert.', 'high', 'System', @@ -733,7 +733,7 @@ VALUES ), ( - 'scheduled_task_created', + 'v1_scheduled_task_created', 'Geplanter Task wurde erstellt.', 'high', 'Security', @@ -748,7 +748,7 @@ VALUES ), ( - 'scheduled_task_updated', + 'v1_scheduled_task_updated', 'Geplanter Task wurde geändert.', 'medium', 'Security', @@ -763,7 +763,7 @@ VALUES ), ( - 'scheduled_task_deleted', + 'v1_scheduled_task_deleted', 'Geplanter Task wurde gelöscht.', 'medium', 'Security', @@ -778,7 +778,7 @@ VALUES ), ( - 'scheduled_task_enabled_disabled', + 'v1_scheduled_task_enabled_disabled', 'Geplanter Task wurde aktiviert oder deaktiviert.', 'medium', 'Security', @@ -798,7 +798,7 @@ VALUES -- ============================================================ ( - 'process_created', + 'v1_process_created', 'Neuer Prozess wurde erstellt. Nur sinnvoll bei aktiviertem Process Creation Auditing.', 'low', 'Security', @@ -813,7 +813,7 @@ VALUES ), ( - 'suspicious_powershell_process', + 'v1_suspicious_powershell_process', 'Verdächtiger PowerShell-Aufruf im Prozess-Event.', 'high', 'Security', @@ -828,7 +828,7 @@ VALUES ), ( - 'powershell_script_block', + 'v1_powershell_script_block', 'PowerShell Script Block Logging Event erkannt.', 'medium', 'Windows PowerShell,Microsoft-Windows-PowerShell/Operational', @@ -843,7 +843,7 @@ VALUES ), ( - 'suspicious_powershell_encodedcommand', + 'v1_suspicious_powershell_encodedcommand', 'PowerShell EncodedCommand erkannt.', 'high', 'Windows PowerShell,Microsoft-Windows-PowerShell/Operational,Security', @@ -858,7 +858,7 @@ VALUES ), ( - 'suspicious_powershell_downloadstring', + 'v1_suspicious_powershell_downloadstring', 'PowerShell DownloadString erkannt.', 'high', 'Windows PowerShell,Microsoft-Windows-PowerShell/Operational,Security', @@ -873,7 +873,7 @@ VALUES ), ( - 'suspicious_powershell_iex', + 'v1_suspicious_powershell_iex', 'PowerShell Invoke-Expression / IEX erkannt.', 'high', 'Windows PowerShell,Microsoft-Windows-PowerShell/Operational,Security', @@ -894,7 +894,7 @@ VALUES -- ============================================================ ( - 'directory_object_modified', + 'v1_directory_object_modified', 'AD-Objekt wurde geändert.', 'medium', 'Security', @@ -909,7 +909,7 @@ VALUES ), ( - 'directory_object_created', + 'v1_directory_object_created', 'AD-Objekt wurde erstellt.', 'medium', 'Security', @@ -924,7 +924,7 @@ VALUES ), ( - 'directory_object_deleted', + 'v1_directory_object_deleted', 'AD-Objekt wurde gelöscht.', 'medium', 'Security', @@ -939,7 +939,7 @@ VALUES ), ( - 'gpo_changed', + 'v1_gpo_changed', 'Mögliche GPO-Änderung erkannt.', 'high', 'Security', @@ -954,7 +954,7 @@ VALUES ), ( - 'adminsdholder_changed', + 'v1_adminsdholder_changed', 'AdminSDHolder wurde geändert. Sehr sicherheitsrelevant.', 'high', 'Security', @@ -969,7 +969,7 @@ VALUES ), ( - 'domain_root_changed', + 'v1_domain_root_changed', 'Domain-Root-Objekt wurde geändert.', 'high', 'Security', @@ -989,7 +989,7 @@ VALUES -- ============================================================ ( - 'object_permissions_changed', + 'v1_object_permissions_changed', 'Berechtigungen eines Objekts wurden geändert.', 'high', 'Security', @@ -1004,7 +1004,7 @@ VALUES ), ( - 'directory_service_object_access', + 'v1_directory_service_object_access', 'Directory-Service-Objektzugriff erkannt.', 'medium', 'Security', @@ -1024,7 +1024,7 @@ VALUES -- ============================================================ ( - 'network_share_accessed', + 'v1_network_share_accessed', 'Netzwerkfreigabe wurde genutzt.', 'low', 'Security', @@ -1039,7 +1039,7 @@ VALUES ), ( - 'network_share_object_checked', + 'v1_network_share_object_checked', 'Detaillierter Netzwerkfreigabezugriff erkannt.', 'low', 'Security', @@ -1054,7 +1054,7 @@ VALUES ), ( - 'sysvol_access_spike', + 'v1_sysvol_access_spike', 'Viele Zugriffe auf SYSVOL erkannt.', 'low', 'Security', @@ -1069,7 +1069,7 @@ VALUES ), ( - 'admin_share_access', + 'v1_admin_share_access', 'Zugriff auf administrative Freigabe erkannt.', 'medium', 'Security', @@ -1084,7 +1084,7 @@ VALUES ), ( - 'c_share_access', + 'v1_c_share_access', 'Zugriff auf C$ erkannt.', 'medium', 'Security', @@ -1103,7 +1103,7 @@ VALUES -- ============================================================ ( - 'system_startup', + 'v1_system_startup', 'System wurde gestartet.', 'low', 'System', @@ -1118,7 +1118,7 @@ VALUES ), ( - 'system_shutdown', + 'v1_system_shutdown', 'System wurde heruntergefahren.', 'low', 'System', @@ -1133,7 +1133,7 @@ VALUES ), ( - 'planned_shutdown_or_restart', + 'v1_planned_shutdown_or_restart', 'Geplanter Shutdown oder Neustart erkannt.', 'low', 'System', @@ -1148,7 +1148,7 @@ VALUES ), ( - 'unexpected_shutdown', + 'v1_unexpected_shutdown', 'Unerwarteter Shutdown erkannt.', 'medium', 'System', @@ -1163,7 +1163,7 @@ VALUES ), ( - 'reboot_spike_dynamic', + 'v1_reboot_spike_dynamic', 'Viele Neustart-/Shutdown-Events in kurzer Zeit.', 'medium', 'System', @@ -1183,7 +1183,7 @@ VALUES -- ============================================================ ( - 'defender_malware_detected', + 'v1_defender_malware_detected', 'Microsoft Defender hat Malware erkannt.', 'high', 'Microsoft-Windows-Windows Defender/Operational', @@ -1198,7 +1198,7 @@ VALUES ), ( - 'defender_malware_remediated', + 'v1_defender_malware_remediated', 'Microsoft Defender hat Malware bereinigt.', 'medium', 'Microsoft-Windows-Windows Defender/Operational', @@ -1213,7 +1213,7 @@ VALUES ), ( - 'defender_action_failed', + 'v1_defender_action_failed', 'Microsoft Defender Aktion fehlgeschlagen.', 'high', 'Microsoft-Windows-Windows Defender/Operational', @@ -1228,7 +1228,7 @@ VALUES ), ( - 'defender_disabled_or_config_changed', + 'v1_defender_disabled_or_config_changed', 'Defender-Konfiguration wurde geändert oder Schutz deaktiviert.', 'high', 'Microsoft-Windows-Windows Defender/Operational', @@ -1248,7 +1248,7 @@ VALUES -- ============================================================ ( - 'certificate_request_issued', + 'v1_certificate_request_issued', 'Zertifikat wurde ausgestellt.', 'medium', 'Security', @@ -1263,7 +1263,7 @@ VALUES ), ( - 'certificate_template_changed', + 'v1_certificate_template_changed', 'Zertifikatstemplate wurde geändert.', 'high', 'Security', @@ -1278,7 +1278,7 @@ VALUES ), ( - 'cert_services_config_changed', + 'v1_cert_services_config_changed', 'AD-CS-Konfiguration wurde geändert.', 'high', 'Security', @@ -1425,4 +1425,347 @@ CREATE INDEX idx_ueba_user_baseline_user ON ueba_user_baseline (username, last_seen); CREATE INDEX idx_host_risk_score -ON host_risk_scores (risk_score, severity); \ No newline at end of file +ON host_risk_scores (risk_score, severity); + +INSERT INTO detection_rules +( + name, + description, + severity, + channel, + event_ids, + match_field, + match_operator, + match_value, + threshold_count, + threshold_window_seconds, + suppress_for_seconds, + enabled +) +VALUES + +-- ============================================================ +-- KRITISCHE MANIPULATIONEN +-- ============================================================ + +( + 'v2_security_log_cleared', + 'Security Log wurde gelöscht. Sehr wahrscheinlich Spurenverwischung.', + 'high', + 'Security', + '1102', + '', '', '', + 1, 0, 86400, + 1 +), + +( + 'v2_audit_policy_changed', + 'Audit Policy wurde geändert.', + 'high', + 'Security', + '4719', + '', '', '', + 1, 0, 3600, + 1 +), + +( + 'v2_system_audit_policy_changed', + 'System Audit Policy wurde geändert.', + 'high', + 'Security', + '4902,4904,4905,4906,4907,4908,4912', + '', '', '', + 1, 0, 3600, + 1 +), + +-- ============================================================ +-- PRIVILEGIERTE GRUPPEN (WICHTIGSTER BLOCK!) +-- ============================================================ + +( + 'v2_privileged_group_member_added', + 'Mitglied wurde zu privilegierter AD-Gruppe hinzugefügt.', + 'high', + 'Security', + '4728,4732,4756', + 'target_user', + 'in', + 'Domain Admins,Enterprise Admins,Schema Admins,Administrators,DNSAdmins', + 1, 0, 3600, + 1 +), + +( + 'v2_privileged_group_member_removed', + 'Mitglied wurde aus privilegierter AD-Gruppe entfernt.', + 'medium', + 'Security', + '4729,4733,4757', + 'target_user', + 'in', + 'Domain Admins,Enterprise Admins,Schema Admins,Administrators,DNSAdmins', + 1, 0, 3600, + 1 +), + +( + 'v2_domain_admins_changed', + 'Änderung an Domain Admins.', + 'high', + 'Security', + '4728,4729,4735,4737', + 'target_user', + 'eq', + 'Domain Admins', + 1, 0, 3600, + 1 +), + +( + 'v2_enterprise_admins_changed', + 'Änderung an Enterprise Admins.', + 'high', + 'Security', + '4728,4729,4735,4737', + 'target_user', + 'eq', + 'Enterprise Admins', + 1, 0, 3600, + 1 +), + +( + 'v2_schema_admins_changed', + 'Änderung an Schema Admins.', + 'high', + 'Security', + '4728,4729,4735,4737', + 'target_user', + 'eq', + 'Schema Admins', + 1, 0, 3600, + 1 +), + +( + 'v2_dnsadmins_changed', + 'Änderung an DNSAdmins erkannt.', + 'high', + 'Security', + '4728,4729,4732,4733,4756,4757', + 'target_user', + 'eq', + 'DNSAdmins', + 1, 0, 3600, + 1 +), + +-- ============================================================ +-- USER MANAGEMENT +-- ============================================================ + +( + 'v2_user_created', + 'Neuer AD-Benutzer wurde erstellt.', + 'medium', + 'Security', + '4720', + '', '', '', + 1, 0, 1800, + 1 +), + +( + 'v2_user_enabled', + 'AD-Benutzer wurde aktiviert.', + 'medium', + 'Security', + '4722', + '', '', '', + 1, 0, 1800, + 1 +), + +( + 'v2_user_deleted', + 'AD-Benutzer wurde gelöscht.', + 'medium', + 'Security', + '4726', + '', '', '', + 1, 0, 3600, + 1 +), + +( + 'v2_password_reset', + 'Passwort wurde zurückgesetzt.', + 'medium', + 'Security', + '4724', + '', '', '', + 1, 0, 1800, + 1 +), + +-- ============================================================ +-- AUTHENTIFIZIERUNG (ANOMALIEN) +-- ============================================================ + +( + 'v2_account_lockout_spike', + 'Viele Account Lockouts.', + 'medium', + 'Security', + '4740', + '', '', '', + 5, 300, 1800, + 1 +), + +( + 'v2_kerberos_preauth_spike', + 'Viele Kerberos PreAuth Fehler.', + 'high', + 'Security', + '4771', + '', '', '', + 20, 300, 1800, + 1 +), + +( + 'v2_kerberos_service_ticket_spike', + 'Viele Kerberos Service Tickets (Kerberoasting möglich).', + 'medium', + 'Security', + '4769', + '', '', '', + 100, 300, 1800, + 1 +), + +( + 'v2_ntlm_authentication_spike', + 'Viele NTLM Authentifizierungen.', + 'medium', + 'Security', + '4776', + '', '', '', + 50, 300, 1800, + 1 +), + +( + 'v2_logon_failed_spike', + 'Viele fehlgeschlagene Logons.', + 'medium', + 'Security', + '4625', + '', '', '', + 25, 300, 1800, + 1 +), + +( + 'v2_many_explicit_credentials_used', + 'Viele Logons mit expliziten Credentials.', + 'high', + 'Security', + '4648', + '', '', '', + 20, 300, 1800, + 1 +), + +-- ============================================================ +-- PERSISTENZ / LATERAL MOVEMENT +-- ============================================================ + +( + 'v2_service_installed_security', + 'Neuer Dienst (Security Log).', + 'high', + 'Security', + '4697', + '', '', '', + 1, 0, 3600, + 1 +), + +( + 'v2_service_installed_system', + 'Neuer Dienst (System Log).', + 'high', + 'System', + '7045', + '', '', '', + 1, 0, 3600, + 1 +), + +( + 'v2_scheduled_task_created', + 'Scheduled Task erstellt.', + 'high', + 'Security', + '4698', + '', '', '', + 1, 0, 3600, + 1 +), + +( + 'v2_scheduled_task_updated', + 'Scheduled Task geändert.', + 'medium', + 'Security', + '4702', + '', '', '', + 1, 0, 1800, + 1 +), + +( + 'v2_scheduled_task_deleted', + 'Scheduled Task gelöscht.', + 'medium', + 'Security', + '4699', + '', '', '', + 1, 0, 1800, + 1 +), + +( + 'v2_scheduled_task_enabled_disabled', + 'Scheduled Task aktiviert/deaktiviert.', + 'medium', + 'Security', + '4700,4701', + '', '', '', + 1, 0, 1800, + 1 +), + +-- ============================================================ +-- SYSTEM EVENTS +-- ============================================================ + +( + 'v2_unexpected_shutdown', + 'Unerwarteter Shutdown erkannt.', + 'medium', + 'System', + '6008', + '', '', '', + 1, 0, 1800, + 1 +); + +UPDATE detection_rules +SET enabled = 0 +WHERE name LIKE 'v1_%'; \ No newline at end of file diff --git a/main.go b/main.go index 3ffaa2a..bf65d8d 100644 --- a/main.go +++ b/main.go @@ -513,8 +513,8 @@ a:hover {
SIEM-lite Security Operations