Negative Temperaturen sind heiss!

Abgefahrener "Vortrag" über negative Temperaturen von Sixty Symbols:

20 March 2013 | #science

 

Rechen-Captcha bei Kommentarfunktion

Ich habe heute in meinem Kommentarformular eine Captchafunktion eingebaut, weil immer mehr SPAM aufgeschlagen ist. Man muss eine simple Rechenaufgabe lösen, damit der Kommentar angenommen wird. Kommentare sind bei mir zwar immer moderiert, deswegen nerven mich die täglichen Notifications über Kommentarspam trotzdem.

Das sollte daher nun vorbei sein.

Viagra, my ass!

Update 2013-03-22:

Bleibt spannend. Sind natürlich immer noch SPAMer unterwegs, die nun auch nicht mehr durchkommen. Aber nun kriegen die alle einen HTTP 500 Error (d.h. Django stirbt da weg): </p>

- - [22/Mar/2013:04:51:39 +0100] "GET /blog/2011/04/24/2/neu-gemessen/ HTTP/1.1" 18957 200 "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5" "-" - - [22/Mar/2013:04:51:40 +0100] "POST /blog/2011/04/24/2/neu-gemessen/addcomment/ HTTP/1.1" 4719 500 "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5" "/blog/2011/04/24/2/neu-gemessen/"

Und das, obwohl meine ganze Maschinerie mit Exceptions funktioniert, die sollte dann eigenltich auch einen Django-Tod abfangen. Ich hab jetzt mal Error-Mailing aktiviert. Dann krieg ich nen Stacktrace und Environment gemailt, wenn das passiert. Ich bin ja gespannt wie Hulle, was die da eigentlich genau machen.

Update 2013-03-21:

So. Nachdem meine erste - primitive Variante - nicht ausreichend war, habe ich jetzt aufgerüstet. Ich bin den ausgezeichneten Ratschlägen von Web ohne Barrieren gefolgt und bin jetzt - denke ich - happy mit der Lösung.

Im Einzelnen habe ich jetzt eine dreistufige Verteidigungslinie gegen SPAMer:

  • Stufe 1: Ein Timing Cookie

    Das funktioniert wie folgt: wenn man ein einzelnes Blogposting aufruft, bekommt man einen Cookie mitgeliefert. Der Cookie beinhaltet den Timestamp des Zeitpunkts wo die URL aufgerufen wurde und eine Signatur aus Timestamp und einem Salt per SHA256.
    Wenn das Kommentarformular gepostet wird, prüft Django eine Reihe von Dingen:

    • Der Cookie muss grundsätzlich vorhanden sein
    • Der Cookie muss den Timestamp UND die Signatur beinhalten
    • Die Signatur muss richtig sein!
    • Der Timestamp darf nicht jünger als 10 Sekunden sein
    Wenn einer dieser Punkte nicht zutrifft, wird die Session throttled. Das bedeutet, dass im Django an der Stelle ein Delay eingebaut ist, der den SPAMer aufhält.

  • Stufe 2: ein Honeypot Formularfeld

    Im wesentlichen handelt es sich einfach um ein weiteres Formularfeld des Kommentarformulars. Dieses ist aber im normalen Browser nicht sichtbar. Dadurch wird es von einem Besucher auch nicht ausgefüllt und in dem Fall ist alles gut.
    Wenn aber ein Bot dieses Feld ausfüllt, dann passieren zweierlei Dinge: zum einen kommt wieder das oben erwähnte Throttling zum Einsatz. Und zum anderen - sollte der SPAMer so geduldig sein - gibt es eine Fehlermeldung, das Formular sei falsch ausgefüllt (freilich ohne Hinweis, dass das Feld LEER sein muss, damit Django happy ist!).

  • Stufe 3: Logikfragen als Captcha

    Das hatte ich im Prinzip auch schon vorher. Nur da waren es noch einfache Rechenaufgaben. Jetzt sind es logische Fragen, die sich durch blindes maschinelles Übersetzen nicht so ohne weiteres beantworten lassen. Einfach mal hier unter diesem Posting die Frage anschauen, dann versteht man, was ich meine. Gerne öfter Reloaden - es gibt einen Pool an Fragen.

