Archiv der Kategorie: Software

Alles was mit Software zu tun hat

GCalcTool Todesoptimierungen

Neue Funktionen finde ich generell immer ganz toll: Neue Funktionen und weniger Sicherheitslücken kommen üblicherweise recht zügig auf meine Systeme. Große Bauchschmerzen bekomme ich allerdings, wenn an der UI geschraubt wird. Zwar ist gegen Verbesserungen der Benutzerschnittstelle nichts auszusetzen, in letzter Zeit beschränken sich die Änderungen aber meist auf ein Thema: DAU-Freundlichkeit um jeden Preis. Da wird auch schon mal ein Funktionsverlust in Kauf genommen. Ein schönes Beispiel bietet jüngst der Gnome-Taschenrechner aka. gcalctool, welcher vor kurzem eine „Schönheitskur“ verordnet bekam.

Der erste Blick geht auf den Programmierer-Modus der 5.28.x-Serie, welche die alte Funktion schön zeigt:

Bild: https://www.adlerweb.info/blog/wp-content/uploads/2010/07/gcalctool11-267×300.png

Interessant ist für mich vor allem der obere Bereich: Ähnlich meines Hardware-Taschenrechners kann ich direkt unter dem Eingabefeld das Zahlensystem zwischen Binär, Oktal, Dezimal und Hexadezimal welchseln. Die aktuellen Zahlen werden automatisch in die entsprechende Anzeige umgewandelt. Wenn man z.B. mit Hexadezimalen Messwerten eines µC in Kombination mit dezimalen Vergleichswerten arbeitet eine unschlagbare Kombination. Der Vorteil, dann man die Werte direkt in den Rechner kopieren kann und nicht abtippen muss versteht sich ja von selbst.

Bild: https://www.adlerweb.info/blog/wp-content/uploads/2010/07/gcalctool2-300×229.png

Beim ersten Start einer 5.30.x traute ich meinen Augen nicht: Ein Bug muss sich in meinen Build eingeschlichen haben: Das Eingabefeld ist überdimensional groß, die Wahl zwischen den Zahlensystemen verschwunden, Buttons haben eine seltsame Beschriftung. 2 Rekompilierungen und einige Web-Suchen später die Ernüchterung: It’s not a bug, it’s a feature! Die sichtbare und trotz Ausdünnung sichtbar gequetschte Objektanordnung soll das neue Design des Gnome-Rechners darstellen. Die Zahlensysteme lassen sich nun im Menü umstellen. SRSLY? Die BIN/OCT/DEZ/HEX-Umrechnung aus der PROGRAMMIERERANSICHT eines Taschenrechners schmeißen und im Menü verstecken? Das sind 500% der ursprünglich nötigen Klicks! Ich geh mich jetzt noch ne Runde aufregen und werd dann die alte Version nochmal für alle meine Systeme kompilieren *gnah*

Käferjagd – MySQL, Roundcube und die Zeichenkodierung

Schei? Encoding

Das trifft meine Beschäftigung in den letzten Tagen ganz gut. Ich habe bereits länger auf meinem Mailserver sieve im Zusammenspiel mit Dovecot im Einsatz. Als Frontend ist nach vim und dem ThunderbirdPlugin schlussendlich ein (inzwischen integriertes) Plugin für meinen Webmailer Roundcube zum Einsatz gekommen. Im Gegensatz zu den vorherigen Lösungen ist es hier über eine GUI möglich sich einfache Regeln, wie aus vielen Mailprogrammen bekannt, zusammen zu klicken. Inzwischen gibt es eine Weiterentwicklung, welche einige lang erwartete Features mitbringt. Leider verlief mein Test nicht ganz wie geplant.

Erste Beobachtung: Immer wenn man ein Sonderzeichen verwendet ist der Webmailer nicht mehr nutzbar. Die aktuelle Sitzung wird beendet, versucht man sich neu einzuloggen kann man Mails lesen, ein Klick auf die Filterseite führt aber zu einem neuen Absturz. Einzige Lösung: Das Filterscript mit einem anderen Editor löschen. Nicht ganz was ich wollte, aber eine Nachfrage beim Entwickler verheißt nichts Gutes: Kein Fehler in der Richtung bekannt. So weit so schlecht.

Sinnvollste Möglichkeit: Testserver hochziehen (LVM-Snapshots ftw) und Problem einschränken. Schnell war klar: Es muss wohl an der Config liegen. Auf einem frischen Server ließ sich die aktuelle Roundcube mit Plugin nutzen, auf der Kopie des Produktivservers tritt immer wieder der Fehler auf. Etwas hin und her – ratlosigkeit. Der Testserver konnte auf dem Filterserver des Testservers problemlos arbeiten, also kann es nicht am Mail-/Filterserver. Auch die Kopie des Programmverzeichnisses vom Produktiv auf den frischen Testserver arbeitete dort problemlos. Doch die Konfiguration? Also nahezu das komplette /etc vom frischen Testserver auf die Produktivkopie gezogen, PHP-FCGI auf mod_apache, etc, etc – nada. Einziger Unterschied, der mir auffiel war 64< ->32Bit – das wirds ja wohl kaum sein.

Hilft nichts – der Holzhammer muss her: Das komplette Plugin mit echos durchsetzt und huh – der Abbruch passiert beim Speichern der Session. OK, generell würde ich ja sagen nicht korrekt escaped, aber warum tritt es dann nur auf einem Server auf?!

Stunden später war mir dann meine eigene Blindheit auch klar: Ich hatte zwar alle Daten kopiert, aber nicht die Datenbank. Die hatte ich zwar kurz verglichen, aber ein kleines aber verhängnisvolles habe ich übersehen. Roundcube nutzte in den ersten Versionen ASCII als Zeichencodierung für die in MySQL gespeicherte Session-Table. Dies wurde irgendwann auf UTF8 umgestellt, jedoch nur in den Scripten für Neuinstallationen – die Update-Datei enthält keine entsprechende Konvertierung. Da mein RC schon lange läuft hing die Tabelle entsprechend auf ASCII und machte bei UTF8-Zeichen in der Session die Fliege. 3 Tage gebastel und ein ALTER TABLE später funktioniert nun alles – so kann man sich auch beschäftigen…

Der ganz normale Gentoo-Wahnsinn

CD rein, booten, fertig – so einfach könnte das Leben sein wenn man nicht eine falsche Hardware erwischt. Derzeit bocken bei mir die Gentoo-Live-CDs auf einem Compaq/HP Evo N620C. Allein bin ich nicht, wie über 48 Kommentare im entsprechenden Bug zeigen. Auslöser ist ein Treiber für einen PATA-Controller. Gebraucht wird er nicht wirklich: Zum einen ist die Hardware eine VLB-Karte, also noch in der Ära vor PCI zu Hause, zum Andern kann der „Generic“-Treiber für PATA-Chipsätze die gesamte Funktion ebenfalls abdecken. Leider scheint das im Kernel-Team keinen zu interessieren: Auf der Kernel-ML ging bereits mehrmals der Request rund den Treiber zu entfernen, ohne Ergebnis. Bleibt mir nur bei jedem Boot die Kernelparameter zu ändern oder eine eigene DVD zu erstellen.

Neuer GPG-Key

Huch – doch schon wieder so lange her? Durch die ganze Arbeit hier ganz verpeilt, dass mein GPG wieder fällig ist. Ab sofort bin ich mit der der 0x5A43E94F unterwegs, der vorherige (0x908BE3C7) ist bereits ausgelaufen und entsprechend nicht mehr gültig. Der Public-Key ist auf den üblichen Keyservern verfügbar.

Für alle die, die nicht wissen was das bedeutet: GPG ist in diesem Fall ein Verfahren um E-Mails digital zu unterschreiben oder verschlüsseln. Mit hilfe dieser Technik kann man prüfen, ob die Mail wirklich vom angegebenen Anwender stammt und ob sie manipuliert wurde. Bei verschlüsselten Mails ist es zudem für Außenstehende – im Gegensatz zu einer normalen Mail – den Inhalt mitzulesen. Für viele Mailprogramme gibt es entsprechende Erweiterungen, bei Thunderbird z.B. Enigmail.

Nativer Client für VMWare ESXi unter Linux

VMWare ESXi bzw. VMWare ESX ist nahezu der „de facto Standard“ für die professionelle Virtualisierung. Die Verwaltung erfolgt dabei über den VMware Infrastructure Client – eine .NET-Software, welche aber momenten nicht für Linux vorhanden ist und auch unter wine nur bedingt funktioniert. Zwar gibt es mit Kodiak einen 3rd-Party-Client, welcher die komplette Verwaltung ermöglichen soll und dank Adobe AIR auch unter Linux laufen sollte, allerdings ist dieser derzeit in geschlossener Beta und steht noch nicht zum Download.Was viele nicht wissen: Es gibt einen einfachen Client direkt von VMWare. OK, nicht offiziell:

VMWares einfachere Variante „VMware Server“ nutzt in der aktuellen Version zur Verwaltung den Webbrowser. Der Konsolenzugriff wird dabei über ein Plugin ermöglicht, welches auch für Firefox unter Linux zur Verfügung steht. Mit einem kleinen trick kann man dieses Plugin dafür nutzen eine Verbindung zu ESX(i) aufzubauen und so immerhin die Konsolen anzuzeigen:

  1. Zuerst muss natürlich das Plugin installiert sein. Hierzu muss man seinen Browser auf einen installierten VMWare-Server verbinden und dort die Konsole öffnen. Da der VMWare-Server kostenlos ist sollte auch eine temporäre Installation machbar sein. Da das Plugin eine XPI ist lässt sie sich auch einmalig auslesen und (technisch gesehen) auf eine unbegrenzte Anzahl von Rechnern verteilen. Ob das Plugin installiert ist kann man bei Firefox 3.5 unter Extras -> Add-Ons -> Plugins prüfen:
    Bild: https://www.adlerweb.info/blog/wp-content/uploads/2009/11/Bildschirmfoto-3-300×98.png
  2. Nun gilt es das Plugin zu lokalisieren. Üblicherweise sollte es sich ein einem Ordner dieses Formates befinden:
    /home/username/.mozilla/firefox/****.default/extensions/VMwareVMRC@vmware.com/plugins
  3. Hier findet sich die Binärdatei des Plugins, welche auch ohne Browser gestartet werden kann. Mit
    ./vmware-vmrc -h
    startet eine GUI und fragt nach Server, Nutzer und Kennwort. Darauf folgt eine Liste mit VMs.
    Bild: https://www.adlerweb.info/blog/wp-content/uploads/2009/11/Bildschirmfoto-4-300×220.png
    Bild: https://www.adlerweb.info/blog/wp-content/uploads/2009/11/Bildschirmfoto-5-300×230.png

Achtung: Wählt man eine ausgeschaltete VM wird diese automatisch gestartet.

Das einbinden von CD-ISOs sowie Restart und Shutdown funktionieren Problemlos, USB-Geräte und Netzeinstellungen lassen sich nicht anpassen. Im VMWare-Forum findet sich eine Liste mit weiteren Optionen des Plugins.

Update: Offenbar funktioniert der Trick auch mit dem VMWare-Player:
vmplayer -h 1.2.3.4

Eigene Volksbank gefällig? Programmlücke der VR-Banken machts möglich

Banken leben im Internet von ihrem guten Ruf – eine Sicherheitslücke kann schwere (und vorallem teure) Folgen haben und entsprechend hart wird gegen Betrüger vorgegangen. Dabei vergessen einige Banken, dass auch in ihrem eigenen Hause die Sicherheit keine Selbstverständlichkeit ist. Gerade wenn viele Schnittstellen bestehen können Schwachstellen entstehen. Ein besonders schönes Beispiel liefert momentan die VR-Bankengruppe. VR-Banken sind Genossenschaftsbanken, gehören also den zugehörigen „Genossen und Genossinnen“. Um Kosten zu sparen haben die nordwestlichen VR-Banken ihre IT bereits 1963 an die „Gesellschaft für automatische Datenverarbeitung“ kurz GAD ausgelagert.

Im Falle der Webseiten betreiben unsere regionalen Banken gewissemaßen eigenständig Portale, welche dann auf Webbanking und Brokerageportal der GAD verlinken. Im Falle des Webbanking funktioniert das anstandslos: Die Bankleitzahl wird per URL übergeben, auf den Servern der GAD geprüft und dann die zugehörigen Logos und Schriftzuge des lokalen Verbundes in die Bankingseite eingefügt.

Bei Brokerage sieht dies etwas anders aus. Der Typische link lautet hier z.B.

https://www.brokerage[…].html?firma=xxx&home=www.yyy.de&bankid=zzz

Jeder, welcher sich etwas mit HTTP auskennt, erkennt sofort worauf ich hinaus möchte: Nicht nur Firmenname, auch Homepage und Bankleitzahl werden per URL übergeben. Zudem zeigte ein Test, dass die Daten nur grob geprüft werden: Zwar werden als Bankleitzahlen korrekterweise nur Zahlen angenommen und die weiteren Angaben von Sonderzeichen bereinigt, fantasieeingaben werden jedoch nicht erkannt. So lassen sich Portale wie folgendes erstellen:

[Hallo Welt Banking]

Wie man sieht ist der Titel des Portals auf „Hallo Welt Banking“ geändert. Ein klick auf „Home“ führt zu meiner Internetseite. Durch die Filterung stellt dies zwar keine direkte Gefahr dar, allerdings kann es genutzt werden um Nutzer zu verwirren und hinterlässt bei mir einen faden Beigeschmack.

Hinweis: Die GAD e.G. wurde am 11.10. über diese Möglichkeiten in Kenntnis gesetzt, bisher konnte ich keine Stellungnahme erhalten.

Informatik der Evolution

Gestern durfte ich wieder ein Prachtstück an Software bewundern: Ein kommerzielles Ressourcenmanagementsystem mit etwa 7000 Datensätzen machte zu schaffen. Um eine Berechnung über alle Datensätze durchzuführen brauchte das System über 45 Sekunden. 2 Indizes in der Datenbank später warens dann 8 Sekunden und nachdem alle Einzelabfragen einer JOIN-Orgie Platz gemacht hatten sind auch Zeiten von 0,2 Sekunden keine Seltenheit. Als Kommentar im Chat erhielt ich dazu folgende Antwort:

Wenn sich diese ganzen Trottelstudenten die meinen Java & Co wäre die pure Erleuchtung  beim Vögeln genau so bescheuert anstellen wie beim Programmieren ist in ein paar Generationen Ruhe

Tja, wenn er sich da nicht mal irrt und die Theorie von Idiocracy durchschlägt 😉

Vorsicht bei Git als Homepage-Versionsmanagement

Die Versionsverwaltung Git findet inzwischen immer mehr Anhänger. Kein Wunder, vereinfachen doch die dezentrale Struktur und simple technische Voraussetzungen die Nutzung eines Versionsmanagement enorm. Auch für die Verwaltung von Webseiten begegnet mir Git in letzter Zeit häufiger, allerdings haben die Webmaster nicht selten zu kurz gedacht: Git speichert seine Daten als versteckten Ordner. Verwendet man die Datenbasis des Repository auf seinem Webserver ist dieser entsprechend auch dabei und ohne weitere Vorkehrungen auch im Netz erreichbar. Bei mehreren getesteten Seiten ist es so möglich durch Öffnen des Ordners „.git“ an Daten zu kommen, welche möglicherweise nicht für die Öffentlichkeit bestimmt sind. Unter /.git/logs/HEAD findet sich z.B. eine Auflistung aller Änderungen – samt Autoren. Interessant dürfte auch der Ordner „objects“ sein – hier liegen die Änderungen selbst – natürlich auch eventuelle Config-Dateien mit Passwörtern. Zwar nutzt Git ein eigenes Format und gibt keinen Reintext aus, entsprechende Programme um die Dateien zu lesen sind aber natürlich verfügbar.

Eine einfache Abhilfe bietet auf den ersten Blick das Ausblenden der .git-Ordners bzw. aller „Dot-Files“. Dies schützt jedoch nicht vor direktem Aufruf der Unterordner!

Bei mir verwende ich nun folgendes Sniplet aus dem Joyent-Forum:

<directorymatch „^/.*/.(git|svn)/“>
Order deny,allow
Deny from all
</directorymatch>

