[Munich-lisp] Haskell Hackathon Sonntag 13.07.2014

Hi *, am Sonntag, 13. Juli 2014 treffen wir uns um 16.00 in der Pizzeria Vapiano für unser Hackathon. Bringt eure Laptops! Themen: - Haskell Security: ist securemem einfach zu benutzen? Kann man damit ein Password bearbeiten, sodass es im Speicher nicht zurückbleibt? https://hackage.haskell.org/package/securemem oder - Applicative Transformers und Applicative Stacks oder - Attoparsec! -- BERICHT -- Bericht vom 26.06.2014: - wir haben uns das Speicherlayout vom GHC generierten Binärdateien angeschaut - mit /proc/[pid]/maps kann man das Layout anschauen - darauf kann man nicht so einfach mit dd usw zugreifen, man kann aber sehr gut mit gdb sachen rausspeichern. - auf gdb basierend haben wir ein Tool gebaut welches das Arbeitsspeicher in eine Datei abspeichern kann - wir haben auch ein weiteres Tool gebaut welches für Strings im Arbeitsspeicher sucht, mit voller grep funktionalität. Es zeigt dann das Arbeitsspeicherbereich in welchen sich die Zeichenkette befindet. - es hat sich herausgestellt dass unser ganz einfaches Programm, welches Tastatureingabe und dann ausgabe macht, und dann GC auslöst, am ende immer noch die Zeichenkette im Arbeitsspeicher enthält! - Das bedeutet, dass alle Passwörter, Schlüssel und Tokens im schlimmsten Fall von einen Angreifer eingeholt werden können! - das String ist auch nicht auf dem Heap gefunden worden - anscheinend ist es in einen unbenannten Speicherbereich abgespeichert, welches kurz nach dem Heap anfängt. - eine Idee ist gegeben worden, das mit pinned memory zu überbrücken. So kann man vielleicht den Arbeitsspeicherbereich ausdrücklich überschreiben. - die Frage ist aber ob die Tastatureingabe im Puffer ist, und wie mann das wieder ausschaltet. - Später hat es sich noch zusätzlich herausgestellt, dass der String, den wir finden, manchmal inkomplett ist - z.b. haben wir "asdfffffffffffffffffffffffffffffffff" eingegeben, das "a" hat aber im Arbeitsspeicher gefehlt. Es war anscheinend irgendwo separat gespeichert. -- ANFAHRT -- Wir treffen uns in Vapiano Pasing, am Pasinger Bahnhofsplatz. Anfahrt: Entweder S-Bahn nach Pasing nehmen (alle außer S1, S2 und S7) oder die Straßenbahn 19 zum Pasing Bahnhof. Vapiano ist auf der linken Seite wenn man von der Straßenbahnhaltestelle zum Burger King hinschaut und ist leicht zu finden.
participants (1)
-
Haskell Hackathon