In der Summe ist es ziemlich unwahrscheinlich, dass es ein SPAMer nun durch meine Verteidigungslinien schafft, während es für echte Menschen weiter so einfach ist, wie nur irgend möglich. Der einzige Nachteil ist, dass die Fragen derzeit nur auf deutsch vorliegen. Eventuell erweitere ich das noch auf englisch. Dazu müsste ich aber ohnehin eine englische Version der Seite anbieten, was ich sowieso schon länger vorhabe.

Update 2013-03-21:

Tja, scheint nicht wirklich zu helfen:

- - [21/Mar/2013:07:21:24 +0100] "GET /blog/2012/08/06/85/her-name-2/ HTTP/1.0" 21352 200 "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0" "/blog/2012/08/06/85/her-name-2/" - - [21/Mar/2013:07:21:26 +0100] "POST /blog/2012/08/06/85/her-name-2/addcomment/ HTTP/1.0" 17760 200 "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0" "/blog/2012/08/06/85/her-name-2/"

War Kommentarspam. Na wunderbar. Ich frage mich, wie der das in 2 Sekunden hingekriegt hat!

19 March 2013 | #source

 

Dehner in Dietzenbach

Es ergibt sich, dass ich mich momentan fernab der sonst üblichen ländlichen Gefilde aufhalte und mir dachte: nutz das mal aus und geh in den Dehner und schau mal, ob Du dort ein paar schöne Wurzeln fürs neue Aquarium abgreifen kannst.

Ich also durch Wind und Wetter 15 Minuten von der S-Bahn-Station zum Dehner gelatscht. Und was finde ich dort vor? Nur Mist! Die paar Wurzeln, die es dort überhaupt gab, sind der Rede nicht wert. Da hab ich in meinem Komposthaufen bessere.

Hab ich mich vielleicht geärgert.

Und Bartagamen haben die da. Natürlich nicht artgerecht gehalten. Eine beschissene Sparlampe und einen Heizstrahler drin und das wars. Doppelt ärgerlich.

2013-03-18 - :

2013-03-18 - :

18 March 2013 | #unfassbar

 

Blackhat Conference EU-13 - Tag II

Alles hat ein Ende, auch die Blackhat. Vieles war super geil, aber wo Licht ist, ist auch Schatten. Heute waren wir in folgenden Tracks:

  • Honeypot That Can Bite: Reverse Penetration, Alexej Sintsow. Er hat da einen Honeypot aufgebaut, der - nachdem ein Angreifer da erfolgreich eingebrochen ist, demjenigen ein Java-Aplet unterjubelt, mit dem er den dann ausspionieren kann. Richtig heftig. Gut vorgetragen und demonstriert. Klasse. Einzig sein Kommentar zum Einbrechen auf den PC des Angreifers ist für deutsche Verhältnisse, nun ja, etwas :) "wir rufen nur technische Daten wie IP Adresse, Logindaten usw ab, keine persönlichen Daten" LOL
  • Who's Really Attacking Your ICS Devices?, Kyle Wilhoit. Da ging es darum, zu untersuchen, wo die Angreifer von Scadasystemen so herkommen und wie die vorgehen. Vorher hat er noch erklärt, wie es bei diesen Systemen um die Sicherheit bestellt ist (ein Desaster). Und er hat einen Honeypot hochgezogen, in dem er ein Wasserwerk mit ICS-Anbindung ins Internet simuliert. Wirklich teuflich :) Kyle hat alles gut rübergebracht, es war ihm aber der Profi anzumerken (kommt von Trend Micro). Und wirklich vorgeführt hat er auch nichts, leider, auch kein Video oder sowas. Aber erkenntnisreich allemal.
  • Using D-Space To Open Doors, Brad Antoniewicz. Das war der beste Vortrag der Konferenz, fand ich. Mega coole Sache. Brad hat die Sicherheit von Zugangssystemen zu Unternehmen mit RFID-Cards untersucht. Das Ergebnis: es gibt keine. Und er hat das ganze Zeug vom Cardreader, Clonen con Karten, Guessing neuer Cardnumbers bis zum Übernehmen/Hacken des Controllers. The hard stuff, sozusagen. Ich war völlig begeistert. Humor vom feinsten, locker rübergebracht, man hat alles verstanden und er hat vor allem eins gezeigt: die Sache muss vor allem auch noch Spass machen.
  • Multiplayer Games Online Security, Donato Ferrante, Luigi Auriemma. Da sind wir eigentlich nur rein, weil die anderen Tracks zu der Zeit nix waren. War jedenfalls mal was anderes und echt witzig. Die beiden Italiener haben Exploits für Steam und Origin entwickelt und vorgeführt. Herrlich. Und richtig advanced, weil das ist ja nun nicht soooo einfach, in solche proprietären Systeme wie Gameserver und Clients mit ihren komischen Protokollen (TCP via UDP!) einzudringen. Daher: Hut ab, meine Herren.
  • Hybrid Defense: How To Protect From Polymorphic 0-Days, Svetlana Gaiworonski, Dennis Gamayunow. Dieser Track hat den Abschluss gemacht und mir echt die Laune verdorben. Das Thema klang vielversprechend und spannend. Die beiden Speaker waren aber wirklich theoretische Wissenschaftler, man hat das klar gemerkt. Es ging um Algorithmen und Analyse von Shellcode im Netzverkehr. Unterlegt mit vielen Dutzend Flowcharts, Pfeilen und Tabellen. Kein Code, kein Video, keine Demo, nichts. Völlig öde und trocken. Worum es ging, weiss ich aber auch nur ungefähr von den Folien. Was die da gesprochen haben, hab ich nicht verstanden. Das war ein einziges Gestammel und Genuschel, oft haben essentielle Vokabeln gefehlt, es gab zu viele und zu lange Denkpausen, so dass man dem Vortrag überhaupt nicht folgen konnte. Ich hatte das ja gestern schon bei dem anderen Russen angemerkt: es ist auf jeden Fall respekteinflössend, sich vor ein internationales Publikum zu stellen und da seine Forschung vorzustellen. Insofern trotzdem Hut ab, dass die beiden sich das getraut haben. Andererseits sollte man einigermaßen flüssig englisch sprechen können, insbesondere bei so einem komplexen und theorielastigen Thema. Das war (aus meiner Sicht jedenfalls) Zeitverschwendung.

