Kategorie: Internet

Die Sicherheitslücken von JavaScript: Fremdcodes und Bibliotheken

JavaScript-Bibliotheken sind unbestreitbar praktisch, doch ihre Sicherheit wird oft fahrlässig gehandhabt. Dabei gibt es ein paar simple Regeln, die man befolgen sollte, um seine Webseite vor Cyberattacken zu schützen.

JavaScript bietet vielfältige Möglichkeiten, dynamische und interaktive Webseiten-Inhalte zu kreieren. Im Laufe der Zeit hat sich die einst recht simple Skriptsprache an die gängigen Programmiersprachen angenähert und ist dadurch unweigerlich komplexer geworden. Zum Glück gibt es ja die zahlreichen JavaScript-Bibliotheken für nahezu jeden Zweck, in denen geübte Coder die am häufigsten verwendeten Funktionen und Anweisungen zusammengefasst haben – ein Segen für Einsteiger und diejenigen, die regelmäßig am DOM verzweifeln.

Was viele Webseiten-Designer und -betreiber aber gerne vergessen, ist die Tatsache, dass diese hilfreichen Programmierwerkzeuge auch das größte Sicherheitsproblem von JavaScript darstellen. Denn jeder Code, den man nicht selbst geschrieben hat, kann versehentliche oder gar beabsichtigte Fehlerstellen enthalten, die sich Hacker für Cyberangriffe zunutze machen können.

Vernachlässigte Problematik

Wie ernst das Problem ist, enthüllten im März dieses Jahres sechs Wissenschaftler von der Northeastern University of Boston in einer Studie: Von 133.000 untersuchten Webseiten verwendeten knapp 38% mindestens eine als verwundbar geltende JavaScript-Bibliothek, 10% sogar zwei oder mehr. Im Jahr 2014 hatte es bereits eine ähnliche Studie gegeben – mit noch schlechteren Ergebnissen.

Jüngste Ereignisse zeigen, wie problematisch sogenannter „third party code“ für die Webseiten-Sicherheit sein kann. Im angefügten (englischsprachigen) YouTube-Video demonstriert Guy Podjarny von der Firma Snyk anschaulich einige solcher „vulnarability exploits“ aus der realen Welt und macht damit deutlich, dass bereits kleinste Veränderungen des Codes ausreichen, um eine Webseite angreifbar zu machen.

Aktivieren Sie JavaScript um das Video zu sehen.
Video-Link: https://www.youtube.com/watch?v=0dgmeTy7X3I

Was man als Programmierer tun kann

Leider existieren bislang keine einheitlichen Datenbanken für Sicherheitslücken in JavaScript-Bibliotheken. Das ist besonders problematisch, wenn man bedenkt, dass zum Beispiel das vielseitig einsetzbare jQuery 37% der Sicherheitslücken in der genannten Studie ausmachte. Der Liebling eines jeden Coders und seine dazugehörige Erweiterung UI werden nämlich in vielen Webseiten verwendet, die mit weit verbreiteten CMS wie etwa WordPress programmiert wurden. jQuery Version 1 ist immer noch mit Abstand auf häufigsten im Einsatz, Version 2 und 3 werden kaum benutzt.

jQuery Versionsverteilung

jQuery Versionsverteilung (Quelle: W3Techs)

Das Bundesamt für Sicherheit in der Informationstechnik gibt zu diesem Thema ein paar Empfehlungen ab, die im Folgenden kurz zusammengefasst werden:

  • Drittanbieter-Bibliotheken weisen gemäß Studie tendenziell mehr Sicherheitslücken auf, da sie veränderten Code enthalten können, vor allem wenn sie aus vertrauensunwürdigen Quellen heruntergeladen werden. Es ist also empfehlenswert, die Reputation einer ausgewählten Seite vor dem Download zu überprüfen und im Zweifelsfall sämtliche Funktionen der Bibliothek selbst auszutesten.
  • Bei vielen der untersuchten Bibliotheken lag die letzte Software-Aktualisierung im Durchschnitt drei bis vier Jahre zurück! Dabei sind regelmäßige Updates eine unabdingbare Voraussetzung in jedem Aspekt der Webseiten-Security.
  • Es gilt die Faustregel: Je mehr Codes vorhanden sind, desto größer ist die Fehleranfälligkeit. Jedoch werden durchschnittlich 50% der Funktionen von „multipurpose libraries“ gar nicht verwendet. Man sollte sich also darüber klarwerden, welche Funktionen man wirklich benötigt, und im Anschluss gründlich ausmisten.
  • Egal, wie praktisch und bewährt sie sein mögen – veraltete Bibliotheken wie SWFObject erfahren schon lange keinen Support mehr und sollten deshalb gänzlich gemieden werden. Nicht umsonst verfielen beispielsweise 87% der Sicherheitslücken in der genannten Studie auf die Bibliothek YUI, von der keine aktuelle Version mehr existiert.

Javascript Code

Kategorien: Coding Internet

EU verschlechtert Rechte deutscher Verbraucher bei Telefon- und Internetanbieterwechsel

EU Flagge

