seeseekey.net - Invictus Deus Ex Machina

Rund um das Spiel Mine­craft hat sich mitt­ler­weile eine rie­sige Com­mu­nity gebil­det. Das schlägt sich auch in den Werk­zeu­gen und Anwen­dun­gen nie­der, wel­che in irgend­ei­ner Art mit Mine­craft ver­ban­delt sind. Eines die­ser Werk­zeuge ist der „Java­Script Reds­tone Simu­la­tor“ von Mordritch.

Der Reds­tone Simu­la­tor in Aktion

Dabei han­delt es sich um eine Webap­pli­ka­tion mit wel­cher kom­plexe Reds­to­ne­schalt­kreise simu­liert wer­den kön­nen. Reds­tone ist dabei in etwa das Pedant zur Elek­tro­nik in der rea­len Welt. Die ver­schie­de­nen Ele­mente kön­nen auf einem Ras­ter gesteckt wer­den und dann einer Simu­la­tion unter­zo­gen wer­den. Auch ein Export des Gan­zen ist mög­lich. Zu fin­den ist der Simu­la­tor unter http://mordritch.com/mc_rss/.

Über das Wochen­ende hatte ich einige GPS getagte Bil­der geschos­sen und wollte diese auf einer Karte dar­stel­len. Eine kurze Suche im Netz ergab, das so etwas in die­ser Form nicht exis­tierte (wobei hier natür­lich ein Irr­tum vor­lie­gen kann). Also wurde das ganze auf Basis von Leaf­let implementiert.

Die Webap­pli­ka­tion in Aktion

Leaf­let ist ein Frame­work mit wel­chem man schnell Kar­ten­ap­pli­ka­tio­nen im Web rea­li­sie­ren kann. Um den „Gps Tag­ged Image Viewer“ zu benut­zen, müs­sen die Dateien auf einem Web­ser­ver kopiert wer­den. Die Bil­der wer­den dabei in den Ord­ner „images“ kopiert. Anschlie­ßend wird das PHP Skript „parseimages.php“ aus dem „utils“ Ord­ner aus­ge­führt. Die­ses ließt die EXIF Daten aus den Bil­dern aus und erzeugt die ent­spre­chen­den Mar­ker in einer Java­script Datei. Danach kann das ganze genutzt werden.

Die Karte ist dabei mit drei Kar­ten­ebe­nen ver­se­hen, ein­mal Bing Luft­bil­der (für wel­che ein API-Key regis­triert wer­den muss), sowie Open­Street­Map in zwei unter­schied­li­chen Ren­de­rings. Der Quell­text ist unter GPLv3 ver­füg­bar und kann auf Git­Hub bezo­gen werden.

Stän­dig sind Rech­ner im Inter­net, irgend­wel­chen Angrif­fen aus­ge­setzt. Da man sich eine sol­che Aus­sage nur schwer vor­stel­len kann, gibt es seit eini­ger Zeit vom HoneyNet Pro­jekt eine ent­spre­chende Visua­li­sie­rung dazu.

Die Honey­Map in Aktion

Zu fin­den ist die Honey­Map dabei unter http://map.honeynet.org/ und zeigt die ent­spre­chen­den Angriffe auf die Honey Pots des Pro­jek­tes. Die Aus­wer­tung erfolgt dabei in Echt­zeit. In der FAQ wird auch die Frage geklärt warum Aachen so oft ange­grif­fen wird:

What is going on in Aachen?!
Most of the time, you will see attacks tar­ge­ted against Aachen. This is because our honey­pot at RWTH Aachen Uni­ver­sity is very active and cap­tures attacks against hund­reds of tar­get IP addres­ses. This does not mean that Aachen is atta­cked more often than the rest of the world!

Der Quell­text der Web­an­wen­dung steht dabei unter der LPGL und kann unter https://github.com/fw42/honeymap bezo­gen werden.

Wei­tere Infor­ma­tio­nen gibt es unter:
http://www.honeynet.org/

Wenn man die Far­ben sei­ner Web­seite auf Kon­straste und ähn­li­ches prü­fen möchte, so kann man dies natür­lich per Hand bewerk­stel­li­gen. Aber wie so oft gibt es auch hier Dienste, wel­chen einem das Leben ver­ein­fa­chen. In die­sem Fall wäre das der Dienst „Check My Colours“ wel­cher unter http://www.checkmycolours.com/ zu fin­den ist.

