Pendlerleben

Der Weg in die Arbeit:

Aufstehen, zum Zug fahren, zum Zug gehen, in den Zug einsteigen, mit dem Zug fahren, aus dem Zug aussteigen, am Bahnhof umsteigen, in den nächsten Zug einsteigen, mit dem Zug fahren, aus dem Zug aussteigen, am Bahnhof umsteigen, zur U-Bahn gehen, in die U-Bahn einsteigen, mit der U-Bahn fahren, aus der U-Bahn aussteigen, in die Arbeit gehen.

Außerdem aus dem Pendlerleben:

zum Zug rennen, im Zug warten, auf den Zug warten, auf die U-Bahn warten, in der U-Bahn stehen, in der U-Bahn sitzen, in der vollen U-Bahn warten, am U-Bahnsteig warten, einen Sitzplatz suchen, einen Sitzplatz für meinen Mann freihalten, zur U-Bahn hetzen, hoffen, dass sich der Anschlusszug ausgeht, mit dem Taxi zum Zug fahren, im Zug schlafen, im Zug arbeiten, im Zug lesen, im Zug mit dem Handy spielen, im Zug essen, im Zug trinken, im Zug telefonieren, im Zug SMS schreiben, in der U-Bahn schwitzen, im Zug schwitzen, im Zug frieren, im Zug vom Licht gestört sein, im Zug von anderen Fahrgästen gestört werden.

Sicherheit für Web-Anwendungen

Dieser Blogpost ist ursprünglich im LimeSoda Blog erschienen, ist dort aber nicht mehr verfügbar. Eine Kopie des Beitrages befindet sich deshalb hier.

Vor kurzem war eine Vielzahl an Web-Anwendungen von einem Sicherheitsfehler in OpenSSL („Heartbleed“) betroffen. Nachdem mittlerweile viele Webhosting-Provider und Webseitenbetreiber die OpenSSL Installationen aktualisiert haben, sowie Zertifikate getauscht und ihre Benutzer um Passwortwechsel aufgerufen haben, bleibt die Frage: Wie sicher sind Web-Anwendungen?

Eine dynamische Web-Anwendung besteht aus mehreren Teilen:
Auf einem physischen oder virtuellen Server laufen – je nach Hosting-Variante – eine oder mehrere Websites. Diese werden von einem Web-Server, der die Anfragen aus dem Internet entgegen nimmt, verarbeitet. Um eine Webseite auszuliefern, sind meist Anfragen an den Datenbankserver notwendig, außerdem wird dazu der Quellcode der Web-Anwendung (z.B. eine Skriptsprache wie PHP, ausgeführt). Ist die Webseite ausgeliefert, können auf dem Gerät des Benutzers client-seitig, z.B. über JavaScript, noch weitere Aktionen ausgeführt werden. Je nach Größe und Konfiguration der Web-Anwendung kommen noch weitere Komponenten zur Verarbeitung der Anfragen hinzu: Schnittstellen, Proxy-Server, Caching- und Performance Module etc.

All diese Bestandteile bedienen sich unterschiedlichen Komponenten (Frameworks, Erweiterungen,…) um die gewünschten Anfragen entsprechend abzuarbeiten. Es ist also notwendig, nicht nur die Web-Anwendung selbst, sondern auch die Gesamtheit dieses Systems zu betrachten, um eine Web-Anwendung sicher zu gestalten.

Diese Risiken für Web-Anwendungen werden regelmäßig vom Open Web Application Security Project (OWASP) herausgegeben. OWASP ist eine Community mit dem Ziel, Unternehmen und Organisationen bei Entwicklung, Kauf und Wartung zu unterstützen. Zuletzt wurden die Risiken 2013 ermittelt und veröffentlicht.

1. Injection

Durch das Einschleusen von Code oder Kommandos kann ein Angreifer die Eingabe manipulieren, und auf diese Weise unerlaubte Befehle in der Web-Anwendung oder dem zugrunde liegenden System ausführen oder, auf nicht für ihn bestimmte, Daten zugreifen.

2. Fehler in Authentisierung und Session-Management

Unzureichende Mechanismen, die die Authentizität eines Benutzers und seiner zugehörigen Sitzung feststellen sollen, ermöglichen es Angreifern, Passwörter, Schlüssel oder die gesamte Sitzung eines Benutzers zu übernehmen und unter dessen Identität Aktionen auszuführen.

3. Cross-Site Scripting (XSS)

XSS bezeichnet das entgegennehmen und ausliefern von nicht validierten Eingaben an den Browser. Ein Angreifer kann auf diese Weise Schadcode im Browser des Benutzers ausführen.

4. Unsichere direkte Objektreferenzen

Durch mangelnde Überprüfung von Objektreferenzen ist es einem Angreifer möglich, unautorisiert auf nicht für ihn bestimmte Daten Zugriff zu erlangen.

5. Sicherheitsrelevante Fehlkonfiguration

Verschiedene Bestandteile, auf denen eine Web-Anwendung aufbaut (Module, Frameworks, Anwendungen, Erweiterungen), sind meist nicht mit einer sicheren Grundkonfiguration ausgestattet. Diese Bestandteile müssen, um dauerhaft eine sichere Nutzung zu gewährleisten, entsprechend konfiguriert und regelmäßig aktualisiert werden.

6. Verlust der Vertraulichkeit sensibler Daten

Sensible Daten sind während der Verarbeitung oder bei dauerhafter Speicherung nicht ausreichend geschützt (z.B. durch Verschlüsselung). Angreifer können die Daten somit leicht stehlen oder verändern.

7. Fehlerhafte Autorisierung auf Anwendungsebene

Viele Web-Anwendungen überprüfen die Rechte eines Benutzers, bevor sie ihm spezielle Funktionen zur Verfügung stellen. Ebenso wichtig ist es, auch serverseitig bei der Ausführung einer Aktion, diese Rechte nochmals zu überprüfen.

8. Cross-Site Request Forgery (CSRF/XSRF)

Mit der Identität des Benutzers werden – durch manipulierte Webseiten und Links – unbeabsichtigt und unbemerkt Aktionen auf anderen Webseiten ausgeführt. Die Identität eines Benutzers wird somit ausgenutzt, um mit dessen Rechten zusätzliche Anfragen auszuführen.

9. Benutzen von Komponenten mit bekannten Schwachstellen

Programme, Module und andere Komponenten laufen – meist aus dem Grund der einfachen Einrichtung – mit vollen Rechten auf einem Server. Wird eine Schwachstelle einer Komponente ausgenutzt, können auf diesem Weg viele weitere Angriffe über andere Komponenten ermöglicht werden.

10. Ungeprüfte Um- und Weiterleitungen

Webseiten leiten ihre Benutzer oft auf andere interne oder externe Webseiten um. Ist keine oder eine unzureichende Überprüfung der Weiterleitungen vorhanden, können Angreifer den Benutzer auf Phishing-Seiten oder Seiten mit Schadcode umleiten.

Schon während der Entwicklung (“Programmierung”) achten wir darauf, die Einfallstore für die verschiedenen Angriffe zu minimieren. Abgesehen von diesen Maßnahmen, empfehlen wir auch folgende Punkte:

Aktuell halten

  • Aktualisieren Sie regelmäßig ihr CMS- oder Shopsystem auf die neueste, verfügbare Version.
  • Bleiben Sie auf dem letzten Stand: Informieren Sie sich, fragen Sie die Agentur ihres Vertrauens 🙂

Passwörter & Benutzeraccounts

  • Ändern Sie ihre Passwörter regelmäßig (ggf. unter Verwendung eines Passwort-Managers wie KeePass)
  • Geben Sie den Benutzern ihrer Webseite Richtlinien zur Gestaltung sicherer Passwörter vor.
  • Verwenden Sie nicht die Standard-Benutzer des CMS/Shop-Systems (“admin”). Löschen Sie diese (wenn möglich) oder benennen Sie diesen um.
  • Begrenzen Sie die Anzahl fehlgeschlagener Login-Versuche auf Ihrer Seite (und senden Sie evtl. dem Benutzer im Hintergrund ein Service-Mail, ob er seine Zugangsdaten vergessen hat).