Die EU möchte europaweite Regeln für den Wechsel zwischen Telefon- bzw. Internetanbietern einführen. Dumm nur, dass Verbraucher in Deutschland durch die neue Regelung zukünftig höchstwahrscheinlich deutlich schlechter gestellt werden.

Ziel der EU ist es, einen europaweit einheitlichen digitalen Binnenmarkt ins Leben zu rufen, damit in allen EU-Ländern die gleichen Regeln gelten. Neben neuen Regeln zum Urheberrecht soll nun auch der Telekommunikationsmarkt angegangen werden. Der „europäische Kodex für die elektronische Kommunikation“ soll den Rechtsrahmen für den Telekommunikationsmarkt an die aktuellen Marktentwicklungen anpassen. Grundsätzlich ist das Vorgehen zu begrüßen, da sich der Markt schnell wandelt und eine Überarbeitung dringend notwendig ist. Dennoch werden deutsche Verbraucher mit großer Wahrscheinlichkeit als Verlierer aus dieser Umstellung hervorgehen.

Aktuell sind wir in Deutschland gut aufgestellt. Beim Wechsel des Telefon- bzw. Internetanbieters darf die Versorgung nur maximal einen Kalendertag unterbrochen werden. Funktioniert das nicht, muss der bisherige Anbieter die Leistung wieder erbringen und darf gleichzeitig nur 50 % des Preises verlangen. Dies soll als Anreiz für einen schnellen und reibungslosen Wechsel auf der Seite des Betreibers dienen.

Der aktuelle Entwurf der EU-Richtlinie sieht vor, dass die Frist auf einen Werktag erhöht wird. Samstag, Sonntag und Feiertage zählen also nicht mehr mit. Des Weiteren fällt die 50-%-Regelung bei Wechselproblemen weg und Verbraucher müssten die vollen Gebühren bezahlen. Außerdem muss nicht mehr wie bisher tagesgenau abgerechnet werden, sondern monatlich. Im dümmsten Fall müssten Verbraucher dann den gesamten Monat bezahlen, obwohl sie nur einen Tag genutzt haben. Darüber hinaus lässt die Neuregelung einigen Spielraum und es ist nicht klar, ob überhaupt alle beteiligten Anbieter verpflichtet werden. Dies könnte zu unschönen und langwierigen Schuldzuweisungen zwischen den Anbietern führen. Eine weitere Verschlechterung gibt es bei Umzügen. Sofern der Anbieter am neuen Wohnort nicht liefern kann, gilt bisher ein Sonderkündigungsrecht. Dieses ist zukünftig nicht mehr vorgesehen.

Deutsche Verbraucher werden also nur Verschlechterungen erhalten, sofern die EU-Richtlinie wie vorgesehen beschlossen wird. Verbraucherschützer schlagen Alarm und warnen, aber vermutlich wird es schon zu spät sein. Der finale Entwurf wird zeitnah erwartet. Die darauffolgende Verhandlung zwischen Europäischer Kommission, Europäischem Parlament und Rat der Europäischen Union gilt nur als Formsache und lässt keine großen Hoffnungen aufkommen. Bleibt die Frage, warum sich die Bundesregierung im EU-Rat nicht für den Erhalt der deutschen Verbraucherschutzstandards eingesetzt hat…

Kategorien: Internet Sonstiges

fritzcap – VoIP-Telefongespräche mitschneiden und speichern leicht gemacht

AVM FRITZ!Box 7490

In der Vergangenheit habe ich bereits zwei Artikel veröffentlicht, wie ihr VoIP-Telefongespräche mitschneiden und speichern könnt:

Da zu diesem Thema weiterhin Fragen kommen, dachte ich mir, euch eine neue Methode vorzustellen. Als Basis dient die in der Programmiersprache Python geschriebene Skriptsammlung fritzcap. Das Tool automatisiert den Vorgang des Paketmitschnitts und die anschließende Extraktion der VoIP-Telefonate. D.h. ihr müsst euch nicht mehr mit Wireshark herumschlagen. Wie der Name schon sagt setzt fritzcap eine FRITZ!Box mit mindestens FRITZ!OS 6.30 voraus. Aktuell wird nur der G.711-Codec unterstützt.

Wenn der Paketmitschnitt erst nach Beginn des Telefonats startet, kann es vorkommen, dass nur ein Kanal aufgezeichnet wird. Dieses Verhalten ist anscheinend erst mit FRITZ!OS 6.80 und höher der Fall. Wer von dem Problem betroffen ist, sollte mit einem Recovery auf FRITZ!OS 6.50 zurückgehen und erneut testen.
Vor dem Mitschneiden von VoIP-Telefonaten sollte jedoch die aktuelle Rechtslage beachtet werden! Bei unerlaubten Aufzeichnungen sind sogar strafrechtliche Konsequenzen möglich. Ich übernehme keine Haftung.

