[Artikel] Sicherheit im Internet

christoph.zimprich.uni-linz, 10. September 2016, 00:26

Das Internet ist schon lange kein Netzwerk mehr zum Beziehen und Tauschen von statischen Dokumenten unter verschiedensten Teilnehmern. Heutzutage laufen über das Internet die unterschiedlichsten Arten von Diensten mit diversesten Anforderungen an die dahinterliegende technische Landschaft, aber auch der darauf aufbauenden Möglichkeiten zum Konsumieren der Dienste für den Endbenutzer. Einige Services sind nicht nur rechtlich per Gesetz zur Absicherung der Daten, Kommunikation, etc. verpflichtet, sondern sichern auch hinsichtlich ihres Images bzw. Versprechens an deren Benutzer mit modernsten technischen Möglichkeiten ihre Dienste gegen unerlaubte Zugriffe durch Dritte ab. Klassisch findet man die höchsten Sicherheitsstandards bei den Angeboten von Finanzdienstleistungsunternehmen, dem Militär bzw. bei Staaten und auch bei großen multinationalen Konzernen wie z.B. Google und Apple. 

Dieser Artikel gibt einen Einblick in grundlegende Mechanismen zur Sicherung von Diensten und Wahrung personenbezogener Daten im Internet. Dabei werden nicht nur klassisch im Web anzutreffende Aspekte beleuchtet, sondern auch relevante Themenfelder, welche im Zusammenspiel mit heutigen Web-Softwaresystem stehen.

Heutzutage noch oft anzutreffen: Ungesicherte Verbindungen und unverschlüsselte Daten 

Wenn es um die Sicherheit von Diensten geht muss man grundsätzlich mehrere verschiedene Aspekte begutachten:

  • Ist die Kommunikation (zwischen Client und Server) verschlüsselt oder unverschlüsselt?
  • Sind sensible Daten wie z.B. Passwörter im Klartext gespeichert oder sind diese verschlüsselt in einer Datenbank abgelegt?
  • Wird modernste Software verwendet und immer auf den neuesten Stand gehalten?

Es ist schwer zu sagen, welche dieser genannten Aspekte am meisten zur Sicherheit von Services beiträgt. Eine solche Aussage würde auch nur bedingt der Wahrheit entsprechen, da kommende Angriffsszenarien nicht vorhergesehen werden können. Es ist ebenfalls teilweise für den Endbenutzer nicht transparent / nicht sichtbar welche Techniken zur Wahrung der Datensicherheit gewählt bzw. implementiert wurden. General kann man jedoch sagen, dass abhängig vom Typ des Diensten es ratsam ist, bereits gängige Standards aus der Praxis zu übernehmen bzw. dem Dienst bzw. der Vertraulichkeit der Daten entsprechend das Sicherheitsniveau anzupassen.

Kommunikation im Internet

Klassisch läuft ein großer Teil der Kommunikation im Web zwischen verschiedenen Clients (Browsern, etc.) und zentralen Servern ab, jedoch auch von Endgerät zu Endgerät über mehrere Relais (Server, etc.). Egal welchen Weg die zu austauschenden Daten einschlagen, grundsätzlich kann man zwischen ungesicherter und gesicherter Verbindung unterscheiden.

Welche Eigenschaften beschreiben nun ungesicherte bzw. gesicherte Datenverbindungen? Eine einfache, jedoch unbefriedigende Antwort auf diese Frage würde gesicherte Verbindungen als sicher gegen Manipulation bzw. Abhören durch Dritte beschreiben. Jedoch bieten alle in der Praxis relevanten kryptographischen Methoden zur Sicherung der Kommunikation (das One-Time-Pad, welches richtig angewandt nicht gebrochen werden kann (Q1), sei hier ausgenommen, da es nicht praxisrelevant ist) nur eine - je nach Verfahren und Implementierung - bedingte Sicherheit, zum Großteil basierend auf schwer zu lösenden mathematischen Aufgaben. Theoretisch können alle in der Praxis eingesetzten Verfahren in Bruchteilen von Sekunden gebrochen werden, sofern der / die richtigen Schlüssel bekannt sind bzw. erraten wurden, jedoch ist die Wahrscheinlichkeit hierfür praktisch gleich null (jedoch theoretisch nicht null). Im Allgemeinen steht der Aufwand zum Entschlüsseln einer mit moderner Kryptographie abgesicherten Kommunikation nicht mehr in Relation zum Wert der Daten. Aus diesem Grund kann davon ausgegangen werden, dass Versuche, eine verschlüsselte Verbindung zu entschlüsseln, nicht unternommen werden.

Datenkommunikation in der Praxis

In der Praxis trifft man häufig folgende verschiedene Sicherheitsmodelle in der Datenkommunikation:

  • Eine unverschlüsselte Kommunikation welche mit einfachen Methoden durch Dritte abgehört bzw. verändert werden kann. Diese Form ist häufig bei Seiten anzutreffen, deren Inhalt nicht direkt schützenswert erscheint.
  • Gesicherte Verbindungen basierend auf kryptographisch veraltete Methoden. Diese vermeintlich sichere Kommunikation kann insofern problematisch sein, falls Endgeräte (Browser, etc.) die Schwächen des Verfahrens nicht explizit deklarieren, sondern dem Benutzer ein falsches Sicherheitsgefühl geben (In den meisten gängigen Browser wird auf eine verschlüsselte Kommunikation zwischen Client und Server speziell in der Adressleiste hingewiesen siehe Bild 1).
  • Verschlüsselte Verbindungen basierend auf moderner Kryptography.

Bild 1

Sicherheit durch den Einsatz von Zertifikaten

