21C3: Der unbekannte serielle Bus.

21C3: Unbekannter serieller Bus
1stein referierte über die unteren Protokollschichten des Unbekannten Seriellen Buses. „Jeder hat es, keiner weiss, wie es funktioniert“ 😉
Er gab einen sehr guten Überblick über die Low-Level Kommunikation auf dem USB. Zum Schluss erklärte er seinen Hackerport, der die Möglichkeiten der aussterbenden parallelen Schnittstelle (und noch viel mehr) über USB bereitstellt.

21C3: Gnome Anwendungsentwicklung

21C3: Sven Herzberg über Gnome Anwendungsentwicklung
In Gnome Anwendungsentwicklung ging es hauptsächlich um das objektorientierte C-Framework, auf dem GTK und Gnome basieren. Gnome began als reines C-Projekt, die Objektorientierung wurde nicht etwa mit dem Umstieg auf C++ eingeführt, sondern mit GObject und seinen Erben.

Ich sehe diese Technologie mit gemischten Gefühlen. Einerseits sind gute Ansätze dabei, es gibt endlich eine echte Typprüfung, die nicht mal C++ von Hause aus liefert. Andererseits sehe ich den entsprechenden Code und muss vor Schmerz aufstöhnen.

Es wird teilweise Code generiert, Makros werden exzessiv verwendet und die Strukturen kommen mir höllisch kompliziert und fehleranfällig vor.

Interessant war, dass alle Entities Namensstrings und mitunter einen kleinen Kommentar für die API-Doku bekommen können. Diese werden dann für Debugging oder Introspection genutzt, z.B. kann ein GUI-Builder daraus Nutzen ziehen.
Neben privaten Membern kann man noch Properties definieren und diese mit Lese- und Schreibrechten versehen.
Das GInterface klingt wie Java Interfaces und funktioniert auch in etwa so. Es gibt Prerequisits, damit kann man definieren, dass ein Interface nur von Klassen implementiert werden darf, die von Klasse XYZ abgeleitet wurden.

Mit gtkmm steht die C++ Version des Frameworks bereit, das sollte ich mir auf jeden Fall ansehen.

21C3: SUN Bloody Daft Solaris Mechanisms

21C3: SUN Bloody Daft Solaris Mechanisms
Archim hat in seinem Vortrag die Möglichkeiten vom Solaris-Debugger dtrace beleuchtet. Sehr interessant war, dass man damit belibige Funktionen und deren Parameter von Programmen im Userspace beschnüffeln kann. So auch die Signierfunktion von gpg: bösartige Roots oder Nutzern von Rootkits können damit elegant die Passphrasen der Nutzer abgreifen. Es ging außerdem um neuere Rootkit-Techniken und das Aufspüren solcher Angriffe.

21C3: Gentoo Hardened Toolchain

21C3: Gentoo Hardened

Pappy, gekleidet wie ein Consultant 😉 stellt Gentoo Hardened als neues Projekt vor.

Gentoo Hardened möchte es dem User so einfach wie möglich machen, ihn also nicht mit den technischen Details belästigen, sondern konkrete Dokumentation zur Verfügung zu stellen, wie er Gentoo Hardened auf den verschiedenen Plattformen zum Laufen bekommt. Wenn er mehr über den technischen Hintergrund erfahren möchte, kann er in der Dokumentation nachsehen oder auf den Chaos Congress gehen 🙂

Das Problem: Features wie Stack Smash Protection (SSP) kosten Performance, besonders auf der x86 Architektur – dort etwa drei bis fünf Prozent. Nicht auf AMD64, da dort das entsprechende Register schon existiert, RISC-Plattformen sind auch etwas besser drann.

In Gentoo Hardened ist jetzt ziemlich neu, dass der Stack Smash Handler in glibc untergebracht wurde. Aufgrund einer Race-Condition kamen die GH-Leute mit OpenBSD-Leuten ins Gespräch, diese bringen den Handlercode in der libc unter, was für GH die Lösung des Problems war.
Der Handler wandert an eine zentrale, wartbare Stelle, und lungert nicht mehr in jedem Executable herum. Änderungen daran wirken sich dementsprechend ohne neucompilieren der Applikationen sofort aus.