fritzcap installieren und einsetzen

  1. Zunächst muss der CallMonitor der FRITZ!Box aktiviert werden. Der integrierte Anrufmonitor ist standardmäßig deaktiviert und muss mit Hilfe eines angeschlossenen Telefons aktiviert werden. Dazu einfach #96*5* wählen und ein paar Sekunden warten. Der CallMonitor eurer FRITZ!Box ist jetzt via TCP-Port 1012 erreichbar. Das Ausschalten funktioniert analog mit #96*4*.
  2. Zweitens benötigt ihr ein installiertes Python, damit das Skript ausgeführt werden kann. fritzcap setzt Python in Version 2.6 oder höher voraus. Ich habe das Skript mit Python 2.7.14 getestet. Python 3.x scheint aktuell noch nicht zu funktionieren. Einfach downloaden und installieren, das wars schon. Hier könnt ihr Python für Windows herunterladen: https://www.python.org/downloads/windows/
  3. Die dritte Voraussetzung ist fritzcap selbst, welches ihr bei Github erhaltet. Hier findet ihr immer die neueste Version zum Download: https://github.com/jpluimers/fritzcap/archive/master.zip
  4. Nach dem Download müsst ihr die Skriptsammlung entpacken. Ich habe sie zum Testen auf den Desktop gelegt.
  5. Anschließend eine Eingabeaufforderung („cmd.exe“) öffnen und in den Skriptordner navigieren.
  6. Mit diesem Befehl wird fritzcap im Monitor-Modus gestartet. fritzcap erkennt über den CallMonitor, wann ein Telefonat geführt wird und startet bzw. stoppt die Aufzeichnung automatisch. Anschließend wird das Gespräch aus dem Paketmitschnitt extrahiert und in einer WAV-Datei gespeichert.
    fritzcap.py --capture_files --decode_files --monitor_calls --box_name 192.168.178.1 --password PASSWORT
  7. Dieser Befehl startet die Aufzeichnung und Dekodierung eines VoIP-Telefonats von Hand. Die Dateien werden in ein dynamisch erzeugtes Verzeichnis abgelegt. Die Aufzeichnung wird mit STRG+C beendet.
    fritzcap.py --capture_files --decode_files --cap_folder "captures/%(tcaps.Y-m-d/HMS)" --box_name 192.168.178.1 --password PASSWORT

fritzcap kann noch einiges mehr. Eine komplette Übersicht aller Funktionen bekommt ihr über die eingebaute Hilfe-Funktion:

fritzcap.py --help

Wenn das „Smart Home“ wirklich smart wird

Bis vor kurzem konnten intelligente Häuser nur die Temperatur steuern oder die Rollläden zu bestimmten Zeiten schließen. Die Intelligenz dieser Gebäude beschränkte sich meistens auf einige Funktionen mit eingeschränkter Logik oder einfachen Routinen. Der Einsatz dieser Technik lohnte sich meistens lediglich für große Gebäude, wo Einsparungen die teure Technik wirtschaftlich machten.

Das Internet der Dinge macht den Einsatz der Technik auch in normalen Haushalten sinnvoll. Obwohl nur 55% der Bevölkerung in Deutschland den Einsatz der „smarten“ Geräte  hinsichtlich Sicherheit und Kontrolle des eigenen Heimes für  sinnvoll halten, werden immer mehr Haushaltsgeräte mit Anschluss an das Internet angeboten. Die Vision, dass der Kühlschrank in Zukunft selbst den Einkauf übernimmt, idealerweise unter gleichzeitiger Berücksichtigung aller aktuellen Sonderangebote, ist nicht mehr so fern. Es werden heute schon Glühbirnen angeboten, die nicht nur die Helligkeit auf die Wünsche der Bewohner anpassen können, sondern auch ihre Farbe. Immer mehr Geräte bieten Funktionen an, die das Leben schöner oder einfacher machen sollen.

Aktivieren Sie JavaScript um das Video zu sehen.
Video-Link: https://www.youtube.com/watch?time_continue=89&v=9pkSrDnPeAQ

Bis jetzt benötigten aber alle Geräte noch ihre eigene App, um von jedem Ort aus gesteuert werden zu können. Jeder Hersteller entwickelt seine eigene Steuerung, ohne das Gesamtbild im Auge zu behalten: die intelligente Steuerung des ganzen Haushalts. Nur wenn die Funktionen von mehreren oder allen Geräten kombiniert werden können, kann die Vision eines „Smart Home“ realisiert werden. Die Heizung kann zwar automatisch reguliert werden, aber wenn das Heizsystem keine Informationen von anderen Geräten erhält, kann es nicht wissen, ob sich überhaupt Personen in dem Gebäude befinden. Deshalb ist eine Kombination aller Informationen, die die Geräte liefern, für ein wirklich intelligentes Wohnen essentiell. Auch wenn alle Geräte das Internet nutzen, kommunizieren sie doch durch ihre eigenen Schnittstellen mit den Benutzern – und nicht untereinander.

Mit dieser Motivation wurde die Open Connectivity Foundation (OCF) gegründet, in der u.a. Microsoft, Intel, Samsung und Cisco Mitglieder sind. Aufgabe der OCF ist es, einen gemeinsamen Kommunikationsstandard zu entwickeln, der den Datenaustausch unter allen Geräten möglich macht. So könnten alle Geräte, die mit dem Internet der Dinge verbunden sind, zu einem großen Ganzen werden, das attraktive Vorteile bietet und auch zu deutlichen Energieeinsparungen führen würde, wie Gutscheinpony in diesem Beitrag erklärt. Ein modernes „Smart Home“ kann sich folglich auf die Gewohnheiten der Einwohner einstellen und das Leben wirklich einfacher machen.

Detailfotos vom E-Haus (Bild: ZVEH/Schildheuer)

Detailfotos vom E-Haus (Bild: ZVEH/Schildheuer)

Der gemeinsame Kommunikationsstandard ist aber nicht nur für die gemeinsame Funktion wichtig, auch der Preis der Geräte wird durch fallende Entwicklungskosten günstiger. Mithilfe des Standards könnte das Gerät mit der größten Rechenkapazität die Steuerung der Logik übernehmen, normalerweise ein Homecomputer oder der Fernseher. Dieses Gerät müsste die Router-Funktion übernehmen, um alle Geräte über das Internet miteinander zu verbinden. Dadurch wären Funktionen möglich, von denen wir heute nur träumen können. Die Geräte könnten Muster, sogar die Vorlieben der Bewohner erkennen und sich automatisch darauf einstellen. Dann werden das Internet der Dinge und das Smart Home wirklich angenehm für die Bewohner.

Bis jetzt haben die Hersteller von Smart-Geräten versucht, uns das Leben mit einzelnen Funktionen der Geräte zu verbessern. Aber nur die Kombination der Geräte mit einem gemeinsamen Kommunikationsstandard wird ein wirklich neues Wohngefühl ermöglichen. Diese Aufgabe hat die OCF mit ihren vielen namhaften Unternehmen übernommen – wir dürfen gespannt sein.

Beliebter Stream-Ripper YouTube-mp3.org schließt

YouTube Logo

Rund ein Jahr nachdem die US-amerikanische Musikindustrie den Stream-Ripping-Dienst YouTube-mp3.org verklagt hat, macht der Dienst nun dicht. Der deutsche Betreiber hat sich mit der Musikindustrie geeinigt und wird eine nicht näher bekannte Summe an Schadensersatz zahlen. Darüber hinaus wird er die Domain an die Musikindustrie übergeben. Laut der Urteilsverkündung vom 1. September 2017 hat sich der Betreiber Philip Matesanz und seine Firma PMD Technologie UG dazu bereiterklärt, zukünftig keine ähnlichen Dienste anzubieten oder bei solchen mitzuarbeiten. Außerdem darf er keine Technik mehr zum Stream-Ripping entwickeln oder bereitstellen.

Aktuell ist die Webseite zwar noch erreichbar, aber der Konverter ist bereits deaktiviert. Beim Versuch, ein YouTube-Video in eine MP3-Datei zu konvertieren, erscheint folgende Fehlermeldung:

Derzeit finden Wartungsarbeiten statt. Unsere Server sind nicht verfügbar. Bitte versuche es während der nächsten Stunde noch einmal.

YouTube-mp3.org soll laut der Klage für rund 40 Prozent aller illegalen Ripping-Aktivitäten bei YouTube verantwortlich sein und monatlich über 60 Millionen Visits vorweisen. Die Schließung des Dienstes wird der Musikindustrie aber kaum helfen, denn es stehen zig Alternativen zur Verfügung, die via Google einfach gefunden werden können. Eine andere Möglichkeit ist der jDownloader 2, welcher schon seit vielen Jahren schnell und bequem MP3s und Videos anhand von YouTube-Links downloaden kann.

YouTube-mp3.org

Wurden meine Zugangsdaten gestohlen?

Die Zahl von Cyberangriffen und Datenlecks wird ständig größer. Erst kürzlich hat das BKA 500 Millionen Zugangsdaten im Internet „gefunden“. Es ist nicht unwahrscheinlich, dass auch die eigenen Zugangsdaten davon betroffen sind. Daher sollte man von Zeit zu Zeit überprüfen, ob auch die eigenen Daten in Datensätzen von kompromittierten Anmeldedaten auftauchen.

Über die Webseite „‚;–have i been pwned?“ des Sicherheitsforschers Troy Hunt ist dies möglich. Einfach eure E-Mail-Adresse angeben und schon erfahrt ihr, ob eure Daten in einem der geleakten Datensätze gefunden wird. Alternativ könnt ihr auch das Tool „Identity Leak Checker“ vom Hasso-Plattner-Institut verwenden.

Vor kurzem hat Troy Hunt seine Webseite mit dem Dienst „Pwned Passwords“ ergänzt und ermöglicht nun auch die Überprüfung von Kennwörtern. Damit kann man also verifizieren, ob ein bestimmtes Passwort in einem Datenleck veröffentlicht wurde. Ist das der Fall, sollte das betroffene Kennwort nicht mehr verwendet werden, da es bei einem zukünftigen Brute Force-Angriff höchstwahrscheinlich auch enthalten sein wird. Als Datenbasis liegen momentan 306 Millionen Passwörter aus diversen Hacks vor.

Das Problem an der Sache: Man sollte seine aktuellen Kennwörter niemals bei einem solchen Dienst eingeben. Niemals, egal wer dahintersteckt! Selbst Troy Hunt weißt auf seiner Webseite darauf hin:

Do not send any password you actively use to a third-party service – even this one!

Glücklicherweise werden die Passwörter aber auch als Download (über 5 GByte) angeboten. Die Listen enthalten keine Passwörter im Klartext, sondern SHA1-Hashes. Hier ist eine Anleitung, wie ihr eure Passwörter offline prüfen könnt.

Kategorien: Internet

DeepL: Neues Tool übersetzt besser als Google und Microsoft

DeepL Beispiel

Das 2009 gegründete Unternehmen Linguee hat sich mittlerweile in DeepL umbenannt und am Montag einen neuen maschinellen Übersetzer veröffentlicht. Mit Hilfe einer neuen Technik werden deutlich bessere Übersetzungsergebnisse wie bei der Konkurrenz in Form von Google, Microsoft und Co. erzielt.

Im Gegensatz zu Google Translate setzt DeepL nicht auf rekurrente neuronale Netze (RNN), sondern auf ein künstliches neuronales Netz (Convolutional Neural Network). Auf die technischen Details gehe ich hier nicht genauer ein. Wer mehr darüber erfahren möchte, kann dies bei Heise nachlesen.

Das Convolutional Network wurde mit der Datenbank von Linguee trainiert, wobei ein Supercomputer mit 5,1 Petaflops zum Einsatz kam. In einem Blindtest wurden 100 Sätze von DeepL, Google, Microsoft und Facebook übersetzt und professionellen Übersetzern vorgelegt. Das Ergebnis ist eindeutig: DeepL wurde mit Abstand als beste Lösung bewertet (siehe Screenshot).

DeepL Übersetzer im Vergleich zur Konkurrenz

DeepL Übersetzer im Vergleich zur Konkurrenz

Ich persönlich habe in der Vergangenheit immer den Google Übersetzer verwendet, auch wenn dieser teilweise „interessante“ Ergebnisse liefert. Ein großes Problem aller bisher verfügbaren Übersetzungstools ist unter anderem der korrekte Satzbau. Nach wenigen Stichproben kann ich eindeutig sagen, dass DeepL teilweise beeindruckende Ergebnisse liefert und vor allem beim Satzbau besser als die Konkurrenz abschneidet. Natürlich kann es vorkommen, dass einzelne Wörter nicht richtig erkannt werden oder der Satzbau etwas hölzern klingt, im Vergleich zu den anderen Diensten ist aber ein deutlicher Fortschritt zu erkennen. Probiert es am besten selber mal aus: https://www.deepl.com/translate
Na was sagt ihr?

Der Dienst übersetzt momentan sieben Sprachen (Englisch, Französisch, Spanisch, Italienisch, Niederländisch, Polnisch und Deutsch) und in den kommenden Monaten sollen weitere hinzukommen. Darunter sind z.B. Mandarin, Japanisch, Russisch und Portugiesisch. Bis zum Ende des Jahres sollen alle auch von Linguee unterstützten Sprachen verfügbar sein. Aktuell funktioniert DeepL nur im Browser, Apps für Android und iOS sind aber in Arbeit und sollen bis zum Ende des Jahres erscheinen.

Crash bei Kryptowährungen, Ethereum im freien Fall

Seit einigen Wochen befinden sich Kryptowährungen in einem Abwärtstrend. In der letzten Woche hat sich dieser beschleunigt, sodass mittlerweile von einem Crash gesprochen werden kann. Bei CoinMarketCap ist gut zu erkennen, dass fast alle Währungen 30-40 % innerhalb der letzten Woche eingebüßt haben.

Besonders hart getroffen hat es Ethereum (Abkürzung: ETH). Ethereum ist die Kryptowährung mit der zweitgrößten Marktkapitalisierung nach Bitcoin. Nach einem zwischenzeitlichen Hoch Mitte Juni von über 350 Euro, sackte der Kurs heute auf unter 118 Euro ab. Wenn man aber bedenkt, dass Ethereum Anfang des Jahres nur ca. 7 Euro gekostet hat, relativiert sich das Ganze wieder ein wenig. Dennoch ist es derzeit unklar, ob sich der Kurs in den kommenden Tag wieder festigt oder noch weiter abtaucht.

Für Miner dürfte der Kurssturz extrem schmerzhaft sein, denn damit sinken die Gewinnaussichten sehr stark. Zumindest in Europa dürfte sich der seit April gestartete Mining-Hype schnell wieder auflösen. Die relativ hohen Stromkosten in der EU machen das Mining bei den aktuellen Kursen deutlich unattraktiver als vor wenigen Wochen. Ob das bereits ausreicht, um auf dem Grafikkartenmarkt für Entspannung zu sorgen, bleibt abzuwarten. In den letzten Wochen haben die Preise von Grafikkarten schwindelerregende Höhen erreicht, sofern überhaupt Modelle lieferbar waren. Auch für gebrauchte Grafikkarten wurden teilweise exorbitante Preisaufschläge gezahlt.

