TU Chemnitz
Cover page image

Das Web ein Stück sicherer –

Hausaufgaben für Webmaster

Bedrohungen ‒ wodurch?

Packet sniffing ‒ Mitlesen von unverschlüsseltem Verkehr

Schwachstellen in Webanwendungen

  • Cross-Site-Scripting (XSS) ‒ Gewinnen sensibler Daten, Entstellen von Webseiten
  • Injection (SQL, LDAP, ...) ‒ unberechtigtes Auslesen/Ändern von Daten
  • Cross-Site-Request-Forgery (CSRF) ‒ Aktionen von angemeldeten Webanwendern durch manipulierte URLs
  • Clickjacking ‒ überlagerte (transparente) Inhalte fremder Websites

Bedrohungen ‒ wodurch? (2)

Schwachstellen in Protokollen / Implementierung

Nichttechnische Schwachstellen

  • nachlässige Zertifizierungsstellen
  • Social Engineering

Bedrohungen ‒ durch wen?



Alles so gut es geht verschlüsseln! (1)

1. SSL/TLS so sicher wie möglich konfigurieren

Weiterlesen:

Alles so gut es geht verschlüsseln! (2)

2. Nur noch HTTPS: Always On SSL

HTTP immer umleiten auf HTTPS

Weiterlesen:

Alles so gut es geht verschlüsseln! (3)

HTTP Strict Transport Security (HSTS, RFC 6797)

Browser-Unterstützung:

Server:

Weiterlesen:

Alles so gut es geht verschlüsseln! (4)

Public Key Pinning Extension for HTTP (HPKP)

Weiterlesen:

Alles so gut es geht verschlüsseln! (5)

Feldversuch www.tu-chemnitz.de

Rating A+ auf ssllabs.com

Seit September 2014:

Probleme:

Wer kommt trotzdem via HTTP? 5-7 %

Gegen Clickjacking

Header X-Frame-Options (RFC 7034)

Browser-Unterstützung:

Weiterlesen:

Gegen MIME-Sniffing (IE > 8)

Weiterlesen:

Content-Security-Policy (1)

Problem Cross-Site-Scripting (XSS)

Neuer HTTP-Header: Content-Security-Policy (CSP)

  • Wird vom Server gesendet, konfiguriert Server-Betreiber oder Autor via .htaccess
  • Enthält Liste vertrauenswürdiger externer Ressourcen, die der Browser laden darf
    z. B.
    Content-Security-Policy: script-src 'self' https://ajax.googleapis.com
    → Lade JavaScript nur vom eigenen und vo, angegebenen Server

Content-Security-Policy (2)

Policy auch für viele weitere Ressourcen:


Beispiel:
Content-Security-Policy: default-src 'self'; img-src 'self' *.tu-chemnitz.de; frame-src 'none'

→ alles nur vom selben Server, Bilder von beliebigen Servern in tu-chemnitz.de, keine Inhalte in Frame

Content-Security-Policy (3)

Reaktion des Browsers

Content-Security-Policy (4)

Problem: Inline Code

<button onclick="doSomeThings();">Klick mich!</button>

<script src="better.js"></script>
<button id="do">Klick mich!</button>

// better.js - mit jQuery $(document).ready(function() { $('#do').click(function() { alert('Yep.'); }); });

→ Bis dahin: Content-Security-Policy: script-src 'unsafe-inline'
→ wichtiger XSS-Schutz weg :-(

Content-Security-Policy (5)

Testmöglichkeit

Content-Security-Policy-Report-Only: default-src 'self'; report-uri /csp-reporter.php

csp-reporter.php:

<?php  // csp-reporter.php - CSP-Fehler loggen
   error_log('CSP: '. file_get_contents('php://input'));
?>

ssl_error_log:

[Thu Mar 12 11:10:45.262430 2015] [:error] [pid 53220] [client 134.109.200.128:47323] CSP:
{"csp-report":{"document-uri":"https://www-sl7.hrz.tu-chemnitz.de/","referrer":"",
"violated-directive":"default-src 'self'","effective-directive":"font-src",
"original-policy":"default-src 'self'; report-uri /csp-reporter.php",
"blocked-uri":"https://www.tu-chemnitz.de","status-code":0}}, referer: https://www-sl7.hrz.tu-chemnitz.de/

Content-Security-Policy (6)

Browser-Unterstützung:

Weiterlesen:

Hausaufgaben

Packet sniffing

Schwachstellen in Webanwendungen

  • ClickjackingX-Frame-Options
  • Cross-Site-Scripting (XSS)Content-Security-Policy angehen
  • Injection (SQL, LDAP, ...) ‒ sicher programmieren, evtl. mod_security
  • Cross-Site-Request-Forgery (CSRF) ‒ Token für Transaktionen, richtiges Framework …

Hausaufgaben (2)

Schwachstellen in Protokollen / Implementierung

Nichttechnische Schwachstellen

  • nachlässige Zertifizierungsstellen ‒ Browserhersteller
  • Social Engineering …

Weiterlesen: