Tag Archiv für Sicherheitslücken

Vom Hacker zum Securityprofi

Vom Hacker zum Security-Profi

IT Sicherheit ist allen Computernutzern schon seit einiger Zeit kein Fremdwort mehr. Seit der Vebreitung des Internets hat niedrige IT Sicherheit schon einigen Unternehmen den Kragen gekostet. Denn das war auch die Geburt der Viren und anderer schädlichen Softwares, die ganz einfach über das Netz, auf praktisch alle ans Internet angeschlossenen Rechner zugreifen können. Aus diesem Grunde gibt es in den meisten Firmen und Unternehmen einen IT Bereich, der für die Sicherheit der elektronischen Daten, die vor unbefugten Zugriff geschützt werden sollen, zuständig ist. » Weiterlesen

Rootkits

Ein Rootkit ist eine Art von Computerprogrammen, die primär zum Ziel habt, ihre eigene oder die Existenz anderer Programme zu verstecken. Der Begriff “Rootkit” ist im Allgemeinen negativ behaftet und wird mit Malware assoziiert, da die Software unauffällig im Hintergrund laufen und einem Angreifer permanenten Zugriff auf den Computer ermöglichen soll – meist mit vollen Zugriffsrechten auf alle Daten. Ziel ist es, Root- (Unix) bzw. Administrator-Rechte (Windows) zu erlangen, und dadurch Daten unautorisiert zu manipulieren, kopieren oder löschen oder den Computer unerkannt auszuspionieren.

Die Infektion mit einem Rootkit erfolgt ähnlich wie mit anderen Schadprogramm. Hat es sich einmal auf dem System eingenistet, versucht es, über Sicherheitslücken erhöhte Rechte zu erlangen und dann die Anweisungen des Angreifers durchzuführen. Um sich vor der Erkennung durch das Betriebssystem oder durch Antivirenprogramme zu schützen, werden verschiedene Tarnmethoden genutzt. Dazu zählen etwa die Modifizierung des Betriebssystem-Kernels, das Einbinden unauffälliger Systemtreiber oder das Ändern des eigenen Verhaltens, um nicht über Muster- oder Verhaltensscans aufzufallen.

Rootkits treten nicht nur als Software für Betriebssysteme auf. Es existieren auch Rootkits, die die Firmware von Netzwerkkarten oder Festplatten und das BIOS eines Computers kompromittieren können. Dadurch können Sicherheitsprüfungen auf Betriebssystem-Ebene umgangen (da Firmware-Code nur selten auf Schadcode überprüft wird) und Datenströme auf Hardware-Ebene ausgelesen werden

Hergestellt werden Rootkits häufig von Drittanbietern, die ihre Software dann verkaufen oder zur freien Verfügung stellen. Außerdem stammt eine Reihe von Rootkits aus der akademischen Forschung, die dort zu Demonstrations- oder Schutzzwecken (Diebstahlsicherung, Überprüfung von vorhandenen Sicherheitslücken) ohne bösartige Eigenschaften entwickelt werden.

Öffentlich bekannt wurden Rootkits vor allem im Jahr 2005, als Sony ein Rootkit auf einigen Musik-CDs versteckte, um die Abspielfähigkeit auf PCs zu limitieren. Das verwendete Rootkit war allerdings unsauber programmiert und führte häufig zu Problemen mit Windows. Außerdem öffnete es einige Sicherheitslücken, die von anderen (bösartigen) Programmen ausgenutzt werden konnten, um sich mittels des Rootkits im System einzunisten.

Sich vor Rootkits zu schützen ist schwierig, da sie im Regelfall vom Benutzer gar nicht erst bemerkt werden und so kein Unterschied zu einem sauberen System besteht. Ein aktuelles Antivirenprogramm ist empfehlenswert, damit installierte Rootkits zumindest erkannt werden. Außerdem sollte die Software auf dem Computer möglichst aktuell gehalten werden, um damit möglichst wenig Angriffsfläche zu bieten. Im Serverbereich besteht der Schutz zusätzlich darin, nur die Software zu installieren, die zum Betrieb wirklich notwendig ist.

Da sich Rootkits tief im System eingraben können, ist eine vollständige Entfernung oft schwierig. Im Zweifelsfall ist eine Neuinstallation des Betriebssystems oder der Austausch betroffener Hardware (bei Firmware-Rootkits) die einzige wirklich sichere Lösung.

SQL Injection

Datenbanksicherheit ist ein essentielles Thema und bezeichnet die Sicherheit vor unauthorisiertem Zugriff auf geschützte Datenbanksysteme sowie der Schutz deren Daten vor Manipulation, Missbrauch oder Löschung. Ein einfach auszuführender, aber ebenso einfach zu vermeidender Angriff auf Datenbanken ist die SQL Injection.

Die SQL Injection ist eine weit verbreitete und gefährliche Sicherheitslücke auf Webseiten, welche mit SQL-Datenbanken kommunizieren und ein Benutzer-Interface aufweisen. Jedes öffentlich zugängliche Eingabefeld auf einer Webseite, wie z.B. eine Loginmaske, ein Kontaktformular, aber auch die Adresszeile des Internetbrowsers stellt eine Einladung für Hacker dar, auf diesem Wege unerwünschten SQL Injection Code einzuschleusen und somit die hinter der Webseite liegenden Datenbanken auszuspionieren, darin enthaltene Daten zu löschen oder zu manipulieren.

Es ist jedoch nicht schwierig, hier Abhilfe zu schaffen. Voraussetzung für eine erfolgreiche Abwehr von SQL Injection ist eine durchdachte Programmierung der Webseite. Dynamisches SQL sollte nur benutzt werden, wenn unbedingt notwendig. Es kann fast immer durch gebundene Parameter in vorbereiteten Anweisungen (Prepared Statemants) ersetzt werden. Dies bedeutet, dass kein Code interpretiert, sondern nur Platzhalter übergeben werden, wodurch eine Einschleusung von Hackercode vermieden wird. Des weiteren sollten im User-Input sämtliche Metazeichen maskiert werden. Hierbei werden die unzulässigen Zeichen, wie z.B. Hochkommas oder Prozentzeichen, wie sie nur in SQL Injection Code, nicht aber in normalen User-Eingaben vorkommen, herausgefiltert. Die Programmiersprache PHP stellt zum Maskieren von Eingaben die sogenannte Escape-Funktion bereit.

Wir zum Beispiel MySQL als Datenbankmanagement System verwendet, so kann der MYSQL Query Browser nach einem Angriff dazu verwendet werden unregelmäßigkeiten in einer Datenbank zu finden. Bei Webseiten, die Opfer eines Angriffes geworden sind, müssen außer der Datenbank auch der Quellcode der Webseite auf Schadcode geprüft und eventuell bereinigt werden.

Ein Datenbanksystem ist umso anfälliger, je komplexer es ist. Funktionen, die nicht benötigt werden und das System nur unnötig belasten, indem sie es angreifbarer machen, sollten deaktiviert oder entfernt werden, so z.B. die Prozedur xd_cmdshell, welche einem möglichen Angreifer Zugriff zur Befehls-Shell ermöglicht. Umstrittene Maskier-Befehle wie addSlashes und magic_quotes sollten vermieden werden, da sie nur eine trügerische Sicherheit gegen eine SQL Injection bieten.