Gefährliche App-Tipps?

Beim TechUpdate #003 gab ich einen App Tipp, Roman hat darauf seine sehr berechtigten, allgemeinen Sicherheitsüberlegungen gepostet. Die sind es meiner Meinung nach wert, nicht in einem Kommentar „unterzugehen“.

Roman schreibt (hier der Original-Kommentar):

Die Software stammt von einem mir unbekannten Programmierer, der keinerlei offensichtliches Geschäftsmodell dahinter hat, die Software nicht digital signiert und auch keine Checksums auf der Webseite veröffentlicht. Auch der Quellcode ist nicht offen.

Ich installiere deshalb im Normalfall nur mehr Software, die folgende Kriterien erfüllt:

  • Software ist für meine tägliche Arbeit so wichtig, dass ich nicht darauf verzichten kann
  • Software ist von einem bekannten Hersteller digital signiert und Closed Source ODER
  • Software ist Open Source und Autor veröffentlicht prüfbare Checksums

Absolut richtig, dieser Auflistung kann man zustimmen! Wohlwissend, dass sie allerdings auch nur einen Anschein an Sicherheit vermitteln. Weil:

  • Auch wenn der Entwickler bekannt ist, so kann sich dieser als kriminell herausstellen. („Er war immer so ein netter Nachbar“ oder: „Das ist doch ein großer deutscher Autobauer, der betrügt doch nicht“.)
  • Geschäftsmodelle können sich ändern (wobei… wenn keines ersichtlich ist, dann ist das tatsächlich ein Warnsignal).
  • Auch Schadsoftware kann digital signiert werden.
  • Checksums kann ich auch für Trojaner erstellen.
  • Wie man in den letzten Jahren leider immer wieder eindrucksvoll mitbekommen hat: Der theoretische Vorteil, dass der Quellcode einsehbar ist, führt nicht dazu, dass der Quellcode auch angesehen wird.

Roman schreibt weiter:

Zu oft hat sich Freeware in der Vergangenheit in Adware, Spyware und sogar in Ramsonware verwandelt. Vielleicht ist die aktuelle Version der Software sauber. Aber wenn man das Video ein paar Monate oder Jahre später anschaut, nach der Software sucht, dann ist nicht mehr Version 3.83 aktuell, sondern 3.85. Und diese Version enthält einen Downloader, der im Hintergrund Locky oder was dann auch immer aktuell ist nachlädt, weil der Autor Geld braucht.

Es gibt auch hier am Blog Beispiele genau dafür. Ich habe früher zum Mounten von ISOs die Software Deamon Tools verwendet (und empfohlen), irgendwann hat diese plötzlich angefangen Adware mitzuinstallieren. Und Slysofts CloneDrive gilt ja wohl auch nicht mehr als Tipp. Gut, dass die Funktionalität nunmehr im OS ist.

Selbst wenn man dem Autor keine bösen Absichten unterstellt: Wie sicher ist sein Webserver? Was schützt mich davor, dass Verbrecher die Datei modifizieren, ohne dass der Autor davon etwas mitbekommt?

Richtig. Man kann es nicht wissen. Wenn der Webserver nicht mehr unter der Kontrolle des vermeintlichen Autors ist, dann können auch die Downloads nicht mehr als sicher angesehen werden. Siehe die infizierten Images bei Linux Mint. Selbst dort, wo ein Dritter die Downloads prüft, rutscht immer wieder Malware durch.

Fazit

Mir ist die Konsequenz nicht ganz sicher. Vermutlich einfach sicherheitshalber keine 3rd Party Software empfehlen? Nur Apps aus dem Windows Store, wo zumindest ein weiterer Schutz dabei ist?

Und deshalb gebe ich die Frage von Roman weiter:

Kann man fremder Software noch vertrauen?

 

