Google Fail

Jede Seite wird zurzeit von Google als Malware erkannt. Habe es auch von den USA aus(ivacy) getestet, das selbe Ergebnis. Updates soon ;)

Update: Es geht wieder, dauerte ca. 40minuten nach meiner Einschätzung.
Update: Weitere Links eingefügt.

  • http://digg.com/tech_news/Someone_is_about_to_get_fired_at_Google
  • http://www.lookpic.com/files/googowned.png
  • http://www.heise.de/newsticker/Google-warnt-bei-allen-Suchtreffern-vor-Malware–/meldung/126681
  • http://blog.stopbadware.org/2009/01/31/google-glitch-causes-confusion:

    “This morning, an apparent glitch at Google caused nearly every [update 11:44 am] search listing to carry the “Warning! This site may harm your computer” message. Users who attempted to click through the results saw the “interstitial” warning page that mentions the possibility of badware and refers people to StopBadware.org for more information. This led to a denial of service of our website, as millions of Google users attempted to visit our site for more information. We are working now to bring the site back up. We are also awaiting word from Google about what happened to cause the false warnings.”

  • Offizielle Erklärung: http://googleblog.blogspot.com/2009/01/this-site-may-harm-your-computer-on.html:

    “What happened? Very simply, human error. Google flags search results with the message “This site may harm your computer” if the site is known to install malicious software in the background or otherwise surreptitiously. We do this to protect our users against visiting sites that could harm their computers. We maintain a list of such sites through both manual and automated methods. We work with a non-profit called StopBadware.org to come up with criteria for maintaining this list, and to provide simple processes for webmasters to remove their site from the list.

    We periodically update that list and released one such update to the site this morning. Unfortunately (and here’s the human error), the URL of ‘/’ was mistakenly checked in as a value to the file and ‘/’ expands to all URLs. Fortunately, our on-call site reliability team found the problem quickly and reverted the file. Since we push these updates in a staggered and rolling fashion, the errors began appearing between 6:27 a.m. and 6:40 a.m. and began disappearing between 7:10 and 7:25 a.m., so the duration of the problem for any particular user was approximately 40 minutes.”

vBrowseFile: development

vbrowsefile0005-devscr1vbrowsefile0005-devscr2vbrowsefile0005-devscr3
vbrowsefile0005-devscr4vbrowsefile0005-devscr5vbrowsefile0005-devscr6

Ich bin gerade dabei einen kleinen “Filebrowser” zu entwickeln. Dieser zeigt nicht zwangsläufig das reale Dateisystem an, sondern ist in der Lage mehrere real existierende Ordner zu einem virtuellen Ordner zusammen zu legen. Er ist nur zum einfachen herunterladen von Dateien gedacht, eine Upload-Funktion ist nicht geplant, eben sowenig wie das Umbenennen oder Löschen von Dateien. Zum Einsatz kommt PHP5, Smarty und das Pear-Paket HTML_Downloader.

siyb von Geekosphere(danke nochmal!) hat mir ein Redmine und Subversion eingerichtet.

Alles weitere wird es dann dort geben.

For our english speaking visitors:

Recently i began to develop a small Filebrowser. It does not necessarily show the real Filesystem but it can combine several directories to one virtual. The purpose is just to realise an easy way of downloading files, other features used in a common filemanager like the renaming or deleting of files are not planned. I use PHP5, Smarty and the Pear-Package HTTP_Download.

Thanks to siyb, now i can provide more informations at geekosphere wootcenter(redmine).

sixserv.org Tuning

Gelegentlich fällt der Server aufgrund von vollem RAM-Speicher aus. Ich habe deshalb ein paar Werte der Apache und MySQL Installation verändert. Ggf. werde ich auch später noch ein paar Werte verändern. Falls jemand Probleme mit den auf sixserv.org laufenden Diensten hat, bitte mir sofort bescheid geben.

Der futurologische Kongreß

“Wir schreiben das Jahr 2098″ – sagte er. “69 Milliarden amtlich bescheinigter Menschen und sicherlich rund 26 Milliarden Illegale. Die mittlere Jahrestemperatur ist um vier Grad gesunken. In fünfzehn, zwanzig Jahren wird hier ein Gletscher sein. Wir können die Vereisung nicht vorbeugen, wir können sie nicht hindern, wir können sie nur verbergen.”

Aus den Erinnerungen des berühmten Weltraumfahrers Ijon Tichy, der am achten futurologischen Weltkongreß teilnimmt und einen Trip in eine entfernte, von Psychemie bestimmten Zukunft unternimmt. Ein Klassiker der Science Fiction von Stanislaw Lem. Ich erwähne dieses Buch deshalb da Ari Folman(Waltz With Bashir) die Inszenierung als Mischung von Real- und Animationfilm plant.

Stanislaw Lem: Der futurologische Kongreß – Aus Ijon Tichys Erinnerungen(1972)

Update Dezember 2010:
Mittlerweile gibt es ein wenig mehr Infos, auch wenn der Film wohl wieder aus der IMDb verschwunden ist(zumindest aus dem öffentlichen Teil). Auf einem Festival zeigte Folman erste Szenen(Youtube) des Animationsteils. Demnach ist ein Release für 2013 geplant wenn die Dreharbeiten und Post-Production abgeschlossen sind.

Ivacy VPN unter Linux: PPTP/OpenVPN und Socks5-Gateway

