Designfehler in TCP RFC

Moin,

wer gestern und heute die News gelesen hat, der wird über den Beitrag zum TCP Fehler in Linuxkernel gestolpert sein.

Was ist passiert ?

Einigen findigen Forschern/Hackern ist es gelungen, einen Designfehler in einem per RFC vorgegebenen Standard zu finden. Damit ist es möglich eine TCP Verbinden zu beeinflussen z.b. Sie von extern zu beenden oder Daten einzuschleusen. Wählt der Angreifer das Paket günstig aus, kann er z.b. Schadcode in eine Webseite einschleusen auf dem Web von Server zum Betrachter. Er kann auch herausbekommen, ob Server A mit einer xbeliebigen anderen IP Adresse grade eine Kommunikation hat.  Was aber nicht geht ist, herauszubekommen, mit wem ein an der Verbindung beteiligter spricht, wenn man nicht genau auch der IP sucht. Mit anderen Worten, man müßte sehr viele Kombinationen durchprobieren, und zwar genau während eine Verbindung besteht.

Möglich wird das über einen festen globalen Zähler, der es durch geschicktes Ausnutzen von Datenpaketen und deren Antworten erlaubt, vorherzusehen, wie die nächste gültige Sequenznummer in einem TCP Paket aussehen wird, so daß man als Angreifer genau diese Sequenznummer benutzen kann.

Die Bewertung

Gerade bei Webseiten werden die TCP Verbindungen aber i.d.R. sehr schnell wieder geschlossen, so daß der Angreifer schon verdammt viel Glück haben muß. Interessanter sind Angriffe schon auf Downloadportale, wo die Verbindungen auch mal eine Stunde vorhanden sind, weil GBweise Daten transportiert werden. Allerdings dabei einen funktionierenden INJECT hinzubekommen, in eine unbekanntfortgeschrittene Datenübertragung, wäre praktisch unmöglich.

Der Angriffsvektor ist zwar heftig, aber muß schon genau wissen wen man angreifen will. Zufällige Besuche von IP A auf Server B beim Surfen sind also extrem unwahrscheinlich als Ziel.

Zudem kommt ein Laufzeitproblem im Netz dazu, so daß man selbst als Angreifer in der Nähe des Ziels  sein müßte, da mit jedem HOP im Netz, die Laufzeitschwankung größer wird und man ungenauere Werte ermittelt. Je ungenauer der Wert den man als Angreifer für die nächsten Sequenznummer ermittelt, desto niedriger die Erfolgsrate.

Gegenmaßnahnen

Serveranbieter, die Linux einsetzen, können jetzt einfach den globalen counter individuell hochsetzen, so daß ScriptKids, die Tools zum Injecten einsetzen werden, eine schlechte Ausgangsbasis haben. Und das geht so :

Fedora/RedHat/CentOS:

  1. echo “net.ipv4.tcp_challenge_ack_limit = 999999999”  > /etc/sysctl.d/1-tcp-challenge-ack.conf
  2.  “sysctl -p” zum Updaten der Konfiguration eingeben.

Ubuntu/Debian/Mint:

  1. Open /etc/sysctl.conf, append a command “net.ipv4.tcp_challenge_ack_limit = 999999999”.
  2. Use “sysctl -p” to update the configuration.

Ich für meinen Teil würde empfehlen, den Wert nicht auf 99999999 zusetzen, sondern den Wert per $Random zu setzen. Das verwirrt die Angreifer noch viel mehr. Und per Cronjob einmal die Minute den Randomwert ändern 😀 Dann hat man schon genau das, was den Kernelpatch später auch ausmachen wird 😀

Essentials: Festplattenbelegung mit Baobab analysieren

Wie Finn Christiansen in seinem Blogbeitrag Große Dateien und Verzeichnisse unter Linux finden beschrieben hat, könnte man find benutzen und nach Files einer bestimmten Größe suchen(oder größer). Die Herren Kommentatoren zeigten dann gleich noch andere, ebenfalls shellbasierte Methoden auf, den Platzbesetzern auf die Spur zukommen.

Was aber, wenn man darauf keinen Bock hat ?

Dann nimmt man BaoBab :

Baobab-1

Baobab stellt die Festplattenbelegung auf eine einfache Weise in Ebenenringen dar. Je größer die Ringfläche, desto mehr ist drin und man kann schon auf den ersten Blick erkennen, in welchem Unterzeichnispfad der Übeltäter stecken könnte.

Natürlich kann man den Verzeichnisbaum links auch aufklappen, oder sich das als wirklich als abstrakte Kunst anzeigen lassen 😉

Baobab-2Damit werdet Ihr schnell ans Ziel kommen.

Bluetooth Proximity Tool

Zunächst installieren wir einmal das Paket „blueproximity“ via „dnf install blueproximity“ .

Wenn das Programm gestartet wird, suchen wir uns zunächst einmal das BlueTooth Gerät aus, das als Trigger dienen soll:

BT-2Danach sollte man den Kanal auswählen auf dem das BT Protokoll arbeiten soll. Ein Status „benutzbar“ ist empfehlenswert 😉

Danach setzen wir die Alarmparameter auf die uns genehmen Werte. Die Distanz Ihres verbundenen Handies wird Ihnen ganz unten angezeigt. Mit 127 ist aber nicht 127 Meter gemeint, sondern „ist komplett außer Reichweite / ist aus“ und „0“ ist direkt in der Nähe. Daher sollte man nur Entsperren, wenn das Handy im direkten Umfeld ist, also „0“ und „1“ für die min. Sperrendistanz, sobald man sich bewegt. Die Zeit ist natürlich die Dauer dieses Zustandes, so kann man z.b. durch das Büro gehen ohne das gleich der Bildschirm gesperrt wird.

Um sich mal eine Vorstellung von den Distanzwerten zu machen, der Wert „1“ wurde meinem Laptop angezeigt, als mein Handy bereits 3 m Luftlinie weg war, um die Ecke einer Wand mit vielen Elektrogeräten. Dieser Wert dürfte also ruhig etwas empfindlicher berechnet werden .

BT-1

 

In der „Sperren“ Optionen können wir die Sperrkommandos für den Screensaver angeben. Die Kommandos die dort bereits drinstehen sind für Gnome 2, also nicht mehr brauchbar.  Unten habe ich die neuen DBUS Kommandos gepostet, mit denen man Sperren und entsperren kann.
BT-4

Sperrkommando :

dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock

Entsperrkommando:

dbus-send --session --dest=org.gnome.ScreenSaver --type=method_call /org/gnome/ScreenSaver org.gnome.ScreenSaver.SetActive boolean:false

Das Entsperrkommando ist allerdings nicht perfekt. Es entsperrt zwar den Bildschirm, man muß das Passwort also nicht mehr angeben, aber der Bildschirm bleibt dunkel. Sobald man die Maus bewegt, kann man aber weiterarbeiten.

Sollte man sein Handy verloren haben ;), kann man sich natürlich auch ganz normal mit Passwort einloggen.

Im TOP-Icon-Contextmenü des Programms kann man es auch temporär abschalten. Das macht aus Gründen des Energiesparen natürlich viel Sinn, besonders beim Handyakku.

Mitarbeit

Wenn Ihr Vorschläge habt, wie man den Screensaver nicht nur freischaltet, sondern auch gleich Bildschirm wieder sichtbar macht, dann hinterlaßt einen Kommentar. Den richtigen Tip werde natürlich in den Text aufnehmen.