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 😀

Mozilla Network Security Services CVE-2016-1938 Weak Encryption Multiple Security Weaknesses

DAS ist mal eine Verwundbarkeitsliste 😀

Also Leute UPDATEN UPDATEN UPDATEN, wenn Ihr eine der hier aufgelisteten Mozillaversionen habt.

Mozilla Network Security Services CVE-2016-1938 Weak Encryption Multiple Security Weaknesses

Bugtraq ID:81955
Class:Design Error
CVE:CVE-2016-1938
Remote:Yes
Local:No
Published:Jan 26 2016 12:00AM
Updated:Jul 21 2016 07:00AM
Credit:Hanno Böck
Vulnerable:Ubuntu Ubuntu Linux 12.04 LTS i386
Ubuntu Ubuntu Linux 12.04 LTS amd64
S.u.S.E. openSUSE 13.1
Oracle Communications Messaging Server 8.0
Oracle Communications Messaging Server 7.0
Oracle Communications Messaging Server 6.3
Mozilla Network Security Services (NSS) 0
Mozilla Firefox 43.0.2
Mozilla Firefox 43.0.1
Mozilla Firefox 41.0.2
Mozilla Firefox 39.0.3
Mozilla Firefox 37.0.2
Mozilla Firefox 37.0.1
Mozilla Firefox 36.0.4
Mozilla Firefox 29.0.1
Mozilla Firefox 28.0.1
Mozilla Firefox 27.0.1
Mozilla Firefox 25.0.1
Mozilla Firefox 24.1.1
Mozilla Firefox 19.0.2
Mozilla Firefox 19.0.1
Mozilla Firefox 17.0.10
Mozilla Firefox 17.0.7
Mozilla Firefox 17.0.6
Mozilla Firefox 17.0.5
Mozilla Firefox 17.0.4
Mozilla Firefox 17.0.3
Mozilla Firefox 17.0.2
Mozilla Firefox 16.0.2
Mozilla Firefox 16.0.1
Mozilla Firefox 15.0.1
Mozilla Firefox 13.0.1
Mozilla Firefox 10.0.12
Mozilla Firefox 9.0.1
Mozilla Firefox 3.6.28
Mozilla Firefox 3.6.22
Mozilla Firefox 3.6.13
Mozilla Firefox 3.6.10
Mozilla Firefox 3.6.9
Mozilla Firefox 3.6.8
Mozilla Firefox 3.6.6
Mozilla Firefox 3.6.4
Mozilla Firefox 3.6.3
Mozilla Firefox 3.6.2
Mozilla Firefox 3.6.1
Mozilla Firefox 3.5.16
Mozilla Firefox 3.5.14
Mozilla Firefox 3.5.13
Mozilla Firefox 3.5.10
Mozilla Firefox 3.5.9
Mozilla Firefox 3.5.8
Mozilla Firefox 3.5.7
Mozilla Firefox 3.5.6
Mozilla Firefox 3.5.5
Mozilla Firefox 3.5.4
Mozilla Firefox 3.5.3
Mozilla Firefox 3.5.2
Mozilla Firefox 3.5.1
Mozilla Firefox 3.5
Mozilla Firefox 3.0.18
Mozilla Firefox 3.0.17
Mozilla Firefox 3.0.16
Mozilla Firefox 3.0.15
Mozilla Firefox 3.0.14
Mozilla Firefox 3.0.13
Mozilla Firefox 3.0.12
Mozilla Firefox 3.0.11
Mozilla Firefox 3.0.10
Mozilla Firefox 3.0.9
Mozilla Firefox 3.0.8
Mozilla Firefox 3.0.7
Mozilla Firefox 3.0.6
Mozilla Firefox 3.0.5
Mozilla Firefox 3.0.4
Mozilla Firefox 3.0.3
Mozilla Firefox 3.0.2
Mozilla Firefox 3.0.1
Mozilla Firefox 2.0 20
Mozilla Firefox 2.0 .8
Mozilla Firefox 2.0 .7
Mozilla Firefox 2.0 .3
Mozilla Firefox 1.5.8
Mozilla Firefox 1.5.7
Mozilla Firefox 1.5.6
Mozilla Firefox 1.5.5
Mozilla Firefox 1.5.4
Mozilla Firefox 1.5.2
Mozilla Firefox 1.5.1
Mozilla Firefox 1.5 12
Mozilla Firefox 1.5 .8
Mozilla Firefox 1.5
Mozilla Firefox 1.0.8
Mozilla Firefox 1.0.7
Mozilla Firefox 1.0.6
Mozilla Firefox 1.0.5
Mozilla Firefox 1.0.4
Mozilla Firefox 1.0.3
Mozilla Firefox 1.0.2
Mozilla Firefox 1.0.1
+ Redhat Fedora Core3
Mozilla Firefox 1.0
Mozilla Firefox 0.10.1
Mozilla Firefox 0.10
Mozilla Firefox 0.9.3
Mozilla Firefox 0.9.2
Mozilla Firefox 0.9.1
Mozilla Firefox 0.9
Mozilla Firefox 0.8
Mozilla Firefox 0.6.1
Mozilla Firefox 0.0.13
Mozilla Firefox 9.0
Mozilla Firefox 8.0.1
Mozilla Firefox 8.0
Mozilla Firefox 7.0.1
Mozilla Firefox 7.0
Mozilla Firefox 7
Mozilla Firefox 6.0.2
Mozilla Firefox 6.0.1
Mozilla Firefox 6.0
Mozilla Firefox 6
Mozilla Firefox 5.0.1
Mozilla Firefox 5.0
Mozilla Firefox 43
Mozilla Firefox 42
Mozilla Firefox 41
Mozilla Firefox 40.0.3
Mozilla Firefox 40
Mozilla Firefox 4.0.1
Mozilla Firefox 4.0
Mozilla Firefox 39
Mozilla Firefox 38
Mozilla Firefox 37
Mozilla Firefox 36.0.3
Mozilla Firefox 36
Mozilla Firefox 35.0.1
Mozilla Firefox 35
Mozilla Firefox 34.0.5
Mozilla Firefox 34
Mozilla Firefox 33.0
Mozilla Firefox 33
Mozilla Firefox 32.0.3
Mozilla Firefox 32.0
Mozilla Firefox 32
Mozilla Firefox 31.1.0
Mozilla Firefox 31.1
Mozilla Firefox 31.0
Mozilla Firefox 31
Mozilla Firefox 30.0
Mozilla Firefox 30
Mozilla Firefox 3.6.7
Mozilla Firefox 3.6.27
Mozilla Firefox 3.6.26
Mozilla Firefox 3.6.25
Mozilla Firefox 3.6.24
Mozilla Firefox 3.6.23
Mozilla Firefox 3.6.21
Mozilla Firefox 3.6.20
Mozilla Firefox 3.6.19
Mozilla Firefox 3.6.18
Mozilla Firefox 3.6.17
Mozilla Firefox 3.6.16
Mozilla Firefox 3.6.15
Mozilla Firefox 3.6.14
Mozilla Firefox 3.6.12
Mozilla Firefox 3.6.11
Mozilla Firefox 3.6
Mozilla Firefox 3.5.19
Mozilla Firefox 3.5.18
Mozilla Firefox 3.5.17
Mozilla Firefox 3.5.15
Mozilla Firefox 3.5.12
Mozilla Firefox 3.5.11
Mozilla Firefox 3.1
Mozilla Firefox 3.0.19
Mozilla Firefox 3.0
Mozilla Firefox 29.0
Mozilla Firefox 29
Mozilla Firefox 28.0
Mozilla Firefox 28
Mozilla Firefox 27.0
Mozilla Firefox 27
Mozilla Firefox 26.0
Mozilla Firefox 26
Mozilla Firefox 25.0
Mozilla Firefox 24.1
Mozilla Firefox 24.0
Mozilla Firefox 23.0.1
Mozilla Firefox 23.0
Mozilla Firefox 22.0
Mozilla Firefox 21.0
Mozilla Firefox 20.0.1
Mozilla Firefox 20.0
Mozilla Firefox 2.0.0.21
Mozilla Firefox 2.0.0.19
Mozilla Firefox 2.0.0.18
Mozilla Firefox 2.0.0.15
Mozilla Firefox 2.0.0.14
Mozilla Firefox 2.0.0.13
Mozilla Firefox 2.0.0.12
Mozilla Firefox 2.0.0.11
Mozilla Firefox 2.0 8
Mozilla Firefox 2.0 .9
Mozilla Firefox 2.0 .7
Mozilla Firefox 2.0 .6
Mozilla Firefox 2.0 .5
Mozilla Firefox 2.0 .4
Mozilla Firefox 2.0 .10
Mozilla Firefox 2.0 .1
Mozilla Firefox 2.0
Mozilla Firefox 19.0
Mozilla Firefox 18.0.2
Mozilla Firefox 18.0.1
Mozilla Firefox 18.0
Mozilla Firefox 17.0.9
Mozilla Firefox 17.0.8
Mozilla Firefox 17.0.11
Mozilla Firefox 17.0.1
Mozilla Firefox 17.0
Mozilla Firefox 16.0
Mozilla Firefox 16
Mozilla Firefox 15.0
Mozilla Firefox 15
Mozilla Firefox 14.01
Mozilla Firefox 14.0.1
Mozilla Firefox 14.0
Mozilla Firefox 14
Mozilla Firefox 13.0
Mozilla Firefox 12.0
Mozilla Firefox 11.0
Mozilla Firefox 10.0.9
Mozilla Firefox 10.0.8
Mozilla Firefox 10.0.7
Mozilla Firefox 10.0.6
Mozilla Firefox 10.0.5
Mozilla Firefox 10.0.4
Mozilla Firefox 10.0.3
Mozilla Firefox 10.0.2
Mozilla Firefox 10.0.11
Mozilla Firefox 10.0.10
Mozilla Firefox 10.0.1
Mozilla Firefox 10.0
Mozilla Firefox 10
Mozilla Firefox 1.8
Mozilla Firefox 1.5.3
Mozilla Firefox 1.5.0.9
Mozilla Firefox 1.5.0.7
Mozilla Firefox 1.5.0.6
Mozilla Firefox 1.5.0.5
Mozilla Firefox 1.5.0.4
Mozilla Firefox 1.5.0.3
Mozilla Firefox 1.5.0.2
Mozilla Firefox 1.5.0.11
Mozilla Firefox 1.5.0.10
Mozilla Firefox 1.5.0.1
Mozilla Firefox 1.4.1
Mozilla Firefox 0.7
Mozilla Firefox 0.6
Mozilla Firefox 0.5
Mozilla Firefox 0.4
Mozilla Firefox 0.3
Mozilla Firefox 0.2
Mozilla Firefox 0.1
Not Vulnerable:Mozilla Firefox 44

