PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sicherheitsüberlegungen



Zalon
19.09.06, 18:44
Hallo zusammen,

zur Zeit ist das Thema "Verschlüsselung der ganzen Platte" ja wieder aktuell, da bin auch ich jetzt am Überlegen, ob ich die Platten meines Servers nicht verschlüsseln soll. Gleichzeitig möchte ich jedoch noch einige andere Änderungen am bisherigen Sicherheitskonzept vornehmen und bitte dabei um euren Rat.

Da der Server selbstständig starten, das heisst ohne jegliche Benutzereingaben zum Entschlüsseln hochfahren soll, würde ich gerne folgendes machen:

Die Entschlüsselung geschieht über Zertifikat das auf einen USB-Stick gespeichert wird. Gleichzeitig kommen chkrootkit, rkhunter und tripwire ebenfalls mit auf den USB-Stick und dieser wird dann schreibgeschützt. (Ist ja bei manchen Typen ja möglich).

Dazu meine Fragen:
1.) Ist das überhaupt möglich? Kann ich entschlüsseln lassen ohne selbst Passwörter beim Start eingeben zu müssen?
2.) Da mein Server bisher ohne USB ausgekommen ist, wird eigentlich USB rechtzeitig beim Booten erkannt und aktiviert, sodass die Platten entschlüsselt werden können?
3.) Was ist mit rkhunter und chkrootkit, lassen die sich problemlos umpflanzen, oder sind die da etwas sensibel? (die wichtigsten Daten von tripwire liegen momentan auf einer schreibgeschützten Diskette, das klappt also)
4.) Gibt es eine zusätzliche Möglichkeit, dass das System beim Hochfahren abfrägt, ob der Stick am USB-Port angeschlossen ist, wenn ja eben weitermacht und die Platten entschlüsselt, wenn nein das System gleich wieder abschaltet? Also ohne dass es zu einem Kernelpanic kommt, weil die Platten nicht entschlüsselt werden konnten?
5.) Ist eine mechanische Einstellung am USB-Stick wirklich ein zuverlässiges Mittel, dass nicht auf den Stick geschrieben werden kann, oder lässt sich das über Software irgendwie umgehen?

Falls ihr (andere?) gute Ideen oder Überlegungen dazu habt, so würde ich mich über ein Post freuen.

Gruß,

Zalon

Thorashh
19.09.06, 19:21
zur Zeit ist das Thema "Verschlüsselung der ganzen Platte" ja wieder aktuell, da bin auch ich jetzt am Überlegen, ob ich die Platten meines Servers nicht verschlüsseln soll. Man verschlüsselt seine Festplatten nicht, weil das Thema gerade wieder hip ist, oder weil Du in irgendeiner Zeitschrift was dazu gelesen hast.

Wenn Du Sicherheit haben willst, dann musst Du erstmal wissen, was Du schützen willst und vor allem wovor du es schützen willst.
Es ist schön, das Du glaubst sowas wie ein Sicherheitskonzept zu haben. Nur wenn Du es uns nicht mitteilst, wie sollen wir dann was dazu sagen?

Und die Idee, das Dein Server den Key für die Festplattenverschlüsselung von einem USB-Stick lesen soll und ohne Benutzereingriff booten soll, zeigt deutlich, das Du keine Ahnung hast, wovon Du hier redest. Jeder der deinen Rechner klauen kann, hat anschließend Zugriff auf deine Daten. Oder glaubst Du etwa er lässt dir den USB-Stick aus lauter Nettigkeit einfach da?
Und wofür willst Du eine Festplattenverschlüsselung einsetzen, wenn doch jeder an Deine Daten herankommt. :confused:

Du solltest Di dringend ein paar Gedanken zu Deinem Bedrohungsszenario machen. Und dann fragst Du uns, was man gegen die Bedrohung unternehmen könnte. ;)

Zalon
19.09.06, 19:56
*Seufz*

