211service.com
Schwachstellen in gehärteter Software
In den letzten zehn Jahren hat Microsoft, das bevorzugte Ziel vieler Online-Angreifer, sein Betriebssystem gehärtet und Technologien eingeführt, die es Angreifern erschweren, Schwachstellen zu finden und auszunutzen. Apple und viele andere Softwarehersteller sind diesem Beispiel gefolgt und haben ähnliche zusätzliche Sicherheitsmaßnahmen für ihre Betriebssysteme eingeführt.
Doch letzte Woche, während des Pwn2Own-Wettbewerbs bei CanSecWest , einer Sicherheitskonferenz in Vancouver, Kanada, zeigten Sicherheitsforscher, dass Softwarehersteller mehr tun müssen, um ihre Programme zu schützen. Mithilfe bisher unbekannter Sicherheitslücken konnten die Forscher Apples Safari, Microsofts Internet Explorer 8 und Mozillas Firefox-Webbrowser kompromittieren, indem sie die neuesten Sicherheitstechnologien des darunter liegenden Betriebssystems umgingen.
Diese Dinge machen es schwer – sie tun es wirklich, sagt Charles Miller, leitender Analyst bei Unabhängige Sicherheitsbewerter und der Forscher, der die Sicherheit von Apples Safari-Browser und dem darunter liegenden Betriebssystem Mac OS X Snow Leopard umgangen hat. Aber egal was, ein entschlossener Angreifer kann einen Weg finden.
Die Ergebnisse des Pwn2Own-Wettbewerbs unterstreichen eine Binsenweisheit in Sachen Sicherheit: Verteidiger müssen immer Recht haben, Angreifer aber nur einmal. Die Exploits sind wirklich kreativ; Deshalb sind sie knifflig, Aaron Portnoy, Leiter des Sicherheitsforschungsteams für TippingPoint , die Sicherheitsfirma, die den Pwn2Own-Wettbewerb sponsert.
Beginnend mit seiner Trustworthy Computing Initiative im Jahr 2002 begann Microsoft mit der Implementierung einer Reihe von Sicherheitstechnologien in Windows. Erstens schützte das Unternehmen den Stack – den logischen Speicherplatz, der von Programmen verwendet wird, um vorübergehend Daten zu speichern. Eine Technologie namens /GS-Flag (nach dem Software-Switch, der im Compiler des Unternehmens verwendet wird) verhinderte, dass Angreifer ihren eigenen Code auf den Stack schieben. Aber 2003 zeigte David Litchfield, ein unabhängiger Forscher, einen Weg, den Schutz zu umgehen. Microsoft reagierte mit der Einführung zweier weiterer Technologien: SafeSEH zur Abwehr des Angriffs mit Hilfe von Structured Exception Handler (SEH) und Address Space Layout Randomization (ASLR), um die Ausnutzung ähnlicher Schwachstellen in Zukunft zu erschweren. Forscher haben jedoch Wege gefunden, diese beiden Schutzmaßnahmen zu umgehen.
Zuletzt hat Microsoft eine weitere Technologie herausgebracht, Data Execution Protection (DEP), die Angriffe verhindert, die den Speicher mit Code überschreiben und dann versuchen, diesen Code auszuführen. Aber Anfang dieses Jahres zeigte ein unabhängiger Forscher, Dion Blazakis, einen Angriff, bekannt als JIT-Spraying, der Sicherheitslücken in anderen Programmen – insbesondere Adobe Flash und Suns Java – nutzt, um diese Schutzmaßnahmen zu umgehen.
Diese Ausbeutungstechniken sind derzeit ein heißes Gut, sagt Portnoy. Wenn Sie eine Möglichkeit haben, die (Betriebssystem-)Sicherheit zu umgehen, sind Sie den meisten Leuten hier einen Schritt voraus.
Auch Apple war nicht immun. Das Unternehmen hat weiterhin mehr Sicherheitstechnologien in seinem eigenen Betriebssystem veröffentlicht, und Snow Leopard umfasst laut Miller sowohl ASLR als auch DEP.
Microsoft räumt ein, dass es immer Softwarefehler geben wird, und sagt, dass das Ziel darin besteht, die Ausnutzung solcher Schwachstellen weniger schädlich zu machen. Heute erschweren andere Maßnahmen, darunter weitere Stack-Schutzmaßnahmen, ASLR und DEP, das Auffinden und Ausnutzen von Schwachstellen.
Wenn es diese Techniken nicht gäbe, würden Sie viel mehr Exploits sehen, als wir jetzt sehen, sagt HD Moore, Chief Security Officer von Rapid7 und der Direktor der Metasploit-Projekt , das Ausnutzungstechniken in einem benutzerfreundlichen Framework für Sicherheitsforscher verpackt.
Die Forschung an zusätzlichen Schutzmaßnahmen ist im Gange, und ein führender Kandidat ist Sandboxing – eine Technik, bei der nicht vertrauenswürdiger Code in geschützten Bereichen des Arbeitsspeichers und des Verarbeitungsraums ausgeführt wird und andere Teile des Computers oder Geräts nicht beeinträchtigen darf. Die Programmiersprache Java und die Laufzeitumgebung haben Sandboxen populär gemacht, aber erst seit kurzem verwenden Programme Sandboxen in größerem Umfang. Browserhersteller versuchen, ihren Code in einer Sandbox auszuführen, und Googles Chrome, das den Pwn2Own-Wettbewerb ohne Hackerangriff überstanden hat, führt Code in einer Sandbox aus.
Moore sagt, Sandboxen haben ihre Grenzen. Sandboxes sind wirklich gut darin, vor einer Schwachstelle in einer Anwendung zu schützen, die zu einem Exploit des Betriebssystems wird, sagt er, aber sie ist nur nützlich, wenn die Daten, die Sie schützen möchten, nicht zugänglich sind. In vielen Fällen benötigt das Programm möglicherweise Zugriff auf sensible oder Systemdaten, und dann hilft Sandboxing nicht mehr, sagt er.
Letztendlich haben Softwarehersteller die Ausnutzung ihrer Programme erschwert, sagt Miller. Während er fast 20 Sicherheitslücken in populärer Software wie Programmen von Adobe, Apple und Microsoft fand, könnten weniger als eine Handvoll auf einem aktuellen System ausgenutzt werden, sagt er. Es ist ein Kompromiss, gibt Miller zu. Jedes Mal, wenn Sie einen dieser Schutzfunktionen hinzufügen, wird das System verlangsamt oder die Entwicklung erschwert. Das Ziel ist es, Software schwer ausnutzbar zu machen, und das haben sie getan.