Sicherheitslücken bei Internetdiensten
Herr Dipl. Ing. Cajus Pollmeier von der Firma GONICUS GmbH hielt am 06.05.2003 diesen Vortrag
in den Räumen des Bildungszentrums der
Südwestfälischen Industrie- und Handelskammer (SIHK) Hagen.
Ausgehend von der von SANS geführten \"TOP 20 List\"
der Sicherheitslücken von Windows- und UNIX-Systemen beleuchtete Herr Pollmeier beispielhaft einen auf der
RedHat 6.2 Distribution basierenden Web-Server mit folgenden Eckdaten:
- LAMP (Linux, Apache, MySQL, PHP) Server für den WEB-Auftritt eines mittelständigen Unternehmens
- 1TB Speicherplatz für ein datenbankgestützen WEB-Server mit Shop-System
- hohe Bandbreite der Internetanbindung für die Datenübertragung
Die Motivation eines potentiellen Hackers, ein solches System anzugreifen, wurde wie folgt dargestellt:
- Versand von Spam-Mail
- Verwendnung des Servers als Proxy, zum Verschleiern seiner eigenen IP-Adresse (Identität) bei Angriffen auf andere Systeme
- Verwendnung des Servers als IRC-Bouncer (verschleiern der Identität in Chat-Räumen)
- Nutzung des Datenspeichers für die Veröffentlichung von Video- und Musikdateien sowie von raubkopierter Software
- Nutzung der Bandbreite der Internetanbindung für DoS (Denial of Service) -Attacken gegen andere Systeme
- Spionage gegen den Betreiber des Servers
- Erhöhung des Ansehens in der Hacker-Szene durch erfolgreiche Einbrüche
Für das Unternehmen als Betreiber des Servers bedeutet ein erfolgreicher Angriff neben dem Verlust von Bandbreite,
Verfügbarkeit, und Speicherkapazität einen zusätzlichen personellen und finanziellen Aufwand für die Bekämpfung des
Angriffs und die Beseitigung der entstandenen Schäden. Hinzu kommt ein nicht unerhebliches juristisch Risiko durch Ansprüche
seitens der Inhaber von Rechten an Dateien aller Art, die illegal auf dem Server abgelegt werden. Damit ergibt sich ein eklatantes
Interesse des Betreibers an der Sicherheit seines Servers.
Herr Pollmeier demonstrierte zunächst verschiedene Möglichkeiten für den potentiellen Angreifer, Einfluß auf
und Zugang zu dem Server zu erlangen:
- Mitprotokollieren von gültigen Logins
Dies ist durch dem Einsatz von Tools wie netcat möglich, wenn auf dem Server Dienste angeboten werden, die eine Authentifikation im Klartext erfordern (telnet, ftp rlogin).
- Ausnutzung von Fehlkonfigurationen von Diensten und Programmen auf dem Server wie z.B.
- offene Mail-Relays, die zum Versenden von Massen-Spam verwendet werden können. Möglich ist dies bei SMTP-Servern,
die versehentlich oder aus Unkenntnis so konfiguriert sind, daß nicht nur die erwünschten, sondern jeder Anwender
und Rechner Mail über das Mail-Relay versenden kann.
- offene Proxies, die in ihrem Zugriff ebenfalls nicht beschränkt sind und einem potentiellen Angreifer zur
Verschleierung seiner Identität bei Angriffen auf weitere Server dienen kann.
- falsch konfigurierte DNS-Server. Durch nicht authorisierter DNS-Zone-Updates, kann ein Angreifer den DNS-Server dazu
bringen, Host- und Domainname von vertrauenswürdigen Rechnern mit der IP-Adresse des von ihm verwendeten Recherns
zu übersetzen.
- DoS (Denial of Service) Attacken
Gegen diese Form des Angriffs, die darauf abzielt, ein System für Anfragen von außen nicht mehr erreichbar zu
machen, indem es durch fiktive Anfragen in seiner Bandbreite und Rechenkapazität überlastet wird, gibt es keine
wirksame Maßnahme, außer indem diese Systemressourcen erhöht werden.
- Nutzung von Programmfehlern in Netzwerkdiensten
Dies geschieht durch die Anwendungen von sog. Exploits. Dabei handelt es sich um Programme, die Implementationsfehler
in Netzwerkdiensten ausnutzen, um ausführbaren Maschinencode in den Speicher einzubringen und das Programm z.B.
durch geschickte Ausnutzung sog. Buffer-Overflows dazu zu bringen, diesen Maschinencode auszuführen. Der Code
wiederum dient dazu, dem Angreifer eine Shell aufzurufen, mit der er weiter arbeiten kann. Diese Shell läuft mit
den Rechten des angegriffenen Netzwerkdienstes/Programms. Ziel des Angreifers ist es, root-Rechte zu erlangen um den
Server beliebig für seine Zwecke nutzen zu können. Falls die so gestartete Shell nicht die erforderlichen
Rechte besitzt , dient sie als Ausgang für den Angriff auf weitere, lokale Dienste/Programme, bis dieses Ziel erreicht
ist. Während das Programmieren solcher Exploits einen hohen Kenntnisstand in Programmierung und der angegriffenen
Hardware im Allgemeinen, sowie des Codes des anzugreifenden Programms im Speziellen erfordert, können selbst Laien
mit geringen Kenntnissen (Skript-Kiddies) diese Werkzeuge frei aus dem Internet herunterladen und anwenden. Daraus
ergibt sich ein hohes Gefährdungspotential. Dieser Punkt, der allgemein bekannt ist, dessen Hintergründe
aber nur selten dargestellt werden, wurde durch Herrn Pollmeier besonders ausführlich diskutiert und demonstriert.
Als nächstes stellte Herr Pollmeier eine Vorgehensweise zur die Absicherung von Servern ausgehend von der Basisinstallation vor:
- interne Analyse
Ermittlung aller laufenden Prozesse mit Diagnosetootls wie ps und top
- externe Analyse
Ermittlung der aus dem Netz erreichbaren Dienste durch den Einsatz von Diagnosetools wie netcat, fuser und netstat
- Einsatz von Firewalls
- Installation von Sicherheitstools
Diese dienen dazu, das System gegen Angriffe und das Ausnutzen von Softwarefehlern abzuhärten.
Bei der Demonstration der ersten beiden Analyseschritte zeigte sich, daß die Basisinstallation des verwendeten Servers
viele unnötige Dienste mit weitgehend unbeschränktem Zugang installiert und gestartet hatte.
Die aufgezeigten Verfahren dienen nun dazu, nicht benötigte Prozesse und Dienste zu erkennen, zu deinstallieren,
zu deaktivieren oder, durch geeignete Konfiguration, die Zugriffsrechte darauf so weit wie möglich einzuschränken.
Auch diese Möglichkeiten stellte Herr Pollmeier bis hin zu den wichtigsten Einträgen für die Konfigurationsdateien
verschiedener Dienste dar. Herr Pollmeier wies darauf hin, daß es nach einer Einrichtung darauf ankommt, das System
weiter zu beobachten und durch die regelmäßige Auswertung der automatisch erstellten Protokolldateien Hinweise auf mögliche
erfolgreiche Angriffe zu erhalten, um ggf. Gegenmaßnahmen ergreifen zu können.