Banking Apps – Test läuft…

Nach unserem Bericht gestern über die Sicherheitslücken in Centona, haben wir viele Zuschriften erhalten, wie es denn mit der Sicherheit von anderen Banking Apps für iOS und OS X steht. Wir arbeiten bereits mit Hochdruck daran und nehmen die folgenden Apps in den App Security Check:

  1. finanzblick
  2. OutBank
  3. starMoney
  4. iFinance

Zusätzlich wollten einige Leser auch noch wissen, ob die Kommunikation über das Internet mit den Banken verschlüsselt und sicher ist. Das überprüfen wir natürlich auch!

Centona Banking App im Security Check

Wir haben uns die App Centona für iOS und OS X mal näher angesehen, und für Euch knapp 10 Euro dafür angelegt. Grundsätzlich ist die App ganz nett aufgemacht und auch erschwinglich, aber leider total unsicher.

Alle Erkenntnisse die wir hier veröffentlichen könnt Ihr selbst nachprüfen. Alle Angaben gelten sowohl für die iOS als auch die OS X App.

Centona speichert seine Daten in einem sogenannten Bundle. Dieses liegt unter folgendem Verzeichnis:

iOS: Documents/Centona/Centona

OS X: ~/Library/Containers/com.syniumsoftware.centona/Application Support/Cenonta/Centona

centona1

Um an die Daten ranzukommen müsst Ihr das Bundle erst öffnen, dazu rechte Maustaste auf den Bundle Ordner und dann Paketinhalt zeigen:

centona2

In diesem Verzeichnis findet sich die Datei data.ifdata. Dabei handelt es sich um eine normale sqlite Datenbank. Der Struktur nach verwendet die App Core Data, dies erkennt man an den Tabellen Z_METADATA und Z_PRIMARYKEY. Dies ist leider auch der Grundzustand. Sofern man nicht über den Menüpunkt Allgemeine Einstellungen -> Pins und Passwörter stolpert, bleiben alle Daten unverschlüsselt auf dem Mac oder iOS Gerät liegen.

Richtet Euch eins eurer Konten ein und öffnet dann unter OS X ein Terminal und öffnet die Datenbank mit folgendem Befehl:

sqlite3 <Datenbankpfad>

Die Datenbankdatei könnt Ihr einfach im Finder per Drag and Drop in das Terminal Fenster ziehen.

Dann lasst Ihr euch mal die Umsatztabelle ausgeben:

sqlite> select * from zbasisentry;
1|7|1||2|12|||0|1|34|||3072||-1||8/16/2013#-1.00|Einzugsermächtig.-lastschr.||1|Proudly presented by the AppCrashers|
2|7|1||1|21|||0|1|3|||3072||-123||7/4/2013#-123.00|Rückscheck||2|Proudly presented by the AppCrashers|
3|7|1||12|20|||0|1|42|||4096||-1||8/1/2013#-1.00|Terminüberw. OnlineBanking||3|Proudly presented by the AppCrashers|
4|7|1||22|25|||0|1|12|||2048||-1||1/4/2013#-1.00|Überweisung OnlineBanking||4|Proudly presented by the AppCrashers|
5|7|1||17|23|||0|1|9|||4096||-1||2/18/2013#-1.00|Überweisung OnlineBanking||5|Proudly presented by the AppCrashers|

Es werden die Umsätze aus Eurer Datenbank angezeigt.

Ihr könnt sqlite mit

sqlite> .quit

wieder verlassen.

Soweit so gut. Vergebt nun in der App ein Kennwort unter Allgemeine Einstellungen -> Pins und Passwörter > Datenbankpasswort setzen

centona3

In Eurem Datenverzeichnis erscheint ein Ordner Encrypted. Dort ist eine Datei data.ifdata.crypt enhalten. Das ist die nun verschlüsselte Datenbank.

centona4

Beendet Centona.

Wie Ihr selbst sehen könnt ist die Datei data.ifdata immer noch vorhanden. Wiederholt das Öffnen mit sqlite wie oben bereits gezeigt. Ihr werdet sehen, alle Eure Umsätze, Zugangsdaten usw. sind immer noch vorhanden.

Nun löscht Ihr einfach den Order Encrypted.

Startet Centona wieder.

Es wird das Kennwort abgefragt und nach richtiger Kennwort-Eingabe zeigt Euch Centona Eure Daten. Beendet Centona wieder.

Nun löscht Ihr die Datei data.ifdata.

Öffnet Centona wieder.

Die Datei data.ifdata ist wieder da. Die Daten darin sind nach wie vorher unverschlüsselt. Könnt Ihr gerne wieder mit sqlite3 prüfen. Beendet Centona.

Öffnet die Datenbank wie oben angegeben und gebt folgenden Befehl ein:

sqlite> update zuser set zpassword=null;

Verlasst sqlite mit:

sqlite> .quit

Startet centona wieder. Ihr werdet nach keinem Kennwort gefragt und könnt Eure Daten sofort sehen.

Das alles haben wir in folgendem Video zusammengefasst:

http://youtu.be/8vUJwdY0Hh4

Das tragische ist: Selbst wenn die Entwickler die unverschlüsselte Datenbank beim Beenden löschen, wäre zur Laufzeit oder wenn die App abstürzt immer eine unverschlüsselte Datenbank im Dateisystem. Das Sicherheitskonzept ist vollkommen ungenügend.

Fazit: Note 6 – UNSICHER !