Geben Sie nicht zu viel preis!

  • Informationen in Fehlermeldungen geben oft nützliche Informationen für Angreifer. Generische Fehlermeldungen („Falscher Benutzername oder Passwort“) sind in diesem Fall besser, als spezielle („Falsches Passwort“), wenn auch nicht so benutzerfreundlich.
  • Verbergen bzw. begrenzen Sie Informationen über die Web-Anwendung (Typ, Version,…)
  • Verbergen bzw. begrenzen Sie Informationen über den Server: PHP-Version, Webserver, Datenbanksystem. Diese Informationen lassen sich mit speziellen Anweisungen verbergen, damit sie für die Besucher (und potentielle Angreifer) ihrer Webseite nicht ersichtlich sind.

Verwenden Sie SSL

Verschlüsseln Sie die Datenübertragung zwischen den Besuchern Ihrer Internetseite und Ihrem Server mit SSL.

Grundkonfiguration

  • Die Grundkonfiguration von Anwendungen und Komponenten bietet die Möglichkeit, diese schnell in Betrieb nehmen zu können. Sicherheitsrelevante Einstellungen müssen oft erst nachträglich aktiviert werden.
  • Ändern Sie Standard-Benutzer und Standard-Pfade der Web-Anwendung: /typo3, /admin, etc. oder begrenzen Sie den Zugriff (z.B. IP-basiert) auf diese Verzeichnisse

Erweiterungen

Vorsicht ist geboten: Jede Erweiterung bringt potentiell zusätzliche Schwachstellen/Fehler (nicht nur aus sicherheitstechnischer Sicht) mit sich. Nicht jede frei verfügbare, kostenlose Extension ist auch von einem guten Programmierer entwickelt worden (obwohl es umgekehrt unglaublich tolle, kostenfreie Erweiterungen von sehr guten Programmieren gibt!).

Auf dem Server

  • Dateirechte: Dateien und Verzeichnisse mit allen Rechten (auf Unix-System „chmod 777“) kann potentiell jeder beliebig ausführen und ändern (sofern er Zugriff auf das System hat).
  • Härten Sie ihre PHP Installation: Suhosin für PHP

Überwachen & loggen

Mit Monitoring und Logging lassen sich einige Angriffe ggf. frühzeitig erkennen. Die Logfiles liefern weitere Informationen, um Maßnahmen ergreifen zu können.

  • Richten Sie ein Monitoring für ihre Webseite ein (z.B. mit UptimeRobot oder Icinga)
  • Loggen Sie die Zugriffe

Trennen Sie sich von Altem

Löschen Sie…

  • alte Installationsdateien und –verzeichnisse
  • Testfiles
  • Deaktivieren bzw. löschen Sie alte und nicht mehr benötigte Benutzeraccounts, (S)FTP- und SSH-Zugänge zu Ihrem Server.

Backup

Für den Fall der Fälle: Erstellen Sie regelmäßige Backups ihrer Web-Anwendung (Dateien, Verzeichnisse und Datenbanken).

Aufwendig (und teuer)

Viele der oben genannten Maßnahmen führen wir im Rahmen der Entwicklung unserer Web-Projekte standardmäßig bzw. in Rücksprache mit dem Kunden durch.
Einige Maßnahmen bedürfen allerdings zusätzlichem Konfigurationsaufwand oder der Unterstützung durch den Hosting-Provider.

Fragen Sie mich!

IBM X41 + Windows 8

Nachdem mein altes X41 zuerst einige Zeit im Arbeitszimmer, dann auch 2 Jahre im Kellerraum verbracht hat, brachte mich das (so wirds gesagt) nicht so hardwarehungrige Windows 8 auf die Idee, das auf meinem X41 auszuprobieren.

Gesagt, getan. Das X41 lief auch gut 3 Jahren wilder Lagerung gleich auf Anhieb mit dem guten alten Windows XP darauf.

Eckdaten:

  • ThinkPad X41 Tablet (1866)
  • Intel Pentium (R) M processor mit 1,5 GHz
  • 1,5 GB RAM
  • 32-bit
  • kommt standardmäßig mit Microsoft Windows XP Tablet PC Edition 2005

