Tag Archives: security

IT explained

Mathias at openslava

Nach inzwischen mehr als zwei Jahren in sehr unterschiedlichen Rollen für George, fragen mich Freunde und frühere Weggefährten oft, was ich in der Bank denn so tue. Vielleicht erklärt’s ja mein Talk bei der openslava 2016😉

IT explained

George bloggt

2012 habe ich an dieser Stelle über IT in Banken gebloggt. Dass ich zweieinhalb Jahre später selbst tief drinnen in der IT einer Bank arbeite, hätte ich damals nicht gedacht. 

Als Teil des Teams rund um George gibt’s nun einen Beitrag über Sicherheit und Datenschutz – ein wirklich spannendes IT-Thema im Kontext von Bankensoftware! Hier geht’s zu meinem Artikel im George Blog.

Und die Tatsache, dass es besser geschrieben ist, als die Texte hier in meinem Blog, liegt an meinem Ghostwriter Dag;-)

hacks

Last-minute door hack

Im Rahmen eines Großprojekts wird auf einige Türen und die Steuerbarkeit selbiger vergessen. Und schon sitzt man in einer großen Runde und diskutiert unter Zeit- und Kostendruck viele umständliche Lösungen. Was hier folgt, ist die wahrscheinlich größte Kosteneinsparung pro Zeiteinheit Softwareentwickler in der Geschichte des Häuslbauens – mein unvorstellbarer Kaffeekonsum bereits berücksichtigt… 

Man sollte meinen, eine Tür über einen Taster zu öffnen sei trivial. Doch was ist in einem Gebäude mit 1.500 Mitarbeitenden und 6.000 Türen schon trivial? Insbesondere wenn man nicht Türtaster auf jeden Schreibtisch stellen kann, und das Gebäude wenige Wochen vor Eröffnung ansich bereits fertig verkabelt sein sollte.

Elektriker öffnen Türen üblicherweise über potentialfreie Kontakte, also mit viel Kupfer zwischen Tastern und den Türen, aber eigentlich auch nur deswegen, weil die law of the instrument greift:

“if all you have is a hammer, everything looks like a nail”

Ich glaube, diesmal war dieses Gesetz auf meiner Seite, bzw. war ich eben in diesem Moment derjenige mit dem richtigen Hammer. Nailed it!

Türen via TCP/IP öffnen

Im Rahmen des Projekts rund um die elektronische Schließanlage haben wir uns eine Programmierschnittstelle (API) ausbedungen, welche unter anderem auch Türen öffnen soll. An einer Universität bestehen hierfür zahlreiche Anwendungsfälle, beispielsweise beim Öffnen von Lehrräumen während gebuchter Veranstaltungen. (An der “alten” WU habe ich das bereits mit einem heldenhaften reverse engineering des Kaba-Systems exos 9300 zustande gebracht. Aber damals gab’s diesen Blog noch nicht und ich hatte auch noch deutlich mehr Zeit zum Programmieren.)

Der richtige Client

Die Türöffnung via Klick auf einer Webseite auszulösen, drängt sich aus technischer Perspektive auf. Doch was ist mit Personen, die keinen  Rechner besitzen, oder gerade wieder mal auf das elendslange Einspielen diverser Windows Patches warten müssen? Eine Türöffnung sollte immerhin augenblicklich erfolgen.

Von einer vor der Tür stehenden Besucherin wird man angerufen, man ist also bereits am Telefon. Aus funktionaler Sicht liegt es folglich nahe, die Türöffnung auf dem Telefon zu bedienen. Cisco sei dank, gibt es für deren Call Manager eine umfangreiche Schnittstelle zur Steuerung des Telefons via XML.

ooo
Über XML eingespieltes Menü für mein Cisco Telefon.

Der Quellcode zur Darstellung des Menüs auf dem Foto:

<?xml version="1.0" encoding="utf-8"?>
<CiscoIPPhoneMenu>
  <Title>Bach Door Service</Title>
  <Prompt>Security FTW</Prompt>
  <MenuItem>
    <Name>IT Front Office</Name>
    <URL>https://bach.wu.ac.at/dd/playground/dooropener/open/1</URL>
  </MenuItem>
  <MenuItem>
    <Name>IT Back Office</Name>
    <URL>https://bach.wu.ac.at/dd/playground/dooropener/open/2</URL>
  </MenuItem>
</CiscoIPPhoneMenu>

gfg
Tür offen!

HTTP und Security

