Exploit

Exploit

Ein Exploit (englisch to exploit ‚ausnutzen‘) ist im EDV-Bereich eine systematische Möglichkeit die bei der Entwicklung eines Programms nicht berücksichtigt wurde und wobei mit Hilfe von Befehlsfolgen Sicherheitslücken und Fehlfunktionen von Programmen (oder ganzen Systemen) ausgenutzt werden. Das Ziel ist meist eine Manipulation um sich zu (weiteren) Ressourcen Zugang zu verschaffen oder Systeme zu beeinträchtigen. (DoS-Angriffe).

Inhaltsverzeichnis

Allgemeines

Ein Exploit wird oft auch nur zum Aufzeigen einer Sicherheitslücke geschrieben und dokumentiert. Damit soll erreicht werden, dass Softwarehersteller ihre Sicherheitslöcher schnell stopfen. Oft bezeichnet man die reine Beschreibung eines Exploits bereits als Exploit.

Exploits machen sich zum Beispiel die Tatsache zunutze, dass Computer mit Von-Neumann-Architektur, das sind nahezu alle Heim- und Bürorechner, nicht zwischen Programmcode und Nutzdaten unterscheiden. So wird zum Beispiel bei einem Pufferüberlauf der Code des Angreifers in einen nicht dafür vorgesehenen Speicherbereich geschrieben, wodurch die Ausführung der Anwendung manipuliert werden kann. Eine andere Möglichkeit sind Formatstring-Angriffe, bei denen ungefiltert Benutzereingaben an Formatierungsfunktionen wie printf() übergeben werden. Ein Angreifer kann oft eigenen Code zur Ausführung bringen, der ihm beispielsweise eine Shell mit den Privilegien der ausgenutzten Anwendung liefert.

Man bezeichnet Exploits zumeist wie folgt:

  • Lokale Exploits
  • Remote-Exploits
  • DoS-Exploits
  • Command-Execution-Exploits
  • SQL-Injection-Exploits
  • Zero-Day-Exploits

Lokale Exploits können beim Öffnen an sich scheinbar völlig harmloser Dateien (zum Beispiel Bilddateien) aktiviert werden, sofern die dem Dateityp zugeordnete Anwendung durch fehlerhafte bzw. unsaubere Verarbeitung der Datei eine Sicherheitslücke aufweist.

Eine aktive Form des Exploits sind Angriffe aus dem Internet mittels manipulierter Datenpakete oder spezieller Datenströme auf Schwachstellen in Netzwerksoftware. Solche Exploits werden mitunter auch als Remote-Exploits bezeichnet.

Meist sind die ersten für eine bekanntgewordene Sicherheitslücke veröffentlichten Exploits sogenannte DoS-Exploits, die zwar die betroffene Anwendung überlasten, allerdings keine Ausführung von fremdem Programmcode und keine Privilegien-Eskalation beinhalten.

Command-Execution-Exploits kennzeichnen das Merkmal einer vom Angreifer steuerbaren Ausführung von Programmcode auf dem Zielsystem. Um ein solches Exploit erfolgreich zur Ausführung bringen zu können, muss der Programmierer über diverse Eigenheiten der Aufteilung des Speichers der Zielanwendung Bescheid wissen. Dieses Wissen bezieht er durch offene Quellen des Programmcodes oder durch bloßes Testen. Er muss seinen Code geschickt platzieren, um ihn zur Ausführung bringen zu können. Command-Execution-Exploits sind zumeist sehr gefährlich, da die betroffenen Anwendungen meist über erhebliche Rechte auf dem System verfügen und der Code des Angreifers mit eben diesen Rechten gestartet wird.

SQL-Injection-Exploits sind eine spezielle Art von Exploits und finden sich weitestgehend nur in Bezug auf Webanwendungen, die eine SQL-Datenbank nutzen.[1] Hierbei werden Anfragen in einer Schichtenarchitektur so gestellt, dass die fehlerhaft bzw. unsauber arbeitende Logikschicht Daten zurückliefert oder schreibt, die sie weder für den Lesezugriff oder den Schreibzugriff verfügbar machen sollte. Beispielsweise können Eingaben in einem Loginformular so gestaltet werden, dass die betroffene Anwendung einen ungültigen Benutzer dennoch erfolgreich einloggt.

Zero-Day-Exploit

Entdeckt eine Person eine Sicherheitslücke und meldet sie nicht dem Software-Hersteller, so wird die Schwachstelle der Software meist lange nach dem ersten Angriff bekannt.[2] Der Name des dabei genutzten Exploits leitet sich von dessen Alter ab: Die Entdeckung durch Entwickler oder Benutzer geschieht am oder meist nach dem „nullten Tag“ (englisch zero day). Entwickler haben damit effektiv keine Zeit, die Software und deren Nutzer zu schützen. Von Crackern werden Zero-Day-Exploits oft lange geheim gehalten, damit sie weiterhin ausgenutzt werden können. Unter der Hand werden Zero-Day-Exploits auch, je nach Komplexität, Umfang und Marktwert des betroffenen Systems unter Crackern gehandelt, bzw. den Herstellerfirmen zu hohen Summen angeboten.[3]

Ein Angriff über einen Zero-Day-Exploit wird als Zero-Day-Attacke bezeichnet. Zero-Day-Attacken sind effizient, weil sie schnell und oft großflächig, automatisiert eine neue Sicherheitslücke ausnutzen können, bevor für die betroffenen Systeme Patches bereitstehen.