Detaillierte Spezifikation:

http://support.lenovo.com/en_US/product-and-parts/detail.page?DocID=PD013902

Ein paar Stimmen aus dem Internet:

“Windows 7 war bereits schnell installiert, bei Windows 8 hat Microsoft das Setup nochmals beschleunigt. ”
“Also bei meinem Testsystem AMD 4800 X2 mit 320 GB SATA-Festplatte 18 Minuten für x32/x86 32-Bit und 21 Minuten für x64 64-Bit.”
“Ich war sehr überrascht, denn nach einer halben Stunde war Windows 8 schon betriebsbereit”

Mit diesen Zeiten kann mein X41 nicht ganz mithalten, dazu hier mehr:

Installation

20:21 Uhr: Start der Installation. Lange Zeit stand die Prozentanzeige bei 10%, danach gings aber gut vorwärts.

21:11 Uhr: Installation fertig, Neustart

21:25 Uhr: Einstellungen vornehmen

21:34 Uhr: Windows 8 betriebsbereit

1 Stunde und 13 Minuten nach Installationsbeginn war mein Windows 8 auf dem X41 also ready for use.

 

Treiber

Nach der Windows-Installation wurden folgende Geräte nicht gefunden:

  • Audiocontroller für Multimedia
  • Biometric Coprocessor
  • Netzwerkcontroller
  • 4 Unbekannte Geräte
  • Videocontroller

 

Benchmarks (to be continued)

26 Sekunden vom Einschalten bis zum Startscreen

8,5 Sekunden vom Einloggen bis zum Home-Screen

 

Währungsumrechnung in Magento

Dieser Blogpost ist ursprünglich im LimeSoda Blog erschienen, ist dort aber nicht mehr verfügbar. Eine Kopie des Beitrages befindet sich deshalb hier.

Magento integriert in der Community und Enterprise Edition standardmäßig die Währungsumrechnung mit dem „CurrencyConvertor“ von webservicex.net.

In den vergangenen Monaten gab es immer wieder Ausfälle dieses Webservices zur Währungsumrechnung. Diese Ausfälle dauerten auch manchmal einige Tage an, wie die Magento Community (12) auf twitter berichtet hat.

Für uns war dies der Anlass, unser eigenes Webservice zur Währungsumrechnung zu integrieren: Den Limesoda CurrencyConverter für Magento.

Der LimeSoda CurrencyConverter ist via Github frei verfügbar und rechnet Preise anhand der Euro Wechselkurse der Europäischen Zentralbank (EZB) um. Die Umrechnung ist nicht nur von bzw. zu Euro-Beträgen möglich, sondern auch zwischen den einzelnen Währungen.

Die Wechselkurse der Europäischen Zentralbank werden täglich um 15 Uhr mitteleuropäischer Zeit (CET) aktualisiert.

Im Gegensatz zu anderen, teilweise auch kostenpflichtigen, Währungsumrechnungsangeboten ist für die Nutzung der EZB-Währungsumrechnung keine Registrierung erforderlich.

Der LimeSoda CurrencyConverter bietet außerdem die Integration in einen bestehenden Magento-Shop über den Modul Manager modman an.

Um die Währungsumrechnung mit dem LimeSoda CurrencyConverter nutzen zu können, sind zumindest zwei erlaubte Währungen in einer Magento Store-View erforderlich. Diese müssen unter System > Konfiguration > Allgemein > Einrichten der Währung > Währungsoptionen konfiguriert werden.

Die automatische Umrechnung der Währungen wird unter System > Konfiguration > Allgemein > Einrichten der Währung > Einstellungen für terminierten Import definiert.

Die Kurse können außerdem im Magento Backend unter System > Währungen verwalten > Kurse eingesehen und manuell aktualisiert bzw. bearbeitet werden.

