Das NetBSD Sicherheitshandbuch

#Veröffentlichungen #NetBSD #Sicherheit #Sicherheitshandbuch

Table of Contents

by: Stefan Schumacher

Anfang 2005 habe ich angefangen meine bisherigen Texte, HowTos und Anleitungen zu konsolidieren und in einem Handbuch zusammenzufassen. Ursprünglich auf Englisch gestartet, wuchs die deutschsprachige Version schneller. Begonnen habe ich den Guide eigentlich, um mich mehr mit LaTeX auseinanderzusetzen, da ich zu der Zeit in der Slawistik der Uni gearbeitet habe.

Geplant hatte ich, den Guide halbwegs fertigzustellen und dann auf der NetBSD-Seite analog zum User’s Guide zu veröffentlichen. Vorrangig, damit er dort weitergepflegt werden kann.

Da alles anders kam, wurde das Handbuch nie veröffentlicht, daher auch nie redigiert. Daher stelle ich hier die unveröffentlichte Alpha-Version zur Verfügung.

Inhaltsverzeichnis des Handbuchs

  • 1 Vorwort

    • 1.1 Über dieses Dokument

      • 1.1.1 Dank

    • 1.2 Warnung

    • 1.3 Urheberrechtshinweis

    • 1.4 Formatierungsregeln

    • 1.5 Struktur des Dokuments

      • Theoretischer Hintergrund zur Sicherheit

  • 2 Was ist Sicherheit?

    • 2.1 Was ist Sicherheit?

    • 2.2 Warum werden Rechner angegriffen?

    • 2.3 Wer greift wie an?

    • 2.4 Angriffsvektoren

      • 2.4.1 Rechtesteigerung

      • 2.4.2 Schadprogramme

        • 2.4.2.1 Viren

        • 2.4.2.2 Würmer

        • 2.4.2.3 Rootkits, Hintertürchen und Trojaner

  • 3 Verteidigung

    • 3.1 Strategie, Taktik, operative Mittel

      • 3.1.1 Erste organisatorische Schritte

    • 3.2 Verteidigung in der Tiefe

    • 3.3 Risiko, Risikobewertung und Risikofolgeabschätzung

    • 3.4 Die Sicherheitsrichtlinie

    • 3.5 Inventur der vorhandenen Systeme

    • 3.6 Behandlung eines Sicherheitsvorfalls

      • 3.6.1 Digitale Forensik

  • 4 Social Engineering

    • 4.1 Psychologische Grundlagen der Manipulation

      • 4.1.1 Reziprozität

        • 4.1.1.1 Abwehrstrategien

      • 4.1.2 Wer A sagt …​ — von Commitment und Konsistenz

        • 4.1.2.1 Abwehrstrategien

      • 4.1.3 Soziale Bewährtheit

        • 4.1.3.1 Abwehrstrategien

      • 4.1.4 Sympathie

        • 4.1.4.1 Attraktivität

        • 4.1.4.2 Ähnlichkeit

        • 4.1.4.3 Komplimente

        • 4.1.4.4 Kooperation

        • 4.1.4.5 Attraktivität

        • 4.1.4.6 Abwehrstrategien

      • 4.1.5 Autorität

        • 4.1.5.1 Abwehrstrategien

      • 4.1.6 Knappheit

        • 4.1.6.1 Abwehrstrategien

    • 4.2 Mitarbeiter authentifizieren

      • 4.2.1 Mitarbeiterausweise

      • 4.2.2 Der deutsche Personalausweis

      • 4.2.3 Entfernte Authentifizierung von Mitarbeitern

  • 5 Grundlagen der Verschlüsselungstechnik

    • 5.1 Warum sollte man Kryptographie einsetzen?

    • 5.2 Prüfsummen

      • 5.2.1 Das MD5-Prüfsummenverfahren

      • 5.2.2 Verified Executables

    • 5.3 symmetrische Verfahren

      • 5.3.1 mcrypt(1)

    • 5.4 asymmetrische Verfahren

      • 5.4.1 Ein asymmetrisches Verfahren genauer betrachtet: RSA

    • 5.5 kryptographische Signaturen

      • 5.5.1 Schlüsselsignatur

        • Das Basissystem härten

  • 6 Das Basissystem härten

    • 6.1 Hardware testen

    • 6.2 Das System herunterfahren, neu starten oder in den Single-User-Modus bringen

    • 6.3 Erste Schritte

      • 6.3.1 Schlankes System

      • 6.3.2 Das System aktuell halten

      • 6.3.3 Niemals als Root arbeiten

      • 6.3.4 Speicherauszüge vermeiden

      • 6.3.5 Debugger Deaktivieren

      • 6.3.6 Regular Expressions considered harmful™

      • 6.3.7 Monitor und Tastatur schützen

      • 6.3.8 Das System herunterfahren

  • 7 Zen, oder: Die Kunst ein Passwort zu finden

    • 7.1 Gefahren für Passwörter

      • 7.1.1 Klartext-Passwörter

      • 7.1.2 Social-Engineering

      • 7.1.3 Tastaturrekorder

      • 7.1.4 Kompromittierende Strahlung

    • 7.2 Was ist ein starkes Passwort?

      • 7.2.1 Verwenden Sie kein Passwort das erraten werden kann!

      • 7.2.2 Verwenden Sie kein Passwort das in einem Wörterbuch steht!

      • 7.2.3 Verwenden Sie ein langes Passwort mit Groß- und Kleinschreibung, Zahlen und Sonderzeichen!

      • 7.2.4 Das Passwort muss geheim bleiben!

      • 7.2.5 Verwenden Sie nicht überall das selbe Passwort!

      • 7.2.6 Passwortwechsel

    • 7.3 Passwörter von Hand generieren

    • 7.4 Passwörter automatisch generieren

    • 7.5 Passwort-Hashes generieren

    • 7.6 Passwörter in NetBSD

    • 7.7 Passwörter cracken

      • 7.7.1 Mit Crack

      • 7.7.2 Mit John the Ripper

    • 7.8 Einwegpasswörter mit S/Key

    • 7.9 OpenSSH

      • 7.9.1 SSH-Logins verbieten

      • 7.9.2 Verschlüsselte Tunnel

  • 8 Systemaufrufe mit Systrace reglementieren

    • 8.1 Systemaufrufe mit Systrace steuern

      • 8.1.1 Die Grammatik der Richtlinie

      • 8.1.2 Erzeugung einer Richtlinie

    • 8.2 Implementierung

    • 8.3 Sicherheit des Systems

    • 8.4 Apache überwachen

    • 8.5 Systrace-überwachte Shell

    • 8.6 Weiterer Nutzen

    • 8.7 Fazit

  • 9 Daten sicher löschen

    • 9.1 Wie werden Daten gespeichert und gelöscht?

      • 9.1.1 Zerstörungsfreie Datenvernichtung

        • 9.1.1.1 Einfaches Überschreiben mit Nullen

        • 9.1.1.2 US DoD 5220.22-M (E) und (ECE)

        • 9.1.1.3 Richtlinie zum Geheimschutz von Verschlussachen beim Einsatz von Informationstechnik

        • 9.1.1.4 Bruce Schneier

        • 9.1.1.5 Peter Gutmann

    • 9.2 Programme

      • 9.2.0.1 rm(1)

      • 9.2.0.2 destroy(1)

      • 9.2.0.3 wipe(1)

      • 9.2.0.4 dd(1)

      • 9.2.0.5 neb-wipe(1)

      • 9.2.0.6 buffer(1)

        • 9.2.1 Die NetBSD/Schrubber Live-CD

        • 9.2.2 Physikalische Datenvernichtung

      • 9.2.2.1 Magnetische Datenträger

      • 9.2.2.2 Optische Datenträger

      • 9.2.2.3 Magneto-Optische Datenträger

      • 9.2.2.4 Flash-EEPROM

    • 9.3 Vorbeugende Maßnahmen

    • 9.4 Datensicherung und Datenvernichtung

    • 9.5 Fazit

  • 10 Schadsoftware bekämpfen

    • 10.1 Dateisystemintegrität mit Mtree prüfen

      • 10.1.1 Konfiguration und Einsatz

    • 10.2 Dateisystemintegrität mit Aide prüfen

    • 10.3 Dateisystemintegrität mit tripwire(1) prüfen

    • 10.4 Prüfsummen einzelner Dateien erstellen

    • 10.5 Den Rechner mit Chkrootkit auf Rootkits prüfen

    • 10.6 Das Netzwerk auf Zombies untersuchen

  • 11 Netzwerke

    • 11.0.1 TCP-Wrapper

      • 11.1 Netzwerkverkehr mit OpenSSH verschlüsseln

    • 11.1.1 Konfiguration des Dæmons

    • 11.1.2 Konfiguration des Clients

    • 11.1.3 OpenSSH benutzen

      • 11.1.3.1 Schlüsselbasierte Authentifikation

      • 11.1.3.2 Verschlüsselte Tunnel

      • 11.1.3.3 Befehle auf dem entfernten Rechner ausführen

    • 11.1.4 OpenSSH härten

      • 11.2 Verschlüsselte IP-Tunnel mit Stunnel

      • 11.3 Portscans mit Portsentry verhindern

      • 11.4 Rechnerpräsenz in Netzwerken mit Arpwatch überwachen

      • 11.5 Netzwerkverkehr mit Tcpdump überwachen und analysieren

    • 11.5.1 Ausgabe

    • 11.5.2 Datagrammtypen

      • 11.5.2.1 ARP/RARP

      • 11.5.2.2 TCP

      • 11.5.2.3 AFS

      • 11.5.2.4 ICMP

    • 11.5.3 Filter

    • 11.5.4 Tcpdump-Daten mit Tcptrace aufbereiten

      • 11.5.4.1 Ausgabe

      • 11.5.4.2 Filter

      • 11.5.4.3 Plotter und andere Freunde

        • 11.6 Emails über SSL getunnelt mit Fetchmail abholen

  • 12 Angewandte Kryptographie

    • 12.1 Das kryptographische Pseudogerät CGD

      • 12.1.1 Was ist CGD?

      • 12.1.2 Installation und Einrichtung

      • 12.1.3 Eine Datenpartition verschlüsseln

      • 12.1.4 CGD für Swap und /tmp

      • 12.1.5 CGD für die /tmp-Partition

      • 12.1.6 CGD für Container und/oder CDs/DVDs

    • 12.2 Das kryptographische Dateisystem cfs

      • 12.2.1 Was ist CFS?

      • 12.2.2 Installation und Konfiguration

      • 12.2.3 CFS auf Wechselmedien

      • 12.2.4 CFS und Datensicherung

      • 12.2.5 CGD oder CFS?

    • 12.3 Symmetrische Verschlüsselung mit mcrypt(1)

    • 12.4 Verschlüsselung mit OpenSSL

      • Anwendungen

  • 13 Anwendungen

    • 13.1 Installierte Pakete auf Sicherheitslücken überprüfen

      • Datensicherung

  • 14 Strategien zur Datensicherung

    • 14.1 Definitionen

    • 14.2 Vorbereitung der Strategie

    • 14.3 Inventur

    • 14.4 Bedrohungsszenarien analysieren

    • 14.5 Wichtige Daten finden und organisieren

    • 14.6 Sicherung der Sicherungssysteme

    • 14.7 Organisation der Sicherung

      • 14.7.1 Einweisung der Benutzer

      • 14.7.2 Cronjob vs. Batchjob

      • 14.7.3 Homogene Systeme

      • 14.7.4 Dokumentation der Adminstration

      • 14.7.5 Shellskripte statt Handarbeit

      • 14.7.6 Logdateien erstellen und auswerten

      • 14.7.7 Verifikation der Daten

      • 14.7.8 Den GAU erwarten

      • 14.7.9 Alles sichern

      • 14.7.10 Testsysteme und -läufe

      • 14.7.11 Verschiedene Sicherungskreise

      • 14.7.12 Maximale Archivierungsdauer

      • 14.7.13 Wochenende und Feiertage beachten

    • 14.8 Dokumentation

    • 14.9 Testen, Testen, Testen

    • 14.10 Verminderung von Ausfällen und Ausfallzeiten

    • 14.11 Datenrettung

  • 15 Sicherungsvarianten

    • 15.1 Komplettbackup

    • 15.2 Differentielles Backup

    • 15.3 Inkrementelles Backup

    • 15.4 Dump-Level

    • 15.5 Beispielstrategie

    • 15.6 Komprimierung und Verschlüsselung

    • 15.7 Medien

      • 15.7.1 Organisation und Lagerung der Medien

    • 15.8 Prüfliste zur Strategie

  • 16 Programme zur Datensicherung

    • 16.1 dump(8), dump_lfs(8) und restore(8)

      • 16.1.1 restore

      • 16.1.2 Dump im Detail

    • 16.2 Tar, Star, Cpio, Afio und Pax

    • 16.3 {dd(1)

    • 16.4 Ghost for Unix (g4u)

    • 16.5 Amanda

      • 16.5.1 Einrichtung des Servers

      • 16.5.2 Einrichtung der Clients

      • 16.5.3 Programme im Amanda-Paket

      • 16.5.4 Praktischer Einsatz

        • 16.5.4.1 Rücksicherung

          • Einbruchserkennung in Netzwerke

  • 17 Einbruchserkennung in Netzwerke

    • 17.1 Intrusion Detection Systeme

      • 17.1.1 Wozu Einbruchserkennung?

      • 17.1.2 Was ist/kann IDS nicht?

    • 17.2 Prinzipien der Einbruchserkennung

      • 17.2.1 Datensammlung

      • 17.2.2 Angriffserkennung

        • 17.2.2.1 Integritätsprüfung

        • 17.2.2.2 Signaturerkennung

        • 17.2.2.3 Anomalieerkennung

    • 17.3 Angriffe gegen IDS

      • 17.3.1 Integritätsprüfung

      • 17.3.2 Signaturerkennung

        • 17.3.2.1 Insertion

        • 17.3.2.2 Evasion

      • 17.3.3 Programme

        • 17.3.3.1 AIDE

        • 17.3.3.2 verifiedexec(4)

        • 17.3.3.3 Portsentry

        • 17.3.3.4 snort

    • 17.4 Multilayer IDS (mIDS)

    • 17.5 Honeypot

      • 17.5.1 Analyse

      • 17.5.2 Implementierungsprobleme bzw. Angriffsmöglichkeiten

      • 17.5.3 Programme

        • 17.5.3.1 LaBrea

        • 17.5.3.2 honeyd

    • 17.6 Fazit

      • Den Feind kennen

  • 18 Eigene Systeme aufklären und Angreifen

    • 18.1 Schwachstellen-Scanner

      • 18.1.1 Nessus

  • 19 Feindaufklärung: Informationen über Sicherheitslücken und Einbrecher

    • 19.1 NetBSD und Sicherheit

      • Anhänge und Verzeichnisse

  • A ICMP-Pakettypen und Codes

  • B US-Tastaturlayout

  • C The Hacker Manifesto

  • D Weitere Informationsquellen

  • E Verwendete Pakete

  • F Literaturverzeichnis