Anti-DoS Tomcat Valve auf Github veröffentlicht

Auf Github findet sich jetzt unter dem Namen Anti-DoS Valve ein Werkzeug, welches beim Betrieb von Tomcat Servern nützlich sein kann um diese vor Überlastungen durch böswillige Akteure im Netz zu schützen. Dazu implementiert das Valve eine dynamische Zugriffsratenlimitierung, die sich umfangreich konfigurieren lässt. Zur Simulation der Auswirkungen unterschiedlicher Konfigurationen habe ich ein Google Drive Sheet veröffentlicht. Der Code steht unter der Apache Lizenz, kann also frei verwendet werden.

Woher kommt die Idee

Das Valve ist eine verallgemeinerte Version einer kleinen Programmierung, die ich im vergangenen Jahr kurzfristig erstellen musste, nachdem unsere Server immer mal wieder unter Überlastungen litten, die offenbar durch auf gekaperten Rechnern laufende Webcrawler verursacht wurden. Diese Zugriffe waren teilweise so aggressiv, dass sie Auswirkungen auf unsere regulären Nutzer hatten.

Zur Begrenzung dieser unwillkommenen Zugriffe standen zunächst unterschiedliche Optionen im Raum, aber die Option ein Tomcat Valve zu implementieren setzte sich am Ende aus diesen Gründen durch:

  • Ein Valve ist durch seine Verortung im Tomcat Server nahe an der Geschäftslogik bzw. an den Leuten, die wissen was auf dem Applikationsserver läuft. Eine Verortung etwa auf Netzwerkebene hätte einen nicht unerheblichen Wissenstransfer zwischen unterschiedlichen IT Bereichen erfordert
  • Da es sich bei den Angriffen – auch böswillige Webcrawler kann man dabei als Angreifer sehen – nicht um umfangreiche (D)DoS Angriffe handelte war eine Gegenmaßnahme auf Ebene der Applikationsserver ausreichend
  • Der Aufwand für die Programmierung des Valves war auf Grund der vorhandenen Erfahrungen vergleichsweise gering
  • Der Einsatz eines Filters mit identischer Funktion, der innerhalb der Webapplikationen eingesetzt würde, erzeugt im Vergleich zu einem Valve einen höheren Aufwand in der Konfiguration

Was macht das Valve

Ziel ist es unwillkommene Belastungen der eigenen Server so weit begrenzen zu können, dass sie nicht mehr in der Lage sind negative Auswirkungen auf die regulären Nutzer zu entfalten. Dabei soll die Schutzfunktion dynamisch sein, sich also selbstständig auf neue Angreifer einstellen und diese blockieren können. Und schließlich soll der Overhead dieser zusätzlichen Filterung, die zunächst für alle im Tomcat Server eingetreffenden Requests anspringt, möglichst klein sein. In der aktuellen Version arbeitet das Valve dabei auf der Ebene einzelner IP Adressen, für die Limitierungen durchgesetzt werden können.

Für die konkrete Implementierung wurden dann Erfahrungen genutzt, die ich früher bei anderen Programmierungen zu Ratenlimitierungen gemacht hatte, insbesondere beim Aufbau unserer Identity Provider Infrastruktur und der dort durchgesetzten Begrenzung der Anzahl von möglichen Versuchen zum Erraten eines Passworts.

Um die Implementierung ressourcenschonend zu gestalten – insbesondere in einer DoS Situation, wo schnell abertausende von Requests in kurzer Zeit eintreffen können – wird für die Ermittlung der aktuellen Zugriffsrate einer IP Adresse keine gleitende Auswertung gemacht, sondern es wird nur über die Anzahl der Zugriffe innerhalb eines bestimmten Zeitintervalls (in der Programmierung Slot genannt) Buch geführt. Wird innerhalb eines solchen Slots die Anzahl der erlaubten Zugriffe überschritten, so werden alle weiteren Zugriffe bis zum Ende des Slots abgelehnt. Damit nicht mit jedem neuen Slot das Spiel von vorn beginnt kann ein Anteil der in früheren Slots gezählten Zugriffe übernommen werden. Auf diese Weise sind sowohl die Datenhaltung im Valve wie auch Rechenaufwand gering und nehmen auch in einer Hochlastphase nicht wesentlich zu.

Über die Konfigurationsoptionen können dabei nahezu alle Eigenschaften gesteuert werden, neben dem Grenzwert der Zugriffe pro Slot auch die Slotlänge und der Umfang der aus früheren Slots übernommenen Requestanzahlen. Mit diesem einfachen Mittel lassen sich durchaus komplexe Filterungen realisieren.

Es gibt im Valve noch weitere Optionen, über die sich steuern lässt auf welchen Adressen die Ratenlimitierung überhaupt wirksam werden soll (hier kann man z. B. Requests auf statische Inhalte wie JS oder CSS Dateien ausschließen um schärfere Einstellungen zu realisieren) und ob bestimmte IP Adressen oder Adressbereiche generell von einer Filterung ausgenommen werden sollen (z. B. Adressen aus dem Intranet, um interne Nutzer nie zu beeinträchtigen).

Wie legt man los

Während die grundsätzliche Inbetriebnahme des Valves sehr einfach ist (Clone von Github, Ausführen von Maven Install, JAR in Tomcat/lib Verzeichnis kopieren, Valve Konfiguration in server.xml ergänzen), liegt die eigentliche Herausforderung darin die für den eigenen Anwendungsfall passenden Konfigurationsparameter zu finden. Hier gilt es die richtige Balance zu finden zwischen zu engen Einstellungen, die auch die regulären Benutzer beeinträchtigen können, und zu offenen Parametern, die die Angreifer nicht richtig im Zaum halten können und damit auch wieder die regulären Benutzer beeinträchtigen.