Kurs von Ethereum auf Kraken Im Vergleich zum Ausgangspunkt ist Ethereum immer noch sehr viel wert. (Bild: Kraken.com)

Kurs der letzten 60 Tage von Ethereum auf Kraken (Bild: Kraken.com)

Wireshark: SSL-/TLS-Traffic entschlüsseln

Wireshark 2.0 Icon

Immer mehr Internettraffic wird verschlüsselt übertragen. Insbesondere die Zertifizierungsstelle Let’s Encrypt hat im Laufe des letzten Jahres dazu geführt, dass auch kleinere Webseiten dank des kostenlosen Zertifikates auf die verschlüsselte  Kommunikation gewechselt sind. Mittlerweile wurden sogar über 100 Millionen Zertifikate von Let’s Encrypt ausgestellt. Auch ich habe meinen Blog im November 2016 auf HTTPS umgestellt.

Der eigentlich positive Effekt hin zu mehr verschlüsseltem Traffic führt aber auch dazu, dass die Analyse und das Troubleshooting deutlich erschwert werden. Wireshark und ähnliche Programme können die verschlüsselte Kommunikation standardmäßig nicht einsehen. Abhilfe würde eine SSL-Decryption bringen, welche auf dem Prinzip eines Man-in-the-Middle-Angriffs basiert. Diesen Weg gehen beispielsweise Next-Generation Firewalls von Palo Alto, Check Point Software, Cisco, Sophos und Co. Zuhause kann diese Variante unter anderem mit Tools wie „mitmproxy“ oder „Burp Suite“ realisiert werden. Dies dürfte aber nicht jedermanns Sache sein. Zum Glück gibt es eine einfachere Alternative: Session Key Logging.

Selbstverständlich existieren aber auch hier Einschränkungen. Das clientseitige Logging der Session Keys funktioniert nur mit bestimmter Software, beispielsweise mit den beiden Browsern Firefox und Chrome. Dabei werden nur RSA-Keys unterstützt, Diffie-Hellman und  Elliptic Curve Diffie-Hellman (ECDH) nicht.

Browser

Für Firefox muss zunächst eine neue Umgebungsvariable mit dem Namen „SSLKEYLOGFILE“ angelegt werden. Dies wird in der Systemsteuerung unter „System“ gemacht. Anschließend links auf „Erweiterte Systemeinstellungen“ klicken und im neu geöffneten Fenster auf „Umgebungsvariablen…“. Dort kann die neue Variable „SSLKEYLOGFILE“ mit dem gewünschten Pfad angelegt werden. Im Pfad sollten keine Leerzeichen auftauchen. Ich habe mich für „C:\Temp\sslkey.log“ entschieden:

Umgebungsvariable SSLKEYLOGFILE

Damit die neue Umgebungsvariable wirksam wird, muss der Windows-User ab- und wieder angemeldet werden, alternativ hilft auch ein Neustart.

Folgende Änderungen sind mittlerweile nicht mehr notwendig, da mittlerweile auch Diffie-Hellman-Cipher-Suiten zum Schlüsselaustausch unterstützt werden.

Zusätzlich sollten wir noch die Unterstützung der Diffie-Hellman-Cipher-Suiten deaktivieren, sodass der Schlüsselaustausch möglichst immer via RSA vollzogen wird. Dies funktioniert via „about:config“.  Dort nach „dhe“ suchen und alle gefundenen Einstellungen auf den Wert „false“ ändern.

Firefox Diffie Hellman

Den Erfolg dieser Maßnahme können wir über die Webseite der Universität Hannover überprüfen: https://cc.dcsec.uni-hannover.de/check

Check Cipher-Suites

Googles Chrome ignoriert diese Umgebungsvariable seit geraumer Zeit. Stattdessen muss der Browser mit folgenden Startparametern geladen werden:

--ssl-key-log-file="C:\Temp\sslkeyChrome.log"
Ebenfalls nicht mehr notwendig.

Auch in Google Chrome lässt sich Diffie-Hellman deaktivieren, allerdings etwas umständlicher als in Firefox. Die zu deaktivierenden Cipher-Suiten müssen ebenfalls mit einem Startparameter übergeben werden:

--cipher-suite-blacklist=0xcca9,0xcca8,0xc02b,0xc02f,0xc02c,0xc030,0xc013,0xc014

Eine Liste aller Hexcodes findet ihr im Quelltext von Chromium.

Wireshark

Wireshark unterstützt das Feature erst ab Version 1.8.0. Zunächst müssen das Programm gestartet und die Einstellungen geöffnet werden. Anschließend links im Menü die Kategorie „Protocols“ mit Klick auf den Pfeil aufklappen und zum Punkt „SSL“ navigieren. Dort muss der Pfad zur vorher erzeugten Datei hinterlegt werden.

Wireshark Einstellungen SSL

Das war auch schon! Wenn ihr nun ein Paket mit TLS-Daten markiert, erscheint unten ein neuer Tab „Decrypted SSL data“. Wenn ihr diesen auswählt könnt ihr die entschlüsselten Daten einsehen.

