Vlingo die zweite und es kommt noch schlimmer…

 

Es ist der 24.01.2012 18:00 Uhr.

Gestern Abend wollte ich die Fakten vom Sonntag noch einmal verfeinert und zwecks besserer Gesamtübersicht hinsichtlich der technischen Hintergründe zusammentragen. Dabei stellte ich jedoch Erstaunliches fest, über das ich Euch hier genauer berichten möchten.

Um 18:39 Uhr haben ich begonnen via Logcat aufzuzeichnen und beschlossen, um das Ganze realistisch erscheinen zu lassen, im Vorwege die auf dem Samsung Galaxy Note vorinstallierte App “Sprachsteuerung” komplett in den Auslieferungszustand zu versetzen, in dem wir alle Daten der App löschten.

Hier nun die einzelnen von uns vollzogenen Schritte:

Zunächst habe ich das Samsung Galaxy Note per USB Kabel an den Laptop angeschlossen und das Logcat in der Eclipse Entwicklungsumgebung geöffnet.

Dann wurde in das „Menü – Einstellungen – Anwendungen – Anwendungen verwalten – Alle“ gegangen und bei der App Sprachsteuerung auf „Daten löschen“ geklickt.

 

 

Hierzu hier der entsprechende Output aus dem Logcat des Samsung Galaxy Note:

01-24 18:40:56.105 I/InstalledAppDetails(20785): Clearing user data for package : com.vlingo.client.samsung
01-24 18:40:56.105 I/ActivityManager( 2784): Force stopping package com.vlingo.client.samsung uid=10010
01-24 18:40:56.105 W/ActivityManager( 2784): Scheduling restart of crashed service com.vlingo.client.samsung/com.vlingo.client.safereader.SafeReaderService in 5000ms
01-24 18:40:56.105 W/ActivityManager( 2784): Scheduling restart of crashed service com.vlingo.client.samsung/com.vlingo.client.lmtt.LMTTService in 15000ms
01-24 18:40:56.110 I/ActivityManager( 2784): Force stopping service ServiceRecord{40ea6c70 com.vlingo.client.samsung/com.vlingo.client.safereader.SafeReaderService}
01-24 18:40:56.110 I/ActivityManager( 2784): Force stopping service ServiceRecord{40b22fe8 com.vlingo.client.samsung/com.vlingo.client.lmtt.LMTTService}

Diese Einträge zeigen einerseits, dass die Vlingo-„user data“ scheinbar gelöscht wurden und der Service von Vlingo gestoppt wurde. Soweit so gut. Nun wird der Service zwar wieder für einen neuerlichen Start vorgemerkt, was aber hier erst mal nebensächlich ist.

Ich gehe also den obigen Einträgen folgend, vorerst davon aus, dass alle unsere Daten nun vom Gerät gelöscht sind.

Als nächstes starten wir die App „Sprachsteuerung“ auf unserem Samsung Galaxy Note und verfolgen gespannt, was sich nun im Logfile (Logcat) unseres Samsung Galaxy Note tun wird. Dieses kann übrigens auch versehentlich passieren, wenn zweimal kurz hintereinander die Hometaste gedrückt wird, da dieses Verhalten standardmäßig in der App voreingestellt ist.

Hier also der stark gekürzte und kommentierte Logcat Auszug:

01-24 18:42:05.375 D/VlingoApplication:main(25106): VLG_onCreate <– Hier starteten wir die App Vlingo

…….. (Auslassungen)

Ab hier werden jetzt einige Infos von der App zusammengesucht… (gekürzt)
01-24 18:42:05.395 D/Settings:main(25106): VLG_VLG_Settings:_Setting init – isBackground: false
01-24 18:42:05.990 D/Settings:main(25106): VLG_VLG_Settings:_init firstRun ClientConfiguration.isChineseBuild(): false
01-24 18:42:05.995 D/Settings:main(25106): VLG_VLG_Settings:_init firstRun defaultWebsearchEngine: google
01-24 18:42:05.995 D/Settings:main(25106): VLG_VLG_Settings:_init firstRun webSearchURLDefault: http://www.google.com/m?cx=partner-pub-5324388728707269:o6qccq-17aj&q={query}
01-24 18:42:07.665 D/BluetoothManager:main(25106): VLG_BT isBluetoothAudioOn:false