In der README findet sich ein eigener Abschnitt dazu, wie man bei der Inbetriebnahme vorgehen kann. Der Kernpunkt ist es hier ein ausreichendes Wissen über die reguläre Nutzung der eigenen Dienste zu haben, also welche Zugriffszahlen OK sind und welche ein böswilliges bzw. störendes Level erreichen. Die Auswertung der Tomcat Access Logfiles ist dabei der Schlüssel. Hat man diese Werte kann man in dem Simulator Sheet vergleichen welche Auswirkungen eine bestimmte Konfiguration hat und damit prüfen, ob sie in der Lage ist die Spreu vom Weizen zu trennen. Diese Knackpunkte gibt es dabei der Erfahrung nach:

  • Wie häufig greifen Suchmaschinen zu? Gutartige Suchmaschinen zeichnen sich meist durch gleichmäßige Zugriffe aus und haben keine Zugriffsspitzen. Je nach Valve Konfiguration kann es aber vorkommen, dass auch solche Zugriffsformen gesperrt werden, die dauerhaft unter den pro Slot erlaubten Zugriffsraten bleiben.
  • Dienen die eigenen Webapplikationen als Service Endpunkt, der von anderen Applikationsservern in großem Umfang genutzt wird? Wenn es sich dabei um gewollte Fälle handelt, so sollte man die entsprechenden Adressen bzw. Adressbereiche grundsätzlich freischalten, damit die Valve Konfiguration nicht auf Grund solcher Einzelfälle zu offen gestaltet sein muss.
  • Wie viele Request löst ein Benutzer beim ersten Besuch (also mit leerem Cache) der eigenen Seiten aus? Hier erreichen moderne Webseiten auf Grund der vielen Komponenten häufig erstaunliche Zahlen, wobei die Masse der Zugriffe auf statische Inhalte entfällt. Um auch hier die Valve Konfiguration nicht zu offen gestalten zu müssen ist es meist sehr sinnvoll die Zugriffe auf statische Inhalte nicht mit in die Zugriffszählungen eingehen zu lassen. Diese Zugriffe sollten sowieso nicht die Hauptlastverursacher in einer dynamischen Webapplikation sein und die böswillige Akteure werden sie sowieso nicht abrufen.
  • Kommen reguläre Benutzer in großer Zahl über Proxies auf den eigenen Server, so dass sich hinter einzelnen IP Adressen faktisch viele Benutzer verbergen?

Auch bei sehr sorgfältiger Vorbereitung ist es aber notwendig zumindest in der ersten Zeit nach der Aktivierung des Valves die Logging Informationen im Auge zu behalten und zu beobachten ob Adressen gesperrt werden, die man eigentlich zulassen möchte.

Ist das Valve richtig konfiguriert kann man es in gewisser Weise ‚vergessen‘, da es danach Angriffe automatisch im Zaum halten kann. Änderungsbedarfe ergeben sich dann nur noch bei Modifikationen an den im Server installierten Anwendungen, die das Lastverhalten beeinflussen. Trotzdem sollte ein Monitoring fortgesetzt werden, schon allein um zu sehen ob Angriffe erfolgen und in welchem Umfang.

Was sind die Grenzen

Das Anti-DoS Valve kann seinem Namen nur in einem Teilaspekt des weiteren Themas (D)DoS gerecht werden. Es wird z. B. nicht bei riesigen Überflutungen helfen, die schon die Netzwerkebene überlasten. Es hat aber seine Daseinsberechtigung in dem Bereich, der unterhalb des Angriffslevels liegt, der sich auf Netzwerkebene einfach erkennen lässt:

Im Fall unserer Server werden heute pro Tag normalerweise mehr als eine Million Requests verarbeitet. Starke Belastungen können aber schon entstehen, ohne das sich diese Zahl insgesamt vervielfacht, sofern die Zugriffe auf die entsprechenden Adressen gebündelt werden. An genau dieser Stelle kann das Valve eingesetzt werden, in dem es insbesondere die Zugriffe auf die Adressen reguliert, die geeignet sind hohe Belastungen zu erzeugen. Dafür ist eine Kenntnis der entsprechenden Applikationen und ihrer sensiblen Punkte notwendig.

Die ursprüngliche Version des Valves hat dabei den angestrebten Zweck bisher erfüllt und sich als sehr stabil erwiesen.

Monitoring per JMX

Das Valve kann sehr weitgehend per JMX administriert und beobachtet werden. In der JConsole präsentiert es sich dabei so:

Auf diese Weise können Konfigurationsänderungen auch am laufenden Server durchgeführt werden und gleichzeitig der aktuelle Status z. B. von blockierten IP Adressen beobachtet werden.

Ideen für die Weiterentwicklung

Die bisherige Implementierung hatte das Ziel möglicht einfach gehalten zu sein und ist auf den bisherigen Einsatzzweck zugeschnitten. Für eine Verallgemeinerung der Funktion bieten sich aber eine Reihe von Erweiterungen an:

  • Testmodus: Ein Option das Valve im Server so zu betreiben, dass nur Loggings über Blockaden erfolgen, aber keine echten Blockaden. Auf diese Weise könnten Konfigurationen zunächst risikofrei getestet werden.
  • Zähler auf Ebene von Subnetzen: Nicht nur echte DDoS Attacken verteilen ihre Zugriffe auf viele Ausgangsrechner, auch bei Webscrapern / böswilligen Crawlern kann dies beobachtet werden. Hier wäre eine Verallgemeinerung der Programmierung interessant, die in der Lage ist Zähler nicht nur auf Ebene von einzelnen IP Adressen zu führen. Die Implementierung des Monitors, der die Zugriffszählung durchführt, ist bereits entsprechend verallgemeinert worden.
  • Möglichkeit mehrere Instanzen des Valves im Server nutzen zu können: Zwar kann man heute das Valve mehrfach in einem Tomcat konfigurieren, aber die Monitor Instanz ist nicht getrennt und per JMX wird nur eine Instanz des Valves gezeigt. Die Nutzung unterschiedlicher Valve-Instanzen in einem Server kann nützlich sei falls unterschiedliche Konfigurationen für verschiedene Webapplikationen gefahren werden sollen.
  • Verbesserungen für den Einsatz in Serverfarmen: Heute müssen Konfigurationsänderungen an allen Servern separat erfolgen, auch gibt es keine Möglichkeit wie sich Instanzen des Anti-DoS Valves auf unterschiedlichen Servern verständigen können. In unserer Serverfarm beeinträchtigt uns das heute nicht, aber bei großen Farmen könnte so etwas nützlich sein.

Falls jemand Lust hat an dem Projekt mitzumachen: Einfach melden 🙂

Die Geschichte des Bielefelder Informationssystems bis zum Jahr 2016

Geschichte wurde zur Legende, Legende wurde Mythos‘

Dieser Satz findet sich am Beginn der Verfilmungen von Tolkiens Herr der Ringe Trilogie und kam mir bei der Erstellung des nun hier veröffentlichten Textes zur Geschichte des BIS Projekts an der Universität Bielefeld in den Jahren 1998 bis 2016 immer mal wieder in den Kopf. Warum? Weil es überraschend aufwändig war diese Geschichte zu rekonstruieren. Und das, obwohl ich heute die einzig verbliebene Person bin, die über die komplette Zeit im und für das BIS gearbeitet hat, ich Zugriff auf alle relevanten Dokumente und eMails habe und mir durch meine Eigenart ein recht umfassendes Arbeitstagebuch zu führen noch jede Menge weiterer Informationen zur Verfügung stehen.

Beim Aufarbeiten von Texten, die vor teilweise mehr als eineinhalb Jahrzehnten von mir erstellt wurden, werden Erinnerungen wieder wach an alte Vorhaben, die so nie realisiert wurden, ’spinnerte‘ Ideen, die sich später in überraschender Weise doch realisieren ließen, Irrwege, die beschritten werden mussten und Menschen, mit denen man viele Jahre intensiv zusammengearbeitet hat, die aber irgendwann verloren gingen. Vieles davon macht einen stolz angesichts der erreichten Ziele, manches wirkt im Rückblick merkwürdig und an anderen Stellen hat sich die eigene Erinnerung inzwischen Legenden und Mythen zurechtgelegt, die nur noch grob mit dem übereinstimmen, was man in den alten Unterlagen wiederfindet.

Eine interessante Erfahrung.

Der Inhalt

‘Das Rektorat hat auf seiner Sitzung am 3.2.1998 über die vom „Arbeitskreis Informationsstrukturierung und Intranet“ erarbeitete Vorlage zur Erarbeitung eines Konzepts zum Aufbau einer Basisinfrastruktur BIS (Bielefelder Informationssystem) beraten und dazu folgenden Beschluss gefasst:

‚Das Rektorat beschließt, eine Projektgruppe einzusetzen mit dem Auftrag, eine Basisinfrastruktur BIS (Bielefelder Informationssystem) zu konzipieren….’’

Die ersten 19 Jahre des BIS (Was ist das BIS?) sind nun in einem ca. 50-seitigen Text dokumentiert. Trotz dieser Länge ist bei weitem nicht jedes Detail aus dieser Zeit enthalten und der Text umfasst auch nur meine eigene Perspektive. Die Kolleginnen und Kollegen, die ebenfalls viele Jahre im BIS gearbeitet haben, würden sicher noch andere Punkte finden, die sie besonders erwähnenswert finden. Das Dokument ist natürlich auch kein offizielles Dokument der Hochschule, sondern beschreibt allein meine eigenen Ansichten und Erinnerungen.

Wer sich den kompletten Text nicht zutraut findet hier ein paar interessante Einstiegspunkte:

  1. Einführung des eKVVs in 2001
  2. Die erste Onlinebedarfserhebung in 2004
  3. Die Gründung der automatischen Mailverteiler in 2004
  4. Aufbau der BA / MA Prüfungsverwaltung in 2005
  5. Definition des Begriffs ‚Campusmanagementsystem‘ in 2007
  6. Die Studieninformation als Alleinstellungsmerkmal in 2010
  7. Studienmodell 2011; Ausbau der Studiengangsmodellierung; Start von BIS3.0 in 2011
  8. Aufbau Identity Provider mit Single Sign-on und 2FA; Start des integrierten eLearning Angebots in 2014
  9. Abbruch des Versuchs zur Einführung einer Standardsoftware im Campusmanagement in 2015
  10. Status des BIS Ende 2016

Unter dem ‚Status des BIS‘ findet sich auch ein Abschnitt mit Details und Umfang der technischen Implementierung des BIS.

Nutzung von Google Drive zur Veröffentlichung

Bei der Veröffentlichung des Textes stand ich vor der Frage welches Verfahren hier wohl das günstigste wäre. Den Text an sich habe ich im Google Drive erstellt, welches schon seit langer Zeit mein Standardwerkzeug für die private Dokumentenhaltung und -erstellung ist.

Die erste Idee den Text nach der Fertigstellung zu exportieren und eine Kopie ins Web zu stellen hätte das Problem mit sich gebracht, dass jede kleine Korrektur – und bei so einem umfangreichen Text ist noch auf lange Sicht immer mal wieder mit Korrekturen zu rechnen – dann an zwei Stellen gepflegt werden müsste. Der Originaltext im Google Drive soll ja nach der Veröffentlichung nicht aufgegeben werden, da er voller Notizen und Quellverweise ist und eine geeignetere Ausgangsbasis ist, falls der Text einmal in anderen Formaten benötigt wird. Auch der Grundaufwand für die Aufbereitung so einer Kopie wäre nicht unerheblich gewesen bei einem Text mit 18.000 Worten, vielen Abschnitten und Bildern.

Die Lösung, die eine Beibehaltung des Originaltextes als Quelle für eine Veröffentlichung bietet und quasi keinen initialen Aufwand erzeugt, stellt die mir bis dahin unbekannte Google Drive Funktion ‚Im Web veröffentlichen‘ dar. Damit wird eine Kopie des Dokuments erstellt, die alle paar Minuten Aktualisierungen aus dem Quelldokument erhält und sich öffentlich abrufen lässt.

Das generierte Dokument hat ein paar Mängel. So ist die Optik nicht außergewöhnlich hübsch, es ist nicht responsive und die Formatierung kann nur begrenzt beeinflusst werden. Trotzdem ist es für diesen Zweck eine nahezu optimale Lösung, die die Hemmschwelle für Korrekturen am Text niedrig hält und ein Auseinanderlaufen verschiedener Versionen des Textes verhindert.

Triangulation Podcast mit Cathy O’Neil

Im letzten Triangulation Podcast (Nr. 275) ist Cathy O’Neil zu Gast, die vor kurzem das Buch Weapons of Math Destruction veröffentlicht hat. Das hatte ich zwar schon auf meiner Leseliste, aber bisher noch nicht angefangen. Der Podcast ist ein ausführlicher Teaser, der die Kernthesen darstellt:

  • Durch die stetig wachsenden Datenhalden, die im Netz über alles und jeden aufgebaut werden, und die sich schnell weitenentwickelnden mathematischen und technischen Verfahren (‚Big Data‘) sind inzwischen gezielte Beeinflussungen in großem Maßstab möglich
  • Ein Beispiel ist vielleicht bereits der gerade gelaufene Präsidentschaftswahlkampf in den USA, bei dem potentielle Wähler auf Facebook genau auf sie zugeschnittene Wahlversprechungen oder Beeinflussungen erhalten haben, die für andere Wähler / Fact Checker unsichtbar und nicht überprüfbar sind
  • Gleichzeitig gibt es eine große Gläubigkeit in ‚die Mathematik‘ oder ‚den Algorithmus‘, der z. B. die für das Schulsystem des Distrikts Washington Verantwortlichen dazu gebracht hat sich ein Scoringsystem für ihre LehrerInnen anzuschaffen, welches diese auf Basis eines niemandem bekannten Verfahrens einstuft und ggf. zu ihrer Entlassung führt. Ohne das irgendeine Überprüfung erfolgt, ob das Verfahren zu einer Verbesserung führt, und zumindest Einzelfälle die Vermutung nahelegen, dass hier gerade die in armen Gegenden liegenden, diesem Scoring unterliegenden Schulen dadurch ihre guten LehrerInnen verlieren

Die Autorin, die unter https://mathbabe.org/ bloggt, ist offenbar ehrlich betroffen (im Sinne von beschämt) von den Einsatzfeldern, auf die die von ihr geliebte Mathematik hier geführt wird.

Auch für uns InformatikerInnen ist dieses Thema relevant um das eigene Gewissen dafür zu schärfen was die Dinge, die man mal als ‚80% Lösung‘ für den ersten Aufschlag gebaut hat, vielleicht anrichten können, wenn sie so auf die Welt losgelassen werden.

Hier ist die Homepage des Buches: https://weaponsofmathdestructionbook.com/

Analyse von Symantec Produkten durch das Project Zero

‚Today we’re publishing details of multiple critical vulnerabilities that we discovered, including many wormable remote code execution flaws‘

aus How to Compromise the Enterprise Endpoint vom 26. Juni 2016

Nicht mehr ganz taufrisch die Meldung, aber man bekommt nicht jeden Tag eine Beschreibung von wormable remote code execution flaws präsentiert, also von Fehlern, die Schadcode von fern ausnutzen und zur selbstständigen Weiterverbreitung auf andere Systeme verwenden kann.

gitter

Und wieder ist es Tavis Ormandy von Google’s Project Zero, der sich ein ‚Sicherheitsprodukt‘ vorgenommen hat und gruselige Dinge entdeckt: Dieses Mal ist das komplette Produktportfolio von Symantec betroffen (bzw. die Endverbrauchermarke ‚Norton‘).

‚Because Symantec uses a filter driver to intercept all system I/O, just emailing a file to a victim or sending them a link to an exploit is enough to trigger it – the victim does not need to open the file or interact with it in anyway.‘

Wie schon bei früheren Fällen ist es wieder die Mischung aus den tiefgreifenden Rechten, die sich solche ‚Sicherheitslösungen‘ in den von ihnen ‚geschützten‘ Systemen nehmen, der Komplexität der dabei zu bewältigenden Aufgaben und eines mangelhaften Qualitätsmanagements, welches eine durchschlagende Wirkung erzeugt. Hier so durchschlagend, dass es einem Angreifer damit möglich gewesen sein sollte ein komplettes Unternehmensnetzwerk zu unterwandern. Und zwar nur, weil dieses Netzwerk mit zusätzlicher ‚Sicherheitssoftware‘ gesichert werden sollte.

Eine Frage der Abwägung

Dementsprechend ist diesem Fazit von Ormandy nicht viel hinzuzufügen:

‚Network administrators should keep scenarios like this in mind when deciding to deploy Antivirus, it’s a significant tradeoff in terms of increasing attack surface.‘

Bei privaten Nutzern ist die Frage ob man eine zusätzliche Sicherheitslösung verwendet gerade unter Windows heute noch schwieriger zu entscheiden. Ich selbst verwende keine entsprechende Software mehr, meine ChromeOS Geräte haben das sowieso nicht nötig und unter Windows reicht mir der von Microsoft kommende ‚Defender‘.

Bei technisch nicht so versierten Nutzern kann so eine Software vielleicht trotzdem einen gewissen Schutz bieten, zumindest wenn diese eMaildienste verwenden, die nicht ausreichend in der Lage sind ihre Nutzer vor schädlichen Anhängen zu schützen, die immer noch ein wesentlicher Verbreitungsweg sind.

Auf der anderen Seite habe ich ein frisches Erlebnis mit dem Kaspersky Produkt, welches sich bei Bekannten als extrem übergriffig und nervig erwiesen hat: Nachdem die Lizenz ausgelaufen war fing diese Software an die Nutzer beim Aufruf von GMail mit einer kaum wegklickbaren, permanent Piepsgeräuche produzierenden und sich über den Browser legenden Warnung zu nerven, wonach sie ’nicht mehr geschützt‘ seien. Offenbar hält man es bei Kaspersky in so einem Fall für den besten Schutz die Nutzer gleich ganz von Nutzung ihres eMailkontos auszuschließen.

Und warum man ausgerechnet Kaspersky brauchen sollte um sein GMail Konto zu sichern und worin die konkrete Gefährdung besteht ist dabei natürlich nicht weiter begründet worden. Eine der ersten Handlungen an diesem Rechner war es daher die entsprechende Erweiterung aus dem Chrome Browser zu entfernen.

Da sich die Bekannten auf Grund der Störungen durch die Kaspersky Software schon dazu hatten bringen lassen eine Lizenz zu kaufen habe ich das Produkt erst einmal auf dem Rechner gelassen. Allerdings gab es dazu ein paar Tage später die Rückmeldung, dass nun auch beim eBay Zugriff plötzlich irgendeine störende Meldung erschien, die eine ’sichere Bezahlung‘ über Kaspersky abwickeln wollte.

Wenn ich das nächste Mal dort bin, dann ziehe ich Kaspersky endgültig den Stecker….

Bericht der taz Redaktion über einen dort erlebten Keylogger-Angriff

‚Es ist wohl reiner Zufall, dass der Keylogger am Ende entdeckt wird. Mindestens ein Jahr lang ist er zuvor im Einsatz‘

In diesem Artikel arbeitet die taz den Anfang letzten Jahres erfolgten Fund eines Keyloggers in der Redaktion umfangreich auf. Das ist aus mehreren Gründen sehr interessant, da es sich nicht nur um eine nochmalige Aufarbeitung des Ablaufs der Ereignisse und der internen Diskussionen, die sich darum entwickelten, handelt:

Was ist ein Keylogger?

Es geht zuerst um die Frage was eigentlich ein Keylogger ist (also ein Keylogger Gerät und nicht eine Software) und wie man sich dagegen schützt. Leider ist das aber ein Angriff, der zum einen von jedem ‚Idioten‘ ausgeführt werden kann, da er keinerlei IT Knowhow erfordert. Zum anderen ist er schwer zu entdecken, da man sich schon einen betroffenen PC vor Ort sehr genau ansehen muss, damit einem so etwas auffällt. Auch hier ist der Fund nur zufällig erfolgt.

pc_von_hinten

Und schließlich ist es schwierig so einen Angriff in Zukunft zu verhindern. Der in dem Text mehrfach auftauchende Rat doch die USB Buchsen zu versiegeln oder abzuschalten geht meiner Meinung dabei in die falsche Richtung: Das Keylogger Gerät wird ja zwischen Tastatur und PC gehängt, und für die Tastatur muss ja nun irgendeine Buchse freibleiben.

Wie kann man seine Nutzer schützen?

Als IT Abteilung kann man eigentlich nur diese Dinge tun:

  • Möglichst viele Dienste auf eine 2-Faktor-Anmeldung umstellen. So kann ein gestohlener Zugang nicht genutzt werden
  • Ein Notlösung ist das Angebot das Passwort per Mausklick (virtuelle Tastatur) eingeben zu lassen. Allerdings werden die meisten Nutzer das hassen
  • Stärkeres Monitoring von Loginvorgängen und Benutzeraktivitäten durchführen um so auf ungewöhnliche Vorgänge aufmerksam zu werden. Das ist ein gutes Mittel, wie die in der taz nachträglich durchgeführten Auswertungen zeigen, aber auch komplex und häufig sicher schwer mit dem Personalrecht zu vereinbaren
  • Bevorzugte Verwendung von Geräten ohne externe Tastatur (Laptop). Das schützt zumindest vor ganz einfachen Angriffen
  • Die Rechte der Nutzer auf den Geräten wenn möglich einschränken, damit nach dem Angriff per Keylogger Hardware nicht anschließend auch noch Schadsoftware installiert wird
  • Regelmäßige Sichtkontrolle aller Geräte (wozu natürlich niemand Zeit hat, aber vielleicht reicht schon die Drohung um einige Angreifer abzuschrecken)

Der Zwang sehr komplexe Passworte und damit einen Passwortmanager zu nutzen kann hingegen kontraproduktiv sein, da das Passwort des Passwortmanagers ggf. auch vom Keylogger mitgeschnitten wird und so alle Passworte verloren sind.

Man sieht: Ein extrem simples Mittel (50€ Gerät) kann einen enormen Aufwand verursachen.

Wie kann man sich selbst schützen

Als Nutzer von IT Systemen kann man ggf. weitere Dinge tun, um sich zumindest teilweise zu schützen:

  • Den Rechner am Arbeitsplatz als faktisch ‚fremden‘ Rechner behandeln, ähnlich wie man es in einem Internetcafe tun sollte. Und z. B. keine privaten Dinge auf dem Rechner tun, damit ein Angriff ggf. ’nur‘ die Firmenkonten betrifft. Ein Angreifer, der wie hier offenbar im wesentlichen private Gründe hat, wird dann vielleicht schnell das Interesse verlieren
  • Ggf. selbst Sichtkontrollen durchführen, dazu z. B. die Anschlüsse von Tastatur und Maus auf die Vorderseite des Gerätes legen
  • Falls es die eigene IT Abteilung nicht schafft eine 2-Faktor-Anmeldung für wichtige Accounts einzuführen kann man sich ggf. so behelfen, dass man einen YubiKey oder ähnliches verwendet, auf dem man den größeren Teil eines sehr komplexen Passworts speichert, welches man dann unter Umgehung der normalen Tastatur in den Rechner schickt. Ggf. gibt man die letzten X Zeichen des Passworts selbst über die normale Tastatur ein, damit ein Finder / Dieb des Keys nicht gleich den vollen Zugriff hat

Grundsätzlich gilt: Wer einmal einen solchen Angriff erlebt hat, der wird schwerlich Grenzen für die eigene Paranoia finden und seinem Rechner nie mehr so vertrauen, wie er es vielleicht zuvor getan hat.

Wie arbeitet man so einen Fund auf?

Interessant ist dann auch die Beschreibung wie mit dem Fund des Keyloggers umgegangen wurde: Angefangen von der erfolgreichen Fallenstellung bis hin zum Sichern, Interpretieren und Aufbereiten der digitalen Beweise. Das man hier erfinderisch und technisch fit sein muss ist dabei der eine Teil, der andere ist es als IT Abteilung eine möglichst nicht anzweifelbare Kette von Indizien zu produzieren, die dann sowohl bei der internen Aufarbeitung wie auch bei der externen Bearbeitung etwa durch die Strafverfolgungsbehörden nicht gleich in sich zusammenfällt und sowohl einen selbst wie auch die größten Zweifler überzeugt. Auch das scheint hier gut gelungen zu sein.

Was wenn es ein Innentäter ist?

Und schließlich gibt es noch die menschliche Komponente, wenn wie hier ein (größtenteils) geschätzter Kollege sich plötzlich als jemand entpuppt, der einen offenbar in großem Stil hintergangen und aus weiterhin unklaren Motiven großflächig ausspioniert hat. Und der dabei so gar nicht dem üblichen Cliche des ‚Hackers‘ entspricht.

Es spricht finde ich dabei für die Offenheit der taz, dass man sich der Hypothese stellt, dass der Täter vielleicht irgendeinem Übel innerhalb der Redaktion auf der Spur war. Aber letztlich bleibt aus meiner Sicht nur die Tatsache, dass hier jemand gegen jede übliche Norm des zwischenmenschlichen Umgangs verstoßen hat, und dabei offenbar letztlich im wesentlichen die Motive eines Stalkers hatte.

Kleines Pwn2Own Fazit – Lehren für Sicherheit im Webbrowser

In dieser Woche hat sich der jährliche Pwn2Own Wettbewerb ereignet, bei dem es schon seit einigen Jahren darum geht aktuelle Browser und Betriebssysteme (und dieses Jahr erstmalig auch VMs) zu hacken.

Einige Änderungen hat es in den letzten Jahren gegeben: Bekam der erfolgreiche Hacker zunächst nur das gehackte (‚pwn‘) Gerät geschenkt (‚own‘), so sind die insgesamt ausgeschütteten Preisgelder inzwischen in den 6-stelligen Bereich gegangen.

Sie vollziehen damit den Trend nach, den man allgemein beobachten kann: Sicherheitslücken sind ein wertvolles Gut geworden, welches sich bei staatlichen Abnehmern bzw. den sie versorgenden Spezialisten wie VUPEN oder HackingTeam für gutes Geld verkaufen lässt. Google, Mircosoft etc. haben daher auch die Prämien ihrer Bug Bounty Programme immer weiter angezogen.

Eine andere Änderung betrifft den Ausrichter, der nun zu Trend Micro gehört. Da die angetretenen Hacker ebenfalls zu großen Teilen zu auf IT Sicherheit spezialisierten Unternehmen gehören ist der Wettbewerb wohl noch stärker zu so etwas wie einem kleinen Familientreffen der Sicherheitsindustrie geworden.

Aber nun zu den Ergebnissen:

Chrome zeigt sich als ’sicherster‘ Browser

Von den Browsern, die die Ausrichter als Ziele genannt haben, sind alle gefallen, auch Chrome. Warum kann man Chrome trotzdem als den sichersten Browser bezeichnen? Weil eine Kombination von 4 Fehlern notwendig war, um ihn zu Fall zu bringen, davon 2 in Flash und einer im Windows Kernel. Der verbleibende Chrome Fehler war Google schon zuvor von anderer Stelle gemeldet worden, daher bekamen die Hacker nur einen Teil der Punkte für diesen Erfolg. Insgesamt zeigt dies wohl die große Robustheit, die Chromes Sandbox erreicht hat.

bugs
Ein Bug bleibt selten allein

Warum setze ist das ’sicherster‘ oben dann trotzdem in Anführungszeichen? Weil Sicherheit kein Zustand ist, sondern ein Prozess, der sich immer weiterentwickelt und morgen schon wieder anders aussehen kann. Da allerdings Google das Thema Sicherheit in Chrome in den letzten Jahren immer aggressiv verfolgt hat, kann man erst einmal davon ausgehen, dass man mit Chrome auf der sicheren Seite ist und bleibt.

Auch Microsofts Edge Browser schlägt sich offenbar viel, viel besser, als es früher dem IE gelang. Anscheinend bringt der Abschied von der alten Codebasis in dieser Hinsicht einiges.

‚Mozilla’s Firefox browser was intentionally dropped from the competition due to its complete lack of a sandbox, a critical security feature which raises the bar for exploitation.‘

Traurig ist hingegen der Stand von Firefox: Zwar ist der freie Webbrowser nach StatCounter immer noch knapp der weltweit zweithäufigst verwendete Browser, aber in Kreisen ernstzunehmender Hacker wird seine Überwindung anscheinend als so lächerlich einfach angesehen, dass man damit keine Anerkennung ernten kann. Man kann wohl eigentlich niemandem mehr raten Firefox zu nutzen, jedenfalls nicht, wenn man auf Sicherheit achtet.

Flash: Gefährlich und zunehmend unnötig

Ein alter Bekannter in Bezug auf Sicherheitsprobleme im Webbrowser ist natürlich das Flash Plugin, welches ja schon beim Chrome Hack eine Rolle spielte und in dem noch weiteren Lücken demonstriert wurden.

Ich habe meinen Chrome Browser schon vor einiger Zeit bei der Pluginausführung auf ‚Click to play‚ umgestellt, so dass Plugins erst gestartet werden, wenn ich es explizit will. Damit ist man auf diesem Wege deutlich weniger verwundbar.

Nach meiner Erfahrung nimmt die Zahl der Flash Einbindungen im Web – zumindest in dem Teil, in dem ich mich bewege – rasch ab. Es ist glaube ich schon Wochen her, dass ich einmal einen Inhalt unbedingt sehen wollte, der nur über Flash erhaltbar war.

Neues Angriffsziel: Die Betriebssystemkerne

Ein interessanter – und besorgniserregender – Trend bei diesem Pwn2Own Wettbewerb war die Konzentration der Hacker auf Fehler in den Betriebssystemen, an Stelle von Fehlern in den Browsern. Dies mag der Tatsache geschuldet sein, dass die Browser in Sicherheitshinsicht stark aufgerüstet haben und die Hacker nun zuerst an anderen Stellen suchen, wo sie einfacher Erfolg haben. Eine Folge davon war dann, dass die erfolgreichen Exploits gleich Systemrechte erlangen konnten, also quasi allmächtig sind im kompromittierten System.

Das kann man als Argument nehmen, dass der grundlegende Ansatz von Googles ChromeOS zumindest nicht falsch ist, nämlich das ein Betriebssystem eher weniger können sollte und dafür besser gehärtet werden kann.

Wer sich die beiden Tage des Wettbewerbs in Filmform ansehen möchte, der findet das hier:

http://ingoogle.com/pwn2own-2016-windows-os-x-chrome-edge-safari-all-hacked/

Vortrag über 2-Faktor-Authentifizierung auf der DFN Betriebstagung

Wer sich für das Thema ‚2-Faktor-Authentifizierung (2FA)‘ interessiert: Ich habe auf der letzten DFN Betriebstagung einen Vortrag dazu gemacht, wie wir im Projekt BIS diese Funktion implementiert haben. Die Folien kann man jetzt auf der Tagungsseite herunterladen.

Findet sich im ‚AAI‘ Bereich und stellt daher auch Verknüpfungen zu Themen wie Identity Provider (IdP) bzw. Shibboleth her. Alternativ kann man die Folien hier im Google Drive aufrufen.

Google Authenticator App

Stichpunkte zum Vortrag

  1. Angriffe mit Identitätsdiebstählen sind heute unvermeidlich
  2. Herkömmliche Login-Formulare bieten keinen Schutz etwa gegen Attacken mit Keyloggern
  3. Einführung eines zusätzlichen Loginfaktors notwendig
  4. Entscheidung für das Time-based One-time Password (TOTP) Verfahren nach RFC 6238
  5. Implementierung von drei unterschiedlichen 2FA Verfahren
  6. Ein Identity Provider ist die ideale Stelle um diesen Aufwand zu treiben
  7. Wenigstens neu aufgesetzte Dienste sollten direkt mit einem Identity Provider geschützt werden

 

Datendiebstahl an der Uni Graz

An einer österreichischen Universität ist es zwischen Weihnachten und Neujahr zu einem Datendiebstahl gekommen. Man vermutet einen Innentäter, da der Täter bei der Veröffentlichung der Daten offenbar auch gegen einzelne Uni Mitarbeiter gepöbelt hat.

Die Erklärung eines Uni Mitarbeiters in dem verlinkten Radio Interview, wie die Daten gestohlen wurden und welche, ist ziemlich merkwürdig: Der Angreifer soll demnach ein ‚altes‘ Passwort verwendet und daher nur ‚alte‘ Daten erwischt haben.

Mir war bisher nicht klar, dass der Passwortstatus (‚alt‘ versus ‚aktuell‘) so einen Einfluss auf den damit möglichen Systemzugriff haben kann: Alte Passworte sollte ja eigentlich gar keinen Zugriff mehr ermöglichen. Oder gab es da ein schlecht gesichertes Backupsystem, welches eine alte Kopie von echten Daten irgendwo im Netz anbot?

In Zukunft massiver, finanzieller Schaden möglich?

Interessant ist auch der Verweis auf die kommende Datenschutzverordnung:

‚Wäre der Vorfall nach Inkrafttreten der neuen EU-Datenschutzverordnung im Frühjahr 2018 erfolgt, hätten der Uni Graz schwerwiegende Konsequenzen gedroht‘

Die meisten denken hier vermutlich an große US Konzerne, die man damit bei Datenlecks zur Kasse bitten könnte. Aber macht es Sinn von öffentlichen Einrichtungen wie hier (Steuer)Geld wieder einzusammeln? Oder rechtfertigt dieses Gesetz nun prophylaktische Investitionen der öffentlichen Hand in irgendwelche externen IT Auditierungen, zusätzliche Sicherheitsbeauftragte oder Versicherungen, die in solchen Fällen einspringen?

Leseempfehlung: ‚SPAM NATION‘ von Brian Krebs

Vor wenigen Tagen musste ich jemandem, der nicht viel jünger ist als ich, erklären was eigentlich Spam(mail) ist. Vielleicht ist das meine und Google’s Schuld: Ich hatte die Person schon vor langer Zeit mit einem GMail Account ausgestattet und Google’s Filter haben offenbar in all der Zeit den Posteingang frei von Spam gehalten.

Ist es wirklich schon so weit gekommen? Das nur noch wir ‚Älteren‘ uns an die Zeit erinnern, in der Spam eine echte Plage war und man beim morgendlichen Öffnen des Postfaches 90% gleich löschen konnte, weil es SPAM war? Oder ist mit dem Siegeszug der Messenger auf den Smartphones die E-Mail einfach unwichtiger geworden?

spam_nation_krebs

Egal. Meine letzte Weihnachtslektüre war für mich trotzdem sehr spannend, auch wenn die Ereignisse, die dort behandelt werden, nun schon einige Jahr her sind: Brian Krebs beschreibt hier mit sehr tiefgehenden Kenntnissen die Geschichte der Pharmawars, einer Auseinandersetzung zwischen zwei großen russischen Internetanbietern von (legalen und illegalen) Medikamenten, die insbesondere mit massiven Spamwellen beworben wurden.