Bevor eine Kommunikation über eine gesicherte Verbindung erfolgt, muss zuvor noch sichergestellt werden, dass der Gesprächspartner auch wirklich jener Dienst / Service ist, mit dem der eigentliche Datenaustausch stattfinden soll. Im Web findet man hierzu eine Art Ausweis in Form von digitalen Zertifikaten. Solche Zertifikate bestätigen die Authentizität von Diensten im Internet mithilfe von moderner kryptographischer Verfahren. Ein solcher „Ausweis“ wird von speziellen Stellen / Unternehmen, sogenannten Zertifizierungsstellen, ausgestellt und signiert. Bei jedem ausgestellten Zertifikat kann überprüft werden, ob es auch wirklich von einer vertrauenswürdigen Zertifizierungsstelle ausgestellt wurde. Dieser Prozess erfolgt mithilfe eines Zertifikats dieses auszustellenden Unternehmens und wird von allen großen Browserherstellern unterstützt bzw. automatisch ausgeführt beim Besuch einer Internetseite, welche ein solches Zertifikat hinterlegt haben. (Die Browser speichern dazu die Zertifikate aller - deren Meinung nach - vertrauenswürdigen Zertifikatsstellen ab). Es bildet sich somit eine Vertrauenskette, da angenommen wird, dass bevor ein digitales Zertifikat ausgestellt wird, die autorisierte Stelle die Echtheit des Inhabers überprüft. (siehe Bild 2)

Bild 2

Mithilfe eines bestimmten Schlüssels des Zertifikats kann bei Verbindungsbeginn eine gesicherte Datenkommunikation aufgebaut werden. Somit kann durch den Einsatz von digitalen Zertifikaten im Internet nicht nur die Echtheit des Gegenüber bestätigt werden, sondern auch eine verschlüsselte Datenkommunikation entstehen.

Google strebt seit geraumer Zeit an, die Sicherheit im Internet zu steigern und berücksichtigt nun beim Ranking der Sucherergebnisse seiner berühmten Suchmaschine, ob eine Seite über ein solches Zertifikat verfügt oder nicht (Q2).

Mit dem Start von Let’s Encrypt im Jahr 2014 gibt es nun eine Zertifikatsstelle, welche gratis Zertifikate anbietet (Q3). Kostenpflichtige Zertifikate haben jedoch noch nicht ausgedient, da Let’s Encrypt nur einen „einfachen Typ“ von Zertifikaten ausstellt, welcher jedoch für einen Großteil der Services / Webseiten genügen dürfte.

Speichern von sensiblen Daten

Wenn es um das Speichern von sensiblen Daten wie z.B. einem Passwort oder der Kreditkartennummer geht, wird in der Praxis häufig ein solcher Wert verschlüsselt in der Datenbank abgelegt. Sollte es somit zu einem Datendiebstahl kommen, kann der Angreifer diese sensiblen Daten nicht ohne weitere Bearbeitung nutzen. Meistens versuchen Angreifer mithilfe von SQL-Injection Daten unerlaubt abzugreifen. Dabei wird eine Lücke ausgenutzt um eigene Datenbankabfragen abzusetzen und Daten zu extrahieren, welche normalerweise dem Benutzer nicht direkt zur Abfrage über das Webportal bereitstehen. Immer wieder sind auch große Firmen von dieser Art von Sicherheitslücke betroffen wie ein Fall aus dem Jahr 2014 bei Sony zeigt (Q4). 

Verwenden von moderner Software und Virtual Patching

Nicht nur die Software der eigenen Webseite ist anfällig für Angriffe und Fehler aller Art: Auch mögliche Laufzeitumgebungen auf dem Server oder der Web-Server sind direkt verwundbar. Es empfiehlt sich nicht nur die Komponenten auf dem neuesten Stand zu halten, sondern auch Maßnahmen zu ergreifen, falls eine Sicherheitslücke bekannt geworden ist und ein Patch noch nicht zur Verfügung steht bzw. das Einspielen des Patches nicht möglich ist. Unter dem Namen „Virtual Patching“ wird eine Reihe von Mechanismen beschrieben welche es ermöglichen, den Angreifer davon abzuhalten die Sicherheitslücke auszunützen, ohne dabei den eigentlichen Fehler zu beheben. Unter den prominentesten Tools hierfür ist mod_security anzuführen (Q5). Dieses Tool ermöglicht durch ein regelbasiertes System bestimmte, durch Regeln erkannte bzw. erfasste, Requests zu blockieren. Mit dieser Vorgehensweise können Anfragen gefiltert werden bevor sie vom Web-Server ausgeführt werden. Ein Fall aus dem Jahr 2011 zeigte die Notwendigkeit eines solchen Vorgehens: Ein interner Fehler im .NET Framework hat dazu geführt, dass mit einer speziellen Server-Anfrage die CPU durch diesen Fehler überlastet wurde (Q6). Mithilfe eines virtuellen Patches konnte die Lücke nach außen hin geschlossen werden, bis Microsoft einen Patch bereitstellte.

Q1: http://users.telenet.be/d.rijmenants/en/onetimepad.htm

Q2: https://webmasters.googleblog.com/2014/08/https-as-ranking-signal.html

Q3: https://letsencrypt.org/2014/11/18/announcing-lets-encrypt.html

Q4: http://www.golem.de/news/sql-injection-sicherheitsluecke-erlaubt-zugriff-auf-sony-kundendaten-1410-110199.html

Q5: https://www.modsecurity.org/

Q6: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3414

Bild 1: https://thawte.tbs-certificates.co.uk/images/500x364xev2.jpg.pagespeed.ic.T3SO5CZlWi.webp

Bild 2: https://upload.wikimedia.org/wikipedia/commons/thumb/d/d1/Chain_of_trust.svg/640px-Chain_of_trust.svg.png

Alle Quellen wurden am 10. September aufgerufen.

0 comments :: Kommentieren