NaturalNik Broadcast

Nik's Outdoor- und Technik-Blog
Subscribe

Artikel der Kategorie ‘Software-Entwicklung’

SinkIt! – Zwei Geeks machen Jagd auf Schiffe

Juli 28, 2011 Von: Nik Kategorie: Software-Entwicklung 2 Kommentare →

Es ist Sonntag Abend und im Prinzip gibt es in Waldheim gerade nichts wirklich sinnvolles zu tun. Dominic und ich haben den Tag im Wesentlichen damit verbracht, ein iPad-Spiel nach dem anderen auszuprobieren. Zwischendurch ließ ich mir auch noch den Wachbergturm zeigen, von dem aus man einen guten Blick über den ganzen Ort hat (Spendenmöglichkeit zum Erhalt des Turmes).

Doch Dominic wurde das Ganze dann irgendwann zu langweilig und er äußerte die Idee, doch mal ein kleines Spiel zu programmieren. Wegen der begrenzten Zeit und der weisen Voraussicht, dass ein größeres Projekt in zwei Tagen schwer zu koordinieren sein würde, schlug ich ein Experiment vor: Wir einigten uns auf ein einfaches, bekanntes Spiel (Schiffe versenken) und entwarfen ein – ebenfalls einfaches – Netzwerkprotokoll. Danach machten wir uns jeder für sich an die Entwicklung eines Clients für dieses Spiel. Am Ende sollten beide gegeneinander spielen können.

Überraschenderweise ging die Idee schon im ersten Testlauf auf: Wir haben es tatsächlich geschafft, auf Anhieb zwei kompatible Clients aufgrund einer vorherigen Vereinbarung zu implementieren. Und hier ist das Ergebnis!

(weiterlesen …)

Zentralisierte Abuse Complaints

März 28, 2011 Von: Nik Kategorie: Bashinators, Internet, Linux, Sicherheit, Software-Entwicklung 2 Kommentare →

In den letzten 2,5 Tagen haben Felix und ich uns mal eine kleine “Cyber-Crime-Beobachtungs-Zentrale” zusammengenagelt. Das entstand daraus, dass nach einer Unachtsamkeit eines Kollegen ein paar brasilianische Botnet-Kiddies den Leibniz-Webserver übernommen hatten. Aber darum geht es ja jetzt nicht ;)

Da wir generell auf allen usneren Servern Fail2Ban betreiben, einen Log-Monitoring-Daemon, der auf Auffälligkeiten wie wiederholte fehlgeschlagene Logins und Ähnliches prüft und entsprechend reagiert. Eine Reaktion ist das bannen der angreifenden Adresse mittels iptables, eine weitere Aktion ist das Versenden eines detaillierten Reports per E-Mail.

Unsere erste Idee war nun, diese Reports zu aggregieren udn an ein zentrales Postfach zuzustellen. Erst einmal nur, um da zwischendurch mal einen kleinen Überblick zu bekommen, wie sich die Angriffe so verteilen. Portscans, SSH-Brute-Force-Angriffe und Ähnliches gehören ja zum “normalen” Grundrauschen im Internet, und da kommt täglich schon so einiges zusammen.

Als wir die Reports dann aggregiert hatten, kam die Idee auf, daraus doch gleich automatisch Abuse Complaints zu generieren und an die Provider der Angreifer zu senden. Da Fail2Ban zwar standardisiert, aber nciht wirklich maschinenlesbar mailt, ist dafür einiges an ekliger Parserei notwendig. Aber es funktioniert.

Und was soll ich sagen? Ich zitiere einfach mal Felix …

aber eins muss ich dir lassen das ist extrem geil was du da gebaut hast

Jo, danke ;) . Was daraus geworden ist, findet ihr jetzt unter dem Namen Bashinators Abuse Central.

Ach ja, übrigens … die Skripts sind eklig. Die Website ist … also, hat ihren eigenen Charm. Und das ist ein Spaßprojekt ;) . Ach ja, und SSI rockt.

PyTap – TUN/TAP mit Python

September 05, 2010 Von: Nik Kategorie: Linux, Netzwerk & Server, Software-Entwicklung 2 Kommentare →

Soeben habe ich die Arbeit an der ersten Version meines ersten produktiven Python-Moduls fertiggestellt. Seit Felix mich mit dem Python-Virus infiziert hat, werde ich immer größerer Fan dieser Sprache, und so war ich heute Nachmittag stolz wie Oskar, als mein Modul im ersten Testlauf bereits einwandfrei funktionierte.

Das Modul erlaubt es, das TUN/TAP-Device des Linux-Kernels als Objekt in Python zu verwenden. Dazu operiert es direkt per Filehandle auf das Kontrolldevice in /dev/net/tun und stellt Methoden zum Lesen und Schreiben auf das Interface bereit. Außerdem kann es einfache ifconfig-Kommandos für das Tun- bzw. TAP-Device ausführen, so dass das Interface sogar aus dem Script heraus konfiguriert werden kann.

Hier ein kleines Beispiel, das die aus dem Device ausgehenden Pakete bzw. Frams ausgibt (unspektakulär, aber es zeigt die einfache Verwendung des Moduls):

from pytap import TapDevice

dev = TapDevice()
dev.ifconfig(address = "10.0.0.1",
             netmask = "255.255.255.0"
            )

while 1:
    data = dev.read()
    print data

Hier ein paar Links:

Das Modul ist die Voraussetzung eines größeren Projektes, von dem ich demnächst berichten werde.

26. Chaos Communication Congress – Here Be Dragons

Dezember 31, 2009 Von: Nik Kategorie: Bashinators, Linux, Messen, Sicherheit, Software-Entwicklung Noch keine Kommentare →

Vom 27. bis 30. Dezember fand im Berliner Congress Center der 26. Chaos Communication Congress statt. Felix und ich waren dabei und haben uns vier Tage lang über Neues und Altes an der IT-Security-Front informiert. Natürlich muss ich, meinem Ruf entsprechend, auch meinen Blog im Nachhinein damit beleben :) .

Zunächst als Zusammenfassung: Felix und ich hatten ein paar sehr lustige Tage in Berlin mit interessanten Vorträgen, spaßigen Aktionen und einigem mehr. Dafür vielen Dank an die Organisatoren, das EastSeven Hostel und natürlich Felix!

(weiterlesen …)

Bashinators: Analoge Uhr

Juli 05, 2009 Von: Nik Kategorie: Bashinators, Linux, Software-Entwicklung Noch keine Kommentare →

Felix und mir war irgendwie langweilig, da haben wir mal angefangen, eine analoge Uhr als Bash-Script zu schreiben :D . Leider hängt das Ding noch von bc und ncurses ab, aber das werden wir bestimmt noch eliminieren. Und eine ständige Uhrzeitanzeige bekommen wir auch noch hin :) .

Bildschirmfoto-3

(weiterlesen …)