Sind alle Komponenten fertig, gilt es diese über HTTP zur Verfügung zu stellen. (Bevor noch jemand meckert: Telefone landen in einem eigenen VLAN – Türen gehen nur bei Anfragen aus dessen Adressbereich auf.)

e drfr fdw
Web-Interface zur Verwaltung von Telefonen, Türen, Personen und Organisationseinheiten. Die beiden letzteren werden automatisch aus SAP übernommen.
fdfdf
Bei Tastendruck am Telefon wird ein reverse lookup durchgeführt, der entsprechend zugeordnete Türen beim Telefon, bei der eingeloggten Benutzerin und deren Organisationseinheiten sucht. Zur Kontrolle gibt’s die Funktion auch im Web.

tltr;

Etwas Wagemut, acht Stunden Python-Hack und schon ist ein ganzes (Um-)Bauprojekt überflüssig.

hacks

Kiosk-Terminal mit schnellem Login

Dem so genannten Octopus habe ich mich an dieser Stelle bereits ausgiebig gewidmet. Der von uns als Buckelwal bezeichnete Kiosk-Terminal kam bislang zu kurz. Hier also ein schnelles Update.

Der Anwendungsfall ist nicht neu: Im öffentlichen Bereich der WU Wirtschaftsuniversität Wien sollen Kiosk-Terminals schnellen und unkomplizierten Zugang zu Informationen, also dem Internet, sichern. Seit mehr als zehn Jahren gibt es mit der so genannten ByteBar bereits eine Lösung. Inzwischen macht sie vielleicht optisch nicht mehr allzu viel her – auf Seiten der Zuverlässigkeit und Wartungsarmut läuft das System allerdings beeindruckend vor sich hin.

ByteBar WU Wirtschaftsuniversität Wien.

Als ich mir gegen Ende 2010 das erste Mal Gedanken machte, was man am Baulichen und Haptischen verbessern könnte, fiel mein Blick auf die Suchmaschine bei Ikea. Diese vereint in durchdachter Schlichtheit und Pragmatik Features wie Stabilität, Touchscreen und/oder Tastatur, Kosteneffizienz, Servicierungskonzept, Sicherheit und Raumausnutzung.

Bei Ikea wissen die Designer was sie tun: Optimale Raumausnutzung, Schutz gegen Wagerl-Kollisionen, Kosteneffizienz. Mathias, Ikea Wien Süd (2010)

Mit dem schwedischen role model im Gepäck beauftragte ich 2011 einen Kiosk-Hersteller mit der Anfertigung eines Prototypen. Aus Designgründen entschieden wir, die Hardware hinter der Oberfläche verschwinden zu lassen, unterschiedliche Arbeitsplatzhöhen sollten außerdem unser Bekenntnis zu mehr Barrierefreiheit verdeutlichen.

Rendering unseres Prototypen: Unterschiedliche Arbeitsplatzhöhen, viel Karma für Design-Götter.

Nach Liefer-Verzögerungen und einigen Tests wurde der Prototyp Februar 2012 an der WU aufgestellt. Die Software läuft nach wie vor noch nicht so, wie wir uns das am Ende vorstellen. Aber Sinn und Zweck eines Prototypen ist ja eben der vorzeitige Erkenntnisgewinn.

Steht seit Februar 2012 an der WU für öffentliche Tests.

Öffentliches Internet versus die Abwehr anonymer Surfer

Der Großteil des studentischen Feedbacks auf Facebook drehte sich schon bald um die Haptik der Tastatur. Ich ahnte bis dato jedenfalls nicht, wie viel Emotion im Tastatur-Thema liegen kann. Nach einer Abstimmung unter den Studierenden fiel die Wahl schließlich auf eine (hygienische) Metalltastatur mit Trackpad.

Ende Juni veröffentlichte ich das Abstimmungsergebnis auf Facebook. Gleich die allererste Reaktionen sollte das Thema Browser/Software nochmal komplett drehen:

“Viel wichtiger wäre es wenn das ZID es endlich mal schaffen würde das man auf der WU eigenen (!) Homepage endlich die Suchfunktion nutzen könnte! Ich habe dass schön mehrmals angeregt bin bis jetzt aber immer auf taube Ohren gestoßen.”

Studierender auf Facebook

An der ByteBar erhält man beim Aufruf WU-fremder Seiten eine Fehlermeldung: Der Zugriff auf externe Seiten wird nämlich verhindert, um Surfzeiten zu begrenzen und somit Wartezeiten für andere zu verkürzen. Diese Maßnahme erachte ich allerdings aus zwei Gründen für höchst fraglich:

  1. Im Zeitalter von Web 2.0, Cloud und whatever liegen nunmal sehr viele nützliche Dinge nicht innerhalb der WU. Spätestens bei der outgesourcten Suche über Google – wie oben mokiert – wird die Sache peinlich.
  2. Die Begrenzung des Internetzugangs war vor zwölf Jahren sicher sinnvoll. Doch ist sie das dank Breitband und Smartphones noch immer?