Wie dem aber auch sei - insgesamt eine coole Sache, mal auf der Blackhat gewesen zu sein. Und das auch noch in Amsterdam. Mein lieber Scholli :)

2013-03-17 - Gracht mit Hausbooten:

2013-03-17 - Ziehbrücke anno 18irgendwas:

2013-03-17 - Panorama der Innenstadt:

2013-03-15 - Cooler Baum:

2013-03-15 - Wintergarten:

2013-03-15 - Brad hat die Folie geändert, weil er das falsche Netzteil dabei hatte (US-100-V):

2013-03-15 - Open Doors HID Hardware:

2013-03-15 - Scada Honeypot:

2013-03-15 - Honeypot that can bite:

Update 2013-03-17:

Am Morgen vor der Heimreise sind wir noch ein bischen unterwegs gewesen.<p>Update 2013-03-15:</p>Zum Abschied war ich nochmal oben auf der Brüstung des Wintergartens hier im Innern des Hotels. Den fand ich super schön. Man kann sich richtig vorstellen, wie der aussieht, wenn der voller Palmen, exotischer Vögel und Springbrunnen ist (wie es früher wohl mal war). Und auf der Brüstung steht auch ein Baum in einem Kübel, den findet der Terrarianer in mir einfach herrlich.</p>

cu, Amsterdam!

15 March 2013 | #draussengewesen

 

Blackhat Conference EU-13

Bin heute in Amsterdam eingetroffen zur Blackhat Conference EU 2013.

Zum Glück hat der Chef es genehmigt, dass wir gleich direkt im Hotel Krasnopolsik logieren dürfen, was auch der Konferenzort ist. Ausgezeichnet. Vorhin waren wir im Steakhouse, von denen es in der Strasse, in der wir waren tatsächlich 7 Stück (!) gibt.

Anbei ein paar erste Eindrücke...

2013-03-14 - Um die Ecke kann man Samen kaufen :):

2013-03-14 - Im Kühlschrank befindet sich auch eine Fahrradklingel!:

2013-03-14 - Für 290,- die Nacht kriegt man eine saubere Hotelbar...:

2013-03-14 - Hotel Krasnopolski:

2013-03-14 - Amsterdam Central, der Hauptbahnhof:

14 March 2013 | #draussengewesen