Man verschlüsselt seine Festplatten nicht, weil das Thema gerade wieder hip ist,
Nein, aber man spielt länger mit diesem Gedanken und liest dann wieder davon und erinnert sich, das auch auf der Agenda gehabt zu haben.



Es ist schön, das Du glaubst sowas wie ein Sicherheitskonzept zu haben. Nur wenn Du es uns nicht mitteilst, wie sollen wir dann was dazu sagen?

Eine Kenntnis des Sicherheitskonzeptes von Firewall angefangen über Passwortüberprüfung bis zur Bekanntgabe des Ortes, an dem der Schlüssel für den Server liegt ist zur Beantwortung meiner Fragen eigentlich nicht notwendig. Wenn es Dich dennoch interessiert, so können wir uns gerne per PM darüber unterhalten. Es ist aber wohl kaum ein Sicherheitskonzept, wenn es im Internet für jeden nachzulesen ist, oder?



Und die Idee, das Dein Server den Key für die Festplattenverschlüsselung von einem USB-Stick lesen soll und ohne Benutzereingriff booten soll, zeigt deutlich, das Du keine Ahnung hast, wovon Du hier redest.

Danke. Vielleicht habe ich zwar - Deiner Meinung nach - keine Ahnung, vielleicht aber auch einfach nur ein paar Fragen und zu diesen mir auch meine Gedanken gemacht?
Kleiner Hinweis: Nicht nur ich soll den Rechner anschalten, sondern auch andere Personen. Diese sind aber nicht befugt an den Daten rumzufriemeln. Teile ich jedem von denen das Passwort mit, ist das ein höheres Risiko, als wenn sie den USB-Stick in die Hand bekommen.

Nachdem Du Dich ja offenbar schon so intensiv mit meinem Posting auseinandergesetzt hast, wäre ich Dir dankbar, wenn Du auch etwas zu den obigen Fragen sagen könntest.

Thorashh
19.09.06, 20:49
Es ist aber wohl kaum ein Sicherheitskonzept, wenn es im Internet für jeden nachzulesen ist, oder?
Ein gutes Sicherheitskonzept wird durch eine Veröffentlichung nicht unsicherer. Im Gegenteil.
Ein Sicherheitskonzept, das nicht veröffentlicht werden darf, ist ein schlechtes Konzept.


Nachdem Du Dich ja offenbar schon so intensiv mit meinem Posting auseinandergesetzt hast, wäre ich Dir dankbar, wenn Du auch etwas zu den obigen Fragen sagen könntest.
:)


1.) Ist das überhaupt möglich? Kann ich entschlüsseln lassen ohne selbst Passwörter beim Start eingeben zu müssen? Du kannst sogenannte Schlüsseldateien verwenden. Aus diesen wird dann das Passwort generiert. Das geht IMHO auch ohne Userinteraktion.

Aber nochmal. Wenn Du es so machst, ist die Festplattenverschlüsselung sinnlos. Du vergrößerst damit nur das Risiko eines Datenverlustes.

2.) und 3.) kA


4.) Gibt es eine zusätzliche Möglichkeit, dass das System beim Hochfahren abfrägt, ob der Stick am USB-Port angeschlossen ist, wenn ja eben weitermacht und die Platten entschlüsselt, wenn nein das System gleich wieder abschaltet? Also ohne dass es zu einem Kernelpanic kommt, weil die Platten nicht entschlüsselt werden konnten?Du müsstest in den INIT-Prozess eingreifen und abfragen können, ob der USB-Stick vorhanden ist. Ließe sich vermutlich recht einfach über ein eigenes INIT-Skript realisieren. Das läßt sich aber durch einen interaktiven Startvorgang immer umgehen.

Der USB-Stick wird ja als Wechselmedium eingebunden. Du könntest also auch ein Skript schreiben, das per udev und HAL die Festplatte beim erkennen des USB-Sticks entschlüsselt und beim abziehen deaktiviert. Oder auch nur deinem INIT-Skript mitteilt, das der USB-Stick angeschlossen ist. Damit ist auch ein autoshutdown möglich, wenn der Stick entfernt wird.