Wireshark SSL decrypted

Quellen

  • https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format
  • https://wireshark.no/index.php/2016/08/25/decrypting-ssl-traffic-with-wireshark/
  • https://jimshaver.net/2015/02/11/decrypting-tls-browser-traffic-with-wireshark-the-easy-way/
  • http://joji.me/en-us/blog/walkthrough-decrypt-ssl-tls-traffic-https-and-http2-in-wireshark
  • https://www.m00nie.com/2015/05/decrypt-https-ssltls-with-wireshark/
  • https://wiki.wireshark.org/SSL

BKA findet 500 Millionen Zugangsdaten

BKA Logo

Leider etwas verspätet, aber nicht weniger wichtig: Das Bundeskriminalamt (BKA) hat im Internet eine Sammlung von 500 Millionen Zugangsdaten gefunden. Die Datensätze stammen aus einer Underground-Economy-Plattform und bestehen aus E-Mail-Adressen mit dazugehörigen Passwörtern.

Das BKA nimmt an, dass die Daten von verschiedenen Hacking-Angriffen stammen und über einen längeren Zeitraum zusammengetragen wurden. Die aktuellsten ausgespähten Zugangsdaten sind wahrscheinlich aus Dezember 2016. Alle betroffenen Datensätze wurden durch das Hasso-Plattner-Institut in das Tool „Identity Leak Checker“ integriert. Mit diesem könnt ihr schnell und einfach überprüfen, ob auch eure Daten kompromittiert wurden. Dazu müsst ihr lediglich eure E-Mail-Adresse angeben. Nach kurzer Wartezeit bekommt ihr dann das Ergebnis an die eingetragene E-Mail-Adresse gesendet.

Falls ja solltet ihr umgehend die betroffenen Passwörter ändern. Außerdem solltet ihr überlegen, wo die betroffene Kombination aus E-Mail-Adresse und Passwort noch verwendet wird und diese ebenfalls ändern. Ist ja leider häufig der Fall, dass Nutzer das gleiche Passwort für viele verschiedene Dienste verwenden.

Generell gilt, dass für unterschiedliche Dienste und Portale im Internet immer auch unterschiedliche Passwörter verwendet werden sollten. Außerdem sollten die Passwörter nicht zu kurz bzw. zu einfach ausfallen. Eine Kombination aus Zahlen, Groß- sowie Kleinbuchstaben und Sonderzeichen ist empfehlenswert. Viele große Dienste bieten mittlerweile auch eine Zwei-Faktor-Authentifizierung an, die ich euch immer ans Herz legen würde.

Kategorien: Internet

Amazon Prime Day: Viele Angebote und weitere Rabattaktion

Amazon Logo

Am 11. Juli findet der dritte Amazon Prime Day statt. Die jährliche Rabattaktion gilt exklusiv für Prime-Mitglieder und wird dieses Jahr 30 Stunden lang Angebote bieten. Daher starten die Angebote bereits am 10. Juli um 18 Uhr. Die Blitzangebote sind wie immer zeitlich und auch hinsichtlich der verfügbaren Stückzahlen begrenzt. Interessante Angebot werden vermutlich wie die letzten Jahre innerhalb weniger Minuten ausverkauft sein. Wer noch kein Prime-Kunde ist, kann für den Prime Day auch die kostenlose 30-Tage-Probemitgliedschaft nutzen.

Obwohl der Prime Day erst nächste Woche startet, sind bereits im Vorfeld viele weitere Aktionen verfügbar. Teilweise dürften diese für den ein oder anderen sogar interessanter wie die vielen Blitzangebote am Prime Day sein.

Besonders hervorzuheben ist der Rabatt von 20 Prozent auf alle Warehouse Deals. Selbst ohne Rabatt bieten die Warehouse Deals sehr gute Preise und mit dem Extra-Rabatt von 20 Prozent können wirklich tolle Schnäppchen gemacht werden.  Des Weiteren sehr interessant ist der Kindle Voyage generalüberholt für 129 Euro und der 10 Euro Rabatt auf Amazon-Pantry-Einkäufe ab 50 Euro.

Amazon Prime Day

Kategorien: Internet

Wireshark: Besuchte URLs anzeigen (HTTP und HTTPS)

Wireshark 2.0 Icon

Ein Leser fragte mich, ob es mit Hilfe von Wireshark möglich ist, alle aufgerufenen Webseiten in einem Paketmitschnitt anzeigen zu lassen. Die kurze Antwort lautet ja. Allerdings ist dies nicht ganz so einfach zu realisieren, wie zunächst angenommen. Aus diesem Grund habe ich mich dazu entschlossen, einen eigenen Artikel für die Beantwortung dieser Frage zu verfassen. Darüber hinaus gibt es sicherlich mehrere Personen im Internet, welche die gleiche Frage stellen und sich über meinen Artikel freuen dürften.

Als Grundlage für das weitere Vorgehen setze ich einen vorhandenen Paketmitschnitt und eine aktuelle Version von Wireshark voraus. Beim Einsatz einer FRITZ!Box könnt ihr schnell und einfach einen Paketmitschnitt direkt am Router anfertigen. Dies funktioniert über die URL http://fritz.box/support.lua. Beim Anfertigen des Artikels kam Wireshark in Version 2.2.7 zum Einsatz.