…….. (Auslassungen)

01-24 18:42:08.030 D/HttpManager:main(25106): VLG_Queing high priority http request: VVHello <– Hier startet jetzt der erste Connect zu Vlingo

…….. (Auslassungen)

01-24 18:42:08.035 I/HttpManager-BackgroundHttpManager1(25106): VLG_Calling fetchReponse for parent com.vlingo.client.vvs.VVServerRequest@4062a060
01-24 18:42:08.035 D/HttpRequest:BackgroundHttpManager1(25106): VLG_** fetch response com.vlingo.client.vvs.VVServerRequest@4062a060 url=http://samsungvuiasr.vlingo.com:80/voicepad/hello
01-24 18:42:08.035 D/Settings:BackgroundHttpManager1(25106): VLG_VLG_Settings:_Current system locale: de-DE
01-24 18:42:08.050 D/Settings:BackgroundHttpManager1(25106): VLG_VLG_Settings:_Exact locale match: de-DE
01-24 18:42:08.080 D/BluetoothManager:BackgroundHttpManager1(25106): VLG_BT isBluetoothAudioOn:false
01-24 18:42:08.080 D/VLServiceUtil:BackgroundHttpManager1(25106): VLG_** vlclient: DeviceMake=samsung; DeviceOSName=Android; DeviceModel=GT-N7000; DeviceOS=2.3.6; Language=de-DE; ConnectionType=DirectTCP; Carrier=T-Mobile A; CarrierCountry=AT; DeviceID=359532540167434; AudioDevice=Android <– Hier wird schon wieder die IMEI mit einbezogen

…….. (Auslassungen)

01-24 18:42:08.230 D/VLServiceUtil:BackgroundHttpManager1(25106): VLG_** request headers: {X-vlsr=AppID=com.samsung.android.umpc, Accept-Language=de-DE,de;q=0.7,en;q=0.5, X-vllocation=Lat=46.178338204999932;Long=14.362434382504343;Alt=0.0;GSM_MCC=232;GSM_MNC=03;CID=2107021;LAC=58400;RAC=0, Accept-Charset=utf-8,ISO-8859-1;q=0.5,*;q=0.5, X-vlsoftware=Name=SamsungVoiceUI; Version=2.9.0.B1104; AppChannel=Preinstall Free, x-vlclientdate=Date=2012-01-24, X-vlclient=DeviceMake=samsung; DeviceOSName=Android; DeviceModel=GT-N7000; DeviceOS=2.3.6; Language=de-DE; ConnectionType=DirectTCP; Carrier=T-Mobile A; CarrierCountry=AT; DeviceID=359532540167434; AudioDevice=Android, X-vlprotocol=Version=3.6; ResponseEncoding=text/xml, X-vvs=Version=1.0, Content-Type=application/octet-stream;boundary=——————————-1878979834, Cache-Control=no-cache,no-store,max-age=0,no-transform} <– Hier wird schon wieder die IMEI mit einbezogen und auch bereits die Location sowie andere Provider Infos hinzugefügt und zu einem HTTP Headerelement zusammengefügt

…….. (Auslassungen)

01-24 18:42:08.235 I/AndroidVConnectionFactory-BackgroundHttpManager1(25106): VLG_In createConnection host http://samsungvuiasr.vlingo.com:80/voicepad/hello
01-24 18:42:08.265 I/AndroidVConnectionFactory-BackgroundHttpManager1(25106): VLG_Got connection com.vlingo.client.android.core.http.custom.AndroidVStreamConnection@40592788
01-24 18:42:08.265 I/ConnectionManager-BackgroundHttpManager1(25106): VLG_Got connection com.vlingo.client.android.core.http.custom.AndroidVStreamConnection@40592788 result com.vlingo.client.core.net.ConnectionResult@406a9c28
01-24 18:42:08.280 I/HttpRequest-BackgroundHttpManager1(25106): VLG_** Getting new http connection. method POST hc com.vlingo.client.android.core.http.custom.AndroidVStreamConnection@40592788
01-24 18:42:08.280 D/HttpRequest:BackgroundHttpManager1(25106): VLG_** postData=<Hello PhoneHash=““/> <– Hier wurde der Request schon übermittelt

…….. (Auslassungen)