Präventiv versuchen Experten mit verschiedenen Testmethoden, Sicherheitslücken im Voraus aufzuspüren und dem Software-Hersteller aufzuzeigen, dies wird aber in Fachkreisen meist heftig kritisierten, da sich die Tester oftmals nicht im legalen Rahmen bewegen oder gegen Richtlinien von Herstellern verstoßen.[4]

Gegenmaßnahmen

Es gibt keine technische Lösungen. Oftmals wird jedoch der Speicherschutz als eine solche genannt, das ist jedoch nicht korrekt, denn eingefrorene Speicher können mit unterschiedlichen Programmen ausgelesen werden. Ebenso kann mittels Intrusion Detection Systemen ein Angriff auf Basis bestehender Funktionalitäten festgestellt oder mittels Intrusion Prevention Systemen auch verhindert werden, jedoch schützt so ein System ebenso wenig gegen das Ausnutzen eines (systematischen, unbekannten) Fehlers in einer Software. Das Grundproblem ist stets unsaubere Programmierung bzw. ein systematisch, meist sehr komplexer Fehler in der Architektur des Programms oder eines ganzen Systems. Die einzige Lösung ist, die durch Verarbeitungsfehler entstehenden Sicherheitslücken schon bei der Entwicklung zu vermeiden, was bei heutigen Systemen aber praktisch fast nicht möglich ist. Auch Managed Code bietet einen gewissen Schutz, so werden zum Beispiel Pufferüberläufe effektiv verhindert. Dies ist aber, wie vorher schon erwähnt, nur ein Teil zur Lösung der Gesamtproblematik. Komplexe Systeme, von unterschiedlichen Herstellern und Sublieferanten, bestehend aus Hard- und Software erschweren die Fehlerfindung während der Entwicklung enorm. Hier wird dann meist noch im Betrieb, weit nach der Beta-Phase, die Fehlersuche fortgeführt, dies erfolgte auch bei extrem kritischen Systemen, wie dem Boardcomputer des Space-Shuttles[5]

Siehe auch

Einzelnachweise

  1. SQL Injection. PHP.net. Abgerufen am 19. August 2011.
  2. Zero-Day-Exploit. iruslist. Abgerufen am 18. November 2011.
  3. The legitimate vulnerability market. Independent Security Evaluators, Charles Miller, Ph.D. Abgerufen am 18. November 2011.
  4. Metasploit schreibt Kopfgeld auf Exploits aus. Heise. Abgerufen am 18. November 2011.
  5. Sicherheit und Zuverl¨assigkeit der Computersysteme des Space Shuttles. Malte Diehl. Abgerufen am 17. November 2011.

Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • exploit — [ ɛksplwa ] n. m. • XIVe; espleit 1080; lat. explicitum, de explicare « accomplir » 1 ♦ Vx ou littér. Action d éclat accomplie à la guerre. ⇒ 2. fait (fait d armes; haut fait), geste. Glorieux, brillant exploit. « les départements bretons,… …   Encyclopédie Universelle

  • exploit — EXPLOIT. s. m. Action signalée, memorable, principalement à la guerre. Exploit militaire. bel exploit. grand exploit. glorieux exploit. il s est signalé par ses exploits. il s est rendu fameux par mille exploits. Il signifie aussi, Un acte que… …   Dictionnaire de l'Académie française

  • exploit — ex‧ploit [ɪkˈsplɔɪt] verb [transitive] 1. to use something fully and effectively in order to gain a profit or advantage: • New TV companies are fully exploiting the potential of satellite transmission. • the ways in which natural resources are… …   Financial and business terms

  • Exploit — Ex*ploit , n. [OE. esploit success, OF. esploit, espleit,revenue, product, vigor, force, exploit, F. exploit exploit, fr. L. explicitum, prop. p. p. neut. of explicare to unfold, display, exhibit; ex + plicare to fold. See {Ply}, and cf.… …   The Collaborative International Dictionary of English

  • Exploit — can mean: *Exploit (computer security) *Exploit (online gaming) *Exploit (natural resources) *Exploit (sociology)*An achievement. The first summit of mount Everest was a stunning exploit. *The longest river on the island of Newfoundland is called …   Wikipedia

  • Exploit — (del inglés to exploit, explotar o aprovechar) es una pieza de software, un fragmento de datos, o una secuencia de comandos con el fin de automatizar el aprovechamiento de un error, fallo o vulnerabilidad, a fin de causar un comportamiento no… …   Wikipedia Español

  • exploit — [eks′ploit΄; ] also, and for v.usually [, ek sploit′, iksploit′] n. [ME & OFr esploit, an exploit, action < L explicitum, neut. pp. of explicare: see EXPLICATE] an act remarkable for brilliance or daring; bold deed vt. 1. to make use of; turn… …   English World dictionary

  • Exploit — (viene de to exploit aprovechar) código escrito con el fin de aprovechar un error de programación para obtener diversos privilegios software. Un buen número de exploits tienen su origen en un conjunto de fallos similares. Algunos de los grupos de …   Enciclopedia Universal

  • exploit — [n] achievement accomplishment, adventure, attainment, coup, deed, do, effort, enterprise, escapade, feat, job, maneuver, performance, stroke, stunt, tour de force, venture; concept 706 exploit [v] take advantage of; misuse abuse, apply, avail… …   New thesaurus

  • Exploit — (frz. exploa), Heldenthat; e. ation (–ploatassiong), Nutzung, Ausbeutung; exploitiren, einen Auftrag vollziehen; nutzen, ausbeuten …   Herders Conversations-Lexikon

  • exploit — I (make use of) verb apply, avail oneself of, bring into play, capitalize on, consume, employ, exercise, fall back on, find useful, implement, make the most of, manipulate, operate, profit by, put in practice, put into action, put into operation …   Law dictionary

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”