Das ist eine für den Ausdruck optimierte Ansicht des gesamten Kapitels inkl. Unterseiten. Druckvorgang starten.

Zur Standardansicht zurückkehren.

Wissensdatenbank

Auf den folgenden Seiten möchte ich einen Einblick in mögliche technische und administrative Maßnahmen im Bereich der Cyber Security geben.

Die Seiten erheben keinen Anspruch auf Vollständigkeit. Aufgrund der Komplexität des Themas können viele Bereiche nur einführend behandelt werden.

Alle beschriebenen Maßnahmen sind für die eigene Organisation vor Anwendung zu prüfen. Insbesondere beschriebene Techniken zum Scannen von Assets sind nur mit vorheriger schriftlicher Genehmigung des Besitzers durchzuführen.

Ich übernehme keine Haftung für falsche oder falsch angewandte Informationen.

1 - Grundlagen

Einführende Erklärungen in das Thema Cyber-Security

Definition Cyber Security

Bemühungen, Daten und Informationen vor unautorisiertem Zugriff, Veränderung, Veröffentlichung oder Löschen zu schützen

CIA Dreieck

Beschreibt die 3 wichtigsten Schutzziele in Form eines Dreiecks

  • Vertraulichkeit (Confidentiality)

    • Kein unautorisierter Zugriff
  • Integrität

    • Keine Veränderung der Daten
  • Verfügbarkeit

    • Betriebsbereitschaft der Systeme

Sobald eines der 3 Seiten des Dreiecks eine Lücke hat gibt es eine Stelle die ein Angreifer durchbrechen kann.

2 - Mögliche Maßnahmen

Mögliche Maßnahmen

  • Nicht eine Maßnahme alleine reicht sondern eine Kombination aus vielen ist nötig (Defense in Depth)

  • Ständiges Katz-und-Maus Spiel zwischen IT-Mitarbeitern/Polizei und Hackern

  • Beispiel Emotet: Infrastruktur wurde zwar zerstört, die Konkurrenz/Nachfolger stehen allerdings schon in den Startlöchern

  • Neue Hackergruppen gehen dazu über, vor dem Verschlüsseln die Daten zu exfiltrieren und bei Nicht-Zahlen mit der Veröffentlichung zu drohen. Dies kann zu empfindlichen DSGVO-Strafen führen.

  • Generell gilt: Einen vollständigen Schutz wird es nie geben, man kann Hackern nur die Arbeit erschweren so dass sie weiterziehen („don‘t be the low hanging fruit“)

  • Anwendbarkeit der folgenden Vorschläge muss individuell für die eigene Organisation geprüft werden

Generell gilt:

  • Immer Updates/Patches zeitnah einspielen

  • Schwache Passwörter und Passwortwiederverwendung vermeiden

  • Wo möglich 2-Faktor Authentifizierung einsetzen

  • Regelmäßig Mitarbeiter schulen siehe Security Awareness Training

  • Firewall und Endpoint Protection (inklusive Data Loss Prevention) auf Clients einrichten

  • Asset-Management: stets alle Server und Clients im Blick behalten, besonders veraltete Systeme; Nicht mehr benötigte Systeme abschalten

  • Immer neue und bereits vorhandene Schwachstellen für die in der Organisation verwendete Hardware und Software im Blick behalten, das OpenCVE-Dashboard oder die National Vulnerability Database können dabei unterstützen

Virenscanner

  • Kommerzielle Virenscanner (vor allem die kostenlos verfügbaren) standen in der Vergangenheit öfter wegen Sicherheitslücken in der Kritik

  • Stattdessen nur Microsoft Defender verwenden

  • siehe Artikel auf golem.de: Die Schlangenöl-Branche

Disaster Recovery Plan erstellen

  • Was sind die wichtigsten Daten?

  • Welche Daten dürfen auf keinen Fall an die Öffentlichkeit gelangen?

  • Wie vorgehen im Fall eines Vorfalls?

  • Plan nicht nur digital ablegen sondern auch ausdrucken um eine Verschlüsselung zu vermeiden