Für folgende Währungen stellt die EZB Wechselkurse (zum Zeitpunkt dieses Blogposts) zur Verfügung. Die Umrechnung ist von Euro in diese Kurse bzw. von diesen Kursen zu Euro möglich. Außerdem können Umrechnungen zwischen diesen unterstützten Währungen, z.B. von US-Dollar zu Britischen Pfund, durchgeführt werden.

  • USD: US-Dollar
  • JPY: Japanese yen
  • BGN: Bulgarian lev
  • CZK: Czech koruna
  • DKK: Danish krone
  • GBP: Pound sterling
  • HUF: Hungarian forint
  • LTL: Lithuanian litas
  • PLN: Polish zloty
  • RON: New Romanian leu 1
  • SEK: Swedish krona
  • CHF: Swiss franc
  • NOK: Norwegian krone
  • HRK: Croatian kuna
  • RUB: Russian rouble
  • TRY: Turkish lira
  • AUD: Australian dollar
  • BRL: Brasilian real
  • CAD: Canadian dollar
  • CNY: Chinese yuan renminbi
  • HKD: Hong Kong dollar
  • IDR: Indonesian rupiah
  • ILS: Israeli shekel
  • INR: Indian rupee
  • KRW: South Korean won
  • MXN: Mexican peso
  • MYR: Malaysian ringgit
  • NZD: New Zealand dollar
  • PHP: Philippine peso
  • SGD: Singapore dollar
  • THB: Thai baht
  • ZAR: South African rand

Nach der Währungsumrechnung können sich unschöne Preise (z.b. 15,47) ergeben. Viele Betreiber möchten runde Beträge als Preise darstellen, zum Beispiel auf 5, 10 oder 50 Cent genau gerundet. Dies ist eines der zukünfigten Features, die wir in den LimeSoda CurrencyConverter implementieren werden. Weitere Vorschläge für sinnvolle Erweiterungen des CurrencyConverters nehmen wir gerne hier oder als Issue auf Github entgegen.

Der LimeSoda CurrencyConverter auf Github:
https://github.com/LimeSoda/LimeSoda_CurrencyConverter

App-Berechtigungen unter Android: WhatsApp, Telegramm, Threema

Benötigte Berechtigungen der Apps, Stand 23.2.2014

WhatsApp Telegram Threema
Kosten: gratis Kosten: gratis Kosten: 1,60 EUR
Diese App verfügt über folgende Berechtigungen:
Diese App verfügt über folgende Berechtigungen:
Diese App verfügt über folgende Berechtigungen:
Ihre Konten
Ihre Konten
Ihre Konten
Google-Servicekonfiguration lesen
Google-Servicekonfiguration lesen
Google-Servicekonfiguration lesen
Konten auf dem Gerät suchen
Konten auf dem Gerät suchen
Konten auf dem Gerät suchen
Konten auf dem Gerät verwenden
Konten hinzufügen oder entfernen
Konten hinzufügen oder entfernen
Konten hinzufügen oder entfernen
Konten erstellen und Passwörter festlegen
Konten erstellen und Passwörter festlegen
Konten erstellen und Passwörter festlegen
Standort
Standort
Standort
Ungefährer Standort (netzwerkbasiert)
Ungefährer Standort (netzwerkbasiert)
Genauer Standort (GPS- und netzwerkbasiert)
Genauer Standort (GPS- und netzwerkbasiert)
Genauer Standort (GPS- und netzwerkbasiert)
Ihre Nachrichten
Ihre Nachrichten
Ihre Nachrichten
SMS empfangen
SMS empfangen
SMS empfangen
SMS senden
Netzkommunikation
Netzkommunikation
Netzkommunikation
Daten aus dem Internet abrufen
Daten aus dem Internet abrufen
Daten aus dem Internet abrufen
Zugriff auf alle Netzwerke
Zugriff auf alle Netzwerke
Zugriff auf alle Netzwerke
Netzwerkverbindungen abrufen
Netzwerkverbindungen abrufen
Netzwerkverbindungen abrufen
WLAN-Verbindungen abrufen
WLAN-Verbindungen abrufen
WLAN-Verbindungen herstellen und trennen
Google Play-Lizenzprüfung
Ihre personenbezogenen Daten
Ihre personenbezogenen Daten
Ihre personenbezogenen Daten
Kontaktkarten lesen
Kontaktkarten lesen
Kontaktkarten lesen
Telefonanrufe
Telefonanrufe
Telefonanrufe
Telefonstatus und Identität abrufen
Telefonstatus und Identität abrufen
Telefonstatus und Identität abrufen
Telefonnummern direkt anrufen
Speicher
Speicher
Speicher
USB-Speicherinhalte ändern oder löschen
USB-Speicherinhalte ändern oder löschen
USB-Speicherinhalte ändern oder löschen
System-Tools
System-Tools
System-Tools
Systemeinstellungen ändern
Zugriff auf geschützten Speicher testen
Verknüpfungen installieren
Verknüpfungen deinstallieren
Zugriff auf geschützten Speicher testen
Zugriff auf geschützten Speicher testen
Informationen zu Ihren Apps
Informationen zu Ihren Apps
Beim Start ausführen
Beim Start ausführen
Aktive Apps abrufen
Kamera
Kamera
Bilder und Videos aufnehmen
Bilder und Videos aufnehmen
Mikrofon
Audio aufnehmen
Benutzeroberfläche anderer Apps
Über anderen Apps einblenden
Ihre sozialen Informationen
Ihre sozialen Informationen
Ihre sozialen Informationen
Kontakte lesen
Kontakte lesen
Kontakte lesen
Kontakte ändern
Kontakte ändern
Kontakte ändern
Auswirkungen auf den Akku
Auswirkungen auf den Akku
Auswirkungen auf den Akku
Ruhezustand deaktivieren
Ruhezustand deaktivieren
Ruhezustand deaktivieren
Vibrationsalarm steuern
Vibrationsalarm steuern
Vibrationsalarm steuern
Synchronisierungs-einstellungen
Synchronisierungs-einstellungen
Synchronisierungs-einstellungen
Synchronisierungsstatistiken lesen
Synchronisierungseinstellungen lesen
Synchronisierungseinstellungen lesen
Synchronisierungseinstellungen lesen
Synchronisierung aktivieren oder deaktivieren
Synchronisierung aktivieren oder deaktivieren
Synchronisierung aktivieren oder deaktivieren