Die VPN Provider sprießen, dank der “Sicherheits-Politik” in Europa und den USA, wie Pilze aus dem Boden. Seit Juli 2008 gibt es Ivacy, einem durchaus interessanten VPN-Anbieter über den es möglich ist sich der Vorratsdatenspeicherung Europas zu entziehen. Hier geht es mir darum zu zeigen wie man Ivacy unter Linux nutzen kann, genauer gesagt wie man OpenVPN und PPTP unter Linux einrichtet, die Country-Selection Funktion von Ivacy nutzt und wie man einen Socks5 Proxy einrichtet der Verbindungen über Ivacy weiterleitet, dazu später mehr. Diese Anleitung sollte nicht nur mit Ivacy funktionieren, alle VPN-Anbieter bieten OpenVPN oder PPTP(das proprietäre VPN Protokoll von Microsoft).
Update: Habe einen OpenVPN-Abschnitt eingefügt.
Update 4.2.09@20:50: OpenVPN-Abschnitt überarbeitet.
Update 8.2.09@22:15: Artikel nochmals überarbeitet.
Update 21.4.09@22:00: Privoxy-Abschnitt eingefügt.

Bevor es losgeht sollte ich vielleicht noch erwähnen das es sich hierbei um keine Anleitung für Linux-Anfänger oder Ubuntu/Suse-”Profis” handelt. *g* Continue reading

implementing bittorrent

Mal wieder was technisches. Ich geh mal ein bisschen ins Detail des BitTorrent Protokolls.
Ich werde das ganze in mehrere Teile aufteilen.

In den ersten Teilen wird es sehr Theoretisch.
In Teil 1 möchte ich auf das BEncoding eingehen und auf Metafile die euch sicherlich als “.torrent”-Datei bekannt ist.

Im nächstem Teil gehe ich dann auf grundsätzliches zur Aufgabe eines Trackers ein. Und danach wird es richtig interessant :D
Aber erstmal zum BEncoding und der Metafile, ohne die BitTorrent nicht funktioniert -
das BEncoding und die Metafile sind Essentiell!

Bevor ich auf das BEncoding eingehe spreche ich erstmal die MetaFile an, da dies die erste
Stelle (und auch wichtigste) ist an der das BEncoding im Protokoll vorgesehen ist.

Metafile

Die Metafile oder wie es die meisten von euch kennen die “.torrent”-Datei.
In ihr sind alle Informationen (und auch ein paar unwichtige :D ) die ein Client/Peer benötigt
gespeichert.
Also gehen wir mal näher auf den Inhalt der “.torrent”-Datei ein (optionale Teile sind mit *
gekennzeichnet):

  • announce: Die Announce-URL des Trackers
  • creation date*: Erstellungsdatum
  • comment*: Platz für einen Kommentar zum Torrent oder andere Informationen
  • created by*: der Name des Erstellers
  • info: das info-Dictionary – der “kern” einer Metafile!(darauf gehe ich weiter unten ein)

Jetzt werden sich sicher einige denken “whuuut?! wtf? dictionary?!”
Ein Dictionary ist die Abbildunge einer Map, oder eines Arrays mit Schlüssel als Index
(ArrayList in Java) auf einen String (bzw. eine ByteFolge xD).

Das Info-Dictionary

Diese Keys enthält ein “info” Dictionary:

  • piece length: Die Anzahl der Bytes pro Piece (BitTorrent-Peers tauschen die Daten in Pieces)
  • pieces: Enthält die Hashes der Pieces
  • info**: Das info-Dictionary für die Spezifizierung der im Torrent enthaltenen Datei/en. (wenn dieses info-Dictionary gemeint ist werde ich es mit ** markieren)

Es gibt 2 verschiedene Modi des Info-Dictionary** den Single-File und den Multifile-Mode,
dementsprechend gibt es auch
2 verschiedene Arten die Datei bzw. die Dateien näher zu Spezifizieren:

“info” im Single-File Mode

  • name: Der Dateiname
  • length: Länge der Datei in Bytes

“info” im Multi-File Mode

  • name: Der Ordnername in dem sich die Dateien befinden
  • files: Ein Dictionary das für jede Datei ein weiteres Dictionary enthält

Die Keys des “files”-Dictionaries:

  • length: Die grösse der Datei in Bytes
  • path: Der Pfad der Datei

Damit waren die wichtigsten Elemente des .torrent-Files erklärt und wir können uns mit de
Kodierung der entsprechenden Elemente/Einträge befassen – dem BEncoding.

BEncoding

Das BEncoding ist so genial wie einfach.

BitTorrent nutzt BEncoding für:

  • Strings
  • Integer
  • Dictionaries
  • Listen

Diese Typen werden alle nach dem selben Schema kodiert:

Strings:

:
Beispiel:
5:w00t!  (für den String "w00t!")

Integer:

ie
 
Beispiel:
i7e (Integer: "7")
i-1e (Integer: "-1")

Dictionaries:

de
 
Beispiel:
d3:nks6:gentoo4:apoc4:arche***
 
*** Steht für folgendes dictionary:
KEY          VALUE
[nks] = gentoo
[apoc] = arch

Listen:

le
 
Beispiel:
l3:nks7:torrente (entspricht den Strings "nks" und "torrent")

Ist recht simpel oder?
Trotzdem muss man bei der Implementierung aufpassen, wenn hier ein Fehler passiert kann es sein
das man manchmal hinterher lange nach dem Fehler suchen muss :D
Das BEncoding verfolgt einen durch das ganze Protokoll hinweg.