Ausarbeitung zum Referat Computersicherheit Stephan Schumann March 24, 2010 2
CONTENTS 3 Contents 1 Computersicherheit 4 1.1 Was ist Computersicherheit/Informationssicherheit?........................... 4 1.2 Warum ist das Thema so wichtig?..................................... 5 1.2.1 Vulnerabilität............................................. 5 1.2.2 Anbieter von Computerprodukten................................. 7 1.3 Mallware................................................... 8 1.3.1 Geschichtlicher Abriss........................................ 8 1.3.2 Arten von Malware (Malicious Software).............................. 9 1.4 Angriffsmethoden............................................... 11 1.4.1 Stack Overflow............................................ 11 1.4.2 Format String............................................. 11 1.4.3 SQL-Injection............................................. 12 1.4.4 XSS.................................................. 12 1.5 Der infizierte Rechner............................................ 12 1.6 Abwehrreaktionen - Erste Hilfe...................................... 14 1.7 Schutzsystem................................................. 15 1.8 Quellen.................................................... 15
1 COMPUTERSICHERHEIT 4 1 Computersicherheit 1.1 Was ist Computersicherheit/Informationssicherheit? Um sich dem Thema der Computersicherheit nähern zu können, ist es vorteilhaft sich über die Bandbreite bewusst zu werden und dann gezielt das Thema zu beschränken. Laut Wikipedia bezeichnet die Informationssicherheit:... Eigenschaften von informationsverarbeitenden und -lagernden Systemen, welche die Vertraulichkeit und Integrität sicherstellen. Informationssicherheit dient dem Schutz vor Gefahr bzw. Bedrohungen, der Vermeidung von Schäden und der Minimierung von Risiken. [Wikipedia] Diese Beschreibung ist zwar richtungweisend, jedoch noch ziemlich unpräzise. Worin Gefahr und Bedrohung bestehen, ist nicht genauer beschrieben. Auch ist noch ungeklärt, wie der Schaden von Information aussieht. Um sich der Bedrohung und der Gefahr zu nähern, müsste man folglich fragen: Wovor ist die Information zu sichern? Die Beantwortung dieser Frage könnte sehr umfangreichwerden.. Man könnte einen Computer wegtragen und so die Daten auf dem Computer dem Eigentümer entwenden oder ein Programm fehlerhaft schreiben, sodass die Daten nicht richtig gespeichert werden. Auch wenn jemand Fotos von einem Bildschirm macht so hat er Information kopiert, die er überhaupt nicht bekommen sollte. Bei diesen abstrusen Beispielen wird bewusst, dass man sich beliebig viele Szenarien ausdenken könnte. Der Begriff Sicherheit bezieht sich folglich auf ein bestimmtes Szenario und ist dort binär, sprich sicher oder nicht sicher. Dieses sich ein Szenario ausdenken ist ein entscheidender Punkt. Philosophisch betrachtet könnte man nur von einem sicheren System sprechen, wenn dieses gegen alle denkbaren Szenarien geschützt ist. Gibt es auch nur eine Variante, dass die Information ungewollt gestohlen, verändern, vernichtet oder kopiert wird, so ist das gesamte System kompromittiert und gilt als nicht mehr sicher. Demnach ist theoretisch Informationssicherheit nie gewährleistet. Um das Thema anschaulich zu machen, wird nicht von allgemeiner Sicherheit ausgegangen, sondern auf bestimmte Szenarien reduziert, die besonders wichtig sind. Hierfür wird häufig zwischen verschiedenen Sicherheitsklassen differenziert, wie Bufferüberläufe, Rechner wegtragen und Stromausfall bis zu einer Stunde. Natürlich gibt es viele Möglichkeiten einen Rechner wegzutragen. Und so beschränkt man sich auch innerhalb der Klassen auf eine Liste von Szenarien, ein sogenanntes Konzept. Was ist nun aber sicher? Es gibt viele Antworten. Eine ist: Sicher ist ein System genau dann, wenn die Kosten des Angriffs den erzielbaren Nutzen niemals unterschreiten. Mit dieser Definition gibt es eine theoretische Untergrenze des Aufwandes für die Sicherung des Systems, die festgelegt wird durch den Wert der Information, die sich auf dem System befindet. Wie die Wertebestimmung der Information vorgenommen wird, hängt vollkommen vom Benutzer ab. Es ist nun also möglich zu entscheiden, wie viel Wert einem solchen System anvertraut wird. Die Reihenfolge des Vorgehens bei der Sicherheitsgestaltung wäre folglich. 1. Welche Daten werden sich auf dem System befinden? 2. Welchen Wert haben diese Daten für mich - ODER - Welchen Schaden hätte ich, wenn die Information verloren oder an Dritte gelangen würde? 3. Welche Möglichkeiten gibt es, an die Daten zu gelangen, sodass der Aufwand geringer ist, als der Wert der Daten? 4. Bildung von Sicherheitsklassen. 5. Systemsicherung. Andere Definitionen befassen sich mit der Wahrscheinlichkeit möglicher Schäden und setzen diese ins Verhältnis zum betriebenen Aufwand. Hier gibt es keine Aussage zur Sicherheit in einem Szenario, sondern eine zur Gesamtsicherheit. Es handelt sich um eine rein betriebswirtschaftliche Kalkulation über die Menge aller möglichen Szenarien. und wird besonders häufig in der Versicherungsbranche angewandt. Viele Industrieversicherer bieten eine von den Schutzvorkehrungen abhängige Prämie. Dies ist einer der besten Tests für eine Firewall. Von jetzt ab werden Situationen, wie Rechner wegtragen, ignoriert, da dies weniger mit Informatik zu tun hat. Auch Probleme, wie Stromausfall, stehen nicht im Focus, da auch hier der Computernutzer recht wenig Einfluss hat. Viel interessanter ist die Sicherheit im Internet, da viele Rechnersysteme miteinander verbunden sind und die Idee des Netzwerks nur dem großen Informationsaustausch zugrunde liegt.
1 COMPUTERSICHERHEIT 5 1.2 Warum ist das Thema so wichtig? 1.2.1 Vulnerabilität Wie gerade beschrieben wurde, wird auch die Häufigkeit von Sicherheit gefährdenden Szenarien genutzt, um das System einstufen zu können. Daher ist die Frage nach dem Warum auch in der Häufigkeit von Kompromittierungen zu rechtfertigen. IBM bringt halbjahrlich den X-Force-Bericht heraus, wobei die Endjahresausgaben am ausführlichsten gehalten werden. In der Ausgabe aus dem Jahr 2008 findet man für die Brisanz des Themas genug Informationen. Notiert wurden allein im Jahr 2008 7 406 neue, ungewollte Zugriffsmöglichkeiten/Verletzungen auf Rechnersysteme (Vulnerabilitäten)festgehalten. Genauer gesagt fallen unter den Begriff Vulnerabilität - Häufigkeit und Klassifizierung... alle Computer-bezogenen Verletzungen, Beanspruchung oder Konfiguration, die eine Schwächung, oder Vernichtung der Zuverlässigkeit, der Integrität oder Zugänglichkeit des Rechnersystems zur Folge haben Das sind ungefähr 19 % aller überhaupt dokumentierten Vulnerabilitäten (seit 2000) und bedeutet eine Steigerung von 13,5% zum Vorjahr (siehe Figur 1). In den Jahren von 2001 bis 2006 wurde sogar ein jährlicher Anstieg von 36% neuer Angriffsweisen notiert. Der starke Anstieg von Verletzungen der Zuverlässigkeit und Integrität von Computersystemen in den letzten Jahren verdeutlicht nicht nur, dass das Thema schon lange wichtig ist, sondern viel mehr, dass es auch in Zukunft große Bedeutung hat. Figure 1: Entwicklung der entdeckten Angriffsmöglichkeiten von 2000 bis 2008 Ursache hierfür sind vor allem die starke Zunahme der Attacken auf Web-Anwendungen, die begründet ist durch eine Vielzahl neuer Web-Technologien, sprich ständig neu auftretende Methoden und Tools zur Steuerung und Bedienung. Dem gegenüber steht eine zunehmende Entwicklung sichererer Verkaufsmethoden, Technologien und praktizierender Software, die Angriffe sehr erschweren und eine Abschwächung des Trends vorantreiben. Das Entgegenwirken dieser beiden Tendenzen sorgt für ein baldiges erreichen eines permanenten Höhepunktes von neuen Angriffen. Figure 2: Verteilung der Vulnerabilitäten nach ihrer Gewichtung Doch nicht nur die Häufigkeit neuer Angriffe ist Grund zur Besorgnis auch die Schwere und Art der Angriffe sind zu berücksichtigen. Um die Angriffe, die Gefährlichkeit von ungewollten Zugriffen, vergleichen zu können gibt es
1 COMPUTERSICHERHEIT 6 mehrere Methoden. Ein anerkanntes Vergleichssystem ist das Common Vulnerability Scoring System (CVSS). Es handelt sich hierbei um einen in der Wirtschaft anerkannten Standart zur Klassifikation der Schwere von Vulnerabilitäten. Berechnet wird dieser Zahlenwert durch zwei Matrixtypen, deren Elemente die einzelnen Kriterienpunkte sind. Berücksichtigt werden eine Vielzahl zeitunabhängige Faktoren, wie Art der Zugangs-Vektoren, Komplexität, Legalität und die Art der Auswirkung. Aber es gehen auch zeitabhängige Größen ein, wie die Nutzungsmöglichkeit der Schwachstellen, die Ausbaufähigkeit der Angriffsmethode, aber auch wie genau eine Dokumentation gewährleistet werden kann. Als Kritsch werden beispielsweise Attacken eingestuft, die aufgrund Fehlerhafter Programmierung des angegriffenen Systems beruhen, die eine Steuerung von Netzwerken ermöglichen, die un-autorisierten Zugriff ermöglichen, und die auf System und root/grund-einstellungen Zugriff haben 1 (siehe Figur 2). Es gibt auch eine Veränderung im Einfluss der zeitabhängigen und zeitunabhängigen Faktoren auf die Gesamteinstufung der Angriffe. Bei den zeitunabhängigen Kategorien hat der große Anteil von, in ihrer Schwere als hoch und kritisch eingestuften Angriffen, sich in den vergangenen 3 Jahren kaum geändert. Während die Kritischen leicht am Abnehmen sind, nehmen die als hoch Eingestuften jedoch leicht zu. Mittelschwere (Medium) stiegen hingegen von 36,7 % im Jahre 2007 auf 54% im Folgejahr. Nur die als niedrig eingestuften Vulnerabilitäten sanken stark. (siehe Figur 3) In den zeitabhängigen Faktoren ist eine ähnliche Entwicklung der Angriffe, wie bei den zeitunabhängigen zu erkennen (Figur 4). Nur die als schwach eingestuften Angriffe sanken. Die Anzahl der in ihrer Nutzungsmöglichkeit und Ausbaufähigkeit als hoch eingestuften Attacken nahm sogar um den Faktor drei zu. Figure 3: Verteilung der Schwere der Angriffe nach zeitunabhängigen Kriterien Wie nicht anders zu erwarten war, nimmt die Gefahr von neuen Angriffen als auch ihre Schwere nicht ab. Der einzigen Gegenpol ist eine Verbesserung der neuen Produkte bezüglich ihrer Sicherheit. 1 genauere Infos auf http:www.first.org/cvss/
1 COMPUTERSICHERHEIT 7 Figure 4: Verteilung der Schwere der Angriffe nach zeitabhängigen Kriterien 1.2.2 Anbieter von Computerprodukten Bei den Anbietern von Computerprodukten (Software) wurden im Jahr 2008 noch 19,4 % aller neu entdeckten Angriffsmethoden beim Angriff von den Topanbietern (siehe Figur 5) notiert. Diese Statistik bedeutet aber nicht, dass die Verwundbarkeit oder die Schwere der Angriffe mit steigendem Marktanteil, der Anzahl von Produkten oder codelinien die jeder produziert schwindet. Vielmehr sagt sie aus, dass bei den Markführern Attacken gestartet werden könne, die nicht erkannt werden. Das liegt unter anderen daran, dass professionelle Hacker sich an die Topproduzenten trauen. Diese Gruppe von Angreifern zielen meist auf einen großen Nutzerkreis, der so auf einmal angreifbar ist. Auch gibt es in Foren und Comunities Anleitungen, wie ein Angriff zu gestalten ist, sodass über eine entdeckte Sicherheitslücke viele Angriffe der selben Art gestartet werden. Allgemein gilt, dass Massenprodukte und Produkte großer Verbreitung tendenziell mehr Schwachstellen aufweisen. 2008 wurde eine neue Methode zur Klassifikation von Verwundbarkeiten von Vertreibern eingerichtet mit Namen Common Platform Enumeration 2 (CPE). Diese Erneuerung plus einiger Veränderungen in der Schadenslandschaft hat einig neue Top Ten -Liste von Anbietern hervorgebracht. Anfang des Jahres 2008 führten noch: Joomla: bietet eine auf open-source basierende Managementsystem für Web-Seiten. Word Press: bietet eine blog publishing software Drupal: bietet ein auf open-source basierende management-system für Webseiten. diese Liste an. Schon hier zeigte sich ein offensichtlicher Trend, dass die zunehmende Prävalenz von Web-bezogene Verwundbarkeiten beschreibt (siehe Figur 5). All diese Anbieter schreiben in PHP. Auch PHP selbst ist unter den Top five des Jahres 2008. Zum Ende des Jahres 2008 haben sich diese Anbieter leicht geändert. Joomla und Drupal bleiben aber Linux und Wordpress haben die Liste verlassen. An ihre Stelle traten: TYPO3: bietet open-source beinhaltendes Managementsystem für Webseiten. Mozilla: bietet open-source Web Browser aber ist auch Hersteller von Softwareprodukten TYPO3 ist sogar sehr ähnlich zu joomla! und Drupal. Alle sind Open-source Web Management System (CMS) Produkte, geschrieben in PHP. Alle erlauben einfache Webveröffentlichungen und wirken zusammen mit opensource back-end databeses wie MySQL oder PostgreSQL. Beliebte modulare Produkte wie diese wurden code-basiert konzipiert und werden auch oft vom Verbraucher weiterverteilt. Es wird erwartet, dass die Schwachstellen in diesen Kategorien weiter zunehmen je nach Produktbeliebtheit und Umfang des codes. Mozilla ist ebenso ein neuer Teilnehmer unter den top ten obwohl über 70 % der bemerkten Schwachstellen erst in der zweiten Hälfte 2008 auftraten Siehe Grafik 3. Die Tatsache, dass weitverbreitete Produkte, die von profitablen Unternehmen hergestellt werden, häufig attackiert werden, lässt darauf hoffen, dass nach dem Auftreten einer Schwachstelle diese schnell eliminiert wird. 2 mehr Infos unter http. mitre.org/
1 COMPUTERSICHERHEIT 8 Figure 5: Top Anbieter mit der größer Anfälligkeit Die Erhältlichkeit von Behebungen und Patches. Figure 6: Entwicklung der bereitgestellten patches Ende 2008 wurden für 53 % aller bemerkten Schwachstellen keine Gegenoptionen von den Produktanbietern bereitgestellt. Dies zeigt eine maktstrategische Vorgehensweise. Anbieter bieten nicht besonders oft Patches für Schwachstellen aus dem Vorjahr an. Vielmehr wird der durch die Angriffe entstehende Wertverlust genutzt um neue Produkte attraktiv zu machen. Doch damit nicht genug. Für 44% der Schwachstellen aus dem Jahr 2006 und 46% aus dem Jahr 2007 gab es Ende 2008 noch immer keine Patch. In dieser Beziehung stehen die Top-Anbieter in einem weit helleren Licht. So gab es auf ihre Sicherheitslücken nur auf 19 % keine Patches. Bei den restlichen Anbietern blieben leider noch 61 % der bekannten Lücken ohne Gegenoption. Bild 5 Bei all den vielen neuen Angriffen auf Computersysteme, ist es interessant diese genauer zu klassifizieren. Und zwar nicht in ihrer Gefährlichkeit, sondern in ihrer Art und Funktionsweise. 1.3 Mallware 1.3.1 Geschichtlicher Abriss Die Idee zu sich selbst vermehrender Software ist keinesfalls eine Idee der modernen Computer- und Softwaretechnik. Sie ist sogar bis auf das Jahr 1949 zurückverfolgbar. Als deren Erfinder im Sinne unseres heutigen Verständnisses eines Virus oder auch pseudonym angewandt, von Malware, gilt jedoch Fred Cohen. Während seiner Studien von 1981-1984 erstellte er den ersten echten Virus. In den folgenden Jahren erlebte die Entwicklung zahlreicher - mehr oder minder andere Benutzer schädigender - Software eine rasante Entwicklung. Abhängig war dies von der Entwicklung der PC-Systeme, deren Vernetzung und den Schutzsystemen. Bemerkenswert ist, dass sich die Angriffe
1 COMPUTERSICHERHEIT 9 zwar auch auf Linux, Serverdienste und Internetapplikationen (seit 2004 auch auf Webapplikationen, wie der Wurm Santy, der in phpbb betriebenen Internetforen einbrach) richten, insbesondere jedoch Windows attackieren. Im Folgenden sollen einige der wichtigsten Stationen der Entwicklung aufgezeigt werden. Einschlägige Literatur weist diese detaillierter bis 2007 aus. Nachdem in den 80ziger Jahren Viren wie Brain, Jerusalem oder Stoned ihre schnelle Verbreitung finden, wird 1988 die erste Antisoftware entwickelt und, insbesondere als Reaktion auf den von Robert Morris entwickelten Virus, das CERT (Computer Emergency Respons Team) gegründet. Mit McAfee wird 1989 das erste wirksame Schutzprogramm erstellt. 1991 entstehen die Organisationen EICAR (European Institute for Computer Anti-Virus Research) und CARO (Computer Anti-Virus Research Organisation). Ab Mitte der neunziger Jahren beherrschen vor allem Makroviren das Feld, wie z.b. Concept oder Laroux (Angriff auf Excel). Mit Beginn des Internet- Zeitalters ab 1997 trägt das WorldWideNet zur blitzschnellen Verbreitung bei, z.b. über IRC. Die Windows-Clientsysteme werden angegriffen (z.b. Melissa). Das CIH-Virus greift sogar das BIOS an. Der große Sprung geschieht jedoch 2000/2001. Die Grenze zwischen Würmern und Trojanern verschwindet, Die nunmehr dominierenden Würmer verfügen über eine Fülle von Funktionen und sind betriebssystemübergreifend. Die Intension der Virenschreiber erfährt ab ca. 2002 eine Veränderung, politische und soziale Motivationen werden zur treibenden Kraft (z.b. Yaha.E-Wurm/ angriff auf pakistanische Regierung, Bugbear/Ausspionieren Kreditkarten-nummern, Passwörter). Als in der Folge besonders bedeutsam erwiesen sich: Der Sorbig-wurm, SQL- Slammer, LoveSAN/W32.Blaster, aber auch Sasser oder Phatbot. Mit Samy-YSS wurde 2005 zum ersten Mal eine Web 2.0 Plattform angegriffen. Kennzeichnend für das Jahr 2006 ist die Jagd auf Kennwörter und Benutzerprofile. Als bekannteste Opfer sind My Space und StudiVZ zu nennen. Die Entwicklung schreitet voran - Polymorphe Malware verbreitet sich, so gliedert ZeuS befallene Systeme in Botnetze ein und macht diese zu Zombierechnern, verschlüsselt selbstständig Daten, stielt Zugangsdaten für Bank-Accounts und spioniert Tastatur-eingaben aus. Folgende generelle Trends von Schadprogrammen sind zu verzeichnen: Wachsende Vielseitigkeit und Komplexität Entwicklung verläuft von der reinen Daten- und/oder Systemvernichtung zu Missbrauch und Datenstiebstahl Veränderung der Virenschreiber/Crackerszene: von lose operierenden Einzelpersonen/Gruppen zu kriminellen Aktivitäten 1.3.2 Arten von Malware (Malicious Software) Viren Die Einteilung erfolgt nach den Infektionszielen. Allen gemein jedoch gilt erstens, dass sie selbständig wirksam werden. Sie können sich sowohl Programmen anschließen als auch in einem Code verstecken, der durch die Öffnung einer Datei automatisch in Gang gesetzt wird. Zweitens besitzen Sie die Fähigkeit zur Replikation durch Anhängen an oder Überschreiben von Programmen. Die Übertragung erfolgt durch alle externen Datenträger und Aktivierung im gesamten Netzwerk. 1. Bootsektorviren Befall aller bootfähigen Datenträger (Bootsektor = 1. Spur jedes Datenträgers) incl. des Betriebssystem Angriff erfolgt vor dem Öffnen von Schutzsoftware heute sind Sie recht selten, jedoch sehr aktiv bei DOS-Anwendungen 2. Dateiviren Angriff auf alle ausführbaren Programmdatei:.exe,.com. etc., aber auch Treiber, Screensaver u.a. sie erlangen Einbindung in die Wirtsdatei und sorge meist für eine Veränderung von Sprunganweisungen 3. Mehrteilige Viren Mischformen verschiedener Viren 4. Makroviren mit einfacher Programmiersprache wird direkt in das Betriebssystem eingegriffen betroffen sind Datendateien: z.b. Word, Excel etc. Verbreitung durch Infektion der Standardvorlage Normal.dot und über externe Datenträger
1 COMPUTERSICHERHEIT 10 Sie sorgen für Vertauschungen von Standardkommandos oder kleinen Veränderungen des Dokumentes bis hin zur Unbrauchbarkeit 5. Skriptviren Befall von Scripten: z.b. Java-Applets, JavaSkripts, Visual Basic Script (VBS) Angriff erfolgt besonders über Microsoft-Internet Explorer, da sie sich häuig im HTML- Code einer Internetseite befinden 6. Stealthviren werden auch als Tarnkappenviren bezeichnet - ersetzt Bereiche des Programms durch eigene Teile genau in der Größe seines Codes und verhindert so, dass das Betriebssystem ihn entdeckt Sie sind speicherresistent und nur im Arbeitsspeicher aktiv 7. Polymorphe Viren besitzen die Fähigkeit sich selbst zu verändern, durch Umwandlung ihres eigenen Codes, sie mutieren; das macht sie für das Antivirenprogramm unsichtbar und nur schwer oder gar nicht erkennbar 8. Retroviren Würmer greift Virenscanner an und setzt ihre Wirkung außer Kraft oder beeinflusst sie so, dass sie zwar scannen, aber eben nicht nach Viren suchen Würmer ähneln Viren benötigen jedoch kein Wirtssystem, um sich zu vermehren. Sie infizieren jedoch keine Dateien, sondern das System und breiten sich über die Kommunikationssysteme: z.b. MS, Outlook, oder andere Netzwerke aus 1. Internetwürmer Übertrag über Netzwerkprotokolle: z.b. FTP oder HTTP(CodeRed) Einig kopieren sich in das Dateisystem, andere nur in den Arbeitsspeicher 2. LAN-Würmer sie nutzen Dateifreigaben in lokalen Netzwerken und infizieren z.b. Autostartordner 3. E-Mail-Würmer Trojana erreichen das System als Anhang von Mails und forcieren den Empfänger durch Wecken von Neugier, Fälschen der Absenderadresse etc. zum Öffnen Den Trojanern obliegt nicht deren Verbreitung und Schädigung eines Systems, sondern das gezielte Sammeln von Information i.w.s. Sie erreichen ihr Ziel über vermeintlich harmlose Software. Benutzerdaten werden ausspioniert: Passwörter, Kreditkarteninformationen, usw. dafür kann die Tastatureingabe oder der Start von Applikationen und des Systems kontrolliert und an den Angreifer übermittelt werden. Systemzugang wird vermittelt - der PC kann ferngesteuert werden können über lange Zeit (sogar Jahre) im System unerkannt verweilen häufigster Weg der Verbreitung: kostenlose Downloads und Email-Anhänge Schutz vor Trojanern ist sehr schwierig, oft nur mit spezieller Schutzsoftware, die auch dem Nutzer Spezialkenntnisse abverlangt, realisierbar Erweiterte Malware 3 1. Dropper Er versteckt andere Schadprogramme, wie z.b. Viren, vor Scannern 3 Unter der Zuordnung zur erweiterten Malware bei Frank Richter (securitty-dom) verbergen sich einige Arten, die von anderen Autoren, z.b. Christian Steiner als Arten der Trojaner bezeichnet werden. Einer großräumigen Gliederung in Arten entsprechend www.virenschutz.info wird jedoch hier der Vorrang gegeben
1 COMPUTERSICHERHEIT 11 2. Linker vermeintlich harmlos, installiert bei Ausführung jedoch das Schadprogramm sie verbinden das Schadprogramm mit dem gewünschten Nutzerprogramm auf dem infizierten PC 3. Downloader 4. Spy sie downloaden und verstecken Schadprogramme von SPAM bis hin zu Spyware sie spionieren alle Arten von Informationen der Eingabe und des Systems/Nutzers aus wird teilweise auch von kommerziellen Bereichen für die Ermittlung von z.b. Verbraucherprofilen genutzt Die Begrenzung und Systematik zwischen den verschiedenen Arten und Techniken von bösartiger und schädigender Software gestaltet sich immer schwieriger und überspannt die gesamte Palette der vorgestellten Malware. Die vorangegangenen Ausführungen erheben auf keinen Fall den Anspruch der Vollständigkeit, sondern setzen lediglich Akzente. Die gesamte, man kann schon sagen Branche, befindet sich in ständiger Bewegung und Weiterentwicklung. Bleibt die Frage nach Sinn und Nutzen dieses Sachstandes. Dabei nur um den eigenen HomePC zu fürchten ist zu kurz gedacht. Der Aufwand rentiert sich, wenn der Aktionsradius weltweit betrachtet wird. Schlüssel hierzu sind die sogenannten Botnets. Hier bringen Chrackerringe Millionen von Bots (kleine Programme, die den Bestand sonst nur temporär existierender Chatrooms offen halten) unter ihre Kontrolle und missbrauchen auf diese Weise angeschlossenen Rechner für ihre Dienstleistungen. Die Vermietung für ein Botnet z.b. beträgt mehrere tausend Dollar. Der Erhalte dieser Botnets liegt also im Interesse des jeweiligen Besitzers. Spektakuläre Angriffe sind daher auch die Ausnahme. 1.4 Angriffsmethoden Wie deutlich geworden ist, gibt es eine Bandbreite von Schadprogrammen und Angriffsmethoden. Im nun Folgenden sollen 4 Methoden eines Angriffs exemplarisch vorgestellt werden. Ausgesucht wurden diese Methoden, da sie entweder sehr häufig vorkommen und durch ihre zu Teil extreme Einfachheit die Gefahr schildern, der ein Nutzer stets ausgesetzt ist. 1.4.1 Stack Overflow Bekannt wurde der stack overflow zum ersten Mal im Phrack Artikel Smashing The Stack For Fun And Profit im Jahre 1997. Es handelt sich hierbei um eine Schwachstelle von Programmen, die meist auf einen Programmierfehler beruht. Vor allem in Programmen, die in C/C++ geschrieben sind, aber auch vielen Assembler Programmen 4 tritt diese Schwachstelle auf. Betroffen sind unter anderem Standardsofware s und Internetprotokolle. Beabsichtig wird, dass zu attackierende Programm zum Absturz (DoS - Denial of Service) zu bringen, um die Ausführung des Angriffscodes durchzuführen. 1.4.2 Format String Eine weitere Methode basiert auf den Eigenschaften von printf/scanf-funktionsfamilien die einen String, also eine Reihe von Zeichen einlesen oder wiedergeben. Wie der Name Format String andeutet, wird der String so gewählt, dass er das Programm verändern kann. Obwohl diese Funktionsfamilien schon länger genutzt werden, ist diese Angriffsmethode erst seit Ende 1999 in der Öffentlichkeit bekannt und kommt auch heute seltener vor als Angriffe durch Stack Overflows. Dennoch handelt es sich um eine leicht zu vermeidende, aber häufig unterschätzt, Angriffsweise. Betroffen sind meist C/C++ Programme. Nutzt man printf/scanf Funktionsfamilien, sprich printf(char* string, param1, param2...), so kann diese auch auf Strings Anwendung finden, die Formatierungszeichen und entsprechende Parameter wie z.b. printf( %s n, Hello World ); enthalten. Diese String Parameter werden beim Ausführen einer solchen Funktion auf dem Stack gespeichert. Somit hat der Angreifer wieder die Möglichkeit den String mit Formatierungszeichen zu bestimmen, was eine erhebliche Sicherheitslücke darstellt. Wird zum Beispiel das Wort input eingegeben, liest das Programm: printf(input). Input enthält Formatierungszeichen wie %s was zur Folge hat, dass der Stack entsprechend oft 4 Eine Assemblersprache ist eine Programmiersprache, welche die Maschinensprache einer Prozessorarchitektur in einer für den Menschen lesbare Form bringt. Jede Computerarchitektur hat folglich ihre eigene Assemblersprache. Ein anderer geläufiger Begriff für Assembler ist Compiler
1 COMPUTERSICHERHEIT 12 gelesen wird. Auf diese Weise ist es möglich Daten aus dem stack auszulesen, wie beispielsweise Speicheradressen. Es gibt auch Formatierungszeichen, die das Schreiben erlauben. Danach ist der Angriff ähnlich dem des Stack overflow s. Ganz analog ist es dem Angreifer möglich einen Programmabsturz zu erzwingen oder einen Schadcode einzuschleusen. 1.4.3 SQL-Injection Die SQL-Injection ist eine sehr häufige und gravierende Angriffsmethode. Ihr Ziele sind so genannte SQL- Datenbanken 5 und geschützte Softwares. Da Datenbanken im Allgemeinen viele Information enthalten und über eine SQL-Injektion mitunter direkten Zugriff auf die Datenbank erlangt wird, können mit dieser Methode Datenänderungen, Datendiebstahl, Systemabstürze und das Ausschalten von Authentizitäten erreicht werden. Mit unter ist es auch möglich ganz Kontrolle über den Server zu erlangen. Wie in den oberen Beispielen ist es realiseirbar, bei ungefilterter Benutzereingaben SQL Befehle Codes in die Eingabe zu integrieren, die dann interpretiert werden. Fragt ein Programm beispielweise nach einem Benutzernamen und einem Passwort, um zu gewissen Daten Zugriff zu erlangen, so könnte zum Beispiel statt der Eingabe eines richtigen Benutzernamens ein code eingegeben werden. Query ist beispielsweise eine solche Funktion, die eine Datenbankabfrage vornimmt. Ihre Parameter sind User- Name und UserPass. Der Programmcode sieht wie folgt aus Query = SELECT * FROM user WHERE username= +UserName+ AND password= +UserPass+ ; Gibt man nun für den Benutzernamen Admin ein und als Passwort OR 23=23, so entsteht für das Programm eine logische Aussage: Query = SELECT * FROM user WHERE username= Admin AND password= OR 23 = 23 ; Nur, dass bei der zweiten Eingabe der Zugangsdaten jedes beliebige Passwort richtig ist. Dies ist jedoch bloß dann möglich, wenn die Eingabenvielfalt nicht weiter vom Programmierer beschränkt wird. Wenn der Nutzer von Software nicht weiß, wie sicher die Datenbanken sind, also wie genau die Eingabefelder überprüft werden, bleibt immer noch die Option, wichtige Daten zu verschlüsseln, sodass die Daten nicht von Anderen gelesen werden könne. Einer Datenvernichtung beugt dies jedoch nicht vor. 1.4.4 XSS XSS Cross-Site-Scripting ist eine weitere häufig angewandte Methode, um an fremde Daten zu gelangen. Betroffen sind vor allem Webanwendungen mit dynamischen Inhalten. Wenn eine solche Webanwendung Daten von einem Nutzer annimmt, und diese Daten an einen Browser ohne Überprüfung weiterleitet, dann ist es einem Dritten möglich, den Nutzer der Webanwendung auf verschiedene Weise zu attackieren. Die gesamte Attacke beginnt damit, dass der Angreifer mittels einer Art HTML-Injektion gewisse Parameter / Codes an ein serverseitiges Skript übergibt. Eine sogenannte XSS-Lücke besteht folglich erstmal aus einer fehlenden Eingabeüberprüfung der Webanwendung/Website, sodass die Möglichkeit besteht fremden Code, meist Javascript-Code einzufügen. Dieser Code kann aus der Webseite eine dynamische Webseite erzeugen. Ab dem jetzigen Punkt kann ein Link oder eine Eingabeleiste auf der Webseite eine Verknüpfung zu einer anderen Seite - die vom Angreifer geschrieben ist - darstellen. Geht jetzt ein Nutzer auf die modifizierte Webanwendung, so kann der Angreifer also direkt Skripte an den Browser des Nutzers schicken, und somit einen Schadcode direkt auf der Clientseite ausführen. Er kann aber auch einfach nur Skripte gestalten, die genauso aussehen, wie die Seite, die vom Nutzer ursprünglich gewollt war und somit an Passwörter oder Cookies gelangen, die wichtige Informationen enthalten. Bei vielen Attacken wird der Nutzer gleich danach wieder auf die richtige Seite gelinkt, erledigt das was er beabsichtigte und schöpft so kaum den Verdacht, dass vor ein paar Sekunden wichtige Daten seines Rechners kopiert wurden oder auf seinem Computer ein Schadcode infiltriert wurde. 1.5 Der infizierte Rechner Wie aus der Artenübersicht abzulesen, steht oft genug nicht die Schädigung an erster Stelle, sondern die Entwicklung tendiert zum unentdeckten Eindringen in die Software und Systeme des OpferPCs. Auf diese Weise werden wichtige Benutzerdaten ausspioniert und/oder die Integration des angegriffenen PC in die Angreifernutzung zu wirtschaftlichen oder auch ggf kriminellen Zwecken des Angreifers betrieben. Die brennende Frage: Wie erkenne ich auf meinen PC den unerwünschten Eindringling?, ergibt sich sozusagen von selbst. Antwort: Oftmals überhaupt nicht. Dennoch soll im Fogenden einige Hinweise für das Wirken ensprächender Schadprogramme gegeben werden. Erkennungszeichen: 5 SQL ist eine Datenbanksprache, die zur Abfrage, Definition und Änderung von Daten in Datenbanken dient. Sie ist eine standardisierte Sprache und wird von fast allen gängigen Datenbanksystemen unterstützt