01-24 18:42:08.990 D/TermsOfServiceManager:main(25106): VLG_getTOSDialog()
01-24 18:42:08.990 D/Settings:main(25106): VLG_VLG_Settings:_Updating locale: de-DE
01-24 18:42:08.990 D/TermsOfServiceManager:main(25106): VLG_!Settings.isSamsungDisclaimerAccepted() <– Hier wurde wohl irgendwie auf Bestätigung des Disclaimers geprüft (Scheinbar nicht ganz korrekt!)

…….. (Auslassungen)

Jetzt werden einige Infos in eine XML-Struktur zusammengefasst (Der besseren Ansicht halber haben wir diesen Abschnitt etwas aufbereitet):

<VV>
– <ActionList>
– <Action n=“SetConfig“>
<Param v=“<VLConfig MinAppVersion=“1″><Setting n=“Config.NeedsActivation“ v=“false“/></VLConfig>“ n=“Config“ />
</Action>
– <Action n=“SetConfig“>
<Param v=“<VLConfig MinAppVersion=“1.4″><Setting n=“Config.IsPremium“ v=“true“/><Setting n=“client_config_safereader“ v=“true“/><Setting n=“client_config_in_car“ v=“true“/><Setting n=“client_config_action_bar“ v=“false“/><Setting n=“client_config_tts“ v=“true“/><Setting n=“client_config_answers“ v=“false“/><Setting n=“client_config_movies“ v=“false“/><Setting n=“client_config_restaurants“ v=“false“/><Setting n=“client_config_travel“ v=“false“/><Setting n=“client_config_superdialer“ v=“false“/><Setting n=“client_config_superdialer_en-US“ v=“true“/><Setting n=“client_config_localsearch“ v=“false“/><Setting n=“client_config_localsearch_en-US“ v=“true“/><Setting n=“client_config_foursquare“ v=“false“/><Setting n=“client_config_twitter“ v=“true“/><Setting n=“client_config_facebook“ v=“true“/><Setting n=“client_config_social“ v=“true“/><Setting n=“client_config_navigation“ v=“true“/><Setting n=“client_config_auto_punctuation_en-US“ v=“true“/><Setting n=“client_config_auto_punctuation“ v=“false“/><Setting n=“Config.NeedsActivation“ v=“false“/><Setting n=“Config.Support.Url“ v=“http://vlingo-en.custhelp.com/app/home/p/180″/><Setting n=“Config.Server.BillingWAP“ v=“https://bls.vlingo.com/blcustomerui/?AppInstanceID=7cd8eb27-1d93-4cff-9d8c-4215d3670c6b&amp;AppChannel=Preinstall+Free&amp;SoftwareName=SamsungVoiceUI&amp;DeviceID=359532540167434&amp;SoftwareVersion=2.9.0.B1104&amp;Carrier=T-Mobile+A&amp;SubNo=“/></VLConfig>“ n=“Config“ />
</Action>
</ActionList>
</VV>
01-24 18:42:09.220 D/VLConfigImporter:BackgroundHttpManager1(25106): VLG_updateSetting: Config.Server.BillingWAP https://bls.vlingo.com/blcustomerui/?AppInstanceID=7cd8eb27-1d93-4cff-9d8c-4215d3670c6b&AppChannel=Preinstall+Free&SoftwareName=SamsungVoiceUI&DeviceID=359532540167434&SoftwareVersion=2.9.0.B1104&Carrier=T-Mobile+A&SubNo= <– Hier wurde das ausnahmsweise mal verschlüsselt übertragen (HTTPS, also secure)

…….. (Auslassungen)

