Web-Sicherheit

August 29, 2011

Umgehen von PHPIDS

Filed under: Allgemein — sebastiankuebeck @ 11:43
Tags: , , , , , , , , ,

Michael Brooks beschreibt in seinem kürzlich erschienenen Paper Bypassing PHPIDS 0.6.5 wie man das Intrusion Detection System (kurz IDS)  PHPIDS in der Version 0.6.5 umgeht. Er hat dieses Produkt unter anderem mit dem statischen Analysetool RIPS PHP untersucht und einige gravierende Schwachstellen gefunden.

Firewalls und IDS verfolgen generell zwei unterschiedliche Ansätze: Firewalls reduzieren die Angriffsfläche indem sie den eingehenden Netzwerkverkehr analysieren und nur das durchlassen, was explizit erlaubt ist. IDS hingegen überprüfen den Netzwerkverkehr auf Anzeichen eines Angriffs. Haben sie einen solchen erkannt, generieren sie eine Warnmeldung oder blockieren die Anfrage. Anders ausgedrückt könnte man bei einer Firewall von einem White-List-Filter sprechen, der nur das durchlässt, was ausdrücklich erlaubt ist. IDS hingegen stellen einen Black-List-Filter dar, es wird also alles durchgelassen bis auf das, was als Angriff erkannt wird. Bei Web-IDS und -Firewalls verfolgen üblicherweise beide Ansätze, weshalb diese Begriffe häufig synonym gebraucht werden, daher teilen diese Techniken auch dieselben Schwächen.

Unzureichender Schutz vor ReDoS-Angriffen kann dazu ausgenutzt werden, die Angriffserkennung komplett zu umgehen

Die erste Schwachstelle ergibt sich aus einem Mechanismus, der das IDS vor ReDoS-Angriffen schützen soll.

	    /**
	     * Make sure the value to normalize and monitor doesn't contain
	     * possibilities for a regex DoS.
	     *
	     * @param string $value the value to pre-sanitize
	     *
	     * @static
	     * @return string
	     */
	    public static function convertFromRepetition($value)
	    {
	        // remove obvios repetition patterns
	        $value = preg_replace(
	            '/(?:(.{2,})\1{32,})|(?:[+=|\-@\s]{128,})/',
	            'x',
	            $value
	        );
	        return $value;
	    }

Der regulärte Ausdruck überprüft dabei einfach, ob sich irgendein Textmuster, das zumindest zwei Zeichen enthält, mindestens 33 mal wiederholt oder Ein Zeichen der Zeichenklasse [+=|\-@\s] zumindest 128 mal wiederholt. Ist dies der Fall, wird der ganze Ausdruck durch x ersetzt, bevor die eigentliche Angriffserkennung erfolgt.

Ein Ausdruck der Form:

abababababababababababababababababababababababababababababababababa!

Wird also schlicht in folgenden umgewandelt:

x!

Das Problem dabei ist, dass diese Funktion einerseits keinen Schutz gegen ReDoS-Schwachstellen darstellt (siehe meine Artikelserie darüber) und andererseits dazu missbraucht werden kann, die gesammte nachgeschaltete Angriffserkennung zu umgehen. Man brauch ja nur die Angriffssignatur mindestens 33 mal zu wiederholen, also beispielsweise folgende Anfrage absetzten:

<script>alert(1);</script><script>alert(1);</script><script>alert(1);</script> ... (insgesamt 33 mal wiederholen)

Diese Anfrage wird nicht auf Angriffe überprüft, da sie von der Funktion convertFromRepetition einfach in x umgewandelt wird, bevor sie auf Angriffe untersucht wird. So kann das IDS natürlich keinen Angriff erkennen und die Anfrage wird unverändert an die Anwendung weitergeleitet und damit eine eventuell in der Anwendung vorhandene Cross-Site-Scripting-Schwachstelle ausgenutzt!

Selbverständlich kann man so auch SQL-Injection-Schwachstelle ausnutzen. Man braucht lediglich dafür zu sorgen, dass die Wiederholungen in einem Kommentar münden. Dann wird nur der erste Teil des Musters ausgewertet und die Wiederholungen von der Datenbank ignoriert, da sie sich ja innerhalb eines Kommentars befiden, also beispielsweise:

' union select password from mySQL.user limit 1 /*' union select password from mySQL.user limit 1 /*
... (insgesamt 33 mal wiederholen)

Auch Directory-Traversal-Angiffe funktionieren, sofern die Eingabe irgendwo in einem Nullterminierten String landet.

../../../etc/passwd%00../../../etc/passwd%00... (insgesamt 33 mal wiederholen)

Das erste Null-Teuchen sorgt dann dafür, dass alles, was dahinter kommt, ignoriert wird (siehe auch HTTP-Parameterverunreinigung, Teil 2).

Die Annahme, man könne keine Angriffe ausschließlich mit alphanumerischen Zeichen durchführen, ist falsch!

Folgende regel filtert alle Parameter aus, die keine Sonderzeichen enhalten:

        // define the pre-filter
        $prefilter = '/[^\w\s\/@!?\.]+|(?:\.\/)|(?:@@\w+)/';

        // to increase performance, only start detection if value
        // isn't alphanumeric

Die Annahme ist, dass ein erfolgreicher Angriff nicht ohne Sonderzeichen funktioniert, was prinzipiell falsch ist. Um eine SQL-Injection-Schwachstelle wie die folgende auszunutzen braucht man keine Sonderzeichen, wie eine Schwachstelle im IG-Shop beweist:

"select type_id from catalog_product where product_id = "$HTTP_GET_VARS['id']

Hier genügt die Anfrage…

http://localhost/compare_product.php?id=0 union select password from users limit 1

…um das erste Passwort auszulesen. Im Übrigens ist der Filter nicht ganz „dicht“, denn folgende Zeichen /@!?.\r\n werden problemlos durchgelassen.

Die Annahme, Benutzerdaten können nur mittels $_GET, $_POST ,$_COOKIE und $_REQUEST übergeben werden, ist ebenfalls falsch!

Neben den genannten Quellen vergaßen die Schöpfer von PHPIDS die Quelle $_SERVER zu berücksichtigen. Schließlich wird der Eintrag $_SERVER[‚PHP_SELF‘] gerne für Cross-Site-Scripting-Angriffe ausgenutzt, denn dieser Eintrga wird vom Browser gesetzt!
Gibt beispielsweise ein Skript diesen Wert ohne weitere Kodierung aus, beispielsweise um das aktuelle Skript als Formular-Aktion anzugeben…

  <form action="$_SERVER['PHP_SELF']" method ="post">

…kann der Pfad, den der Angreifer übergibt, ohne weiters wie folgt aussehen…

  http://localhost/contact/myform.php/"><script>alert(1);</script>

Das Skript übernimmt dann diesen Pfad und baut ihn ins Formular ein und das ohne dass PHPIDS etwas davon bemerkt.

Die Directory-Traversal-Schwachstelle in PHPIDS, die in dem Paper beschrieben wird, ist der aktuellen Version offenbar bereits behoben. Das Projekt hat offenbar kreative Tester als Mitglieder (siehe Projektforum), wodurch PHPIDS in Zukunft hoffentlich sicherer und Treffsicherer im Aufspüren und Abblocken von Angriffen wird. Leider liegt es in der Natur der Sache, dass man unsichere Webanwendungen mit dieser Technik nicht in allen Fällen zuverlässig schützen kann.

Sicherheitslücken in Computersystemen der deutschen Bundespolizei

Filed under: Allgemein — sebastiankuebeck @ 11:05
Tags: , , , ,

Laut diesem Artikel im Spiegel ist das Computersystem der deutschen Bundespolizei mit sensiblen Daten über verdeckte Ermittler, V-Leute und geheime Operationen offenbar in einem verheerenden Zustand.

Bei einer Revision nach einem Hacker-Angriff im Juli dieses Jahres haben Experten jetzt an dem betroffenen Standort gravierende Mängel festgestellt: Hardware und Programme seien veraltet, Sicherheitssysteme nicht vorhanden oder unzureichend. Nicht einmal das Personal werde den Anforderungen für einen sicheren Betrieb gerecht, heißt es in dem vertraulichen Bericht. So fehlten an Schlüsselpositionen geeignete Mitarbeiter, die Fehler feststellen und beheben könnten. Dazu aber wären sie wegen mangelnder Dokumentation ohnehin kaum in der Lage. Dies führe zu einer „als kritisch zu wertenden Abhängigkeit von einzelnen Personen“.

Zudem sei völlig unklar, wer innerhalb des Systems Regeln aufstellen und verändern dürfe. Damit könne dies praktisch jeder tun; das werde noch nicht einmal ausreichend registriert. Die internen Prüfer weisen in ihrem Bericht auf ein weiteres, gravierendes Risiko hin. Dabei geht es um den Zugang von Fahndern, die bei Observationen und Dienstreisen auch von außen Zugriff auf das System haben müssen. Dazu würden „unsichere Klartext-Protokolle“ benutzt, monieren die Experten. Viele zusätzliche Anwendungen seien zudem veraltet. Nicht ausreichend gesichert sei auch die sensible sogenannte Wechseldatenträgerschleuse – etwa für USB-Sticks oder CDs. Hacker, so das Fazit der Prüfer, könnten nach wie vor in das Polizeinetz eindringen. So sei es nicht nur möglich, an geheime Daten zu gelangen, sondern auch, die Software zu manipulieren und systemrelevante Einstellungen zu verändern.

Schon im Juni ist in einen nicht ausreichend gesicherten Server der Zollbehörde eingebrochen worden. Die Hackergruppe NN-Crew (sprich: No-Name-Crew) konnte sich Zugang zu diesem Server verschaffen und dort GPS-Positionsdaten von verdächtigen Fahrzeugen entwenden und Veröffentlichen.

Nein, dass kommt nicht überraschend und nein, das war nicht der letzte Vorfall dieser Art. Und ja, die anderen Systeme der Bundespolizei sind auch nicht sicherer, genauso wenig wie die der Behörden in Österreich, in der Schweiz oder sonstwo. Natürlich stimmt auch, dass wir immer nur das über Sicherheitsvorfälle erfahren, was sich unter keinen Umständen mehr vertuschen lässt…

August 28, 2011

HTTP-Parameterverunreinigung, Teil 3

Filed under: Allgemein — sebastiankuebeck @ 06:24
Tags: , , , , , , , ,

Im ersten Teil dieser keinen Serie haben wir die Technik der HTTP-Parameterverunreinigung kennengelernt und im zweiten Teil neue Eigenheiten der HTTP-Parameterverarbeitung kennengelernt, die man unter anderem für das Umgehen von WAFs verwenden kann.

Im dritten Teil kommen wir nun endlich zu Dmitry Evteevs Blog-Post, über das ich eigentlich berichten wollte. Dmitry Evteev führt den Ansatz von Ivan Markovic noch ein Stück weiter. So erkannte er, dass ASP % (das Prozentzeichen) ignoriert, wenn die Zeichen danach keinen gültigen Zeichencode ergeben (wir erinnern uns, dass laut Spezifikation nach einem % der Zeichencode als Hexadezimalzahl kommen sollte).

  id=selec%t+@%@version--

…wird nach dieser Regel in der webanwendung wie folgt ankommen…

  Request.Params["id"] -> select @@version--

Und das ist wird in den Standardregeln von ModSecurity nicht abgefangen. Mit den erweiterten Regeln funktioniert dieser Trick nicht mehr, diese sind allerdings noch in einem experimentellen Stadium und produzieren zahlreiche False-Positives.

Ein weiteres interessantes „Feature“ von PHP ist, dass PHP Parameter, die die Zeichnkette [] beinhalten, als Array an die Anwendung übergibt.

  param[]=123 wird zu $_GET['param'] -> Array

Damit kann man unter Umständen die Logik von PHP-Skripten durcheinanderbringen und Fehlermeldungen Provozieren, die einem von aussen mehr einblick in die Webanwendung gewähren.
Angeblich hat Dmitry Evteevs bei seiner Arbeit auf den Spuren Ivan Markovics eine DoS-Schwachstelle bei der Verarbeitung von HTTP-Paremetern im Tomcat-Webserver gefunden, diese will er allerdings nicht verrarte.

August 27, 2011

HTTP-Parameterverunreinigung, Teil 2

Filed under: Allgemein — sebastiankuebeck @ 06:42
Tags: , , , , , ,

Im Vorigen Teil dieser Serie haben wir die Grundlagen der HTTP-Parameterverunreinigung erörtert und die Eigenheiten der Verarbeitung von Mehrfachparametern besprochen.

Inspiriert von Luca Carettoni und Stefano diPaolas Präsentation untersuchte Ivan Markovic gängige Webtechnologien auf weitere Eigenheiten in der Verarbeitung von HTTP-Parametern und entdeckte unter anderem folgendes:

  • [ und . werden in PHP zu einem _ (Underscore) umgewandelt, wenn sie im Parameternamen vorkommen;
  • NUL (ASCII-Code 0) wird im Parameternamen in PHP und ASP einfach ignoriert, darüber hinaus werden auch alle Zeichen nach NUL im Namen ignoriert;
  • NUL im Parameterwert führt in PHP dazu, dass der Parameter ignoriert wird, in ASP ignoriert die NUL und alle Zeichen danach.

Das Verhalten von ASP deutet übrigens klar darauf hin, das die Parameter in einem nullterminierten String gespeichert wird, wie das in der Programmiersprache C standardmäßig gemacht wird.  Durch das einfügen von NUL wird hier die Endmarkierung (also die 0) außer Kraft gesetzt und durch eine neue ersetzt. Es findet also eine Verwechslung zwischen externen Daten (dem Parameter mit dem Zeichen NUL) und internen (die Null als Markierung des Endes eines Strings) statt, was potentiell immer gefährlich ist!

Ivan Markovic hat alle seine Erkenntnisse in der folgender Tabelle zusammengefasst:

Picture 3 / HPC / Server behavior. Quelle: Ivan Markovic: Http Parameter Contamination, 2011.

Alles gut und schön, aber wie lassen sich diese Beobachtungen nun nutzen?

Wir erinnern uns, das WAFs wie ModSecurity die Eingabe nach gewissen Angriffssignaturen absuchen. So versucht beispielsweise eine Regel in modsecurity_crs_41_sql_injection_attacks.conf zu verhindern, dass jemand die Windows-Komandozeile über eine SQL-Injection-Schwachstelle aufruft. Diese Regel sucht ganz einfach nach der Zeichenkette xp_cmdshell (so heisst die Komandozeile im SQL Server) und blockiert die Anfrage, sollte sie fündig werden.

Nun erinnern wir uns aber, dass die IIS die Zeichen . und [ in _ (Underscore) umwandelt. Wir können daher auch  xp[cmdshell  oder xp.cmdshell in einem Parameter übergeben und die IIS wandelt beides in der Webanwendung in xp_cmdshell um. Leider erkennt die WAF die Varianten xp[cmdshell  oder xp.cmdshell nicht als Angriff und blockiert daher den Aufruf nicht. Und voilà – schon haben wir die WAF erfolgreich umgangen!

Ivan Markovic nennt diese Technik übrigens HTTP Parameter Contamination um sie von Luca Carettonis und Stefano diPaolas Technik HTTP Parameter Pollution zu unterscheiden. Ich werde allerdings in beiden Fällen bei Verunreinigung bleiben, da das ja eigentlich ein Synonym für Kontamination ist.

Im nächsten Teil kommen wir nun endlich zu Dmitry Evteevs Blog-Post, über das ich eigentlich berichten wollte.

August 26, 2011

HTTP-Parameterverunreinigung, Teil 1

Filed under: Allgemein — sebastiankuebeck @ 13:52
Tags: , , , , , , , ,

Luca Carettoni und Stefano diPaola präsentierten auf der OWASP EU09 in Polen erstmals eine Angriffstechnik, die sie HTTP-Parameter-Pollution, also HTTP-Parameterverunreinigung nannten. Diese Technik nutzt Eigenheiten in der Art und Weise, wie gängige Web-Technologien HTTP-Parameter interpretieren aus, um gängige Angriffstechniken für Webanwendungen zu erweitern. Varianten dieser Angriffstechnik werden gegenwärtig ständig weiterentwickelt, weshalb ich diesen Beitrag auf mehrere Teile aufteilen muss. In diesem Artikel wird die ursprüngliche Angriffstechnik und deren Grundlagen beschrieben. Diese Kenntnisse sind nötig, um weitergehende Angriffstechniken zu verstehen.

HTTP-Parameter

HTTP-Parameter sind ein optionaler Bestandteil von URLs. Eine Beispiel für eine URL mit HTTP-Parametern:

http://www.example.org/showItem?id=123&size=small

Der letzte, fett gedruckte Teil ist eine kodierte Liste von HTTP-Parametern; das Fragezeichen vor den Parametern trennt den Pfad von der Parameterliste. In diesem Fall lauten die HTTP-Parameter wie folgt:

Name Inhalt
id 123
size small

Da die Länge von URLs beschränkt ist und man Parameter mit sensiblen Daten nicht in der URL haben möchte, kann man diese Parameter auch im Body der HTTP-Anfrage mitschicken. Das kann beispielsweise wie folgt aussehen:

POST showItem HTTP/1.1
Host: www.example.org
Content-Type: application/x-www-form-urlencoded
Content-Length: 17

id=123&size=small

Kodierung von HTTP-Parametern

Die Kodierung der Parameter – auch URL-Kodierung genannt – ist in beidem Fällen dieselbe. Kurz zusammengefasst besteht eine Parameterliste (oft auch Query String genannt) aus Wertepaaren, die durch ein & oder ein ; getrennt sind. Die beiden Teile jedes Paars werden durch ein = getrennt.

Die URL-Kodierung kennt drei Klassen von Zeichen: Reservierte und nicht reservierte. Die nicht reservierten können ohne Codierung in den Parametern vorkommen, die Reservierten müssen mittels der Prozentdarstellung (siehe nächster Absatz) kodiert werden.

Nicht reservierte Zeichen: a,b,...z, A,B,...Z, 0,1,...9 sowie die Zeichen _ . ! ~ * ' ( )
Reservierte Zeichen: ; / ? : @ & = + $ % #

Bei der Prozentdarstellung wird der Code in Hexadezimaldarstellung nach einem % angegeben. Die Anzahl der Stellen hängt von der gewählten Codierung ab. Empfohlen wird inzwischen UTF-8 doch wird vereinzelt auch noch ISO 8859-1 (Latin-1) verwendet. Statt %20 (Leerzeichen) kann man auch ein + schreiben.

Mehrere HTTP-Parameter mit demselben Namen

Nun ist es auch möglich, mehrere Parameter mit demselben Namen in die Parameterliste aufzunehmen, dass sieht dann zum Beispiel wie folgt aus:

http://www.example.org/showItem?id=1&id=2&id=3

Nun wandeln gängige Webtechnologien Mehrfachparameter auf unterschiedliche Weise in interne Datenstrukturen um, beispielsweise verwandeln ASP und ASP.NET die liste an gleichnamigen Parametern in eine durch Komma getrennte Liste um. So wird aus…

id=1&id=2&id=3

…in der Webanwendung…

Request.Params["id"] -> "1,2,3"

PHP und Lotus Domino ignorieren hingegen alle Parameter bis auf den letzten:
So wird aus der selben Liste in der Webanwendung:

$_GET[id] -> "3"

Bei Perl, Servlets und JSPs verhält es sich genau umgekehrt: Es wird der erste Parameter genommen und weitere Vorkommen ignoriert.

request.getParameter("id") -> "1"

Python (Zope) wiederum liefert einen Array mit den Parameterwerten zurück. In der Webanwendung wäre obige Parameterliste dann:

self.request.form['id'] -> ['1','2','3']

Viele Web-Programmierer sind sich über diese Unterschiede nicht im klaren und erwarten Mehrfachparameter nur dort, wo sie auf der HTML-Seite explizit definiert sind – beispielsweise bei einer Auswahlliste, die eine Mehrfachauswahl erlaubt. Tatsächlich kann aber ein Angreifer Parameter mehrfach setzten, wo immer er will (bei POST-Parametern geschieht das meist mithilfe eines Werkzeugs wie Paros oder WebScarab) und so mitunter die Logik der Webanwendung durcheinanderbringen, wie folgendes Beispiel zeigt:

Die CUPS-Oberfläche, aufgerufen mit doppeltem Parameter „QUERY“. Im Eingabefeld steht der erste Parameter, die Suche berücksichtigte hingegen nur den zweiten. Quelle: Luca Carettoni, Stefano diPaola: HTTP-Parameter-Pollution, OWASP EU09 Poland, 2009.

Ausnutzen der Verarbeitung von Mehrfachparametern

PT Research verwendete diese Technik, um die Web-Application-Firewall ModSecurity zu umgehen (siehe Trick 3). Wie zuvor beschrieben setzt ASP.NET Parameter mit demselben Namen zu einer durch Komma getrennten Liste zusammen. So wird aus…

after=1 AND (select DCount(last(username)&after=1&after=1) from users where username='ad1min')

…in der Webanwendung…

after=1 AND (select DCount(last(username), 1, 1) from users where username='ad1min')

…also eine gültige SQL-Injection-Signatur. Dadurch, dass nur Fragmente in unterschiedlichen Parametern übergeben werden, kann ModSecurity den Angriff nicht erkennen.

August 25, 2011

Miner Botnetz attackiert Server in Deutschland und Österreich

Filed under: Allgemein — sebastiankuebeck @ 12:17
Tags: , , , ,

Ursprünglich wurde das sogenannte Miner-Botnetz ins Leben gerufen, um Bitcoins zu generieren. Bitcoins sind eine Form von elektronischem Geld. Jede „Münze“ (die Bitcoin) ist dabei eine lange Zahl, die für einen bestimmetn Wert zählt. Jeder kann eine solche Münze erzeugen und damit nicht zu viele Münzen im Umlauf sind und es dadurch zu einer Hyperinfaltion der bereits generierter Bitcoins kommt, ist das Berechnungsverfahren, das diese Zahlen berechnet, äußerst rechenintensiv.

Um die Berechnung von Bitcoins zu beschleunigen programmierten nun einige Hacker eine Schadsoftware, die sich automatisch im Internet verbreitet. Nun können die Hacker die Rechenleistung aller infizierten Hacker nutzen, um neue Bitcoins zu generieren, denn die kombinierten Rechenleistung vieler Tausender infizierter PCs übersteigt die Rechenleistung so mancher Supercomputer.

Grafische Darstellung des Miner-Netzwerks. Quelle: Tillmann Werner

Kürzlich haben die Hacker das Miner-Botnetz um eine neue Funktion erweitert, wie Tillmann Werner von Kaspersky Labs kürzlich berichtete. Demnach begnügen sich die Hacker nicht mehr nur damit, Bitcoins zu berechnen sondern Erweiterten ihre Schadsoftware dahingehend, dass sie DDoS-Angriffe (genau genommen UDP-Flooding-Attacken) gegen bestimmte Server durchführt. Laut heise Security handelt es sich bei den Zielen auch um deutsche und österreichische Server, so ist beispielsweise der Pizzazusteller pizza.de betroffen.

Laut Kaspersky haben einige der Opfer bereits DDoS-Angriffe auf ihre Systeme bestätigt, und das von mehreren Hunderttausend infizierten Computern. Der Pizzazusteller pizza.de registrierte laute eigenen Angaben während eines Angriffs der über 3 Stunden dauerte Zugriffe von rund 50.000 IP-Adressen, die etwa 20-30.000 Anfragen pro Sekunde erzeugten. Was die Angreifer damit bezwecken wollen bleibt bisher im Dunklen. Seltsamerweise wurden die Angriffe seit gestern völlig eingestellt.

In der Vergangenheit haben Hacker versucht, betroffene Firmen zu erpressen, indem sie die Angriffe so lange fortsetzten, bis das betroffene Unternehmen schließlich bezahlte. Möglicherweise scheiterten die Angreifer daran, einen sicheren Weg für die Geldübergabe zu finden.

Update 27.8.2011: Miner Botnetz attackiert wieder

Laut Kaspersky und heise Security ist das Botnetz inzwische wieder aktiv. Die Motivation des Betreibers ist aber nach wie vor unklar.

Die über 100.000 Bot-Netz-Clients rufen dabei massenhaft Seiten ab und versuchen so dafür zu sorgen, dass der Server wegen Überlastung nicht zu erreichen ist. Die Anfragen lassen sich in den Log-Dateien leicht an ihren charakteristischen User-Agent-Strings erkennen. Viele haben etwa als Sprache „ru“ gesetzt.

Tillmann Werner von Kaspersky bestätigt die neue Angriffswelle. Die Liste der Ziele für das HTTP-Flooding ist dabei gleich geblieben; nur ein neues Opfer für UDP-Flooding ist hinzugekommen. Ein Teil der Betroffenen greift jetzt zu harten Maßnahmen, um die Server erreichbar zu halten. So filtern sie etwa auf vorgelagerten Routern Zugriffe von allen IP-Adressen, die nicht aus Deutschland stammen. Das sperrt zwar unter Umständen auch legitime Nutzer aus, hält den Dienst aber für die Mehrzahl der Anwender erreichbar.

Sicherheitsmaßnahmen in Googles Rechenzentren

Filed under: Allgemein — sebastiankuebeck @ 05:55
Tags: , , , ,

Nettes Video über die Sicherheitsmaßnahmen von Googles Rechenzentren. Wie der Titel suggeriert, soll dieses Video Firmen beruhigen, die sensible Daten via Google Apps speichern:

Das ganze mag eindrucksvoll aussehen, man sollte sich aber vergegenwärtigen, dass alles, was da gezeigt wird in der Praxis relativ wenig über die tatsächliche Sicherheit der Rechenzentren aussagt. Mich würden beispielsweise folgende Fragen interessieren:

  1. Wie oft und auf welche Weise wird die Sicherheit (physisch und logisch) getestet?
  2. Es ist viel Sicherheitspersonal zu sehen (bei denen es sich hoffentlich um Schauspieler handelt) aber werden die Leute auch regelmäßig geschult und ausreichend bezahlt?
  3. Kann man die Iris-Scanner mit einem Photo überlisten? Wenn ja, sollte man sie lieber wieder abbauen und durch etwas wirksameres ersetzen.
  4. Auf welche Weise bekommen Behörden Zugang zu den Daten, wie das vom Patriot Act gefordert wird? Wenn die sich einfach via Benutzername/Passwort über das Internet einloggen können, ist der ganze Hightech-Hokuspokus für die Katz.

Für die physische Sicherheit gelten übrigens genau dieselben Prinzipien, wie ich sie im ersten Teil meines Buches beschrieben habe. Man muss sich allerdings – genau so wie bei der logischen Sicherheit – intensiv mit physischen Einbruchstechniken befassen, bevor man die Sicherheit halbwegs glaubwürdig beurteilen kann.

August 24, 2011

Die Illusion der Privatsphäre im Internet

Filed under: Allgemein — sebastiankuebeck @ 14:03
Tags: , , , ,

Die letzten Folge von c’t tv endet mit einem interessanten Beitrag (Sendung vom 25.06.2011, der Beitrag beginnt ca. ab Minute 7:34) über einen Mann (nennen wir ihn Stefan), der Journalisten gestattete, über ihn im Netzt zu recherchieren und alles, was sie finden konnten, im Fernsehen zu veröffentlichen. Als die Journalisten Stefan mit ihren Rechercheergebnissen konfrontierten, zog er seine Zustimmung, das zu veröffentlichen zurück, denn nicht nur Stefan sondern auch die beteiligten Journalisten waren schockiert, was sie da alles im Internet über Stefan fanden.

Am Anfang begannen die Journalisten, mittels zahlreicher Suchmaschinen zu suchen und fanden nichts aufregendes, aber als sie an Stefans Pseudonym herankamen wendete sich das Blatt. So fanden die Journalisten heraus, wo Stefan wohnte, wie seine Wohnung aussieht, welches Auto er fährt und welches Kennzeichen es besitzt. Als sie dann auf immer mehr persönliche Details stießen, beispielsweise dass seine Kinder von drei verschiedenen Müttern stammen, beendeten sie die Recherche.

Insgesamt eine sehr schöne Einführung in die Kunst des Social Engineerings das heute fixer Bestandteil jedes gezielten Hackerdangriffs ist.

Das Innenleben von Webbrowsern

Filed under: Allgemein — sebastiankuebeck @ 06:54
Tags: , , , , , ,

Tali Garsiel hat jahrelang das Innenleben von Webbrowsern analysiert, hat über dieses Thema in dieser Zeit alle verfügbaren Veröffentlichungen gelesen und die Millionen Quellcodezeilen C++ von WebKit (die Basis von Safari) und Gecko (die Basis von Firefox) analysiert, aus denen diese Software letztlich besteht. Die Ergebnisse dieser Arbeit hat Sie im Artikel How Browsers Work: Behind the Scenes of Modern Web Browsers veröffentlicht.

Der Artikel ist im Gegensatz zu fast allem, was ich bisher über dieses Thema gelesen habe, äußerst verständlich geschrieben, sodass ihn auch Leser, die sich noch nie mit diesem Thema beschäftigt haben, ohne Probleme verstehen können. Ein besseres Verständnis sollte Programmierern helfen, Kodierungsprobleme, die zu Sicherheitsproblemen (Cross-Site Scripting Schwachstellen) führen können, künftig zu vermeiden.

August 23, 2011

Unbekannte Hackergruppe stiehlt 840.000 Kundendaten bei K&M – Elektronik

Filed under: Allgemein — sebastiankuebeck @ 14:54
Tags: , , , , , , ,

Die bisher unbekannte Hackergruppe oxxo berichtete Sonntag Mittag, dass sie 840.000 Kundendaten von der Homepage der K&M – Elektronik entwendet hätte. Offenbar wollen die Hacker diese Daten allerdings nicht veröffentlichen. Laut eigenen Angaben wollten die Hacker die betroffenen Unternehmen lediglich auf Schwachstellen in deren Webseiten aufmerksam machen, jedoch hätten die betroffenen Unternehmen entweder gar nicht reagiert oder mit rechtlichen Schritten gedroht. Also haben die Hacker beschlossen, jede Lücke zu veröffentlichen. Bei den Schwachstellen auf der Seite der K&M – Elektronik handelt es sich um eine SQL-Injection- und drei Cross-Site-Scripting-Schwachstellen.

Leider hört man in letzter Zeit immer öfter von frustrierten Leuten, die in guter Absicht Schwachstellen melden und dann ignoriert oder bedroht werden. Man sollte allerdings als Hacker nicht vergessen, dass die Leute, die sich in diesen Unternehmen mit solchen Meldungen befassen, in der Regel mit der Situation vollkommen überfordert sind. Es ist daher oft sinnvoller, diese Schwachstellen einem CERT in der nähe zu melden. Generell gilt jedoch, dass solche „Überprüfungen“ ohne Zustimmung des betroffenen Unternehmens illegal sind, auch dann, wenn man dem Unternehmen eigentlich helfen will.

Als betroffenes Unternehmen sollte man solche Meldungen auf jeden Fall ernst nehmen und dem Überbringer danken. Danach sollte man sich schleunigst an ein erfahrenes Sicherheitsunternehmen wenden und den Vorfall untersuchen lassen.
Man sollte dabei nicht vergessen, dass zahlreiche Hacker da draußen sind, die niemanden informieren sondern gleich großen Schaden anrichten. Den Einzelhändler TJX hat ein solcher Vorfall immerhin 256 Millionen Dollar gekostet.

Nächste Seite »

Bloggen auf WordPress.com.