5 Kommentare

  • Vielen Dank für das Aufgreifen meines Kommentars. Wie so oft im leben gibt es wohl auch hier keine eindeutige Antwort. Wir leben in einer Zeit, in der Software großen Nutzen bereiten, aber (siehe Locky & Co) auch großen Schaden anrichten kann. Während der Nutzen von Software in der breiten Bevölkerung allgemein anerkannt ist, ist das Bewusstsein für mögliche Schäden nur gering ausgeprägt.

    Ich halte Software für eine relativ neue Kulturtechnik, die die Menschheitsgeschichte in den nächsten Jahrhunderten prägen wird, ähnlich sie es der Buchdruck von Johannes Gutenberg tat. Der Buchdruck ermöglichte es, große Menschenmengen relativ billig mit Informationen zu versorgen. Software ermöglicht es, Maschinen mit geringem Aufwand völlig neue Funktionen zu entlocken. Software ermöglicht es auch Menschen wie mir, die mit zwei linken Händen geboren sind, technische Vorgänge zu steuern. Der Buchdruck hat die freie Meinungsäußerung gegenüber großen Bevölkerungsgruppen ermöglicht, auch wenn man selbst noch nicht mächtig war.

    Doch beide Werkzeuge bergen auch zahlreiche Gefahren. Beim Buchdruck haben die Mächtigen jahrhundertelang versucht, die öffentliche Meinung zu unterdrücken – mit wechselndem Erfolg. Wir können natürlich auch bei Software rigide staatliche Zulassungsverfahren einführen. Technisch wäre das relativ einfach, wie geschlossene Systeme wie die XBox, das iPhone oder auch Windows Mobile beweisen. Doch die Gefahr, dass dann mächtige Softwarehersteller darüber bestimmen, welche Software zulässig ist und welche nicht und damit unliebsame Konkurrenz unterdrücken und Innovation behindern, wie es z. B. Apple bei iOS durch das Verbot fremder Browser-Engines vormacht, ist einfach zu groß und sehr real. In so eine Welt möchte ich nicht leben.

    Ich denke, dass der langfristige Ansatz ein gesellschaftlicher sein muss und wir da durchaus aus der Entwicklung des gedruckten Wortes lernen können. Zunächst einmal muss das Schreiben von Software eine Fähigkeit sein, die eine viel breitere Bevölkerung verstehen und anwenden können muss. Ich plädiere dafür, dass jeder Schüler Grundkenntnisse im Programmieren lernen muss, so wie wir Lesen und Schreiben voraussetzen. Nicht jeder, der in der Schule Schreiben gelernt hat, wird ein Autor. Und nicht jeder, der Programmieren lernen wird, wird Software-Entwickler. Trotzdem hilft es, die Möglichkeiten und Gefahren besser zu verstehen. Die Kenntnis dieser Kulturtechnik ist die Voraussetzung für die korrekte und sichere Bedienung der mächtigen Maschine Computer.

    Zweitens glaube ich, dass jede Software ähnlich wie Druckwerke ein Impressum, bei Software in Form einer digitalen Signatur haben sollte. Diese muss leistbar sein. Aber ich glaube auch, dass wir es vielleicht nicht dem „Markt“ überlassen sollten, welche Zertifikate als vertrauenswürdig gelten sollten und welche nicht. Auch bei SSL zeigen sich ja schon die Schwäche dieses „Marktes“. Hier muss es gesetzliche Regelungen geben, die aber so gestaltet sein müssen, dass diese gegenüber kleinen Software-Entwicklern nicht prohibitiv wirken dürfen.

    Beide Ansätze wirken leider nur langfristig oder sind nur langfristig realisierbar. Wenn ich mir zum Beispiel ansehe, wie sich die Qualität des Informatik-Unterrichts an den Schulen in den letzten 20 Jahren verschlechtert hat, glaube ich nicht, dass ich diese Veränderungen noch in meiner berufsaktiven Zeit erleben werde.

    Deshalb gilt es für mich, das Risiko zu minimieren. Und das tue ich, in dem ich möglichst konsequent die im Artikel erwähnten Kriterien anwende. Nein, es ist keine scheinbare Sicherheit. Aber ja, es bietet keine absolute Sicherheit. Das Leben ist lebensgefährlich. Und jeden Tag kann ich von einem herabfallenden Ziegelstein getötet werden. Laufe ich deshalb ständig mit Helm herum? Natürlich nicht! Aber ich versuche doch das Risiko, ums Leben zu kommen, zu minimieren. Ich fahre ein Auto mit Airbags, benutze den Sicherheitsgurt, trage beim Fahrrad fahren meistens einen Helm, und schaue links und rechts, wenn ich über die Straße gehe.

    Und genauso halte ich es mit Software. Auch wenn all diese Kriterien keinen absoluten Schutz bieten, so minimieren sie doch mein Risiko.

    P. S.: Ich habe den App-Tipp auch dem Techupdate #3 zum Anlass genommen, dieses mir wichtige Thema anzuschneiden, weil genau so eine Software ein schönes Beispiel für die Nichterfüllung meiner Kriterien ist. Denn die fast gleiche Funktion lässt sich auch mit Bordmitteln erreichen. Ja, es ist vielleicht ein wenig unbequemer. Aber es ist auch ein wenig unbequemer, beim Motorradfahren einen Helm aufzusetzen.

  • Ich kann das sicher beständigen. Wenn man nach langer Zeit von Mac auf Windows umsteigt will man es natürlich wissen was da so dran ist. Also hab ich mir den Spaß gemacht und mal eine App von einer bekannten Zeitschrift runter geladen die das System auf Probleme und Viren prüft.
    Ergebnis war das einige 1000 Probleme gefunden wurden, gut 1000 Vieren davon 200 hoch gefährlich. Der Hacken an der Sache war nur, das System war ganz frisch installiert und das dies alles bei einen frisch installierten System der Fall ist. Naja das wird nicht sein.
    Ich halte da den Store auch für einen guten Ansatz als Nutzer. Setzt aber voraus das sich diese Software vorher wer ansieht. Allerdings darf so finde ich das auch nicht dazu führen das man dann Software nur mehr von dort installieren kann.

    Schule ist sicher auch ein guter Ansatz. Den gerade für Jugendliche die ja knapp sind mit Geld sind viele Angebote sehr verlockend. Von den Gefahren wissen sie meiner Erfahrung nach wenig oder lassen sie links liegen. Das Problem sehe ich hier aber auch bei den Lehrern, denn ich glaube kaum das sie oft diese Problematik verstehen. Ihr Computer Wissen ist leider halt auch schon oft überholt.

    Es braucht hier sicher auch Aufklärung was kann man mit dem System selbst erreichen, was macht das System auch von selbst. Aber hier spiele ich den Ball auch ein wenig in Richtung Microsoft. Den so manche Dinge kann man sicher auch einfacher gestallten.
    So Systemmeldungen wie “ Das Problem könnte nicht gefunden werden“ sind halt auch nicht Ziel führten. Den was heißt das jetzt, das keines da ist, oder das eines da ist er es aber nicht findet. Was wieder rum die Frage aufwirft, woher weis das System das ein Problem da ist wenn es das Problem gar nicht findet.-)

    Vielleicht kann ja Microsoft auch eine Seite machen wo die User gezeigt wird was das System kann wie man es erreicht. Was Sinnvoll ist und was nicht. Vielleicht als Text oder Video.
    Vielleicht auch mal darauf hinweisen wenn das System mal kurz hackt es einfach auch daran liegen kann weil gerade ein Backup läuft oder sonstige System eigenen Sachen. Oder auch so Sachen was sollte man als erster versuchen wenn. Beispiel wie viele User kommen auf die Idee zuerst mal in der Zuverlässigkeitsüberwachung nach zusehen. Wo bei ich hab auch manchmal den Verdacht die erzählt mir Dinge die gar nicht da sind.-)

    Wie auch immer es ist eine Herausforderung für die Zukunft. Auch was die Verkaufszahlen angeht, je besser sich der User unterstützt fühlt um so her wird er zu einen System greifen.

  • Das ist ein sehr guter und wichtiger Artikel ! Die gute alte Windows 32 Software kann ja installieren was Sie will auf einem PC – dank UAC und Smart Screen ( unter W10 ) kann man im Zusammenspiel mit einem Virenscanner ganz gut leben.

    Im Vergleich dazu haben Apps und Universal Apps ja nicht so viele Möglichkeiten zu tief in das System zu kommen, dafür „schnüffeln“ halt viele Apps den Standort usw. was man ja teilweise auch abstellen kann.

    Worüber ich mir des öfteren Gedanken mache ist die Funktion einer App daten im OneDrive, Dropbox oder ähnliches zu speichern. Da ist mir als „Halb-Techniker“ nicht ganz klar, ob diese Routinen nur vom Betriebssystem kommen und von der aufrufenden App nicht ausgelesen werden im Hinblick auf Username & Passwort ? Der Eingabedialog muss ja von der App durchgeführt werden – könnte dann der ENtwickler diese Login´s irgendwo anders nicht missbrauchen ?

    Jetzt ist ja eine Third Party Amazon Music App im Windows 10 Mobile Store aufgetaucht – und da hätte ich schon bedenken.

    Beim Smartphone war das ein Grund für mich von ANdroid auf WIndows zu wechseln. Apple hat keine Dual SIM Geräte.

  • Ich werde mal versuchen, deine Fragen, Otto, zu beantworten.

    Wie können Apps der Firma A auf Daten der Firma B, die im Internet gespeichert sind zugreifen?

    Das Zauberwort lautet WebAPI. Nehmen wir mal einen fiktiven Dienst namens mycloudstore.com an. Dieser Dienst bietet ein API für fremde App und Webdienste, um auf die Daten zuzugreifen. Wenn der fremde Dienst z. B. eine URL à la https://mycloudstore.com/api/get/Max/PersonalData aufruft, bekommt der Dienst eine Auflistung des Ordners PersonalData vom Benutzer Max zurück.

    Aber der fremde Dienst muss sich doch gegenüber mycloudstore.com authentifizieren, oder?

    Natürlich, kann da nicht jeder dahergelaufene Dienst meine Daten abrufen. Das Zauberwort lautet Authentication Token. Der fremde Dienst hat sich einmal ein sogenanntes Authentication Token von mycloudstore.com generieren lassen. Das ist ein irre langer Schlüssel aus zufälligen Zeichen. Dieser Schlüssel existiert für jeden fremden Dienst separat. Das heißt, dass mycloudstore.com jederzeit weiß, welche Dienste zugreifen und die Schlüssel auch widerrufen können.

    Dieser Authentication Token wird im HTTP Header mitgeschickt. Der HTTP Header wird bei jedem Abruf einer Webseite mitgeschickt. Dieser enhält z. B. den UserAgent String (welchen Browser du benutzt), die URL, die du aufrufen möchtest, evt. Formulardaten, die du gerade geschickt hast usw. Und es ist eben dieser Authentication Token bei jeder Anforderung enthalten, sonst kann der fremde Dienst nicht auf mycloudstore.com zugreifen.

    Heißt das, dass der fremde Dienst auf alle Daten aller Benutzer zugreifen kann?

    Normalerweise nicht, jedenfalls nicht bei den Diensten, die ich kenne. Deshalb musst du beim ersten Zugriff durch den Fremddienst diesem die Berechtigung einräumen, auf deine Daten zuzugreifen. Das funktioniert grob gesagt so:

    1. Der Fremddienst versucht mit seinem Authentication Token deine Daten abzurufen.
    2. Mycloudstore.com sendet ein Access Denied oder eine ähnliche Fehlermeldung zurück.
    3. Der Fremddienst blendet daraufhin ein Browser-Fenster ein, indem er eine URL wie z. B. https://mycloudstore.com/AuthenticateApp/?AppId=555554444333221 aufruft. Die AppId ist bei mycloudstore.com mit dem Authentication Token des Fremddienstes verknüpft.
    4. Jetzt kommst du als Benutzer ins Spiel: Falls noch nicht geschehen, musst du dich im Browser-Fenster jetzt bei mycloudstore.com anmelden. Mycloudstore.com wird dich Fragen, ob du dem Fremddienst Zugriff auf deine Daten gibst. Wenn du das bejahst, wird deine Antwort bei mycloudstore.com hinterlegt. Der Fremddienst mit der AppId und dem Authentication Token kann nun auf deine Daten zugreifen.
    5. Das Browser-Fenster wird geschlossen und der Fremddienst versucht noch einmal Schritt 1. Dies wird nun erfolgreich sein.

    Bei den meisten Diensten, die ich kenne, kannst du die erteilten Berechtigungen für Fremddienste überprüfen und jederzeit widerrufen. Wenn du das machst, beginnt beim nächsten Mal das Spiel von vorne. Jedenfalls erhält der Fremddienst keinen Zugriff auf dein Kennwort.

    Welche Risiken bestehen?

    Neben den üblichen Risiken wie Keylogger oder Trojanern, die sich in den Datenverkehr einklinken, wovon aber der Fremddienst nichts hat, könnte ein Fremddienst an dein Kennwort folgendermaßen herankommen:

    Im Schritt 3 blendet der Fremddienst nicht das echte Anmeldefenster von mycloudstore.com ein, sondern simuliert dieses nur. Als gutwilliger Benutzer gibt man seine Anmeldedaten ein und schon hat der fremde Dienst deine Anmeldedaten. Um dich in Sicherheit zu wiegen, meldet er dich mit den erhaltenen Daten auch gleich an und funktioniert ganz normal. Deshalb lassen die meisten Cloud-Dienste eine automatisierte Anmeldung durch fremde Dienste nicht mehr zu. Aber noch vor einigen Jahren war das z. B. bei Twitter oder Dropbox möglich.

    Aber selbst wenn eine automatisierte Anmeldung nicht möglich ist, könnte ein fremder Dienst einfach simulieren, dass die Kennworteingabe falsch war. Er blendet dann sein simuliertes Anmeldefenster so lange ein, bis du zweimal das gleiche Kennwort eingegeben hast, weil es dann ziemlich wahrscheinlich ist, dass das das richtige Kennwort ist. 100 % sicher kann der fremde Dienst aber nicht sein. Anschließend blendet er das richtige Anmeldefenster ein, setzt also mit dem Schritt 3 normal fort.

    Welche Gegenmittel bestehen gegen diesen Angriff?

    Das beste Gegenmittel ist die Zwei-Faktor-Authentifizierung, bei der man jede Anmeldung noch einmal z. B. über das SmartPhone oder Handy bestätigen muss. Das kann über einen per SMS zugesandten Code oder über eine App erfolgen. Neben Microsoft unterstützen auch Dropbox, Google, Facebook, iCloud diese Zwei-Faktor-Authentifizierung bei ihren Diensten. Teilweise sind die Apps sogar kompatibel zueinander. Ich mag den Microsoft Authenticator übrigens am liebsten. Selbst wenn also ein fremder Dienst nun das Kennwort ausspäht, nutzt ihm das wenig, weil er ja nicht mein SmartPhone hat.

    Ein anderer Weg, ist die Individualisierung des Anmeldefenster. Im Anmeldefenster werden dazu Informationen eingeblendet, die benutzerspezifisch sind und nicht simuliert werden können. Facebook zeigt z. B. das Profilfoto des Benutzers und seinen Namen an. Bei meiner Bank und Paypal kann man die Anrede frei konfigurieren. Wenn nun ein Anmeldefenster von Facebook nicht mein Foto enthält, so kann ich davon ausgehen, dass es gefälscht ist.

    Wenn ein Dienst all das nicht beherrscht, kann man als Benutzer sich zur Regel machen, am Anfang immer absichtlich ein falsches Kennwort einzugeben. Man sollte zweimal das gleiche falsche Kennwort eingeben. Dieses kann ruhig was ganz Einfaches, wie 1234 sein. Erst beim dritten Versuch gibt man das korrekte Kennwort ein, in der Hoffnung, dass das dritte Anmeldefenster tatsächlich vom richtigen Dienst stammt, was ziemlich wahrscheinlich ist.

    Zum Schluss noch eine Anregung für Georg: Vielleicht kannst du ja mal in einem TechUpdate zeigen, wie man die Zwei-Faktor-Authentifizierung beim Microsoft-Konto aktiviert und verwendet.

    • Hallo rokory , vielen Dank für die Erläuterungen und Klarstellung. Ich habe bei den meisten DIensten die Zwei-Faktor-Authentifizierung aktiv ( und ich nutze auch die Microsoft Authenticator App ) Gruss Otto

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s