Sicherheitslücke im Gnome 3 Desktop

Im Gnome 3 Desktop klafft mindestens seit der Version für Fedora 18 eine Sicherheitslücke.

Diese betrifft i.d.R. Benutzer eines Laptops, da diese das Laptop öfters in den Suspend-on-Disk Modus versetzen um Energie zu sparen, auf Deutsch: Den Deckel zu machen 😉

Wenn das passiert, wird der Bildschirm schwarz, weil er ausgeht. Wenn der Bildschirm wieder angeht, sieht man auf einigen Rechnern den Inhalt des Desktops vor dem Suspend, bis der Screensafer einsetzt und dem ganzen einen Riegel vorschiebt:

Am 9.12.2015 wurde die Lücke zum zweiten Mal an Fedora und damit an Gnome gemeldet.

Ein zweites Mal ? Ja, genau. Schon in Fedora 18 wurde auf einem Laptop dieser Effekt bemerkt und an Fedora gemeldet. Da es sich um einen Security-Bug handelt, wurde darüber nichts bekannt. Im Laufe der nächsten Tage, kamen die Redhat- und Gnome-Entwickler zu dem Schluß, des es an dem „alten“ „langsamen“ Laptop liegen mußte und es modernen nicht reproduziert werden konnte.

Nun sind 2,5 Jahre rum und ich habe ein neues Laptop…. und den gleichen Bug wie vor 2,5 Jahren.