Krebs beleuchtet dabei alle Teile des Spam/Pharma-Geschäfts. Das sind neben den Plattformbetreibern, den Spammern mit ihren riesigen Botnetzen und diversen anderen Akteuren dieser kriminellen Verbünde:

  • Die Käufer: Warum kaufen Leute eigentlich Medikamente bei Quellen, deren Zuverlässigkeit sie nicht kontrollieren können und wie zufrieden sind sie mit dem Service? Spoiler: Das Servicelevel dieser Dienste war offenbar ausgesprochen gut. Und die Leute, die auf die Links in Spam klicken, haben teilweise gute Gründe dazu, und sind nicht einfach ‚dumme Nutzer‘, zu denen sie die Nerds gerne erklären.
  • Die geschädigten Pharmakonzerne: Jeder kennt vermutlich Spam für Viagra / Cialis etc. Was machen eigentlich die betroffenen Konzerne, denen dadurch doch Gewinne entgehen müssten? Spoiler: Offenbar erstaunlich wenig. Denn was wäre, wenn sich herausstellt, dass die Plagiate der illegalen Shops viel billiger sind, aber chemisch nicht von den teuren Originalprodukten unterschieden werden können?
  • Die ‚Antis‘: Welche Kräfte gibt es, die sich – oft eher inoffiziell und im Schatten – der Spamflut entgegen stellen und in welchen Fällen wurden sie von den Spammern bezwungen. Spoiler: Microsoft hat in dieser Geschichte viel bewegt mit seiner hartnäckigen Verfolgung von Raubkopien, jedenfalls mehr, als die Pharmakonzerne.
  • Das russische ‚Rechtssystem‘: Interessant ist bei der detailgenauen Portraitierung der russischen Spammer und Plattformbetreiber das Umfeld, in dem sie sich bewegen (müssen). Ist das für Einflussnahmen anfällige russischen System zunächst eine Hilfe beim Aufbau der kriminellen Aktivitäten, werden diese ‚kleinen‘ Diebe später auch mal von den viel größeren Dieben im russischen Staat ausgenommen.

Brian Krebs hat dabei offenbar ungeheure Mühen bei der Auswertung von geleakten Chatlogs der Konfliktparteien aufgewendet und einen teilweise sehr persönlichen (zu persönlichen?) Kontakt zu einigen der Schlüsselfiguren aufgebaut. Auch ist er ob seiner Herkunft als Journalist – im Gegensatz zu vielen IT Leuten, die in diesen Bereich Texte produzieren – in der Lage echte Spannungsbögen zu produzieren und den roten Faden in diesem komplexen Thema nicht zu verlieren.

Und auch, wenn das Spamproblem heute reduziert scheint: Die gleichen Leute, die Botnetze für das Spamming aufgebaut haben, sind immer noch da und suchen neue Tätigkeitsfelder um die mit Pharmaverkäufen heute nicht mehr erzielbaren Einnahmen zu kompensieren.

Von mir daher 5 Sterne!

Großangelegte Geldautomatenmanipulation: Auf Spurensuche in Mexiko

Diese kleine Artikelreihe von Brian Krebs (von Krebs on Security) ist schon ein paar Monate alt, aber mir erst jetzt untergekommen. Und sehr spannend (wer sich die Spannung erhalten will sollte erst die Artikel lesen und dann hier weitermachen):

geldautomat

Es geht zunächst um unauthorisierte Modifikationen von Geldautomaten für Skimming, also das Abgreifen von Kartendaten um damit später Geld von fremden Konten holen zu können. Dieses Skimming ist dabei so ausgefeilt, dass es sich äußerlich nicht im geringsten erkennen lässt und die Skimmer die gesammelten Daten im Vorbeigehen per Bluetooth abholen können, wann immer ihnen danach ist.

Brian Krebs macht dann eine Reise noch Mexiko und entdeckt gleich in seinem Hotel einen Automaten, der das verdächtige Bluetooth Signal aussendet. Und in den kommenden Tagen noch jede Menge weiterer solcher Geräte in den touristischen Hotspots.

Dieser Teil ist schon interessant, da er auch versucht andere Menschen von der Nutzung der kompromittierten Geräte abzuhalten (nicht wirklich erfolgreich) und das Hotelpersonal auf das Problem aufmerksam zu machen. Und erlebt, wie schwierig es sein kann ein offensichtlich gewordenes Problem dann auch abzustellen.

Die ganz große ‚Verschwörung‘

Im Nachgang seiner Mexikoreise entwickelt er allerdings noch eine größere Theorie und zwar eine, wonach die große Zahl von kompromittierten Geräten vielleicht nur eine Art Ablenkung von oder Ergänzung zum eigentlichen, großen Angriff ist:

Und zwar ist ihm ein Geldautomatenbetreiber aufgefallen, dessen Geräte aus verschiedenen Gründen merkwürdig sind (zu viele um rentabel zu sein; zu hohen Gebühren; häufige Transaktionsabbrüche; keine Informationen über den Betreiber erhältlich). Was wäre, wenn hier ein Unternehmen gegründet wurde mit dem Ziel Geldautomaten aufzustellen, deren Hauptzweck es ist Kartendaten auszuspähen?

Leider gibt es bis heute noch keine Fortsetzung dieser Reihe, die das Rätsel lösen würde.

Aber die Frage ist schon, ob man eigentlich noch – wenigstens im Ausland – Bargeld von Automaten mit einer Karte abholen sollte, die Zugriff auf das komplette eigene Konto hat. Oder ob man sich eher ein Nebenkonto mit wenig Geld und ohne Kreditrahmen zulegt, welches man ggf. im Urlaub über den PC mit Geld füllt, und von dem man dann per Karte Geld abhebt.