“So Sexy” Der 10 Jahre LimeSoda Rückblick

LimeSoda (mein Arbeitgeber) feiert 10-jähriges Firmenjubiläum! Bei LimeSoda ist es Tradition geworden, zur Weihnachtsfeier ein cooles Video zu produzieren und als Einladung (und zugleich auch als Motto für die Feier) zu versenden.

Heuer, aufgrund des Jubiläums, ziehen wir die Feierlichkeiten im Kalender nach vor und haben im August bereits ein Video produziert: In Slow-Motion, in dem sich die Charactere der Videos aus den Vorjahren zu einer supercoolen Party wieder treffen.

Hier gibt’s das Making-Of zum Video.

Die LimeSoda-Aktionen der letzten Jahre gibt’s auf der LimeSoda Website zu sehen.

CAPSLOCK DAY

SPÄT ABER DOCH; BIN ICH GESTERN AUF DEN CAPSLOCK DAY AUFMERKSAM GEWORDEN: DAS MUSSTE ICH NATÜRLICH GLEICH TWITTERN.
Nun gut, außer für ein paar Mails, in CAPSLOCK geschrieben, und ein bisschen Spaß, war der CAPSLOCK DAY wohl nicht für mehr Zwecke gut. Aber zumindest hat er den Büroalltag etwas erheitert.

Meine CAPSLOCK Taste ;-)
Meine CAPSLOCK Taste 😉

Hier noch ein Link zur CAPSLOCKDAY Seite, diese ist nicht unbedingt ein Meisterwerk.

Merke für nächstes Jahr: Am 22. Oktober ist wieder CAPSLOCK-Day.

So gelingt erfolgreiche Öffentlichkeitsarbeit

Letzten Samstag fand im Bildungszentrum des Österreichischen Roten Kreuzes das Jugendgruppenleitermodul “So gelingt erfolgreiche Öffentlichkeitsarbeit” statt.

Ich war mit einem Vortrag zum Thema “Web 2.0” mit dabei und haben den Jugendgruppenleitern einige Angebote des Roten Kreuzes und Jugendrotkreuzes näher gebracht.

Meine Linksammlung dazu gibt es hier: http://del.icio.us/annapittl/gl-oeff2009