Dieses muss in die Apache-Config geschrieben werden, in einer .htaccess funktioniert es nicht. Hat man keinen Zugang zur Konfiguration könnte man alternativ direkt im .git-Verzeichnis eine passende .htaccess anlegen, ob diese Methode Git durcheinander bringt habe ich allerdings nicht getestet.

Update:

In oben genannten Forum findet sich noch folgende Möglichkeit basierend auf mod_rewrite. Damit funktionierts auch per .htaccess.

RewriteEngine On
RewriteRule ^.git - [F,L]

Gentoo: Kaputtes java_config reparieren

In letzter Zeit hat sich hier durch Python-Updates auf mehreren Rechner java_config zerlegt. Versuchte ein ebuild auf Java zuzugreifen oder startete man eine Java-Software brach das jeweilige Programm mein einer solchen Meldung ab:

Traceback (most recent call last):
File „/usr/bin/java-config-2“, line 8, in
from java_config_2 import __version__
ImportError: No module named java_config_2

Da python-updater und revdep-rebuild nichts fanden war Handarbeit gefragt, die Neuinstallation der folgenden Pakete sollte Abhilfe schaffen:

emerge -1 java-config java-config-wrapper

via GentooForum.de

Wiki-Fail?

Hmmmmmm….

Fehler
Bei den Servern der Wikimedia Foundation sind gerade technische Probleme aufgetreten. Bitte versuche es in ein paar Minuten noch einmal.
[…]
Wenn du einem Wikimedia-Systemadministrator diesen Fehler meldest, gib bitte die folgenden Details an.
Request: GET http://de.wikipedia.org/w/index.php?title=****, from **** via ***.wikimedia.org (squid/2.7.STABLE6) to *** (***)

#####################################################################

CERT-Bund — Warn- und Informationsdienst

######################################################################

KURZINFORMATION ZU SCHWACHSTELLEN UND SICHERHEITSLUECKEN

ID: CB-K09/0235
Titel: Mehrere Schwachstellen in Squid ermoeglichen
DoS-Angriffe
Datum: 28.07.2009
Software: Squid
Version: < 3.0.STABLE17 und < 3.1.0.12
Plattform: Linux, UNIX
Auswirkung: Denial-of-Service
Remoteangriff: Ja
Risiko: mittel
Bezug:

######################################################################