Diesmal gab es aber eine Fristsetzung für Gnome. Das Sie diesen Beitrag lesen können, bedeutet, daß die Schweigefrist von 90 Tagen um ist.

Wie können Sie diesen Bug ausnutzen um an Informationen zu gelangen ?

Eine Voraussetzung ist natürlich, daß das Opfer sensitive Daten angezeigt hat, bevor der Suspendmodus eingeleitet wurde. Ansonsten sehen Sie zwar den Desktop, aber außer einigen anrüchigen Pornohintergründen, wenden Sie vermutlich kaum etwas „entdecken“ können 🙂

Wie exploiten wird dies nun ?

Das ist schon so trivial, daß man sich schämen muß es zu erwähnen:

Handy nehmen
Videoaufnahme starten
auf den Bildschirm richten
Leertaste auf dem Opfer Laptop benutzen
etwas warten bis das Bild kommt.
Weggehen.

Spulen Sie die Videoaufnahme langsam ab und halten Sie einfach in dem Moment an, wenn der Bildschirm zusehen ist.

Kleiner Tip:

Das Laptop und der Monitor sollten in einer hellen Umgebung aufgenommen werden, also nicht nur den Bildschirm sondern auch etwas Dekor, weil dann der Videochip die Aufnahme nicht überstrahlt, wenn es von schwarz auf weiß umschlägt.

Gegenmaßnahmen:

Zuerst den Screensafer starten, dann den Suspendmodus benutzen.

Betroffen:

min. Fedora 18,19,20,21,22,23 mit Gnomedesktop
vermutlich: Ubuntu, Debian mit Gnome und alle Fedora vor 18 mit Gnome