Check My Colours beim tes­ten von seeseeekey.net

Nach­dem die URL ein­ge­ge­ben wurde, bekommt man eine Aus­wer­tung ange­zeigt und kann diese dann inter­pre­tie­ren. Inter­es­sant wird der Dienst im übri­gen bei den Adres­sen „http://example.com“ und „http://example.org“. Dort scheint er sich zu ver­schlu­cken und beför­dert sein Lay­out in den Orkus.

Open­Street­Map goes art“ — so könnte man den Dienst „Open­Street­Pos­ters“ bezeich­nen. Die Benut­zung ist dabei ganz ein­fach. Stadt­na­men ein­ge­ben und schon wird das Pos­ter als PNG und PDF generiert.

Open­Street­Pos­ters in Aktion

Wie der Name schon andeu­tet, wird das ganze aus Open­Street­Map Daten erzeugt. Zu fin­den ist Open­Street­Pos­ters unter http://labs.polzunov.com/openstreetposters/.

Schnell mal ein Dia­gramm in eine Mail zu packen geht dank Anhän­gen, rela­tiv pro­blem­los. Aber es geht auch ele­gan­ter. So könnte man zum Bei­spiel die Webap­pli­ka­tion „Asciif­low“ benut­zen. Mit die­ser Webap­pli­ka­tion ist es ohne Pro­bleme mög­lich Fluss­dia­gramme zu erstellen

Asciif­low in Aktion

Die ein­ste­hen­den Dia­gramme kön­nen dabei sowohl impor­tiert als auch expor­tiert wer­den. Dane­ben gibt es einige Werk­zeug, sowie eine Unde und Redo Funk­tio­na­li­tät. Zu fin­den ist Asciif­low dabei unter http://www.asciiflow.com/ zu finden.

Es scheint Webap­pli­ka­tio­nen für so ziem­lich jedes denk­bare wie undenk­bare Pro­blem zu geben. Eine der inter­es­san­te­ren Appli­ka­tio­nen ist sicher­lich „Field Papers“ wel­cher unter http://fieldpapers.org zu fin­den ist.

Ein Atlas wird erstellt

Der Dienst ist dafür gedacht, für bestimmte Gebiete Kar­ten aus­zu­dru­cken, wel­che wahl­weise mit einem Notiz­be­reich aus­ge­stat­tet sind. Die­sen kann man dann dazu nut­zen um z.B. beim Map­ping für Open­Street­Map neue Infor­ma­tio­nen anzu­tra­gen. Neben dem Open Street Map Mate­rial benutzt der Dienst auch die Bing Luft– und Satel­li­ten­bil­der, wel­che in unter­schied­lichs­ter Weise für die zu ent­ste­hende Karte kom­bi­niert wer­den können.

Wie Heise berich­tet, ist die aktu­elle Ver­sion von Piwik (1.9.2) mit einer Back­door ver­se­hen. Augen­schein­lich fand die Infek­tion ges­tern, nach 15:18 Uhr statt, Updates wel­che vor­her ein­ge­spielt wur­den, soll­ten nicht betrof­fen sein.

Erken­nen kann man eine infi­zierte Ver­sion an der Zeichenkette:

eval(gzuncompress(base64_decode

Sollte diese Zeile in der Piwik Instal­la­tion auf­tau­chen so sollte man fol­gende Schritte durchführen:

  • die Datei „piwik/core/DataTable/Filter/Megre.php“ löschen
  • aus der Datei „piwik/core/Loader.php“ die letz­ten sechs Zei­len löschen (begin­nend mit „<?php Error_Reporting(0)“)
  • die Piwik Instal­la­tion nach Dateien durch­su­chen, wel­che nicht zu Piwik gehö­ren und diese entfernen

Alter­na­tiv kann man das ganze neu instal­lie­ren, mit der ent­spre­chen­den Git­hub Ver­sion wel­che unter https://github.com/piwik/piwik/archive/1.9.2.zip zu fin­den ist.

Update:
Mitt­ler­weile gibt es bei Piwik einen Sicher­heits­be­richt in wel­chem unter ande­rem steht das die Ver­sio­nen von 16:43 Uhr bis Mit­ter­nacht kom­pro­mit­tiert sind.

Update (2):
Die im Sicher­heits­be­richt emp­foh­lene Säu­be­rung sieht so aus:

  • piwik/config/config.ini.php“ sichern
  • piwik/“ Ver­zeich­nis löschen
  • neuste Piwi­kver­sion herunterladen
  • auf den Ser­ver hochladen
  • config.ini.php“ wie­der in den Ord­ner „piwik/config/“ packen

Danach ist die Piwik Instal­la­tion wie­der sauber.

Wei­tere Infor­ma­tio­nen gibt es unter:
http://forum.piwik.org/read.php?2,97666
http://www.golem.de/news/webanalyse-backdoor-in-piwik-1211–95956.html

Bei einer mul­ti­lin­gua­len Webap­pli­ka­tion wel­che in PHP geschrie­ben ist, kann man natür­lich zur Über­set­zung mit asso­zia­ti­ven Arrays arbei­ten und dann je nach Spra­che die rich­tige PHP Datei einbinden.

$lang['welcome'] = 'Willkommen auf dieser Webseite.';
$lang['maintenance'] = 'Die Webseite befindet sich in der Wartung.';

Das Pro­blem an die­ser Vari­ante ist, das sie nicht wirk­lich gut zu pfle­gen ist. Schö­ner ist es das ganze mit get­text zu über­set­zen, da man hier nur die po Dateien über­set­zen muss, und man das nicht im Quell­text tun muss.

Das Pro­blem an die­ser Vari­ante ist aller­dings, das nicht auf jeden Web­ser­ver get­text vor­han­den ist. Hier hilft das Paket php-gettext wel­ches unter https://launchpad.net/php-gettext/ zu fin­den ist. Mit Hilfe die­ses Pake­tes, kann man get­text nut­zen ohne sich darum küm­mern zu müs­sen ob es instal­liert ist. php-gettext wrappt das ganze und emu­liert nicht vor­han­dene Funktionen.

Das ganze zu benut­zen ist auch rela­tiv einfach:

 //gettext initialisieren
 $locale = "de_DE"; //Sprache definieren
 $domain = 'default'; //Domäne definieren
 $encoding = 'UTF-8'; //Zeichenkodierung definieren

 //include gettext
 require_once('./ext/php-gettext/gettext.inc');

 //Sprache setzen
 T_setlocale(LC_MESSAGES, $locale);

 //Pfad zu den Übersetzungen definieren
 T_bindtextdomain($domain, './locale/');

 //Zeichenkodierung setzen
 T_bind_textdomain_codeset($domain, $encoding);

 //Domäne setzen
 T_textdomain($domain);

Nach­dem dies getan ist, kann damit begon­nen wer­den die Texte in der Anwen­dung zu über­set­zen. Dabei wird aus einem:

echo 'Willkommen auf dieser Webseite.';

ein:

echo T_('Willkommen auf dieser Webseite.');

T_ ist dabei der Name der Über­set­zungs­funk­tion wel­che von php-gettext bereit­ge­stellt wür­den. Unter rei­nem get­text würde diese Funk­tion nur _ hei­ßen. Nach­dem man sei­nen Quell­text mit den ent­spre­chen­den Funk­tio­nen bestückt hat muss man diese Strings aus den PHP Dateien extra­hie­ren. Da man das nicht von Hand machen möchte nut­zen wir dazu fol­gen­des klei­nes Skript:

 #!/bin/sh

 #Schreibe alle PHP Dateien in eine Textdatei
(find ./data -name "*.php" && find ./system -name "*.php") > update-translations.txt

 #Rufe xgettext auf um die pot Datei zu erzeugen
 xgettext -f update-translations.txt -kT_ngettext:1,2 -kT_ --language=PHP -o update-translations.pot

Mit die­ser pot Datei kann mit­tels PoEdit (http://www.poedit.net/) eine po Datei erzeugt wer­den. Diese po Dateien kön­nen auch wie­der mit­tels der pot Datei aktua­li­siert wer­den, falls spä­ter neue Strings dazu kom­men oder ver­schwin­den. Beim spei­chern gene­riert PoEdit aus der po Datei eine mo Datei, bei wel­cher es sich um die binäre Rep­re­sen­ta­tion der po Datei han­delt. Diese mo Datei wird von get­text letzt­end­lich zur Über­set­zung genutzt.

Wei­tere Infor­ma­tio­nen gibt es unter:
http://phpmagazin.de/itr/online_artikel/psecom,id,874,nodeid,62,_language,de.html
http://blog.medianetix.de/2008/12/ubersetzung-von-quelltexten-mit-gettext-und-poedit/