HTTP-URLs

Hier ist anzumerken, dass alle HTTP-URLs angezeigt werden, wodurch es schnell unübersichtlich werden kann. Jeder Webseitenaufruf besteht aus mehreren HTTP-Requests, d.h. es wird nicht nur die URL des initialen Aufrufs angezeigt, sondern die URLs aller Requests. Heutzutage laden Webseiten viele Ressourcen von externen URLs nach, die dann ebenfalls in Wireshark auftauchen.

Das Anzeigen der HTTP-URLs ist relativ schnell erledigt. Wenn der Paketmitschnitt geladen wurde, reicht es aus, im Menü „Statistiken“, „HTTP“ und „Anfragen“ zu öffnen.

Wireshark HTTP-Anfragen

Jetzt erscheint ein Fenster, in welchem alle URLs angezeigt werden.

Wireshark HTTP-Anfragen

Die URLs können allerdings auch als Spalte im Hauptfenster von Wireshark angezeigt werden, was meiner Meinung nach komfortabler ist. Dazu sollte im Anzeigefilter zunächst nach HTTP-Requests gefiltert werden:

http.request

Anschließend einfach das erste Paket markieren und in der Detailansicht „Hypertext Transfer Protocol“ aufklappen. Dort einen Rechtsklick auf die Zeile „Host: “ ausführen und dann im Menü „Als Spalte anwenden“ klicken.

Wireshark HTTP-Hosts als Spalte setzen

Schon erscheint die neue Spalte „Host“ und zeigt neben jedem HTTP-Paket die entsprechende Host-URL an. Mit einem Klick auf die Spalte können die Ergebnisse übersichtlich sortiert werden.

Wireshark HTTP-Hosts als Spalte

HTTPS-URLs

Immer mehr Webseiten wechseln auf HTTPS, weshalb die HTTPS-URLs selbstverständlich auch benötigt werden. Ohne HTTPS kann es heutzutage durchaus sein, dass man nicht mal die Hälfte der besuchten URLs erwischt. Durch die Verschlüsselung können die aufgerufenen URLs allerdings nicht eingesehen werden.

Glücklicherweise gibt es einen Workaround, der in den allermeisten Fällen die gewünschten Informationen auf einem anderen Weg beschaffen kann. Das Stichwort lautet „Server Name Indication (SNI)„. Durch diese Technik senden Clients beim Aufruf von HTTPS-Webseiten den Hostnamen im Klartext mit, was wir in Wireshark verwenden können.

Wir beginnen mit folgendem Anzeigefilter:

ssl.handshake.extensions_server_name

Anschließend ein Paket auswählen und in der Detailansicht „Secure Sockets Layer“ aufklappen. Dann nacheinander „TLSv1.2 Record Layer: Handshake Protocol: Client Hello“, „Handshake Protocol: Client Hello“, „Extensions: server_name“, und „Server Name Indication extension“ ebenso aufklappen. Auf den Eintrag „Server Name: “ rechtsklicken und „Als Spalte anwenden“ auswählen.

Wireshark HTTPS-Host als Spalte setzen

Als Ergebnis erscheint die Spalte „Server Name“, die bei entsprechenden TLS-Paketen die Host-URL anzeigen.

Wireshark HTTPS-Host als Spalte

URLs automatisch exportieren

Falls der Paketmitschnitt sehr groß ist und eine Menge URLs zu erwarten sind, können alle URLs in einem Rutsch exportiert werden. Dies geschieht mit dem Kommandozeilenprogramm TShark, welches bei der Installation von Wireshark als separate Komponenten mitinstalliert werden kann. Folgender Befehl exportiert alle HTTPS-URLs in einem Paketmitschnitt:

tshark -r <Pfad_zum_Paketmitschnitt> -T fields -e ssl.handshake.extensions_server_name -R ssl.handshake.extensions_server_name

Für HTTP-URLs funktioniert das analog:

tshark -r <Pfad_zum_Paketmitschnitt> -T fields -e http.request -R http.request

DNS

Eine dritte Möglichkeit alle besuchten URLs herauszufinden ist DNS. Beim Aufruf einer Webseite wird der Hostname in eine IP-Adresse umgewandelt. Dies erfolgt via DNS, welches nicht verschlüsselt ist und somit ausgewertet werden kann. Sofern die IP-Adresse auf dem Client gecached oder in der HOSTS-Datei eingetragen ist, entfällt die DNS-Nachfrage.

Wie bei HTTP oder HTTPS beginnen wir wieder mit dem Anzeigefilter:

dns

Anschließend ein Paket auswählen, „Domain Name System“, „Queries“ und die URL aufklappen. Dann einen Rechtsklick auf „Name: “ machen und „Als Spalte anwenden“ auswählen.

Wireshark DNS als Spalte setzen

Die per DNS aufgelösten Hostnamen werden nun in der Spalte „Name“ angezeigt.

Wireshark DNS als Spalte