Mein Vorschlag, Internet einfach “aufzudrehen”, fand jedenfalls keine Mehrheit. Ich kann die Bedenken nachvollziehen, dass dadurch jeder Fremde an die WU surfen kommen könnte – unangenehm wird das jedenfalls bei strafbaren Aktionen im Netz… Kurzum: Ein Login-Mechanismus musste her.

Python + WebKit + Studierendenausweis

Gemeinsam mit unserem kongenialen Hightech-Partner La Gentz war schnell die Idee geboren, den Studierendenausweis alternativ zur mühsamen Username/Passwort-Authentisierung  zu verwenden. Eine Authentisierung soll innerhalb kürzester Zeit erfolgen – das simple Hinhalten der MIFARE-Karte erfüllt diese Anforderung perfekt.

Außerdem entschieden wir uns, einen WebKit-basierten Browser from scratch zu implementieren. Das erspart die mühvolle Arbeit, den Browser gegen noch so kreative Usereingriffe abzusichern. Ein Login-Widget liegt semi-transparent über den Inhalten des Browserfensters und fordert zum Hinhalten der Karte auf. Aktuell überprüfen wir das UI noch auf seine Usability.

Details zur technischen Umsetzung finden sich im La Gentz Blog.

Fehlermeldung im unauthentisierten Betrieb. Das semi-transparente Widget lädt zum Einloggen via Karte oder Username/Passwort ein.

Nach dem Login ist unbegrenztes Surfen möglich. Ein Countdown visualisiert die verbleibende Zeit im Falle von Inaktivität.

Siehe da: Nach dem Login darf ich unbegrenzt surfen. Danach kann ich mich abmelden oder werde nach 1:30 Inaktivität automatisch rausgeschmissen.

Mit Ubuntu ist ein Betriebssystem ohne Wintendo-Krankheiten gefunden, LDAP bzw. JSON-RPC dienen zur Authentisierung. Demnächst folgt noch der Netzwerk-Boot (ähnlich den Door Displays).

Somit ist Websurfen künftig zufriendenstellend möglich, und wir brauchen keine Angst vor Internet-absaugenden Massen zu haben;-)

meta

Insta-Rich and Insta-Used!

Es gibt kaum einen Deal, der ferner der Realität zu sein scheint, als Facebooks Übernahme von Instagram. Die Zusammenfassung des Wikipedia-Artikels bedarf keines weiteren Kommentars: Eine Softwarehütte, kaum zwei Jahre alt, 12 Mitarbeiter, kein Ertragsmodell – übernommen für 1 Milliarde US Dollar durch ein Stalking-Service, das zurzeit den größten Börsegang aller Zeiten vorbereitet.

“In der Welt der Software sind die Gesetze der Physik außer Kraft gesetzt. Bei deren Vermarktung anscheinend auch die der Ökonomie.”

Von lukrativen Übernahmeangeboten leider verschont, habe ich in den vergangenen 20 Minuten mit der Open Source Software ImageMagick gespielt. Ergebnis ist eine einzige Zeile Code, die die komplette Kernfunktionalität von Instagram bedeutet: Ein Filter, der Fotos moderner Kameras um mindestens drei Jahrzehnte in die Vergangenheit befördert, indem Farb- und Kontrastumfang sowie Ränder zerstört werden.

mogrify -modulate 120,200,200 -vignette 262x722 -modulate 120,10,100 -fill '#222b6d' -colorize 20 -gamma 0.5 -contrast ecuador.JPG

Das Ergebnis lässt sich sehen – für bescheidene 10 Millionen Euro gehört’s dir, Mark Zuckerberg!

Mein "lavender dusk" Effekt - ich denke, allein schon der Name ließe sich toll vermarkten;-)
Originalbild: Farben, Kontraste, Details - wurscht. Mathias, Ecuador 2011.

Natürlich ist mir bewusst, dass Facebook da nicht die Codebase gekauft hat.

In der echten Welt würde man Maschinen und Anlagen kaufen. In der Hype-Welt des Internets hingegen ist sowas wie Instagram nach spätestens sechs Wochen nach-programmiert. Der Wert ergibt sich aus den Millionen von Nutzern, die das Service kennen, verwenden und dafür bezah… ach, lassen wir das!