5.) Ist eine mechanische Einstellung am USB-Stick wirklich ein zuverlässiges Mittel, dass nicht auf den Stick geschrieben werden kann, oder lässt sich das über Software irgendwie umgehen? Kommt auf den USB-Stick an. :D
Aber im Ernst. Ich kenne keinen USB-Stick mit einem mechanischen Schalter, bei dem sich der Schreibschutz per Software deaktivieren läßt.

Zalon
19.09.06, 21:14
Vielen Dank für die Antworten.

Ein gutes Sicherheitskonzept wird durch eine Veröffentlichung nicht unsicherer. Im Gegenteil.
Ein Sicherheitskonzept, das nicht veröffentlicht werden darf, ist ein schlechtes Konzept.
Hmm, eine Streitfrage. Wenn ich zum Beispiel als (marginal kleinen) Teil meiner Sicherheit den SSH-Port von dem üblichen, den Skriptkiddies bekannten, auf einen anderen umlege und dann auf einem gleichzeitig laufendem Apache-Server überall publik mache, wo denn nun der SSH lauscht (und dass er lauscht), so senke ich mein Sicherheitsniveau. Ja, zugegeben, SSH alleine umzulegen ist nicht DAS Sicherheitskonzept und rausfinden dass sowas aktiv ist, ist auch nicht schwer. Aber es erfordert mehr Aufwand als banales Skripte ausführen. Wie gesagt, eine Streitfrage. ;)

Danke für die Idee mit dem Init-Skript. Im Prinzip ließe es sich also - vorausgesetzt der USB-Stick wird rechtzeitig erkannt - so machen, dass da ein interer Check kommt im Sinne von
"IF USB=aktiv THEN Init-fortfahren, Else Init-abbrechen & shutdown" rechtzeitig eingreift.
Da ich sowas noch nie gemacht habe, lassen sich die init-prozeduren mit dem shutdown-befehl wirklich reibungslos unterbrechen und den Rechner gleich wieder runterfahren?

Du hast da noch einen anderen Punkt angesprochen: Es müsste doch ebenfalls möglich sein, den USB-Stick nur für den Start einzuhängen, nachdem das System gestartet ist, diesen wieder entfernen. Oder anders gefragt: Die entschlüsselten Festplatten bleiben solange das System läuft doch entschlüsselt, der "Key" wird nicht mehr zwischendrin (quasi als Bestätigung) abgefragt. Oder habe ich da etwas falsch verstanden?
Das hieße dann, der Stick wird eingehängt, mein "User" drückt den Powerknopf, wartet ein wenig und nimmt den Stick wieder mit.
Tripwire und Co. dürfen dann natürlich nicht auf dem Stick (aber auf einem anderen?) sein.

Nochmals vielen Dank, bin schon ein gutes Stück weiter! :D

Thorashh
19.09.06, 22:22
Auf welchem Port SSHD läuft gehört nicht zum Sicherheitskonzept. Da steht drin, ob SSHD verwendet wird/werden darf, von wem und wie, etc. Du redest von der Implementierung. Das kommt erst viel später dran.

Du kannst Dein INIT-Skript an einer beliebigen Stelle innerhalb des Bootprozesses aufrufen lassen. (Je höher die Nummer im rc.X-Verzeichnis X=Runlevel, desto später wird das INIT-Skript ausgeführt).
Der normale INIT-Prozess wird sequentiell abgearbeitet. Immer ein INIT-Skript nach dem anderen. Du kannst an jeder Stelle eine Pause einbauen, den Startvorgang anhalten oder einen shutdown auslösen.

Sollte kein Problem sein, das der USB-Stick nur zum booten benötigt wird.
Dann kannst Du aber auch eine Userinteraktion einbauen. :)