Neben SSP wird noch PIC (position independend code) und PIE (position independent executables) eingesetzt, was auf x86 nochmal bis zu 20 Prozent Performance kostet.

Ich denke Gentoo Hardened macht viel Sinn auf produktiven Servern an exponierter Stelle. Auf dem Desktop werde ich es sicherlich nicht testen, auf meinem Server läuft Debian.
Günstigerweise wurde das noch junge Debian Hardened Projekt von Gentoo-Hardened inspiriert, ein Grund es sich in den nächsten Monaten genauer anzusehen.

21C3: Passive Covert Channels in the Linux Kernel

Joanna Rutkowska: Passive covert channels
Gestiefelt und im ledernen Minirock war die polnische Sicherheitsexpertin Joanna Rutkowska wahrlich die meistfotografierte Vortragende. Diesen Titel hat sie sich aber wahrlich verdient, sie sieht sehr gut aus, trägt die komplexe Materie der Kernelprogrammierung locker und witzig vor und zieht mit ihrem Charme alle Zuschauer in ihren Bann 😉

Ich habe trotzdem versucht mich auf den Inhalt des Vortrages zu konzentrieren. Joanna hat eine Backdoor-Technologie entwickelt, die es ermöglicht, von einen angegriffenen Computer rein passiv Nachrichten abzusenden. Das könnten z.B. mitgesniffte Passwörter sein.
Rein passiv bedeutet, dass sie mit einem kernel-modul die Sequenznummern der ausgehenden Pakete manipuliert und diese als Datenträger mißbraucht. Wenn der User eine Webseite öffnet, sendet er gleichzeitig Daten an den Angreifer, der diesen Traffic natürlich noch mitsniffen muss, um an die Informationen in den Sequenznummern zu kommen.
Mit dieser Technik können 4 Bytes pro TCP/IP Connect übertragen werden, wobei 3 Bytes Nutzdaten sind und ein Byte als Control-Byte herhalten muss. Selbstverständlich werden die ausgehenden Daten verschlüsselt, damit die Sequenznummern dem Administrator immer noch zufällig vorkommen. Wenn man die Idee weiterdenkt, ist auch eine rein bidirektionale Übertragung mit dieser Technologie möglich.

21C3: Check the fucking fingerprints!

Check the fucking fingerprint!
In Seth Hardy’s Vortrag „Learning OpenPGP by example ging es um Angriffe auf PGP Schlüssel und die Infrastruktur des Web of Tust. Er zeigte, wie es möglich ist, doppelte Key IDs zu erzeugen und was man damit machen kann. Daher der Spruch „check the fucking fingerprints„: die Leute sollen nicht nur Key ID und e-Mail Adresse von Schlüsseln überprüfen – der Fingerprint ist die wichtigste (und aufwändigste) Prüfung.

21C3: Weird Programming 2

21C3 Weird Programming 2
Markus Schaber stellte ähnlich wie im letzten Jahr in Weird Programming 2 programmiertechnische Meisterwerke vor. Interessant war ein IOCCC-Beitrag der ein Betriebssystem, GUI und vi in gut 400 Zeilen C-Code unterbrachte. Je nachdem, welche makefile-Optionen man setzt, wird ein Teil des Systems erzeugt. Die Komponenten kann man dann zusammen packen und booten.

Es wurden Beispiele für meisterhaften Code gezeigt, die allesamt aus produktiven Sourcen stammten. Besonders hervorgetan hat sich OpenMDX, die Jungs haben verstanden, was es heisst objektorientiert zu programmieren 😉 Die Krönung war eine Funktion, die sich um Whitespace-Erzeugung für XML-Dateien kümmert:

private String spaces(int number) {
    char[] indent = {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',↵
    ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',↵
    ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',↵
    ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',↵
    ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '};
    return(new String(indent, 0, number));
}

Die Folien und weitere Links finden sich auf Schabis WP2 Page, da sollte der geneigte Programmierer unbedingt reinsehen. Als weitere Reisetipps wurden noch thedailywtf.com empfohlen. Schönes Zitat aus dem Vortrag: „Three lines of code and 30 minutes to recover from„.

Auf geht’s

Ich bin heute und morgen auf dem 21C3 anzutreffen und werde, sofern das WLAN denn mal funktioniert, von dort berichten. Spitzen Sie Augen und Ohren 😉

Knapp 48 Stunden

Nach nicht ganz zwei Tagen schlagen hier die ersten Spammer ein. Alle 20 Minuten an die 10 Spams. Je Spam-Kommentar eine e-Mail von WordPress. Neue e-Mails werden mit einem Piepsen von meinem Server signalisiert. So wie der Disconnect-Ton in McMail, falls das noch jemand kennt. Wer es nicht kennt: $ beep -f 800 -l 50 -n -f 400 -l 50 -n -f 200 -l 50. Außerdem gibt es eine SMS auf mein Horch-Otto. An Schlaf ist also nicht mehr zu denken.
„Knapp 48 Stunden“ weiterlesen

Mein Haus, mein Auto, mein Spielzeug

Abraxas by Jazz Kites Heute muss ich mit meinem Weihnachtsgeschenk angeben 🙂 Meine Dame hat mir einen Abraxas geschenkt, von dem ich ihr in letzter Zeit viel vorgeschwärmt habe.
Der Drachen ist sehr gut genäht, hat allerlei Annehmlichkeiten und Details, die sich der Konstrukteur bei anderen Drachen abgeschaut hat. Kein Wunder: Paul schreibt die Lenkdrachentests in der Kite & Friends, er hatte so ziemlich jeden namenhaften Drachen schon an den Leinen.
Wer immer noch nicht glaubt, dass der Drachen toll ist, sollte sich mal die Videos ansehen: Abraxas bei normalem Wind (DivX, 5 MB) und bei starkem Wind (DivX, 23 MB). Ich warte derweil auf besseres Flugwetter 🙂

Guten Tach

Das ist ein Weihnachtsgeschenk für mich selbst. Ein neues Blog. Sunlog 2.2 ist nun langsam wirklich ausgelutscht, verschiedene Alternativen wurden getestet und WordPress wurde für gut befunden. Die Entscheidung wurde nicht unbedingt aus technischer Sicht gefällt, vielmehr halte ich die Community für sehr aktiv, die Lizenz ist zu meiner Einstellung kompatibel und Matt macht in Interviews einen sehr sympatischen Eindruck.

Die Umstellung sollte jetzt abgeschlossen sein, alle alten Inhalte wurden mit meinem Script konvertiert, die Sunlog-URLs werden korrekt umgeleitet und der Feed validiert endlich. Ich bin gespannt, wie lange es dauert, bis die ersten Kommentarspammer hier einschlagen. Aber warten wir’s ab, ich schieße zurück 😉

Auf Drängen einer einzelnen Dame hin werde ich öfters mal ein Foto veröffentlichen, schliesslich sind seit Mai 4400 Bilder in meiner Kamera gelandet. Viel Spaß allen bekannten und unbekannten Lesern weiterhin 🙂

Hoppla, das ging ja schnell…

Und ganz ohne Stress. Heute früh aufgestanden, Telefon geht. Einen Testanruf später weiss ich, dass die Umstellung bereits erfolgt ist. Zum Rechner geschlurft, neue Zugangsdaten für den Router eingehackt und schon bin ich drinn. Lustig.
Kleiner Schönheitsfehler: die bestellte Hardware ist noch nicht abgesendet. Na was solls, der Rest ist aber reibungslos verlaufen.

morgen: zappenduster

Ich bin wiedermal offline, diesmal wegen Telefonanbieterwechsel. Ich hoffe dass ich keine grauen Haare davon bekomme und morgen abend wieder am Netz bin. Alle Subdomains unterhalb von mellenthin.de sind damit morgen (21.12.) ab 8.00 Uhr nicht erreichbar.

Offline: geht doch mal raus vor die Tür… ;-)

Es interessiert keine Sau, aber ich bin Freitag Nachmittag/Abend offline, weil ich am Rechner schrauben muss. Der CPU-Lüfter lebt nicht mehr lange und gibt komische Geräusche von sich, ausserdem wird die Systemplatte getauscht. Damit sind alle Domains unterhalb von mellenthin.de nicht erreichbar.