Raus aus der Cloud

Jedenfalls laden Millionen Benutzer Bilder hoch und geben en passant persönliche Daten preis, die bestenfalls in aggregierter/anonymisierter Form dem Serviceanbieter als Geschäftsgrundlage dienen. Ich frage mich vermehrt, wie viele Menschen ihre Daten inzwischen ausschließlich gratis in der Cloud ablegen. Die Fotos vom Kind, Lebensläufe, Urkunden, E-Mails oder welche persönlich wertvollen Dokumente auch immer sind bei Gratis-Diensten langfristig jedenfalls nicht gut aufgehoben.

Aus diesem und zahlreichen anderen Gründen ruft Sascha Lobo zum eigenen Blog auf. Ich greife seine Argumente auf und gehe weiter: Wir sollten uns fragen, welche Daten wichtig sind. Was wäre, wenn ich morgen keinen Zugriff mehr auf GMX oder YouTube hätte?

Ich bin kein Privacy-Fanatiker, fällt der Großteil meiner Daten doch in die Kategorie “Belanglos und Entbehrlich”. Die ewige “Facebook ist so böse”-Diskussion empfinde ich sogar als irreführend – werden doch meist ausschließlich Einstellungen erklärt, wie man den Zugriff auf seine Wall limitieren kann. (Beispielsweise auf die fragwürdige Einstellung “Freunde von Freunden”, rechnerisch bei mir rund 20.000 Personen…)

Der Fokus auf die Abschottung innerhalb Facebooks, lässt das größte Übel allerdings gänzlich außer Acht: Facebook selbst. Denn das soziale Medium liest immer mit: Persönliche Nachrichten, Login-Zeiten, Standortdaten, Browser-History (via Social Plugins), usw.

Oder all das Geschriebene in einem Bild:

Gilt natürlich auch für Gmail, Flickr, YouTube, Dropbox, Twitter, Skype, usw.

Ich habe begonnen, meine mir wichtigen Daten akribisch zu sichern. Sie werden ab sofort verschlüsselt und auf unterschiedlichen Standorten bei unterschiedlichen Anbietern gesichert. Auf Facebook oder Google+ poste ich bereits seit längerer Zeit ausschließlich Öffentliches nach dem Motto “Was dort ist, ist ohnehin verloren”.

Tipp 1: Die Bild-Zerstörung Instagrams konsequent weitergedacht findet sich auf Twitter: Text-Only Instagram

Tipp 2: Mit TrueCrypt lassen sich virtuelle Festplatten innerhalb einer verschlüsselten Datei erstellen. Diese kann anschließend sorgenfrei bei Dropbox, Ubuntu One, Google Drive, etc. hochgeladen werden.

IT explained

Gestohlene GIS-Daten und was jeder tun sollte

Technik egal, gleich zum Musterbrief an die GIS springen.

Im “österreichischen Internet” geht es zurzeit ziemlich wild zu: SPÖ, FPÖ und zuletzt die Grünen wurden Opfer von Hack-Attacken, besonders großes Aufsehen erregte vor allem der Datendiebstahl bei der GIS.

Was ist da genau passiert?

Der Angriff bei der GIS lief über eine so genannte SQL-Injection. Wikipedia erklärt’s genauer, aber die Kurzversion lautet etwa so: Browser kommunzieren mit Webservern via URLs – jeder geklickte Link und jedes ausgefüllte Formular sind schließlich Webadressen, also URLs.

Wer sich die URL-Zeile des Browsers schon mal genauer angesehen hat, der erkennt alle Formen von Parametern. Onlineshops müssen beispielsweise wissen, welche Produkte sie anzeigen sollen. Im Onlineshop von biohelp etwa, geschieht dies über den Parameter id mit dem Wert 8:

http://www.biohelp.at/biohelp_h/index.php?option=com_content&task=view&id=8

Es lässt sich nun wohl leicht erraten, welche IDs es sonst noch so gibt… Das Austauschen von Paramtern wird URL-Manipulation genannt. Man kommt dann vielleicht auf Seiten(-kombinationen), die so nie gedacht waren – beispielsweise zum Erotikfilm in der Produktkategorie Priesterzubehör -, aber ein böser Cracker sind wir dadurch noch lange nicht.

Der Befehl id=8 landet irgendwann jedenfalls in einer Datenbank, wo das entsprechende Produkt gespeichert ist. Datenbanken werden mit SQL abgefragt. Auch ohne Datenbankkenntnisse ist wahrscheinlich klar, was hier geschieht:

SELECT name, preis
  FROM produktkatalog
 WHERE produkt_id = <URL:id>

Was wir soeben im Trockentraining gebastelt haben, nennt sich dynamische Webseite. In Abhängigkeit vom Wert id aus dem URL liefert die Datenbank unterschiedliche Ergebnisse. Und diese werden schließlich auf der Produktseite präsentiert.

Do it yourself SQL-Injection

Was ist nun bei der GIS passiert? Nun, der Wert wurde durch etwas ausgetauscht, was deutlich mehr als einen Datensatz liefert, 214.000 um genau zu sein. Man injiziert weitere Befehle in den URL, und daher kommt auch der Name SQL-Injection. Dies könnte etwa so funktionieren:

http://www.biohelp.at/biohelp_h/index.php?option=com_content&task=view&id=8 OR 1=1

Die Eingabe wird in der Datenbank zu:

SELECT name, preis
  FROM produktkatalog
 WHERE produkt_id = 8 OR 1 = 1

Und da 1 immer gleich 1 ist, kämen so alle Produkte der Datenbank retour. Man wäre nun sogar in der Lage, noch gefährlichere Kommandos einzuschleusen, die deutlich mehr Schaden anrichten würden usw.

Der  Gärtner meines Vertrauens (biohelp) ist jedenfalls gegen SQL-Injection abgesichert, und so sind es inzwischen alle halbwegs vertrauenswürdigen Websites – von hochsicheren online-banking Anwendungen bis hin zum Forum der örtlichen Schrebergartenvereinigung.

Die GIS allerdings, sah im Jahr 2007 (Neuentwicklung der Webseite) jedenfalls keinen Anlass, mehr als 200.000 Kundendaten gegen so ein Angriffsszenario zu schützen! Ansich wäre hier mein Artikel zu Ende gewesen, hätte ich gestern nicht nochmal zur Zeitung gegriffen:

Herr Menedetter, mir kommt das Kotzen

Man sollte sich das Interview der Presse mit Herrn Menedetter, Geschäftsführer der GIS, wirklich nicht auf nüchternen Magen zumuten. Hier die beiden Highlights:

“Wir haben die Daten nicht verloren, sie sind uns von einem kriminellen Hackernetzwerk gestohlen worden.”

“Wir (…) weisen darauf hin, genau auf Kontoauszüge zu achten. Der mündige Konsument muss auf seine persönlichen Daten achten.”

Diese Verlogenheit muss bestraft werden. Erstens ist das, was ich oben beschrieben habe kein hochkomplexer Angriff irgendwelcher Kriminellen, wie man sie aus Spionage-Filmen kennt. SQL-Injection auf Webseiten zu ermöglichen, ist grob fahrlässig! Aber anschließend auch noch auf die Mündigkeit der Konsumenten, die so wie ich die Produkte gar nicht kaufen wollen! – hinzuweisen, ist die Höhe.

Kurzum, das österreichische Datenschutzgesetz erlaubt nach §26 ein Auskunftsrecht. Zur Nachahmung wird ermutigt, es kostet eine Briefmarke:

Musterbrief an die GIS

GIS Gebühren Info Service GmbH
Operngasse 20 B 1040 Wien

Sehr geehrte Damen und Herren,

dem Interview der Tageszeitung Die Presse mit Ihrem GF Herrn Menedetter (29. Juli 2011) entnehme ich, dass seiner Darstellung nach, die GIS Opfer eines kriminellen Hackernetzwerks wurde und keinerlei Schuld am Datenverlust trägt. Herr Menedetter wörtlich: “Der mündige Konsument muss auf seine persönlichen Daten achten.”

Da meiner Ansicht nach die GIS gegen §14 Abs. 1 DSG 2000 (Datensicherheitsmanßnahmen nach technischer Möglichkeit und wirtschaftlicher Vertretbarkeit) verstoßen hat und ich mich als mündigen Konsumenten sehe, fordere ich Auskunft über die Ihnen vorliegenden persönlichen Daten zu meiner Person. Insbesondere will ich wissen, was die GIS über mich speichert, und woher Sie diese Daten beziehen. Weiters fordere ich Namen und Anschrift aller Dienstleister, die Sie zur Verarbeitung meiner Daten heranziehen.

Zum Nachweis meiner Identität liegt eine Kopie meines Führerscheins bei. Ich weise Sie höflich auf die lt. Gesetz achtwöchige Frist zur Beantwortung meines Begehrens hin.

Mit freundlichen Grüßen

Mag. Mathias Frey