Wenn man schlechte Viren zu spät mailt

… oder wieso manche Virenmail einfach nur schlecht ist.

Ja, es ist wiedermal soweit, ein Virus hat es mal wieder durch die Servertests geschafft.

Der Virus/Trojaner mit dem bedrohlichen Betreff: „überfällige Zahlung“ schlug heute bei uns in der Spamfalle auf. Ich gebs zu, so eine Spamfalle ist ein 100% Indikator dafür, daß es ein Virus/Trojaner ist und ich schaue nicht mehr selbst nach. Da nicht jeder diesen Luxus hat, hier wieder die Merkmale die nicht stimmen.

Vorweg, die IP Adresse ist nur auf den ersten Blick verdächtig, weil Sie entgegen des verwendeten Hostnames nicht nach Russland zeigt, aber bei einem 65535 IP-Adressen umfassenden Netzwerkblock ist das keine Seltenheit.

From - Thu Apr 17 09:11:52 2014
Return-path: <enfranchised@frankfurterinkasso.de>
Envelope-to: to@address
Delivery-date: Wed, 16 Apr 2014 02:17:37 +0200
Received: from [190.246.114.25] (helo=osafnoby.peerline.ru)
	by hostname with smtp (Exim 4.80.1)
	(envelope-from <enfranchised@frankfurterinkasso.de>)
	id XXXXXXXXXXXXXXXXXXXXXX
	for to@address; Wed, 16 Apr 2014 02:17:37 +0200
Message-ID: <201404152349143086839sochi@frankfurterinkasso.de>
Date: Tue, 16 Apr 2014 18:31:18 -0300
From: "Gutta Sebastian" <enfranchised@frankfurterinkasso.de>
X-Mailer: Vaporier v3.8
MIME-Version: 1.0
To: <to@address>
X-Antivirus: avast! (VPS 140415-2, 16/04/2014), Outbound message
X-Antivirus-Status: Not-Tested
Subject:  =?utf-8?b?w7xiZXJmw6RsbGlnZSBaYWhsdW5n?=

Content-Type: application/x-zip-compressed;
 name="kostenplan.zip"
Content-transfer-encoding: base64
Content-Disposition: attachment;
 filename="kostenplan.zip"

Eine Software Vaporier v3.8 ist im googleindizierten Netz nicht zu finden, und im Stil eines übermächtigen Verbrecheregos ein üblicher Name. Eine Email mit einer deutschen Adresse, kommt selten aus Russland.

Das Attachment ist natürlich ein ZIP, damit die Virenscanner nicht so genau hinsehen.

Wie üblich, ab in die Tonne mit der Email.

Achja, Avira AntiVirus war ausnahmsweise schneller als unser Servervirenscanner und kannte den Virus schon. Deswegen, zu spät gemailt Jungs 🙂

Java machts richtiger, aber leider auch komplizierter.

Vor einigen Monaten hatte Java bekanntlich ein schweres Problem in Sachen Sicherheit. Damals jagte eine Hiobsbotschaft die Nächste. Die Javaentwickler haben viel Häme über sich ergehen lassen müssen, haben aber daraus gelernt .

Java Applets werden nun nicht mehr direkt ausgeführt. Dazu kommen sehr restriktive Einstellungen unter denen Applets ausgeführt werden. Deswegen hier eine kurze Anleitung, wie Sie Applets wieder auf Webseiten aktivieren, denen Sie vertrauen können.

Windows:  „Startmenü“ -> „Einstellungen“ -> „Systemsteuerung“ -> „Java“

Sicherheitseinstellungen von Java unter Windows

Sicherheitseinstellungen von Java unter Windows

 

Um neue Webseiten einzutragen, klicken Sie auf „Siteliste bearbeiten“.

java-panel.windows-liste

Sicherheitseinstellungen Java: Domains freigeben

Einmal auf „Hinzufügen“ auswählen und dann einfach die Domain eingeben. Das wars schon.

Danach wird Java in der Webseite wieder korrekt ausgeführt. Wichtig ist das z.b. wenn Sie eine VNC Konsole benutzen wollen, da diese Anwendungen fast nur in Java zu haben sind.

Jersey, Pydio & the next Big thing – Part II

Ja, es hat länger gedauert als erwartet. Nicht nur Jersey steckt voller Ungereimtheiten, auch Pydio hat tolle Bugs auf Lager. Kombiniert man das, verschwendet man richtig viel Zeit.

Status: Es geht.

Update der verwendeten Tools: Jersey 1.18 ( jsr311-api-1.1.jar, asm-3.1.jar, jersey-bundle-1.18.jar, NEU: jersey-multipart-1.18.jar)

Der Fileupload:

Der FileUpload stellt sich in Jersey schwieriger dar, als man annehmen sollte, denn die spärlichen Beispiele sind einfach mal falsch, solange man nicht die Suchbegriffe benutzt,
die einen ohnehin schon auf die richtige Fährte gebracht haben : MultiPart.

Aber auch da gibt es Fallstricke die es zu umschiffen geht und weil das einfach nur nervt, gibts hier gleich die Lösung der Probleme:

Schritt 1:

                FormDataMultiPart form = new FormDataMultiPart();
                FormDataBodyPart p = new FormDataBodyPart(
                            FormDataContentDisposition
                                .name("userfile_0")
                                .fileName("Dateiname")
                                .build()
                            , new File("Dateiname")
                            , MediaType.MULTIPART_FORM_DATA_TYPE);
                form.bodyPart(p);

Damit man FormDataMultiPart benutzen kann, muß oben erwähntes JAR-File zum Projekt hinzugefügt werden. Danach ist es aber ganz einfach das File dann wirklich per REST hochzuladen. Wobei REST hier wohl der falsche Ausdruck ist, denn es ist ein simples MultiPart-Form, daß per POST hochgeladen wird. Das macht jeder Webbrowser genauso.

Schritt 2:

                response = resource.queryParam("get_action","upload")
                           .queryParam("dir","/")
                           .queryParam("secure_token", securetoken )
                           .header("Cookie", cookieheader )
                           .accept(MediaType.APPLICATION_XML)
                           .type(MediaType.MULTIPART_FORM_DATA)
                           .post(ClientResponse.class, form);

Jetzt muß man natürlich noch den Share Call per API iniziieren werden, damit ein Downloadlink für die Datei erzeugt wird. Das sagt sich jetzt so leicht, denn Pydio 5.2.0 und 5.2.1 sind an der Stelle einfach mal defekt. Da wir mit der REST API arbeiten, erwartet unser Client zurecht auch eine korrekt formulierte Antwort und dazu gehört auch die korrekte Länge der Antwort vom Server. Die Entwickler von Pydio haben es nun geschafft diesen Teil der API erfolgreich zu entschärfen. Statt der korrekten Länge des Links, kommt ein

Content-Length:  0

und damit kann Jersey nicht umgehen. Daher darf man nun erstmal das Pydio Quickfixen.Von der Isolation des Fehlers bis zum funktionierenden Fix der PHP Anwendung, vergingen rund 80 Minuten.

Ich hege ja die Hoffnung, daß mein Bugreport gelesen und bearbeitet wird. Zur Sicherheitslücke die ich letzte Woche an das Team von Charles geschickt habe, kam nur ein : „Wir schicken Dir Deine Mail zurück-kam also an“ Nachricht zurück. Ein Umgang mit Securityproblemen muß sich wohl erst noch entwickeln. Was übrigens für den an sich sicheren Code von Pydio spricht. „Gut“ ist allerdings was anderes. Kommentare fehlen da fast vollständig 🙂

Nachdem nun diese Klippen umschifft sind, kann die eigentliche Arbeit an der Anwendung beginnen.

JAXB XML Parsing kann man übrigens getrost vergessen, der XML Code der von Pydio kommt überfordert den Parser, so daß Elemente einfach verloren gehen. Ob da der Fehler bei Pydio liegt, oder der Parser Bugs hat, mag ich nicht beurteilen. Ich habe mir dann flugs einen eigenen SimpleXML-Parser mit XML-zu-Objekt Komponente geschrieben. Reflektion ist ne schöne Sache in Java.

Wenn Sie also vorhaben sollten, für Pydio in Java zu entwickeln, kommt einiges auf Sie zu. Sie dürfen sich aber gern melden, wenn Sie Fragen haben. Aufgrund der Bots die mein Blog zum Abladen von Schrott missbrauchen wollen, kann ich leider keine Kommentarfunktion freischalten 🙁