Eine Einführung - Thomas Ziemer...[11] Bundesamt für Sicherheit in der Informationstechnik (2016):...

Post on 25-Sep-2020

0 views 0 download

Transcript of Eine Einführung - Thomas Ziemer...[11] Bundesamt für Sicherheit in der Informationstechnik (2016):...

Penetration Testing

Eine Einführung

Gliederung1. Was ist Penetration Testing?2. Penetration Testing - Website3. Penetration Testing - Netzwerk4. TrueCrypt Analyse5. Bedeutung für die Softwarequalität

Was ist Penetration Testing (a.k.a. Pentesting)?

- Umfassender Sicherheitstest für Rechner, Programme oder Netzwerke jeder Größe

- Pentester benutzen die selben Methoden wie Hacker- Verschaffung unbefugten bzw. unautorisierten Zugangs zu o.g. Systemen- Empirischer Teil einer größeren Sicherheitsanalyse- Immer wichtiger:

- Viel Infrastruktur wird in Softwareunternehmen von Drittanbietern gestellt (z. B. Docker, Travis, Salesforce, Slack, (Atlassian) Jira, …)

- Daten- bzw. Systemsicherheit zwingend erforderlich

Phasen des Pentestings

1. Vorbereitungsphase2. Informationsbeschaffungsphase3. Bewertungsphase4. Phase der aktiven Eindringungsversuche5. Berichtphase

- Ziele definieren- Was ist der Testumfang?- Welche Arten von Tests?

- interner Pen-Test- Fokus auf ERP oder CRM-Systeme- Blackbox/Whitebox-Testing- Social Engineering

Vorbereitungsphase

Informationsbeschaffungsphase

- Welche Begebenheiten lassen sich vorfinden?

- Welche Hardware wird benutzt?- Welche Software wird benutzt?

- Sind Plugins/Packages/Bibliotheken auf dem neuesten Stand?

- Ist periphere Software auf dem neuesten Stand?

- Wie ist das Personal geschult?

Bewertungsphase

- Gesammelte Informationen werden geprüft- Festlegung des Testfokus- Festlegung der anzuwendenden Methodik- Koordinierung der Aufgaben

Phase der aktiven Eindringungsversuche

- Das eigentliche Hacking beginnt!

- Die ausgewählte Systeme werden auf Schwachstellen getestet

- Findet sich eine, so wird sie genauer unter die Lupe genommen

- Zu jeder Schwachstelle die gefunden wird, wird ein Bericht erstellt

- Detailbeschreibung- Wie hoch ist der Gefährdungsgrad?- Mögliche Behebungsmaßnahmen z.B.:

- bei Heartbleed: SSL-Bibliotheken aktualisieren

- Bei Shellshock: Updaten der UNIX-Shell (bzw. Des Betriebssystem), u.a.: Debian, Ubuntu, CentOS, Red Hat, Fedora

Berichtphase

Website Penetration Testing

Warum ist Websecurity wichtig?

Datendiebstahl (Phishing)

Datenverfügbarkeit

Datenkorrektheit

Identitätsdiebstahl

https://i2.wp.com/www.thesecurityawarenesscompany.com/wp-content/uploads/2015/05/CIAtriad-copy2.png?zoom=2.625&fit=2702%2C2448&ssl=1

Cross-Site-Scripting (XSS)

- Einbettung von Schadcode in vermeintlich vertrauenswürdige Umgebung

- einer der am häufigsten Angriffe

- trotz Häufigkeit / Verbreitung immer noch aktuelle “Bedrohung”

- Ausgangspunkt für weitere Angriffe

Reflektiertes Cross-Site-Scripting Beispiel

http://www.tutorialspoint.com/php

Reflektiertes Cross-Site-Scripting Beispiel

Cross-Site-Scripting Möglichkeiten

- kann “vertraute” Website nach Belieben gestalten

- User befindet sich immer noch auf korrekter Domain

- besonders attraktiv für Phishing Angriffe

- andere Varianten sind Persistentes XSS oder Lokales XSS

SQL Injection (SQLi)

- ähnliches Prinzip wie XSS, Einführen (injecten) von SQL Befehlen

- Benutzereingaben gelangen in den SQL Interpreter

- Möglichkeit der Änderung, Diebstahl, Löschung von Daten

- Sony wurden 2011, 75 Millionen Nutzerkonten durch eine SQLi entwendet

SQL Injection Beispiel

Aufruf: http://webserver/cgi-bin/find.cgi?ID=42

Erzeugtes SQL: SELECT author, subject, text FROM artikel WHERE ID=42;

Aufruf: .../find.cgi?ID=42;UPDATE+USER+SET+TYPE="admin"+WHERE+ID=23

Erzeugtes SQL: SELECT author, subject, text FROM artikel WHERE ID=42;UPDATE USER SET TYPE="admin" WHERE ID=23;

Sanitize User Input

http://imgs.xkcd.com/comics/exploits_of_a_mom.png

Weitere Angriffe

- klassischer Man-in-the-Middle Angriff- Server gibt sich als Client bzw. Server aus und kann Datenverkehr beliebig ändern

- Denial of Service- Erzeugen eines Ausfalls eines Webservices

- Session Hijacking- “Entführung” einer erstellten Sitzung, Angreifer gibt sich als authentifizierter Nutzer aus

Network Penetration Testing

Firmennetzwerke

Komplexe und sensible Infrastruktur

Besonders schützenswert

Eindringling hat meist Zugriff auf mehrere Geräte

Sensible Daten (Firmengeheimnisse, Personenbezogenes, Verträge, ...)

Gefahr durch Diebstahl, Zerstörung, Erpressung, DoS, ...

Oft unbemerkt, oder erst viel zu spät

[4]

Die zwei Szenarien

[1] [2]

Extern Intern

Extern

Zutritt von außerhalb

Oft mehrere Angriffspunkte

Alles sichtbare muss getestet werden:

- Web Server, Mail Server, Firewalls, Router, IDPS, ... [4]

IDPS: Intrusion Detection and Prevention Systems

Intern

Ähnliche Vorgehensweise wie Extern

Leichterer Zugang

Alles in Reichweite von Mitarbeitern, Gästen oder unbefugten Eindringlingen muss getestet werden

z.B. Intranet, DMZ[4]

DMZ: Demilitarisierte Zone

und wie genau?

● Profiling

● Discovery & Enumeration

● Scanning

● Exploitation

● Reporting [5]

Profiling

Informationen sammeln

Betriebssysteme, Softwareversionen, DNS Informationen

Whois, Google Suche, soziale Netzwerke, Emails, Webseiten, ...

Domain Name: amazon.comRegistry Domain ID: 281209_DOMAIN_COM-VRSNRegistrar WHOIS Server: whois.markmonitor.comRegistrar URL: http://www.markmonitor.comUpdated Date: 2014-04-30T12:11:08-0700Creation Date: 1994-10-31T21:00:00-0800Registrar Registration Expiration Date: 2022-10-30T21:00:00-0700

Registrar IANA ID: 292Registrar Abuse Contact Email: abusecomplaints@markmonitor.comRegistrar Abuse Contact Phone: +1.2083895740Domain Status: clientUpdateProhibited (https://www.icann.org/epp#clientUpdateProhibited)Domain Status: clientTransferProhibited (https://www.icann.org/epp#clientTransferProhibited)Domain Status: clientDeleteProhibited (https://www.icann.org/epp#clientDeleteProhibited)Domain Status: serverUpdateProhibited (https://www.icann.org/epp#serverUpdateProhibited)Domain Status: serverTransferProhibited (https://www.icann.org/epp#serverTransferProhibited)Domain Status: serverDeleteProhibited (https://www.icann.org/epp#serverDeleteProhibited)Registry Registrant ID: Registrant Name: Hostmaster, Amazon Legal Dept.Registrant Organization: Amazon Technologies, Inc.Registrant Street: P.O. Box 8102Registrant City: RenoRegistrant State/Province: NVRegistrant Postal Code: 89507Registrant Country: USRegistrant Phone: +1.2062664064Registrant Phone Ext:

Registrant Fax: +1.2062667010Registrant Fax Ext: Registrant Email: hostmaster@amazon.comRegistry Admin ID: Admin Name: Hostmaster, Amazon Legal Dept.Admin Organization: Amazon Technologies, Inc.Admin Street: P.O. Box 8102Admin City: RenoAdmin State/Province: NVAdmin Postal Code: 89507Admin Country: USAdmin Phone: +1.2062664064Admin Phone Ext: Admin Fax: +1.2062667010Admin Fax Ext: Admin Email: hostmaster@amazon.comRegistry Tech ID: Tech Name: Hostmaster, Amazon Legal Dept.Tech Organization: Amazon Technologies, Inc.Tech Street: P.O. Box 8102Tech City: RenoTech State/Province: NVTech Postal Code: 89507Tech Country: USTech Phone: +1.2062664064Tech Phone Ext: Tech Fax: +1.2062667010Tech Fax Ext: Tech Email: hostmaster@amazon.comName Server: pdns1.ultradns.netName Server: ns2.p31.dynect.netName Server: ns4.p31.dynect.netName Server: ns1.p31.dynect.netName Server: ns3.p31.dynect.net

Profiling

Beispiel Whois Amazon.com

Profiling Beispiel builtwith.com/amazon.com

Discovery & Enumeration

Tools und Techniken zur Identifikation von: Betriebssystemen, offenen Ports, Services, Protokolle, andere Technologien und deren Versionen

Erkenntnis über Benutzer, Gruppen, Ressourcen, Freigaben, routing Tabellen, Rechnernamen, Anwendungen, ...

[6]

Discovery & Enumeration

Beispiel: nmap zeigt offene Ports und Anwendungen dahinter

[7]

Scanning

Suche nach Sicherheitslücken in gefundener Software

Tools wie Nessus, eigene Skripte, manuelles Herumprobieren

Ausschließen von “false positives”

[8]

Exploitation

Ausnutzen der gefundenen Lücken

In Produktivumgebungen nur nach Absprache mit Auftraggeber

Frameworks wie metasploit

[9]

Reporting

Auftraggeber informieren

Was wurde gefunden?

Wer oder was ist betroffen?

Wie schlimm ist es?

Wie kann man es beheben?

[10]

Und jetzt ist das Netzwerk sicher?

Sicher, nein!

Sicherer, ja!

Restrisiko bleibt. 😱

Pentesting von

● Daten- und Festplattenverschlüsselung● Windows, Mac OS, Linux● Zeitschiene:

○ Erschien am 2. Februar 2004○ Eingestellt im Februar 2012 (Version 7.1)○ Mai 2014 letzte Version 7.2

● Verbreitung:○ Erschien in 38 Sprachen○ Juli 2008 geschätzte 6 Millionen Downloads [12]

● Besonderheiten:○ “Konzept der glaubhaften Abstreitbarkeit”○ Spuren von Dateien verstecken

Pentesting aus der Sicht des BSI

● Frauenhofer-Institut für Sichere Informationstechnologie

● Grund für den Auftrag:○ Einstellung von TrueCrypt ohne Vorankündigung○ Teil von TrustedDisk (Sirrix AG)○ Nutzung durch Bundesbehörden

● Untersuchungsschwerpunkte:○ Verschlüsselungsmechanismen○ Automatisierte Code-Analyse○ Code-Qualität und Dokumentation○ Konzeptionelle Bewertung der Architektur○ Entbehrliche Code-Teile

[10]

Pentesting aus der Sicht des BSI

[11]

TrueCrypt: Verschlüsselungsmechanismen

● Algorithmen ansehen● Erstellung von automatisierten

Call-Graphen● Vergleich mit gängigen Open-

Source-Bibliotheken○ 8 x 10 Millionen Testfälle○ -> Keine Unterschiede

● Zufallsgenerator○ Schwachstelle entdeckt○ dev/random “stark verbesserungswürdig”

[10]

TrueCrypt: Automatisierte Code-Analyse

● Statische Code-Analyse○ Drei Tools kamen zur Anwendung:

■ Clang, Coverty, Cppcheck

● -> Keine Sicherheitslücken entdeckt● Potentielle Sicherheitslücken ausgeschlossen● Warnungen alle falsch-positiv

TrueCrypt: Automatisierte Code-Analyse

[10]

TrueCrypt: Automatisierte Code-Analyse

● Funktionales Testen● Auf Basis der Testabdeckung des Quelltextes

○ Fehlende Testfälle

● Analyse der inneren Struktur und Quelltexte○ Wichtig für die (potentielle) Weiterentwicklung○ Codequalität nicht unmittelbarer Schwachpunkt○ Keine Programmierrichtlinien○ Inkonsistenter Stil der Quelltexte○ Missachtung von Best-Practices

● Dokumentation○ Nur User’s Guide, teilweise fehlerhaft○ Kaum und wenn dann nur knapp kommentiert [10]

TrueCrypt: Architektur und entbehrlicher Code

● Konzeptionelle Bewertung der Architektur○ Grundlegende technische Umsetzung ist angemessen○ Keine gravierenden, vermeidbaren Angreifbarkeiten○ Aber kein Schutz vor “Mehrfachzugriff”

● Entbehrliche Code-Teile○ Bei allgemeiner Verwendung:

■ Alle Komponenten und Dateien werden verwendet○ Bei einschränkender Nutzung:

■ Einsparungen kompletter Komponenten möglich○ Alte Algorithmen noch enthalten

Fazit:

MUSTER:

Sicherheit ist auf keiner Plattform zu 100% gegeben.

Viele Sicherheitslücken können erkannt und geschlossen werden, bevor Probleme entstehen.

Code sauber Halten

- Messungen durchführen- Unit-Tests durchführen- Fehler von Anfang an

vermeiden.- Code Dokumentieren- Test-driven development (TDD)- Code Reviews- Software aktuell halten

Landtagswahl Hessen, 2008

Mehrwert?

Investiere Zeit in solide Entwicklung, Spare Reparaturkosten!

(Wenn es sich überhaupt reparieren lässt)

Danke für eure Aufmerksamkeit

Quellen (Website Pentesting)https://www.security-insider.de/was-ist-cross-site-scripting-xss-a-699660/

https://de.wikipedia.org/wiki/SQL-Injection

http://www.spiegel.de/netzwelt/gadgets/attacke-auf-playstation-netzwerk-hacker-stehlen-millionen-sony-kundendaten-a-759161.html

Quellen (Netzwerk Pentesting)[1] https://pxhere.com/en/photo/851941[2] https://pl.wikipedia.org/wiki/Back_office#/media/File:New_office.jpg[4] https://upload.wikimedia.org/wikipedia/commons/0/00/

Virtual_Private_Network_overview.svg[5] https://pxhere.com/en/photo/1034246[6] https://upload.wikimedia.org/wikipedia/commons/9/9d/Wireshark_-_TCP.png[7] https://commons.wikimedia.org/wiki/File:Capture7.png[8] https://libreshot.com/old-door-and-an-open-padlock/[9] https://commons.wikimedia.org/wiki/File:Hacking_password_illustration.jpg[10] https://www.publicdomainpictures.net/en/view-image.php?image=240296

&picture=report

Quellen (TrueCrypt)[10] Bundesamt für Sicherheit in der Informationstechnik (2015): Sicherheitsanalyse TrueCrypt, 80 Seiten, Bonn[11] Bundesamt für Sicherheit in der Informationstechnik (2016): Ein Praxisleitfaden für IS-Penetrationstests, 35 Seiten, Bonn[12] Datenschutz und Datensicherheit (2008): Datenverschlüsselung mit TrueCrypt, Dirk Fox, 7/2008

Bundesamt für Sicherheit in der Informationstechnik (2018): IS-Penetrationstest - Penetrationstest von IT-Systemen durch das BSI, PDF, abrufbar auf:https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Sicherheitsberatung/Pentest_Webcheck/Beschreibung_Pentest.pdf?__blob=publicationFile&v=5

Quellen: Fazit

https://www.youtube.com/watch?v=AQK3hVBPHKA&t=210shttps://spryker.com/blog/code-qualit%C3%A4t-sicherstellen