DNS Server sind verwundbar

am Freitag, 25. Juli, 2008 - 21:47 von Herbi

Das DNS (Domain Name System) sorgt dafür, dass die passende IP-Adresse zu einer Domain aufgelöst werden kann, sodass der heimische Webbrowser den entfernten Server direkt ansprechen kann.
Dabei halten die Provider (auch ISP) solche DNS Server parat, die diese Namensauflösung realisieren. Wenn man eine Domain abfragt, erhält man von einem solchen DNS Server die Antwort mit der IP-Adresse, einfach gesagt. Der DNS Server speichert die Kombination und IP in einem eigenen Cache für eine gewisse Zeit, um künftige Anfragen schneller beantworten zu können.

In den letzten Tagen ist eine Sicherheitslücke in der gängigen Software für diese DNS Server bekannt geworden, die nun auch schon aktiv ausgenutzt werden kann. Dabei wird per Cache Poisoning ein solcher Cache Eintrag geändert, sodass zukünftige Namensauflösungen einer Domain mit einer falschen IP beantwortet werden. So kann man surfende User auf eine falsche Seite locken, ohne dass diese es merken.
Die genaue Angriffsstrategie sollte erst später bekannt gegeben werden, was aber nicht der Fall war.

Die großen ISPs haben ihre Nameserver noch nicht völlig geupdated, es sollen noch über 50% der Nameserver angreifbar sein. Dabei kann so ein solcher Angriff in unter 10 Sekunden ausführbar sein.
Die Anbieter der Serversoftware, darunter auch Microsoft, stellen schon Updates bereit. Allerdings werden bei den ISPs diese Updates natürlich nicht blind eingespielt, sondern erst einmal evaluiert. Die frühzeitige Bekanntgabe des genauen Ablaufs eines solchen Angriffs, hat den Providern die Zeit genommen, die Updates rechtzeitig einspielen zu können. Nun wurden bereits die ersten Angriffe protokolliert.

Um sich gegen solche Angriffe zu schützen ist schon ein Signierungsstandard in Planung, der Ende 2008 einsatzbereit sein soll. Wann dieser dann wirklich zum Einsatz kommt, ist natürlich ungewiss.

Wer weitere Infos zu diesem Thema haben möchte, findet mehrere Artikel auf heise.de.


Kategorien: Security
Tags:

Java: Eine Datei mit zufälligem Inhalt erzeugen

am Mittwoch, 23. Juli, 2008 - 14:07 von Herbi

Aus aktuellem Anlass habe ich mir ein kleines Tool geschrieben, welches eine Datei mit zufälligem Inhalt erzeugen kann.

Das Problem dabei ist, dass die Anwendung schnell an ihre Grenzen im Hauptspeicher stößt und abbricht. Das ist dadurch zu lösen, indem man die Daten stückweise erzeugt und schreibt. Auf diese Weise benutze ich weniger RAM, iteriere aber das Schreiben der zufälligen Daten umso mehr.
Dabei werden die Iterationen anhand der gegebenen Einheit bestimmt und die Größe der auf einmal erzeugten Daten anhand des angegeben Größenwertes. Diese Methode ist sehr einfach und kann noch um einiges optimiert werden. Auch wird dadurch unter Umständen das eigentliche Problem nicht gelöst, da der Benutzer immer noch durch Angabe des Größenwertes (unbeachtet der Einheit) die Nutzung des Speichers beeinflussen kann.

Eine automatische Bestimmung der optimalen Anzahl von Iterationen und der optimalen Größe von auf einmal erzeugten Zufallsbytes würde hier also einerseits die Stabilität der Anwendung garantieren. Die Laufzeit würde sich nicht sehr unterscheiden, da in jedem Falle ungeachtet der Anzahl von Iterationen eine bestimmte Menge von Zufallsbytes erzeugt werden müssen.

/**
 * This class is used to create a file with random data.
 * @author Sebastian Herbermann
 */