01-24 18:46:09.490 I/HttpRequest-BackgroundHttpManager2(25106): VLG_** Executing HttpRequest: ActivityLog url=http://samsungvuiasr.vlingo.com:80/voicepad/activitylog cookies={} extra-headers={X-vlsr=AppID=com.samsung.android.umpc, Accept-Language=de-DE,de;q=0.7,en;q=0.5, X-vllocation=Lat=46.178338204999932;Long=14.362434382504343;Alt=0.0;GSM_MCC=232;GSM_MNC=03;CID=2107023;LAC=58400;RAC=0, Accept-Charset=utf-8,ISO-8859-1;q=0.5,*;q=0.5, X-vlsoftware=Name=SamsungVoiceUI; Version=2.9.0.B1104; AppChannel=Preinstall Free, x-vlclientdate=Date=2012-01-24, X-vlclient=DeviceMake=samsung; DeviceOSName=Android; DeviceModel=GT-N7000; DeviceOS=2.3.6; Language=de-DE; ConnectionType=DirectTCP; Carrier=T-Mobile A; CarrierCountry=AT; DeviceID=359532540167434; AudioDevice=Android, X-vlprotocol=Version=3.6; ResponseEncoding=text/xml, X-vvs=Version=1.0, Content-Type=application/octet-stream;boundary=——————————-1878979834, Cache-Control=no-cache,no-store,max-age=0,no-transform}
01-24 18:46:09.490 D/HttpUtil:BackgroundHttpManager2(25106): VLG_method: POST
01-24 18:46:09.490 D/HttpUtil:BackgroundHttpManager2(25106): VLG_url:http://samsungvuiasr.vlingo.com:80/voicepad/activitylog <– Hier wurden schon wieder Daten übertragen die wir weiter oben schon mal sahen .. Diesmal wieder unverschlüsselt (HTTP)

In dieser Art geht es nun noch eine kleine Weile weiter mit einigen Datenübertragungen … bis:

01-24 18:52:20.655 D/CarActivity:main(25106): VLG_onDestroy<– Hier wird der Service der die ersten Daten sammelt und überträgt, erstmal beendet
01-24 18:52:20.655 D/CarActivity:main(25106): VLG_uninitializeCarActivity false

Der Auszug aus dem Router-Log beweist, dass tatsächlich Daten übertragen wurden:

[Site allowed: samsungvuieventlog.vlingo.com] from source 192.168.1.160, Tuesday, Jan 24,2012 18:42:08
[Site allowed: samsungvuiasr.vlingo.com] from source 192.168.1.160, Tuesday, Jan 24,2012 18:42:08

Auf dem Gerät wurde nun per ADB Shell das Kommando „ps“ abgesetzt, um die zur Zeit aktiven Prozesse aufzulisten und zu zeigen, dass die im Logcat gezeigten Zugriffe auch wirklich von der vermuteten Vlingo App stammen.:

ps
USER PID PPID VSIZE RSS WCHAN PC NAME
app_10 25106 2656 290060 44664 ffffffff 00000000 S com.vlingo.client.samsung
app_10 25153 2656 219032 21852 ffffffff 00000000 S com.vlingo.client.samsung.engine

Es ist mittlerweile 18:46 Uhr und etwas verwundert, dass bereits auf den Server zugegriffen wurde, obwohl doch noch nichts bestätigt wurde, machen wir als erstes mal einen Screenshot vom Galaxy Note.

Hier dazu die entsprechende Logzeile, die sowohl die Zeit, als auch den Filenamen des Screenshots zeigt:

01-24 18:46:28.355 D/ScreenCaptureService(25214): Media Scan for filepath: file:///mnt/sdcard/ScreenCapture/SC20120124-184627.png

Bild 1: Anmerkung: Im Bild wurde die Uhrzeit gelb markiert um den Gleichlauf mit dem Logdaten zu dokumentieren.

Es ist jetzt 18:52 und im Logfile tauchen keine Vlingo-Aktivitäten mehr auf.

Wir haben übrigens nur auf „Zurück“ geklickt und nicht den ersten Screen, der wohl von Samsung in die App eingebaut bzw. hinein reklamiert wurde, bestätigt, geschweige denn den zweiten Screen, welcher erst danach zum Vorschein kommt und auf welchem der Benutzer den Datenschutzrichtlinien und den Nutzungsbestimmungen der Firma Vlingo Inc. zustimmen muss. Dieser ist uns gar nicht erst angezeigt worden.

Das Fazit, welches wir daraus ziehen ist, dass bereits Daten an Vlingo übermittelt werden, bevor auch nur eine einzige Bestätigung am Gerät angeklickt wurde. Das halten wir nun wirklich für den Gipfel der Unverfrorenheit. Darüber hinaus würden wir hier einen eklatanten Verstoß gegen geltendes Datenschutzrecht attestieren. Zumal und ins besonders, als dass hier Daten, welche sehr wohl dazu geeignet scheinen ein spezielles Gerät an einer gegebenen Örtlichkeit zu identifizieren, unverschlüsselt über das Internet auf einen Server in den USA übermittelt werden.

