Integer Overflow in Adobe Flash Player
Der Adobe Flash Player von Adobe ist die Standardanwendung, wenn es um die Darstellung von Flash-Inhalten auf Webseiten wie Youtube geht. Bedauerlicherweise macht er immer wieder durch Schwachstellen von sich reden.
Nun hat der Hersteller selbst eine ganze Reihe von Schwachstellen in einer neuen Version des Players korrigiert. Leider heißt das auch, dass zahlreiche im Umlauf befindliche Player fehlerhaft sind. Die Schwachstellen sind laut Adobe als kritisch einzustufen, weil sie es dem Angreifer erlauben, Befehle mit den Rechten des Anwenders auszuführen. Im Klartext heißt das, dass ein Benutzer durch das Abspielen einer manipulierten Flash-Datei dem Angreifer Zugriff auf sein System gibt.
Da der Player normalerweise als gewöhnlicher Benutzer und nicht mit dem Root-Account aufgerufen wird, kann der Angreifer auf alle die Daten des Anwenders zugreifen. Sollte der Anwender unbedacht den Player als Root ausführen, kann das gesamte System kompromittiert werden.
Die gefunden Sicherheitslücken sind vielfältig: Neben einem Integer-Overflow-Fehler finden sich zahlreiche Programmierfehler, wodurch die Größen und Grenzen von Speicherbereichen nicht korrekt geprüft werden. Integer-Overflow-Fehler treten auf, wenn - einfach gesprochen - ein Integer-Wert zu groß wird. Das kann in C/C++ beispielsweise so aussehen:
#include <iostream>
using namespace std;
int main(void)
{
unsigned int a=~0;
unsigned int b=1;
unsigned int c=a+b;
//a= 11111111 11111111 11111111 11111111
//+
//b= 00000000 00000000 00000000 00000001
//=
//c=1 00000000 00000000 00000000 00000000
cout << a << "+" << b << "=" << c << endl;
//4294967295+1=0
return 0;
}
In diesem Beispiel sind die Unsigned-Int-Werte 4 Byte (=32 Bit) breit, und damit zu klein, um die Summe "c=a+b" aufnehmen zu können. Sobald das Programm nun 1 zu a addiert, werden die 32 niedrigen Bits auf 0 gesetzt und Bit 33 auf 1. Dadurch wird das Ergebnis fälschlicherweise zu 0 statt zu 4294967296. Enthält ein Programm sicherheitsrelevante Abfragen, die auf einer solchen Integer-Operation beruhen, kann das zu falschen Entscheidungen in der Programmlogik führen.
Um Flash-Player-Attacken durchführen zu können, muss der Angreifer eine präparierte Datei im SWF-Format an sein Opfer senden. Wer an den Details dieses Formats interessiert, ist kann sich entweder die längliche Spezifikation durchlesen oder aber die SWFREtools (3) verwenden, um Flash-Dateien direkt zu betrachten. SWFREtools ist eine Sammlung mehrerer Programme zum Analysieren von SWF-Dateien. Die Abbildung zeigt eine Beispiel-Analyse. Auf diese Weise lassen sich kompromittierte Flash-Inhalte finden.
Betroffen sind die Flash Player Versionen 10.2.159.1 und älter.
Alle Rezensionen aus dem Linux-Magazin
- Buecher/07 Bücher über 3-D-Programmierung sowie die Sprache Dart
- Buecher/06 Bücher über Map-Reduce und über die Sprache Erlang
- Buecher/05 Bücher über Scala und über Suchmaschinen-Optimierung
- Buecher/04 Bücher über Metasploit sowie über Erlang/OTP
- Buecher/03 Bücher über die LPI-Level-2-Zertifizierung
- Buecher/02 Bücher über Node.js und über nebenläufige Programmierung
- Buecher/01 Bücher über Linux-HA sowie über PHP-Webprogrammierung
- Buecher/12 Bücher über HTML-5-Apps sowie Computer Vision mit Python
- Buecher/11 Bücher über Statistik sowie über C++-Metaprogrammierung
- Buecher/10 Bücher zu PHP-Webbots sowie zur Emacs-Programmierung
Insecurity Bulletin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...