public class FileCreator
{
    /**
     * Creates a file of the given size at the given place with random data.
     * @param file location und name of the file
     * @param size size of the file
     * @param unit expected unit for the filesize
     * @return true if file was created, false if an error occured
     */
    public static boolean createRandomFile
            ( String file, int size, FilesizeUnit unit )
    {
        int repetitions = 1;
        switch (unit)
        {
            case KiloByte:
                repetitions = repetitions * 1024;
                break;
            case MegaByte:
                repetitions = repetitions * 1024 * 1024;
                break;
            case GigaByte:
                repetitions = repetitions * 1024 * 1024 * 1024;
                break;
        }
        try {
            FileOutputStream os = new FileOutputStream(file);
            Random rnd = new Random();

            // create rather few random values to reduce RAM use
            while ( repetitions > 0 )
            {
                byte[] bytes = new byte[ size ];
                rnd.nextBytes( bytes );

                os.write( bytes );
                repetitions --;
            }

            return true;

        } catch (Exception ex) {
            ex.printStackTrace();
            return false;
        }
    }

    public static void main(String args[])
    {
        // create a 500 MB file named "test.file"
        createRandomFile("test.file", 500, FilesizeUnit.MegaByte);
    }
}

public enum FilesizeUnit {
    Byte, KiloByte, MegaByte, GigaByte
}

Über den Sinn einer solchen Klasse kann jeder selbst entscheiden. Wer seine Festplatte einmal füllen möchte, kann hiermit bestimmt viel anfangen.


Kategorien: Coding
Tags:

Samsung ML-1630 Mono Laser Printer

am Freitag, 18. Juli, 2008 - 19:00 von Herbi

Nachdem der alte Tintenstrahldrucker ausgedient hatte, habe ich mir nun einen Samsung ML-1630 Laserdrucker gekauft. Damit habe ich zwar keine Farben mehr, aber der Druckvorgang geht schneller und die Kosten pro Seite sind deutlich niedriger. Zudem kann ein Laserdrucker nicht eintrocknen, was bei meinem Tintenstrahldrucker ein großen Problem war.


Bildquelle: samsung.de

Der ML-1630 gehört zu den Einsteigermodellen unter den Laserdruckern. Mit 100€ ist er erschwinglich und mit Druckkosten von 3,2 Cent pro Seite unter den Einsteigerdruckern im guten Mittelfeld.
Die Stärken des Gerätes liegen aber in seinem edlen Design, den Maßen und der Laustärke. Jediglich 13 cm ist der Drucker hoch und er wirkt wegen der Klavierlackoptik und den berührungsempfindlichen Tasten sehr elegant. So macht er auch auf dem Schreibtisch eine gute Figur. Damit man während des Druckens auch noch Arbeiten kann, ist der ML-1630 sehr genügsam in der Lautstärke. So entwickelt der Drucker nicht mehr als 45 dB (A). Vergleichbare Drucker sind um bis zu 30 db (A) lauter.

Nach den ersten Ausdrucken kann dieser Laserdrucker auch direkt überzeugen. Wem es nichts ausmacht, einen Cent mehr pro Seite zu Zahlen, der kann mit diesem Gerät gut beraten.


Der App Store ist da!

am Donnerstag, 10. Juli, 2008 - 21:54 von Herbi

Der App Store mit Anwendungen für das iPhone und den iPod Touch ist nun online gegangen. Um Anwendungen herunter zu laden, braucht man allerdings eine neue Version 7.7 von iTunes, die bereits zum Download angeboten wird. Der Download scheint aber intern noch nicht umgestellt zu sein.

Um die Anwendungen dann auch nutzen zu können, braucht man das Software Update 2.0. Dazu ist noch kein definitiver Releasetermin bekannt, aber da morgen das neuen iPhone erscheint, welches dieses Update bereits von Haus aus mitbringt, liegt es nahe, dass das Update auch ab morgen verfügbar ist.

Bei den Anwendungen für die mobilen Geräte handelt es sich um Dienstprogramme, neue Interfaces für Webanwendungen (eBay, Facebook, …), Spiele und andere kleine Helfer, die einem das Leben erleichtern oder versüßen sollen.