Auffällig ist, dass hier zwei neue URLs ins Spiel kommen, die wir vorher noch nicht beobachten konnten. Zum einen ist das die URL: “http://samsungvuiasr.vlingo.com:80/voicepad/hello” an welche einige Daten wie Standort, IMEI usw. (wie gehabt) übermittelt werden.

Zum anderen, die zweite URL ist: “https://bls.vlingo.com/blcustomerui/…… “

Hier wird etwas verschlüsselt übertragen, erkennbar an dem führenden Protokoll HTTPS (secure) .. „Hey es geht doch„, mag man im ersten Moment denken. Dies scheint aber, den weiteren Daten nach zu urteilen, lediglich die Produktregistrierung zu sein.

DOCH HEY, wir haben noch nichts zugestimmt! Keinen einzigen Button mit “Bestätigen” angeklickt! Keinen Datenschutzrichtlinien und Nutzungsbestimmungen zugestimmt ….

WAS SOLL DAS Vlingo?

Zusammenfassend kann man wohl sagen, dass es nun Zeit wird, dass Vlingo und Samsung zu dieser Angelegenheit Stellung beziehen.

Wir haben jedenfalls, bereits nach unserem ersten Blog zu diesem Thema, die Pressestelle von Vlingo Inc. am 23.01.2012 per Email angeschrieben und auch Samsung wurde in derselben Angelegenheit informiert und um Stellungnahme ersucht.

Da meinen Kollegen und mich bis heute noch keine Antwort oder Stellungnahme von Vlingo erreicht hat, werden wir mit Erscheinen dieses Blogs erneut direkt mit Dringlichkeit eine Email an Vlingo Inc. und Samsung richten, mit der Bitte um Stellungnahme zu diesen Dingen.

Denjenigen Benutzerinnen und Benutzern, die nun etwas verunsichert sind und das Tool bereits einmal ausprobiert haben, sei gesagt das nach dem wie oben beschrieben, die Daten der App gelöscht werden, scheinbar KEINE weiteren Daten an Vlingo übermittelt werden. Allerdings ist diese App dann auch nicht mehr nutzbar. Außerdem fehlt uns noch ein Vergleich zur nativen Vlingo-App auf anderen Geräten. Wer uns dort behilflich sein möchte, kann uns gerne sein Logcat zukommen lassen, nachdem er die obigen Schritte durchgeführt hat.

Unserer Meinung nach, wäre es an der Zeit, dass Google den Anwendern eine Möglichkeit an die Hand gibt, derartige Datenschleudern zu erkennen. Einen solchen Vorschlag hat zum Beispiel der Harvard-Internet-Rechtler Jonathan Zittrain schon einmal gemacht. Er schlug der Mobilfunkindustrie vor, eine sogenannte Transparenzfunktion in Ihre Geräte zu implementieren, die es den Usern zu jeder Zeit ermöglichen würde, festzustellen mit wem das Gerät kommuniziert und welche Daten es dabei übermitteln würde. Quelle: Heise

Darüber hinaus wäre es sicher wünschenswert, wenn Hersteller wie Samsung, wenn sie von derartigen Vorfällen Kenntnis erlangen, ein Update herausbrächten, welches solche Apps durch den User deinstallierbar macht.

Auf jeden Fall werden wir Euch weiter berichten, wie und ob Vlingo und oder Samsung sich in dieser Angelegenheit äußern.

Anmerkung: Die in den hier gezeigten Logauszügen gezeigten Location-Daten und IMEIs sind verfälscht und entsprechen nicht den wahren Gerätedaten des Eigentümers!

Ich möchte auch meinem AndroidPIT Kollegen und lieben Freund A.Voetz (aka Kaptain Voetz) für das geduldige Lektoring danken.

20.02.2012 
Nachsatz: Vlingo hat bereits am 26.01.2012 promt reagiert und in einer gemeinsamen Telefonkonferenz die Fehler eingeräumt und bereits einige Dinge bereigen können.
Die genauen Fakten dazu sind auf im News-Bereich AndroidPIT nachlesbar.

Ein Gedanke zu „Vlingo die zweite und es kommt noch schlimmer…“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.