Table of contents
Negative Temperaturen sind heiss!
Abgefahrener "Vortrag" über negative Temperaturen von Sixty Symbols:
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):- - [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
-
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.
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!
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.
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 - 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 - Honeypot that can bite:
Update 2013-03-17:
Am Morgen vor der Heimreise sind wir noch ein bischen unterwegs gewesen.Update 2013-03-15:
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.cu, Amsterdam!
↷ 15.03.2013 🠶 #draussengewesen ⤒
Blackhat Conference EU-13 - Tag I
Die Keynote von Falkvinge (Gründer der schwedischen Piraten) "Shelters or Windmills" war hervorragend und die bisherigen Vorträge ebenfalls (Link von einer anderen Konferenz, ist aber der gleiche Vortrag). Sehr geil. Mehr später. Vorab ein paar Bilder.
2013-03-14 - Keynote Falkringe:
Update 2013-03-14:
Der Tag ist zu Ende gegangen, und was für einer. Am besten hat mir heute - von Falkvinges Keynote abgesehen - "Hacking Appliances: Ironic Exploitation of Security Produkts" von Ben Williams gefallen. Eloquent, mit feinem englischem Humor und einer gehörigen Portion Hackerismus. Fand ich super klasse. Auch der Vortrag von Tobias Jeske "Floating Car Data From Smartphones" von der TU Hamburg war super. Von einem Aha-Erlebnis zum nächsten. Eher enttäuscht war ich von "A Perfect CRIME Only Time Will Tell" von Tal Be'ery und Amichai Shulman. Das Thema - Timing Attacken auf verschlüsselten Traffic via Javascript - klang vielversprechend. Aber leider war das Englisch des Vortragenden (war auch nur einer) ziemlich schlecht, man hat ihn kaum verstanden, mit unzähligen Stotterern und Äh's. Zugegeben, ich bin mir sicher, ich würde es nicht besser hinkriegen. Insoefern Hut ab vor dem Mut sich das zu geben. Nur gebracht hat mir das nichts. Ist aber auch nicht so schlimm. Insgesamt hat sich der Tag mehr als gelohnt.