3 - Client-PCs

  • BIOS mit Password schützen

  • BIOS-Boot Reihenfolge festlegen

  • UEFI/ SecureBoot aktivieren

  • Festplatten-Verschlüsselung aktivieren (BitLocker), macht Rechner allerdings unter Umständen langsamer. Dies dürfte auf aktuellen Rechnern allerdings vernachlässigbar sein.

  • USB-Laufwerke/Sticks deaktivieren

  • Konfiguration über Group Policies

  • Windows-Updates regelmäßig durchführen (zentral gesteuert über WSUS®)

  • Inventarisierung der Clients um immer einen aktuellen Überblick zu haben über Windows-Patches, installierte Software, Treiber etc. → Beispiel: https://www.opsi.org

  • Third-Party Software über Software-Depot installieren und aktuell halten (https://fogproject.org/)

  • Black-/White-Listen von Third-Party Software erstellen

  • Über Policy definieren was Benutzer (nicht) dürfen

  • Windows-Schutzfunktionen wie Defender nutzen

  • Browser als besonderes Einfallstor

    • Gegen Ausführen von Skripten mittels Plugins wie uMatrix, NoScript oder uBlock Origin schützen

    • Blacklisten mittels Proxy einführen (z.B. https://www.shallalist.de)

4 - Server

Server allgemein

  • Auf Kommandozeilen keine Benutzernamen oder Passwörter als Parameter von Befehlen anhängen da diese sonst über die Prozessliste ausgelesen werden können

    • stattdessen sensible Dateien immer über Konfigurationsdatei übergeben
  • Nach außen immer nur die Ports die notwendig sind freischalten und alle anderen schließen

    • -> Überprüfen mit nmap (siehe Kapitel Vulnerability-Scanning)
  • Unter Linux automatische Updates aktivieren, siehe Artikel auf ubuntuusers.de

  • Kein anonymes FTP aktivieren da sonst Angreifer bösartige Dateien hochladen können und diese über eventuelle Schwachstellen in der Webanwendung die auf dem gleichen Server läuft ausführen können

Webserver

  • nur Verbindungen mit TLS 1.2 oder 1.3 zulassen

    • SSL, TLS 1.0 und TLS 1.1 werden nicht mehr unterstützt und als nicht mehr sicher betrachtet
  • stets Standardkonfiguration überprüfen

  • in Apache Webservern Informationsseiten /apache-server und /apache-info deaktivieren da sonst sensible Informationen an die Außenwelt gelangen können

  • Keine Backup-Dateien (z.B. backup.zip oder dump.sql.gz) oder sonstige unnötige Dateien auf dem Webserver belassen da diese mit Tools aufgespürt werden können und Hacker aus diesen sensible Daten wie Benutzername und Passwörter entnehmen können

5 - Netzwerk

  • Unnötige/Unverschlüsselte Ports durch Firewall unterbinden, stattdessen verschlüsselte Ports verwenden (z.B. HTTPS statt HTTP, SSH statt Telnet)

  • Verbindungen zwischen Clients (z.B. Desktop-PCs) per Firewall-Regeln unterbinden, nur Verbindungen zwischen Clients und Servern erlauben

  • Trennen von Bereichen (IT, HR, Management) durch VLANs

  • Problem: Druckerfirmware wird sehr selten aktualisiert

    • Drucker in eigenes VLAN, Traffic nur von außen in VLAN hinein erlauben aber nicht von Drucker-VLAN nach außen
  • RDP nie direkt nach außen freigeben sondern nur über VPN

  • SSH über Fail2Ban absichern

  • Default-Zugangsdaten immer ändern

  • Einsatz einer Firewall (OPNsense, siehe https://schulnetzkonzept.de/opnsense für eine Einführung)

    • Als letzte Regel immer ein “Implicit Deny” einbauen so dass Verkehr der nicht über vorige Regeln durchgelassen wurde dann implizit blokiert wird

    • Discord CDN über Firewall blockieren da Discord es aktuell jedem ermöglicht, Schadcode über das Discord CDN zu verteilen

Demilitarisierte Zone

  • Untergliederung des Netzwerks in die 3 Bereiche intern, extern und demilitarisiert

  • Demilitarisierte Zone enthält nur Server die Dienste wie webserver anbieten

  • Anfragen von außen (Internet) werden durch die Firewall direkt in die demilitarisierte Zone weitergeleitet. Eindringen in das interne Netz wird so erschwert

  • Speziellen Zwischenrechner (Jumphost) verwenden um Server in der DMZ zu administrieren; diesen Rechner abschalten wenn er nicht verwendet wird

Mogliche weitere Maßnahmen

  • Software Firewall (NextGen)

    • Ermöglicht z.B. Deep Package Inspection (Ist der Traffic auf Port 80 wirklich HTTP-Traffic oder vielleicht ausgehender ssh-Traffic zu einem Command&Control-Server?)
  • Intrusion Detection System

6 - WLAN

WLAN

  • Nur WPA2 oder WPA3 (kein WPA oder WEP) verwenden

  • Falls möglich WPA2 mit “Enterprise Mode” betreiben

  • WPS-Funktion (Button auf Router) deaktivieren da Funktion leicht durch Angreifer ausnutzbar ist

  • WLAN-Verkehr in eigenes VLAN bringen

  • Abdeckung des WLANs überprüfen

    • Ist WLAN auf dem Parkplatz wirklich nötig?

    • Hacker könnten bequem vom Parkplatz vom Auto aus per Richtantenne Angriffe ausführen um z.B. das Passwort zu erraten (Paßwort-Spraying)

    • Eventuell andere Antennenformen als Standard-Omni Antennen verwenden um Abstrahlung in bestimmte Bereiche (nach außenhalb des Gebäudes) zu vermeiden

  • Wireless-Isolation aktivieren

  • Clients nur Zugriff auf das Internet und nicht auf andere Clients oder Server im Netzwerk erlauben

WLAN-Nutzung unterwegs

  • Traffic in offenen WLANs kann von jedermann mit AccessPoints (AP) im MonitoredMode mitgehört werden

    • nur mit VPN verwenden oder besser offene AccessPoints komplett meiden
  • Fake-APs mit gleicher SSID wie legitimer AP aber mit größerer Sendestärke

    • Clients verbinden sich mit Fake-AP anstatt mit echtem AP
  • Automatisches Verbinden in offene W-LANs die eine SSID haben in die man sich bereits zuvor eingewählt hat

    • Vorsicht vor Fake-APs

WLAN - MAC-Filterung

  • Bietet nur begrenzten Schutz da MAC-Adresse eines Clients leicht verändert werden kann um doch Zugriff zu erhalten (MAC-Spoofing)

  • Kann aber zusammen mit anderen Maßnahmen ein wirksamer Schutz sein

7 - Smartphones

“Bring Your Own Device” komplett verbieten oder

  • Keine jailbreaked/Custom ROM Geräte erlauben

  • Geräte nur erlauben wenn sie nur Apps aus den offiziellen App-Stores enthalten

  • “Mobile Device Management”-Software einführen; erlaubt zentralisiertes Steuern und Warten der Geräte

  • Regeln für Bring Your Own Device / Choose Your Own Device aufstellen

  • (siehe WLAN) Zugriffsrechte von Smartphones begrenzen bzw. Verkehr in eigenes VLAN legen

8 - Backups

  • 3-2-1 System (Original zählt mit)

    • 2 Backups im Büro, eines außerhalb des Büros
  • Backups offline halten um Verschlüsselung durch Trojaner zu umgehen

  • Pull statt push-Strategie verwenden (Vermeidung von Schreibrechten des Quellrechners auf Backup-Server und damit mögliches Überschreiben des Backups durch Ransomware)

9 - Active Directory

  • Zentrale Stelle eines Netzwerks

  • Immer regelmäßige Backups des AD erstellen

  • Clients ersetzbar machen

    • Daten nur zentral auf Server speichern

    • Auf Clients Ordnerumleitung aktivieren

    • „Offlinedaten“ aktivieren: Erstellen von Kopien auf der Festplatte und Synchronisierung bei der nächsten Verbindung mit dem Server

  • Softwareinstallation

    • nicht direkt (manuell) auf Clients installieren

    • Besser Software zentral verwalten und per WSUS® und Wsus Package Publisher oder intune® an Clients verteilen

  • Windows per PXE auf Clients installieren

    • Integration zusätzlicher Programme in Abbilder mithilfe Windows Deployment Services möglich

    • Allerdings kann dauerhaft aktivierte Prüfung auf PXE-Server in BIOS-Bootreihenfolge auch ein Risiko sein (Angreifer kann sich im Netzwerk als falscher PXE-Server ausgeben und kompromittierte Images an Clients verbreiten)

  • Bei Befall durch Verschlüsselungstrojaner Server und Clients neu aufsetzen und AD-Backup auf Server einspielen

  • Bei einem nur teilweisen Neuaufsetzen droht sonst erneuter Befall durch Hintertüren der Angreifer

  • Wiederherstellung regelmäßig in Testumgebung üben

10 - E-Mail

  • Generell gilt: Aufsetzen und Pflege eines eigenen Mailservers ist mit einigem Aufwand verbunden

    • Wenn eine Domain einmal auf Spam-Blacklisten gelandet ist ist es schwer, wieder von ihnen gelöscht zu werden

    • Oftmals empfiehlt es sich, sich bei einem SharedHoster einen Mailserver zu mieten und dem Anbieter die Konfiguation und Überwachung der Sicherheit zu überlassen

    • Auftragsdatenvertrag mit Anbieter abschließen und auch DSGVO beachten!

    • Falls man es selbst machen möchte: Erstmal mit einer Test-Domain üben

  • Zusätzliche Header wie SPF, DMARC und DKIM korrekt implementieren

  • E-Mails von extern im Betreff automatisch durch solche kennzeichnen, dies hilft CEO Fraud vorzubeugen

  • E-Mail Sicherheit mit Test-Mails des heise-Verlags prüfen (EICAR-Testdatei)

11 - Programmierung

  • Die eigenen (Programmier-)Kenntnisse nicht überschätzen, jede Software hat Bugs

    • Auf vorhandene SDKs/Frameworks zurückgreifen

    • Implementierung durch Codereview von einer anderen Person prüfen lassen

  • Statische Codeanalyse verwenden

    • Für viele Programmiersprachen gibt es auch OpenSource-Codeanalyse Tools
  • Anwendung von unabhängigen Personen auf Sicherheitslücken prüfen lassen (siehe Kapitel Schachstellen-Scanning und Pentesting)

  • Benutzernamen/Passwörter nie in svn, git, etc. speichern

  • Individuelle, personenbezogene Inhalte nie über eine fortlaufende, leicht erratbare Ziffer veröffentlichen

    • Beispiel: https://domain.net/15487/Report.pdf

    • Durch Erraten anderer Ziffern kann auf datenschutzrelevante Inhalte anderer Benutzer zugegriffen werden (ist in letzter Zeit öfters auf den Homepages von Corona-Testzentren/Labors vorgekommen)

    • Stattdessen GUIDs (nicht erratbare, lange Buchstaben/Zahlenkombinationen) verwenden

  • Nie Sicherheitsfunktionen selbst implementieren da es immer Anwendungsfälle gibt die man nicht beachtet hat und somit Sicherheitslücken in der Anwendung hat

    • Stattdessen immer auf bewährte Bibliotheken wie OpenSSL zurückgreifen

12 - Passwörter

  • Passwort-Policy einrichten (mindestens 12 Zeichen mit mindestens einem Kleinbuchstaben, Großbuchstaben und Sonderzeichen)

  • Sonst Gefahr von Brute-Force Angriffen anhand von Passwortlisten (Beispiel: https://github.com/danielmiessler/SecLists/tree/master/Passwords/Common-Credentials)

  • Passwörter nur 1 Mal verwenden, für jeden Account ein anderes

  • Passwortmanager Bitwarden oder Keepass (in Kombination mit Syncthing) erleichtern das Verwalten von Passwörtern

13 - Security-Bewusstsein

Security-Bewusstsein schaffen

  • Frage: Wissen Kollegen was zu tun ist wenn

    • USB-Stick auf Parkplatz gefunden wird

    • Eine unbekannte Person ins Gebäude möchte oder einem Mitarbeiter hinterherläuft um so ins Gebäude zu gelangen

    • Unbekannte USB-Sticks an Rechnern angeschlossen sind

  • Falsche Paketboten erkennen und nicht unbeobachtet ins Gebäude lassen

  • Veröffentlichung von Gruppenfotos mit Badges in sozialen Medien vermeiden da potenzielle Angreifer sich sonst eigene, ähnlich aussehende Badges herstellen können

  • Festplatten und USB-Sticks nicht auf dem Schreibtisch liegen lassen sondern immer wegschließen (Clean Desk Policy)

  • Serverschränke abschließen

  • Bewusstsein über Phishing schulen (gofish, KingFisher)

  • Keine unbekannten Anhänge öffnen oder besser durch E-Mail Firewall abfangen (Beispiel Proxmox Mail Gateway)

  • E-Mail Anhänge: Nur neuere, makrofreie Office-Dokumente (docx, pptx etc.) zu Mitarbeitern durchlassen; doc, docm, ppt generell verbieten

  • Makros deaktivieren bzw. nur signierte Makros zulassen

  • Alternativ mit aktueller Version von LibreOffice öffnen, aktuell sind keine erfolgreichen gefährlichen Makros für LibreOffice bekannt (Stand Frühjahr 2021)

  • Keine technischen Details (verwendete Technologien) in Stellenbeschreibungen veröffentlichen da dies wertvolle Informationen für Angreifer sind

  • Gekürzte Links vor dem Anklicken prüfen mit Tools die den kompletten, ursprünglichen Link anzeigen

14 - Verdächtige Dateien

  • Prüfung mit Virenscannern

    • Virustotal

    • heise desinfec‘t

  • In Test-VM: Auf aktuelle Version der Host-Virtualisierungssoftware achten um zu vermeiden, dass Schädling aus VM ausbricht

  • Toolgestützte Echtzeit-Prüfung bzw. Prüfung in Labor-Umgebung

15 - Schwachstellen-Scanning

  • Auch Vulnerability-Scanning genannt (meist toolgestützt im Gegensatz zu manuellem Pentesting)

  • Automatisiertes Scannen von Servern/Clients mithilfe von Tools (nikto, OpenVAS, nessus)

  • Relativ preisgünstig da scannen in-House erfolgen kann

  • Allerdings oft nur Erkennung eines kleinen Teils der Schwachstellen

  • Erkennen manchmal False Positives

    • Manuelle Prüfung ist notwendig
  • Erfordern Fachwissen um Ergebnisse bewerten zu können

  • Mögliche Tools:

16 - Pentests

Pentesting - allgemein

  • Manuelles Auffinden von Lücken

  • Relativ teuer da ausgeprägtes Expertenwissen nötig

  • Ermöglicht Finden von Lücken die automatisiert nicht gefunden werden können (Beispiel: Gibt es Möglichkeiten, dass ein normaler Benutzer in einer Webanwendung Adminfelder sehen kann die nicht für ihn bestimmt sind?)

  • BSI Praxis-Leitfaden zu Pentests

Pentesting - Unterteilung

  1. Externes Netzwerk-Pentesting
  • Untersucht öffentlich erreichbare Webseiten, VPN-Server, Mail-Server auf Schwachstellen
  1. Internes Netzwerk-Pentesting
  • Überprüft wie das interne Netzwerk angegriffen werden kann (simuliert beispielsweise böses Verhalten eines Mitarbeiters)
  1. Social Engineering Tests
  • Wie anfällig sind die eigenen Mitarbeiter, Informationen per E-Mail oder Telefon preiszugeben? (Phising, Smishing, CEO Spoofing etc.)
  1. Physisches Penetration-Testing
  • Versuch, in das Gebäude einzudringen in Form von Paketboden, Klempner etc.; Anschließen von böswilligen USB-Sticks die Verbindung zu Command&Control-Server aufbauen und anschließend Überprüfung ob IT-Team diese unerlaubten Verbindungen im Netzwerk-Verkehr korrekt entdeckt
  1. Wireless Penetration-Testing
  • Überprüfung ob W-LAN Zugänge dem Stand der Technik entsprechen (insbesondere in Bezug auf Verschlüsselung)
  1. Application Penetration-Testing
  • Überprüfung selbstgeschriebener Software, Apps etc. auf Schwachstellen (anhand OWASP oder MSTG Testing Guide)

BugBounty-Programme

  • Ausschreiben eines Programms um Security-Fachleuten zu erlauben, die eigene Webseite auf Schwachstellen zu untersuchen

  • Meist finanzielle Belohnung, es gibt aber auch Programme ohne Bezahlung

  • Beispiele: OpenBugBounty, Intigriti, Yeswehack

17 - Forensik

  • Computer-Forensik bezeichnet die Analyse und Beweissicherung von Vorfällen oder Straftaten

  • Bei der Reihenfolge der Beweissicherung die Flüchtigkeit der einzelnen Medien beachten

    • Beginnen mit CPU-Registern und Cache-Speicher
    • Dann Arbeitsspeicher (RAM), Routingtabelle, ARP Cache, Prozesslisten
    • Danach Temp-Dateien
    • Dann SSD, Flashspeicher
    • Am Ende Remote Monitoring Dateien (log-Dateien auf zentralem Logserver, Firewall-logs etc.)
  • Toolgestützte forensische Analyse

18 - Hacking-Gadgets

  • Nur wer die Gadgets/Tools der Hacker kennt kann sie auch erkennen und aus dem Verkehr ziehen

  • Computer regelmäßig auf unbekannte „USB-Sticks“ und „Zwischenstecker“ zwischen Monitor und Computer überprüfen

    • Beispiel: Rubber Ducky® und Bash Bunny® führen beliebige Skripte auf Rechnern aus, fangen Login-Daten ab oder schneiden Netzwerkverkehr mit

    • VideoGhost®: Zwischenstecker zwischen Computer und Bildschirm; erstellt regelmäßig Bildschirm-Screenshots

  • Öffentlich zugängliche Geräte und Drucker auf zwischengeschaltete Geräte überprüfen

  • PacketSquirrel® ermöglicht u.a.

    • Mitschneiden des durchgeleiteten Netzwerkverkehrs

    • DNS Spoofing (Abfangen von DNS-Anfragen und Umleiten an eigene IP-Adresse)

  • Nicht verwendete Netzwerk-Dosen am Patch-Feld abklemmen

    • Shark Jack® (batteriebetriebener Mini-Computer mit LAN-Anschluss) erlaubt beispielsweise Scannen des Netzes mit nmap
  • Weitere Hacking-Geräte unter ct.de/wu3eVulnerability-Scanning

  • Auch hier gilt: nur mit vorheriger Genehmigung einsetzen

19 - Weiterführende Informationen