- OpenSearch – TLS für den Elastic-Fork
- OpenSearch Dashboards: TLS, Konten & Datensicherheit
- Maximale Datenkontrolle: OpenSearch Dashboards und Icinga Integration
- OpenSearch: Dashboards Plugins einfach installieren
- Datensicherheit mit OpenSearch Machine Learning
Du hast dich auch schon gefragt, wie du die einzelnen Komponenten von OpenSearch sicher verknüpfen kannst? Dann bist du auf die gleichen Probleme gestoßen wie ich. Damit du nicht auch mehrere Tage mit der Lösungsfindung verbringen musst, habe ich meine Lösungen für dich zusammengetragen.
In diesen Blogpost gehe ich auf die Lösung folgender Probleme ein:
- OpenSearch Dashboards sicher verwenden
- Wie deaktiviere ich Accounts, wie füge ich neue hinzu?
- Wie kann ich mehr aus OpenSearch Dashboards herausholen und beispielweise Powershell Befehle überwachen?
OpenSearch Indexe referenzieren, Discover testen, und Dashboards verwenden
Im Vergleich zu Elasticsearch wird das Indexmanagement in OpenSearch als “Dashboard Management”. Hier muss man via “Index Patterns” auf den gewünschten Index für die Discover–Anzeige referenzieren, z.b. via “graylog*”
Dashboards lassen sich bequem via Visualize -> Create Visualization erstellen. Mich interessieren vor allem SSH Zugriffe und neue Nutzer Sessions.
OpenSearch Dashboards mit TLS
Im Idealfall stellst du sicher, dass die gesamte Kommunikation von OpenSearch zu den OpenSearch Dashboards über den gesamten Transportweg hinweg verschlüsselt ist. Hier werden schließlich sämtliche (auch vertrauliche) Daten ausgetauscht.
Gleichzeitig ist es wichtig, dass auch die Verbindung von deinem Browser zu den OpenSearch Dashboards verschlüsselt ist.
Um dir ein aktiv genutztes Beispiel für die Verschlüsselung zu geben, zeige ich eine von mir getestete (minimalistische) TLS-Konfiguration, die du unter “/etc/opensearch-dashboards/opensearch_dashboards.yml” anpassen kannst.
Du siehst die Hostnamen deiner OpenSearch-Server, die genutzten Ports, Zugriffsrechte sowie die Zertifikate für den Transportweg und den Browser.
Zusätzlich benötigst du einen Zugriffsaccount. Beachte, dass teilweise standardmäßige Standardpasswörter aktiv sind. Wie du Service- und Benutzernamen änderst, erfährst du im nächsten Abschnitt.
server.name: "opensearch-dashboards" opensearch.hosts: ["https://opensearch.lan:9200"] opensearch.requestHeadersAllowlist: [ authorization,securitytenant ] opensearch_security.readonly_mode.roles: [kibana_read_only] server.ssl.enabled: true server.ssl.certificate: /etc/opensearch-dashboards/opensearch-dashboards.crt server.ssl.key: /etc/opensearch-dashboards/opensearch-dashboards.key opensearch.ssl.certificate: /etc/opensearch-dashboards/opensearch-dashboards.crt opensearch.ssl.key: /etc/opensearch-dashboards/opensearch-dashboards.key opensearch.ssl.certificateAuthorities: [ "/etc/opensearch-dashboards/graylog-ca-root.crt" ] opensearch.ssl.verificationMode: certificate opensearch.username: my_dasbhboards_service_acc opensearch.password: my_dasbhboards_secure_pass
OpenSearch Accounts ändern via Securityadmin
Um Service-Passwörter zu verändern, musst du sie direkt auf deinem OpenSearch Server anpassen. Das geht aktuell nur über die internal_users.yml welche du unter /etc/opensearch/opensearch-security/internal_users.yml findest.
Die Passwörter sind idealerweise gehasht. OpenSearch stellt ein Tool zum Hashen von Passwörtern zur Verfügung. Das entsprechende Skript findest du hier:
/usr/share/opensearch/plugins/opensearch-security/tools/hash.sh
Willst du statt Passwörtern lieber Benutzer ändern, geht aktuell (soll aber deprecated werden) über das Securityadmin.sh Skript, indem du den korrekten Client-Key, das Client-Zertifikat, plus CA-Zertifikat gegen die OpenSearch-Instanz verifizierst.
Genau das tue ich, indem ich auf das Skript verweise. Dabei nutze ich das internal_users-File sowie Client-Key und Zertifikate, einschließlich der CA (Graylog-ca-Root). Zusätzlich gebe ich den FQDN meines OpenSearch an, gegen den ich das Skript ausführe.
bash /usr/share/opensearch/plugins/opensearch-security/tools/securityadmin.sh -f /etc/opensearch/opensearch-security/internal_users.yml -cert /etc/opensearch/opensearch.crt -key /etc/opensearch/opensearch.key -cacert /etc/opensearch/graylog-ca-root.crt -h opensearch.lan
Windows Command Line Logging
Ich finde, wir sind jetzt bereit, dafür weitere Felder der Indizes zu erkunden. Beispielsweise das Command-Line-Logging von Windows-Servern.
Nxlog zeigt in einem interessanten Audit, wie man unabhängig vom Active Directory schnell Command-Line Logging aktivieren kann. Ich habe das ganze ein bisschen erweitert und in ein Ansible Playbook gepackt.
Bitte beachte dabei, dass für diese Maßnahme aus datenschutzrechtlichen Gründen die Erlaubnis des betroffenen Clients erforderlich ist.
In diesem Prozess aktiviere ich die Auditpolicies für “Process Create”, “RPC Events”, “Process Terminate” und “DPAPI”. Die Ergebnisse werden anschließend direkt im Winlogbeat erkennbar sein.
--- - hosts: windows tasks: - name: Configure Audit Policy for Process Creation win_shell: auditpol /set /subcategory:"Process Creation" /success:enable /failure:enable - name: Configure Audit Policy for RPC Events win_shell: auditpol /set /subcategory:"RPC Events" /success:enable /failure:enable - name: Configure Audit Policy for Process Termination win_shell: auditpol /set /subcategory:"Process Termination" /success:enable /failure:enable - name: Configure Audit Policy for DPAPI Activity win_shell: auditpol /set /subcategory:"DPAPI Activity" /success:enable /failure:enable - name: Configure Audit Policy for PNP Activity win_shell: auditpol /set /subcategory:"Plug and Play Events" /success:enable /failure:enable - name: Enable Command Line in Process Creation Event win_shell: Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Audit" -Name ProcessCreationIncludeCmdLine_Enabled -Value 1 - name: Reboot the system win_reboot:
Opensearch Discover
Zum Abschluss werfen wir noch einmal einen Blick in OpenSearch Discover. Im Bereich “Selected Fields” siehst du nun die von mir ausgewählten Winlogbeat-Felder sowie einige erfasste Eingaben der “Windows Command Line”. Durch einen Klick auf das Plus-Symbol neben den “Available Fields” werden diese zu “Selected Fields” hinzugefügt. So einfach kann die getroffene Auswahl kenntlich gemacht werden.
Bist du nun ebenfalls bereit, deine Log-Management-Strategie zu optimieren und Security mehr in den Fokus zu rücken? Falls du Hilfe bei der Implementierung von OpenSearch, Elastic oder Graylog benötigst, stehen dir ich und meine Kolleg:innen von NETWAYS gerne zur Seite. Mit unserer Erfahrung sorgen wir für eine für dich maßgeschneiderte Log-Management Lösung. Wir freuen uns auf deine Nachricht.
0 Comments