DE112009002738T5 - System und Verfahren zur Laufzeitangriffsprävention - Google Patents

System und Verfahren zur Laufzeitangriffsprävention Download PDF

Info

Publication number
DE112009002738T5
DE112009002738T5 DE112009002738T DE112009002738T DE112009002738T5 DE 112009002738 T5 DE112009002738 T5 DE 112009002738T5 DE 112009002738 T DE112009002738 T DE 112009002738T DE 112009002738 T DE112009002738 T DE 112009002738T DE 112009002738 T5 DE112009002738 T5 DE 112009002738T5
Authority
DE
Germany
Prior art keywords
computer
function
content
contents
protection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112009002738T
Other languages
English (en)
Inventor
Andy Davenport
Hunter King
Jon R. Ramsey
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SECURE WORKS Inc
SecureWorks Inc
Original Assignee
SECURE WORKS Inc
SecureWorks Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SECURE WORKS Inc, SecureWorks Inc filed Critical SECURE WORKS Inc
Publication of DE112009002738T5 publication Critical patent/DE112009002738T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/144Detection or countermeasures against botnets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies

Abstract

Verhindern von Angriffen auf einen Computer während der Laufzeit. Inhalte, die konfiguriert sind, um zumindest auf eine Funktion eines Computers zuzugreifen, werden von dem Computer empfangen. Schutzmaßnahmen, die der Funktion entsprechen, werden den Inhalten hinzugefügt, wobei die Schutzmaßnahmen die Funktion außer Kraft setzen. Die Inhalte und die Schutzmaßnahmen werden dann zu dem Computer übertragen. Die Funktion kann eine Schwachstelle des Computers aufdecken und Argumente, die an die Funktion übergeben werden, können diese Schwachstelle ausnützen. Die Schutzmaßnahmen werden ausgeführt, wenn die Inhalte ausgeführt werden und bestimmen, ob die Argumente der Inhalte, die an die Funktion übergeben werden, eine Gefahr darstellen. In Antwort auf das Bestimmen, dass die Argumente eine Gefahr darstellen, wird die Ausführung der Inhalte ohne Ausführen der Funktion beendet.

Description

  • VERWEIS AUF ZUGEHÖRIGE ANMELDUNGEN
  • Diese Patentanmeldung beansprucht Priorität unter 35 U.S.C. § 119 der Provisional Patentanmeldung der Vereinigten Staaten mit der Nummer 61/199 728, mit dem Titel „Virtual Vault”, eingereicht am 19. November 2008. Die vollständige Offenbarung der oben identifizierten Prioritätsanmeldung ist hiermit vollständig durch Bezug mit aufgenommen.
  • GEBIET DER ERFINDUNG
  • Diese Erfindung bezieht sich allgemeinen auf das Gebiet von Computer- und Netzwerksicherheit, und spezieller zum Identifizieren schädlicher Programme und Codes und um deren Ausführung zu verhindern.
  • HINTERGRUND DER ERFINDUNG
  • Seit Jahrzehnten haben Hacker nach Wegen gesucht um schädliche Programme („Schadsoftware”) auf Computer oder vernetzten Geräten zu installieren. Häufig agiert Schadstoffsoftware, um die Funktionsweise des Computers, auf welchem sie installiert ist (der „Host”), zu beschädigen oder die Funktionsweise anderweitig zu behindern. Schadsoftware kann dem Hacker ferner Zugriff auf sensible Informationen bereitstellen, die auf dem Host-Computer und dem Netzwerk vorhanden sind, an den der Host angeschlossen ist. Schadsoftware kann auch den Host-Computer benutzen, um zusätzliche Schadsoftware zu verteilen, durch Entführen der E-Mail- und anderer Netzwerkkommunikationseinrichtungen des Hosts.
  • Das herkömmliche Verfahren zum Installieren von schädlichen Programmen ist diese auf einem Host-Computer in einem ansonsten gutartig erscheinenden Programm oder Dokument zu verstecken. Zum Beispiel kann Schadsoftware in eine E-Mail-Nachricht eingeschlossen werden und kann nach dem Öffnen der E-Mail-Nachricht oder dem Ansehen von Bildern innerhalb der Nachricht automatisch ablaufen. Schadsoftware kann ferner einem Programm zugeordnet sein, das der Nutzer des Host-Computers absichtlich heruntergeladen und/oder installiert hat.
  • Das primäre Verfahren zum Detektieren dieser Bedrohungen ist es herkömmlicherweise Signaturen zu identifizieren, die verschiedener Schadsoftware zugeordnet sind. Signaturen sind herkömmlicherweise eine Abfolge ausführbarer Zeichen, die identifiziert werden, nachdem ein Angriff stattgefunden hat und die speziell ausgebildeten Analysten berichtet werden. Die Analysten identifizieren die Schadsoftware und eine dazugehörige Signatur. Die Analysten entwickeln dann Software, um die Signatur in ausführbarem Code oder im Netzwerkverkehr zu identifizieren. Dies ist die typische Arbeitsweise der meisten herkömmlichen Antivirus, Anti-Spyware (Anti-Spionage) und Eindring-Erkennungssysteme.
  • Die Hacker sind wohl vertraut mit diesen herkömmlichen Abwehrmaßnahmen und haben neue Angriffe entwickelt, die ausgelegt sind neue Technologien zu benutzen, um die signaturbasierte Erkennung zu umgehen. Ein solcher Angriff verwendet ausführbaren Internet-Code, wie etwa Javascript. Javascript ist eine Programmiersprache, die ausgelegt ist in Hypertext Markup Language (HTML) Seiten eingebettet zu werden. Javascript stellt Zugang zu ausführbaren Objekten außerhalb des Webbrowsers bereit. Beispielsweise ermöglicht JavaScript einer Internetseite ein Dokument zu öffnen, das auf der Festplatte des Host gespeichert ist und das Dokument zu modifizieren. JavaScript ermöglicht ferner das Erzeugen von Datenstrukturen in dem Speicher des Host-Computers. Da Javascript eine Script-Sprache ist, wird sie nicht kompiliert, sondern wird auf den Webbrowser des Endnutzers als Text übertragen, wo sie ausgeführt wird.
  • Diese Merkmale stellen Hackern einen Zugang bereit, den sie ausnutzen. Es kann beispielsweise bekannt sein, dass ein gegebenes Betriebssystem oder ein Webbrowser, die einen Bereich (array) von einer gewissen Größe erzeugen, es einem Hacker erlauben auf besonders sensible Gebiete des Computerspeichers zuzugreifen. Javascript ermöglicht das Erzeugen eines solchen Bereichs. Das Erzeugen von Datenstrukturen erfordert eine bestimmte bekannte Syntax, sodass signaturbasierte Erkennung noch immer möglich sein kann. Da jedoch Programmierer einen großen Spielraum in den Namen haben, die sie Variablen und Daten, die in den Bereich platziert werden, geben, wird signaturbasierte Erkennung viel schwieriger, wenn nicht gar unmöglich, da der Angriff nicht sichtbar wird, bis die schädliche Software bereits auf dem Host-Computer läuft.
  • In dem Maße indem signaturbasierte Erkennung in diesem hypothetischen Beispiel möglich wäre, bieten jedoch Sprachen wie JavaScript Hackern zusätzliche Wege, um signaturbasierte Erkennungsschemata zu verbergen. Insbesondere bietet JavaScript die Laufzeitauswertung von Zeichenketten (strings), die dann ausgeführt werden können. Nehmen wir beispielsweise an, dass der Funktionsaufruf document.wright („hack”) ein bekanntes Exploit ist. Ein Hacker kann die Merkmale von der Laufzeitauswertung von JavaScript benutzen, um das Exploit wie folgt zu verschleiern.
    var X = „ha”;
    var Y = „k”;
    var Z = ”doc”;
    var A = ”ument.wr”
    var B = ”ite(”;
    var C = ”)”;
    var D = ”c”;
    eval (Z + A + B + X + D + Y + C);
  • Der Code würde die Zeichenkette als dokument.wright („hack”) auswerten und den schädlichen Code ausführen. Das Problem verschlimmert sich dadurch, dass JavaScript wenige Beschränkungen für die Namen der Variablen und die Reihenfolge, in denen sie erscheinen, bereitstellt. Daher werden Hacker nur durch ihre Vorstellungskraft darin beschränkt, wie sie die Wege ihres schädlichen Codes verschleiern. Darüber hinaus, da JavaScript automatisch in dem Moment erzeugt werden kann, in dem eine Web-Seite angefragt wird, können Verschleierungsmechanismen, wie die oben beschriebenen, in Antwort auf eine Anfrage zufällig auf solch eine Weise verschleiert werden, die sicherstellt, dass jeder Angriff eine Signatur aufweisen wird, die von der vorhergehenden verschieden ist. Dementsprechend ist herkömmliche signaturbasierte Erkennung für diese neue Sorte von Internetangriffen schwierig, wenn nicht unmöglich.
  • Ein weiteres Problem mit solchen Angriffen ist, dass sie im Code versteckt werden können, die von sonst vertrauenswürdigen Quellen empfangen werden. Eine weit verbreitete Internetseite kann beispielsweise Banner-Fläche auf ihrer Internetseite an Anzeigenkunden verkaufen. Die Werbung, die auf dieser Fläche erscheint, wird üblicherweise von dem Anzeigenkunden geladen oder von einem Werbeanzeigen-Server eines Dritten, wenn ein Endnutzer die Internetseite durchstöbert (browse). Die Werbeanzeige kann ferner auf Server geladen werden, die der Internetseite zugeordnet sind, bevor der Endnutzer die Internetseite durchstöbert, wodurch die Werbeanzeige dem Nutzer geliefert werden kann, ohne dass er sich mit einem externen Server verbindet, wenn der Endnutzer die Internetseite durchstöbert. Entgegen vertragsgemäßer Kontrollen, kann die Firma, die die Internetseite betreibt, wenig Kontrolle über den Inhalt der Werbeanzeige haben. Falls ein schädlicher Code in die Werbeanzeige platziert wird, kann die Internetseite dies nicht wissen, bis sie bereits Millionen infizierter Seiten bedient hat. Demzufolge können herkömmliche Methoden des Blockieren von Internetverkehr von nicht vertrauenswürdigen Quellen oder das alleinige Erlauben von Verkehr von vertrauenswürdigen Quellen nicht ausreichend sein, um Angriffen zu verhindern.
  • Das herkömmliche Verfahren zum Verhindern solcher Attacken ist das Abschalten der Ausführung von internetbasiertem ausführbaren Code, einschließlich, ohne jedoch darauf beschränkt zu sein JavaScript, Adobe Flash und Microsoft Silverlight. Das Verhindern der Ausführung von solchem Code kann jedoch verursachen, dass bestimmte Internetseiten nicht richtig funktionieren und den mächtigen Internetinhalt beeinträchtigen, den dieser Code verfügbar macht.
  • Dem entsprechend existiert ein Bedürfnis für ein System, das Angriffe, die von ausführbarem Code geliefert werden, identifizieren und verhindern kann. Ein weiteres Bedürfnis existiert nach einem System, das solche Angriffe identifizieren und verhindern kann, selbst wenn diese verschleiert werden, sodass die Anwesenheit der Angriffe bis zu der Laufzeit nicht erkannt werden kann. Ein zusätzliches Bedürfnis existiert nach seriösen Betreibern von Internetseiten, die Besucher ihrer Seiten vor Angriffen schützen, die in dem Inhalt versteckt sind, der durch ihre Seiten publiziert wird, wie etwa Banner-Werbeanzeigen, die von einem dritten Werbetreibenden kontrolliert werden.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung kann die oben identifizierten Bedürfnisse befriedigen, durch Bereitstellen eines Systems und Verfahrens zur Laufzeitangriffsprävention. In einem Aspekt der Erfindung wird ein Verfahren bereitgestellt, wodurch Inhalte empfangen werden können, die für einen Computer bestimmt sind. Die Inhalte können konfiguriert sein, um zumindest auf eine Funktion zuzugreifen, die eine Schwachstelle des Computers aufdeckt. Schutzmaßnahmen, die die Funktion überschreiben oder die Ausführung des Inhalts modifizieren, können dann den Inhalten hinzugefügt werden. Die Inhalte einschließlich der Schutzmaßnahmen werden dann an den Computer geschickt.
  • Sobald der Computer die Inhalte und die Schutzmaßnahmen erhält, führt der Computer die Inhalte aus. Wenn die Inhalte die Funktion aufrufen, die die Schwachstelle des Computers aufdeckt, wird die Schutzmaßnahme ausgeführt. Nach dem Ausführen der Schutzmaßnahme werden Argumente, die die Inhalte versucht haben in die Funktion einzuführen, analysiert und es wird eine Feststellung getroffen, ob diese Argumente eine Bedrohung darstellen. Wenn bestimmt wird, dass die Argumente eine Bedrohung darstellen, wird die Ausführung der Inhalte ohne Ausführen der Funktion abgebrochen. Wenn auf der anderen Seite die Argumente keine Gefahr darstellen, wird der gefährdeten Funktion erlaubt normal ausgeführt zu werden.
  • Wenn festgestellt wird, dass die Argumente, die an die Funktion weitergegeben werden, eine Gefahr darstellen und die Ausführung der Inhalte beendet wird, kann ein Alarm an den Netzwerkadministrator geschickt werden. Ein Alarm kann ferner an einen Endnutzer oder an einen Dritten geschickt werden.
  • Das Verfahren kann beim Hinzufügen von Schutzmaßnahmen eine Rechenumgebung betrachten, die dem Computer zugeordnet ist. Die Rechenumgebung kann Informationen einschließen, die sich auf das Betriebssystem des Computers beziehen, den Typ und die Version des Webbrowsers, der auf dem Computer arbeitet und/oder die Applikationen, die auf dem Computer installiert sind. Das Verfahren kann dann Schutzmaßnahmen identifizieren, die mit der der Rechenumgebung übereinstimmen und diese Schutzmaßnahmen den Inhalten hinzufügen. Das Verfahren kann ferner den Typ der Inhalte betrachten, die JavaScript, Flash und Silverlight umfassen können, beim Hinzufügen der Schutzmaßnahmen. Das Verfahren kann Schutzmaßnahmen identifizieren, die mit der Art der Inhalte übereinstimmen und kann diese Schutzmaßnahmen den Inhalten hinzufügen.
  • In einem weiteren Aspekt der Erfindung wird ein System zum Verhindern von Angriffen auf einen Computer während der Laufzeit bereitgestellt. Das System umfasst einen ersten Computer, der konfiguriert ist, um Inhalte zu empfangen. Eine Schutzmaschine (protection engine) wird an den ersten Computer angeschlossen und wird konfiguriert, um die Inhalte abzufangen und um die Schutzmaßnahmen den Inhalten hinzuzufügen. Die Schutzmaßnahmen setzen die Funktion außer Kraft, auf die die Inhalte zugreifen, sodass die Schutzmaßnahme ausgeführt wird, wenn die Inhalte die Funktion aufrufen. Die Schutzmaßnahmen können konfiguriert sein, um zu bestimmen, ob die Argumente, die die Inhalte an die Funktion weiterreichen, einen Angriff darstellen. Die Schutzmaßnahmen können ferner konfiguriert sein, um das Ausführen der Inhalte zu beenden, nach dem Bestimmen, dass die Argumente einen Angriff darstellen. Die Schutzmaßnahmen können auch die Ausführung der Inhalte modifizieren, um Angriffe zu durchkreuzen, die von bestimmten Merkmalen der Ausführung der Inhalte abhängen. Die Schutzmaßnahmen können ferner konfiguriert sein, um einen Alarm an den Endnutzer, den Netzwerkadministrator und/oder eine weitere dritte Seite zu übertragen, nach dem Feststellen, dass der Aufruf der Funktion einen Angriff darstellt.
  • In noch einem weiteren Aspekt der Erfindung wird ein zusätzliches Verfahren zum Verhindern von Angriffen auf einen Computer während der Laufzeit bereitgestellt. In dem Verfahren empfängt ein entfernter Server (remote server) eine Anfrage nach ausführbaren Inhalten von einem Computer. Schutzmaßnahmen werden den Inhalten hinzugefügt, wobei die Schutzmaßnahmen die Funktion außer Kraft setzen, auf die die Inhalte zugreifen. Die Schutzmaßnahmen und die Inhalte werden dann an den Computer übertragen.
  • Der Computer führt dann die Inhalte und die Schutzmaßnahmen aus. Die Schutzmaßnahmen bestimmen, ob die Argumente, die die Inhalte an die Funktion weiterreicht eine Bedrohung für den Computer darstellen. In Antwort auf das Bestimmen, dass die Argumente eine Bedrohung für den Computer darstellen, beenden die Schutzmaßnahmen die Ausführung der Inhalte. Die Schutzmaßnahmen können ferner die Ausführung der Inhalte modifizieren, um Angriffe zu durchkreuzen, die von bestimmten Merkmalen der Ausführung der Inhalte abhängen. Die Schutzmaßnahmen können ferner einen Endnutzer, einen Netzwerkadministrator oder einen Dritten über die Bedrohung alarmieren.
  • Zusätzliche Aspekte, Objekte, Merkmale und Vorteile der Erfindung werden für Fachleute offensichtlich nach der Betrachtung der nachfolgenden detaillierten Beschreibung von exemplarischen Ausführungsformen. Für ein vollständigeres Verstehen der beispielhaften Ausführungsformen der vorliegenden Erfindung und deren Vorteilen wird nun Bezug genommen auf die nachfolgende Beschreibung in Verbindung mit den begleitenden Zeichnungen, die unten beschrieben sind.
  • KURZE BESCHREIGUNG DER ZEICHNUNGEN
  • Die 1 ist ein Blockdiagramm, das eine Netzwerkstruktur darstellt, das ein System zur Laufzeitangriffsprävention gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung implementiert.
  • Die 2 ist ein Flussdiagramm, das ein beispielhaftes Verfahren zum Verwenden des Systems der Laufzeitangriffsprävention der 1 zum Einsetzen von Schutzmaßnahmen in Netzwerkverkehr darstellt.
  • Die 3 ist ein Flussdiagramm, das ein beispielhaftes Verfahren zum Erzeugen von Schutzmaßnahmen unter Verwendung des Systems zur Laufzeitangriffsprävention der 1 darstellt.
  • Die 4 ist ein Flussdiagramm, das ein beispielhaftes Verfahren zum Einsetzen von Schutzmaßnahmen in ein Netzwerk unter Verwendung des Systems zur Laufzeitangriffsprävention der 1 darstellt.
  • Die 5 ist ein Flussdiagramm, das ein beispielhaftes Verfahren zum Voranstellen von Schutzmaßnahmen darstellt.
  • Die 6 ist ein Flussdiagramm, das ein beispielhaftes Verfahren zum Ausführen geschützter Inhalte zur Laufzeitangriffsprävention darstellt.
  • Die 7 ist ein Blockdiagramm, das eine Netzwerkstruktur zum Implementieren eines Systems zur Laufzeitangriffsprävention gemäß einer zweiten beispielhaften Ausführungsform der vorliegenden Erfindung darstellt.
  • Die 8 ist ein Flussdiagramm, das ein beispielhaftes Verfahren zum Einsetzen von Schutzmaßnahmen in einen Server unter Verwendung des Systems zur Laufzeitangriffsprävention der 7 darstellt.
  • Die 9 ist ein Blockdiagramm, das eine Netzwerkstruktur zum Implementieren eines Systems zur Laufzeitangriffsprävention gemäß einer dritten beispielhaften Ausführungsform der vorliegenden Erfindung darstellt.
  • Die 10 ist ein Flussdiagramm, das ein beispielhaftes Verfahren zum Einfügen von Schutzmaßnahmen in einen Computer eines Endnutzers unter Verwendung des Systems zur Laufzeitangriffsprävention der 9 darstellt.
  • DETAILLIERTE BESCHREIBUNG VON BEISPIELHAFTEN AUSFÜHRUNGSFORMEN
  • Das erfinderische System zur Laufzeitangriffsprävention kann Netzwerkverkehr abfangen, der ausführbare Inhalte enthält, die für einen Endnutzer oder einen anderen Agenten oder ein anderes Gerät bestimmt sind, das die Inhalte von dem Netzwerk konsumiert. Der Computer des Endnutzers, der auch als der Host-Computer bezeichnet wird, deckt eine Anzahl von Funktionen auf, auf die die Inhalte zugreifen können. Einige dieser Funktionen können Schwachstellen aufdecken, die dem Computer zugeordnet sind, seinem Betriebssystem oder anderen Applikationen, die auf dem Computer installiert sind. Nach dem Abfangen der Inhalte, fügt das erfinderische System Schutzmaßnahmen den Inhalten hinzu, die die Funktionen außer Kraft setzen (oder „einhüllen”). Die Schutzmaßnahmen werden ausgeführt, wenn die Inhalte versuchen die Funktionen aufzurufen, die von dem Computer aufgedeckt werden. Wie hierin benutzt, bezieht sich der Ausdruck Computer auf Workstations, wie etwa Arbeitsplatzrechner, die mit einem externen Netzwerk, wie etwa dem Internet verbunden sind. Der Ausdruck Computer bezieht sich ferner auf Geräte, die in irgendeinem Netzwerk betrieben werden können, die einen Prozessor oder Controller aufweisen, der mit einem Speichergerät entweder direkt oder durch ein Netzwerk verbunden ist und der dazu befähigt ist, einen ausführbaren Code über ein Netzwerk zu empfangen und diesen Code auszuführen, einschließlich Laptop-Computern, tragbaren Computern, Mobiltelefonen, persönlichen digitalen Assistenten (PDAs, personal digital assistant), tragbaren Audio-Abspielgeräten, tragbaren Video-Abspielgeräten und globalen Positionsbestimmungssystemen (global positioning systems). Der Ausdruck „Computer”, wie er durchgehend in dieser Anmeldung benutzt wird, wird einfach aus Bequemlichkeitsgründen benutzt und ist beabsichtigt alle Computer oder vernetzte Geräte, wie oben beschrieben, zu umfassen.
  • Die Schutzmaßnahmen werden konfiguriert, um basierend auf Argumenten, die die Inhalte der Funktion zu übergehen versuchten oder auf anderen Informationen (einschließlich Zustandsinformationen, wie etwa die Anzahl der Zeitpunkte zu denen eine bestimmte Funktion aufgerufen worden ist) zu bestimmen, ob die Inhalte eine Bedrohung für den Computer enthalten. Die Schutzmaßnahmen können auch die Ausführung der Inhalte modifizieren, um Angriffe zu durchkreuzen, die von einem bestimmten Merkmal der Ausführung der Inhalte abhängen. Wenn die Schutzmaßnahmen andererseits bestimmen, dass ein bestimmter Funktionsaufruf keine Bedrohung darstellt, kann der Funktion erlaubt werden normal ausgeführt zu werden (d. h., wie von den Inhalten aufgerufen). Die Schutzmaßnahmen können ferner den Endnutzer, den Netzwerkadministrator oder einen Dritten über die Bedrohung alarmieren. Das Einbringen von Schutzmaßnahmen in von einem Netzwerk gelieferte ausführbare Inhalte bevor der Inhalt ausgeführt wird, können Angriffe verhindern, die auf die aufgedeckten Funktionen gerichtet sind, die in den Inhalten versteckt sind.
  • Vor dem Hinzufügen der Schutzmaßnahmen kann das erfinderische System bestimmte Aspekte der Inhalte und des anfragenden Computers betrachten, um beim Rationalisieren des Prozesses zu helfen. Falls beispielsweise die Anfrage nach Inhalten von einer bestimmten Version eines Internetbrowsers gesendet wurde, kann das System einfach Schutzmaßnahmen zu den Inhalten hinzufügen, die sich auf den bestimmten Internetbrowser beziehen. In ähnlicher Weise, falls die Inhalte ein bestimmter Typ ausführbaren Codes sind (z. B. JavaScript), kann das System nur solche Schutzmaßnahmen hinzufügen, die für JavaScript Inhalte geeignet sind.
  • Nun mit Bezug auf die Zeichnungen, in denen ähnliche Bezugszeichen sich auf ähnliche Elemente beziehen, stellt die 1 ein Blockdiagramm einer Netzwerkstruktur dar, das ein System 100 zur Laufzeitangriffsprävention gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung implementiert. Ein oder mehrere Endnutzer 102 betreiben Computer innerhalb des Netzwerks.
  • Die Endnutzer 102 fragen über ihre Workstations Inhalte von einem entfernten Server 108 über das Netzwerk an. In einer beispielhaften Ausführungsform erfolgt die Anfrage, wenn der Endnutzer 102 einen Webbrowser auf seinem Computer öffnet, wie etwa Microsoft Internet Explorer, Mozilla Firefox, Mozilla Flock, Google Chrome, Opera oder Apple Safari und sich zu einer Netzwerkadresse durchfragt (browse). Der Computer des Endnutzers 102 schickt die Anfrage an einen Proxy-Server 104 oder ein anderes Gerät in dem Netzwerk, wie etwa einen Router, der die Anfrage auswertet und die Anfrage an eine Firewall (Brandschutzmauer) oder ein Eindring-Schutzsystem 106 schickt, das die Anfrage dann an den entfernten Server 108 weitergibt.
  • Der entfernte Server 108 empfängt die Anfrage und erzeugt in Antwort darauf Inhalte, die an den Endnutzer 102 zurückgeschickt werden. In einer beispielhaften Ausführungsform ist der entfernte Server 108 ein World-Wide-Web-Server, der verschiedene Arten Inhalte speichert, die dem Endnutzer 102 auf seinem Computer präsentiert werden können. In dieser Ausführungsform bestehen die Inhalte aus ASCII formatiertem HTML (hyper-text markup language) Code (Hypertext-Auszeichnungssprache), der von dem Browser des Endnutzers 102 wiedergegeben werden kann. Die Inhalte können ferner aus binär codierten Informationen, wie etwa Bildern bestehen. Die Bilder können in einer Anzahl herkömmlicher Formate, wie etwa dem Joint Photographic Experts Group Format (JPEG oder JPG), dem Graphics Interchange Format (GIF), dem Tagged Image File Format (TIFF), dem Portable Document Format (PDF) oder anderen Bildformaten gespeichert sein, die über ein Netzwerk übertragen werden können.
  • Die Inhalte können ferner aus einem Code bestehen, der von einem Browser ausgeführt werden kann oder einer anderen Applikation, die in der Lage ist den Code auf dem Computer des Endnutzers 102 auszuführen. Mehrere Standards existieren, um ausführbaren Code an Browser auszuliefern, einschließlich JavaScript, Adobe Flash und seine zugeordneten Skriptensprache ActionScript und Microsoft Silverlight. JavaScript wird beispielsweise durch ACCII Programmanweisungen dargestellt, die von dem Browser nach Erhalt ausgeführt werden.
  • Der entfernte Server 108 leitet die Antwort der Inhalte zurück an den Endnutzer 102. Bevor die Inhalte bei dem Endnutzer 102 ankommen, müssen sie jedoch die Firewall/das Eindringerkennungssystem 106 passieren. Die Firewall 106 ist herkömmlicher Weise konfiguriert um nicht gewünschten Netzwerkverkehr zu blockieren, auf der Basis eines Satzes von leicht identifizierbaren Merkmalen, wie etwa der Quell- oder der Zieladresse des Verkehrs. Angenommen die Antwort passiert die Firewall 106 erfolgreich, kann sie ferner durch ein Eindringerkennungssystem (IDS, intrusion detection system) untersucht werden, das normalerweise konfiguriert ist, zusätzliche strengere Tests auf den Netzwerkverkehr anzuwenden, in dem Bemühen Bedrohungen zu identifizieren (und zu verhindern). Ein IDS kann beispielsweise Informationen und Signaturen speichern, die sich auf die Inhalte des Netzwerkverkehrs beziehen, um Verkehr zu identifizieren, der mit Mustern übereinstimmt, die bekannten Angriffen zugeordnet sind.
  • Angenommen die Antwort passiert das IDS erfolgreich, dann wird die Antwort an den Proxy-Server 104 übertragen. In einem herkömmlichen Netzwerk speichert der Proxy-Server 104 Informationen, die sich auf den Endnutzer 102 beziehen, der die Anfrage geschickt hat, die die Antwort ausgelöst hat und leitet die Antwort an den Computer des entsprechenden Endnutzers 102 weiter. In einer beispielhaften Ausführungsform der vorliegenden Erfindung interveniert jedoch die Schutzmaschine (protection engine) 102 in diesem Prozess und fügt eine zusätzliche Schicht Schutzmaßnahmen für den Endnutzer 102 hinzu.
  • In einer beispielhaften Ausführungsform agiert die Schutzmaschine 112 auf dem gleichen Server, der den Proxy-Server 104 betreibt. In einer alternative Ausführungsform kann jedoch die Schutzmaschine 112 ein vollständig getrennter Server sein, der konfiguriert ist, um Inhalte von dem Proxy-Server 104 zu empfangen, bevor der Proxy-Server 104 die Inhalte zurück an den Endnutzer 102 leitet. In noch einer weiteren beispielhaften Ausführungsform kann die Schutzmaschine 112 an irgendeiner Stelle innerhalb des Netzwerkdatenpfades angeordnet sein. Die Schutzmaschine 112 kann beispielsweise vor der Firewall/IDS 106 zwischen der Firewall/IDS 106 und dem Proxy-Server 104 oder zwischen dem Proxy-Server 104 und dem Endnutzer 102 angeordnet sein. Die endgültige Aufstellung der Schutzmaschine 112 muss nicht an einer bestimmten Stelle sein und kann von einer Anzahl von Faktoren entsprechend der Topologie des bestimmten Netzwerks abhängen.
  • Mit erneutem Bezug auf die beispielhafte Ausführungsform bei der die Schutzmaschine 112 dem Proxy-Server 104 zugeordnet ist, wenn die Antwort den Proxy-Server 104 passiert, fängt die Schutzmaschine 112 die Antwort ab. Die Schutzmaschine 112 empfängt die Antwort und bestimmt, ob die Antwort einen Typ Inhalt umfasst, der einen Angriff tragen kann. In einer beispielhaften Ausführungsform der vorliegenden Erfindung ist die Schutzmaschine 112 konfiguriert, um Text oder andere Signale innerhalb der Antwort zu erkennen, die beabsichtigt sind den Browser des Endnutzers über die Präsenz eines bestimmten Typs von Inhalt zu unterrichten. Falls beispielsweise die Antwort JavaScript umfasst, dann wird die Antwort ein Kennzeichen (tag) enthalten, wie etwa „<script type = „text/javascript”>”. In ähnlicher Weise wird, falls die Antwort Flash-Inhalte (Blitzinhalte) enthält sie ein Kennzeichen, wie etwa „<object data = „movie.swf” type = „application/x-shockwave-flash”>” enthalten. Nach Erhalt eines solchen Kennzeichens (oder anderer ähnlicher Kennzeichen, die anderen Typen ausführbarer Inhalten zugeordnet sind), wird die Schutzmaschine 112 erkennen, dass die Antwort Inhalte enthält, die einen Angriff tragen können.
  • Sobald die Schutzmaschine 112 erkennt, dass die Antwort von dem Typ Inhalt ist, der einen Angriff tragen kann, stellt die Schutzmaschine 112 Schutzmaßnahmen den Inhalten voran. In einer beispielhaften Ausführungsform sind die Schutzmaßnahmen Codes, die vor den möglicherweise schädlichen Code ausgeführt werden und stellen eine Barriere gegen in dem Code versteckte Angriffe bereit. Beispielhafte Schutzmaßnahmen setzen die Kernfunktionen (core functions) der neuen Funktionalität außer Kraft, die konfiguriert ist, um die Funktionalität der Inhalte zu beobachten und um Angriffe anzuzeigen, bevor der Kernfunktion erlaubt wird, abzulaufen. Der Ausdruck „außer Kraft setzen” zeigt an, dass die Schutzmaßnahmen die normale Funktionalität der Kernfunktion, wie hierin beschrieben, ersetzen. Der Term ist beabsichtigt irgendeine Technik des Ersetzens oder Manipulieren der existierenden Funktionalität der Kernfunktionalität zu umfassen, einschließlich der „Umhüllung” („wrapping”) der Kernfunktion.
  • JavaScript ist ein Beispiel einer Sprache bei der auf Kernfunktionen zugegriffen werden kann, um Angriffe zu erlauben und die auch außer Kraft gesetzt werden können, um gegen Angriffe zu schützen. Als Beispiel umfasst JavaScript eine Funktion die document.wright (<arguments>) genannt wird, um möglicherweise Vorteile von Exploit-Sicherheitsschwächen in einen Internetbrowser zu ziehen. Schutzmaßnahmen können die document.wright Funktion außer Kraft setzen, wobei den Schutzmaßnahmen Gelegenheit gegeben wird, um die Argumente zu analysieren, die in die Funktion eingefügt werden, vor dem Ausführen der document.wright Kernfunktion. In dieser beispielhaften Ausführungsform kann die document.wright Kernfunktion außer Kraft gesetzt werden, in dem ihr ein neues Objekt oder eine neue Variable zugewiesen wird (zum Beispiel document.wright.old), wenn die Internetseite zum ersten Mal geladen wird. Auf diese Weise wird die original document.wright Funktion document.wright.old. Wenn dann die Inhalte document.wright aufrufen, wird die Schutzmaßnahme ausgeführt, die dann die Kernfunktion ausführt, wenn kein Angriff angezeigt wird.
  • Eine Pseudocodedarstellung einer Schutzmaßnahme für document.wright wird wie folgt dargelegt:
    Figure 00160001
  • Wie der oben angegebene beispielhafte Pseudocode anzeigt, wird, wenn JavaScript in die empfangenen Inhalte einen Aufruf von document.write empfängt, anstatt des direkten Ablaufs der Funktion der Browser des Endnutzers 102 die Schutzmaßnahme ablaufen lassen. Die Schutzfunktion analysiert die Argumente nach Bedrohungen, die die Inhalte versuchen an document.write zu übergeben. Falls die Argumente eine Bedrohung darstellen, alarmiert die Funktion den Nutzer von der Bedrohung und beendet die Ausführung der Funktion ohne jemals den Kern der document.write Funktion aufzurufen. Somit wird der Angriff niemals auf dem Computer des Endnutzers 102 ausgeführt. Falls die Argumente auf der anderen Seite keine Bedrohung darstellen, wird die document.write.old Funktion aufgerufen, die der Kern document.write Funktion erlaubt, normal ausgeführt zu werden.
  • Obwohl das obige Beispiel die document.write ()Funktion außer Kraft setzt, können Schutzmaßnahmen den Inhalten hinzugefügt werden, die irgendeine Funktion außer Kraft setzen, einschließlich Funktionen, die den Applikationen zugeordnet sind, die getrennt von dem Browser des Endnutzers 102 ausgeführt werden. In der Tat können bei vielen Gelegenheiten die Fähigkeit einer Scriptsprache getrennte Applikationen durch den Browser zu starten zu zusätzlichen Wegen für Angriffe fuhren, da viele Applikationen Schwächen enthalten, die ausgenutzt werden können. Dementsprechend sind Schutzmaßnahmen nicht nur auf Browserfunktionen begrenzt, viel mehr sind sie für irgendeine Funktion verfügbar, die durch ausführbaren Code oder ein Script innerhalb der Antwort aufgerufen werden können. Ferner ist die Fähigkeit Schutzmaßnahmen voranzustellen nicht auf Funktionen innerhalb von JavaScript begrenzt, sondern kann auf irgendeinen ausführbaren Code angewandt werden, der in dem Inhalt eingeschlossen werden kann.
  • In einer beispielhaften Ausführungsform der vorliegenden Erfindung fügt die Schutzmaschine 112 zu dem Inhalt alle Schutzmaßnahmen hinzu, die dem Typ Inhalt zugeordnet sind, der in der Antwort enthalten ist. Auf diese Weise kann die Schutzmaschine 112 sicherstellen, dass alle potenziell gefährlichen Funktionen außer Kraft gesetzt werden. Dies kann besonders wichtig sein, da eine übliche Technik von Hackern, die hierin als „Verschleierung” bezeichnet wird, es schwierig machen kann, festzustellen, welche Funktionsaufrufe innerhalb einer Antwort enthalten sind.
  • Ein Beispiel von Verschleierung beinhaltet das Verwenden der eval Funktion. Die eval Funktion ist eine nützliche Funktion, die es einer Zeichenkette ermöglicht, behandelt zu werden, als wäre sie ausführbarer Code, nachdem sie an die eval Funktion weitergeleitet wurde. Da eine Zeichenkette, die an die eval Funktion weitergeleitet werden soll, während der Laufzeit erzeugt werden kann, kann es schwierig sein, die Funktion, die aufgerufen wird, zu identifizieren, bis sie ausgeführt wird.
  • Nehmen wir zum Beispiel an, dass der Funktionsaufruf document.write („hack”) ein bekannter Exploit ist. Ein Hacker kann die eval Funktion verwenden, um das Exploit wie folgt zu verschleiern.
    var X = ”ha”;
    var Y = ”k”;
    var Z = ”doc”;
    var A = ”ument.wr”;
    var B = ”ite (”;
    var C = ”)”;
    var D = ”c”;
    eval (Z + A + B + X + D + Y + C);
  • Der obige Code würde die Zeichenkette als document.write („hack”) berechnen. Es würde bis zur tatsächlichen Ausführungszeit nicht offensichtlich werden, dass document.write („hack”) im Begriff ist abzulaufen. Beim Einsatz eines herkömmlichen Systems würde es zu dieser Zeit zu spät sein, den Angriff zu verhindern. In ähnlicherweise würde das Durchführen einer „Vorberechnung” der Argumente, die an die eval Funktion weitergegeben werden, ineffizient sein und würde die Programmausführung unnötigerweise verlangsamen.
  • In dieser Ausführungsform der vorliegenden Erfindung würde jedoch der Angriff erkannt werden können, ohne teuere (in Form von Verarbeitungs- und Netzwerkressourcen) Vorberechnung der Antwort. Speziell wird es der eval Funktion erlaubt abzulaufen und document.write („hack”) auszuführen. Viel eher als das Ausführen der Browserfunktion wird jedoch die Schutzmaßnahme ausgeführt. Die Schutzmaßnahme berechnet dann die Argumente von document.write (in diesem Fall „hack”) identifiziert den Angriff und beendet die Ausführung bevor der schädliche Code ablaufen kann.
  • In einer alternativen beispielhaften Ausführungsform kann die Schutzmaßnahme die Inhalte in einer Weise modifizieren, der den Angriff durchkreuzen kann, während die Ausführung der Inhalte weitergeht viel eher als Beenden der Ausführung der Inhalte vor Ausführen des schädlichen Codes. Viele Angriffe verlassen sich beispielsweise auf ein spezifisches Timing und das Wissen über die Systemausführung, um den Angriff auszuführen. Ein solcher Angriff ist als „heap spray” Angriff bekannt, der große Speicherblöcke allokiert und bestimmte Werte an bestimmten Stellen platziert. Ein „heap spray” Angriff ist darauf angewiesen, dass der Speicher in dem Heap auf eine bestimmte Weise allokiert ist, um zu funktionieren. Wenn jedoch eine Schutzmaßnahme feststellt, dass ein besonderer Funktionsaufruf oder ein Satz von Funktionsaufrufen eine heap spray Attacke darstellt, kann die Schutzmaßnahme die Ausführung der Inhalte modifizieren, beispielsweise durch Einsetzen von Verzögerungen beim Allokieren von Speichern, um auf diese Weise die Struktur des Heaps zu modifizieren. Dies wird die Struktur, auf die der Angriff angewiesen ist, modifizieren und wird den Angriff durchkreuzen. Ein Fachmann würde erkennen, dass diese Modifikation des Inhalts geeignet sein kann, einen heap spray Angriff zu durchkreuzen, während andere Modifikationen der Inhalte geeignet sein werden, andere ähnliche Angriffe zu durchkreuzen, die auf das Timing oder die Speicherallokation angewiesen sind, in dem Geltungsbereich der Erfindung eingeschlossen sind.
  • In einer alternativen beispielhaften Ausführungsform kann die Schutzmaschine 112 ferner die Anfrage analysieren und selektiv Schutzmaßnahmen gemäß bestimmten Aspekten der Anfrage voranstellen. In einer alternativen Ausführungsform untersucht die Schutzmaschine 112 die Anfrage nach Informationen, die zu der Betriebsumgebung des Endnutzers 112 gehören, wie etwa das Betriebssystem, den Typ und die Version des Browsers, der die Anfrage gestellt hat und anderer Applikationen, die vorhanden sein können. Anfragen führen zum Beispiel häufig Meta-Daten mit sich, die den Typ und die Version des Browsers von dem die Anfrage gemacht wurde, identifizieren, das Betriebssystem des Computers des Endnutzers 102 und können auch andere Software identifizieren, die auf dem Computer des Endnutzers 102 läuft. In dem sie diese Informationen nutzt, kann die Schutzmaschine 112 die Schutzmaßnahmen maßschneidern, die sie dem anfragenden System voranstellt. Entwickler von Webbrowsern aktualisieren zum Beispiel häufig ihre Browser, um mögliche Exploits zu eliminieren. Falls von einer bestimmten Browserversion bekannt ist, dass sie ein bestimmtes Exploit berichtigt hat, besteht keine Notwendigkeit eine Schutzmaßnahme, die auf dieses Exploit gerichtet ist, voranzustellen. In ähnlicher Weise können bestimmte Exploits auf einen Code gerichtet sein, der eine von dem Webbrowser verschiedene Applikation ausführt. Wenn die Schutzmaschine 112 aus der Anfrage feststellt, dass das Programm, das Gegenstand eines bestimmten Exploits ist, nicht auf dem Computer des Endnutzers 102 installiert ist, dann kann sie bestimmen, Schutzmaßnahmen, die auf dieses Exploit gerichtet sind, nicht voranzustellen.
  • In einer weiteren alternativen beispielhaften Ausführungsform der vorliegenden Erfindung kann die Schutzmaschine 112 ferner externe Daten vor dem Voranstellen von Schutzmaßnahmen betrachten. Beispielsweise kann die Schutzmaschine 112 feststellen, ob der entfernte Server 108 auf einer „Whitelist” (weißen Liste) ist. Whitelists sind herkömmlicher Weise Datenbanken von Servern (identifiziert durch Name, Internetadresse oder andere Anzeiger der Identität) von denen bekannt ist, dass sie für den Netzwerkverkehr sicher sind. Wenn der entfernte Server 108 auf einer Whitelist ist, kann die Leistungsfähigkeit verbessert werden, wenn die Schutzmaßnahmen nicht vorangestellt werden.
  • In einer beispielhaften Ausführungsform der vorliegenden Erfindung stellt die Schutzmaschine 112 die Schutzmaßnahmen vor den ausführbaren Code in der Antwort voran, was bedeutet, dass die Schutzmaßnahmen von dem Browser vor dem ausführbaren Code ausgeführt werden, der durch den Browser ausgeführt werden kann. Die meisten herkömmlichen Inhalte umfassen Kennzeichen, die die Stelle in den Inhalten identifizieren, an denen der ausführbare Code beginnt. Der Beginn von JavaScript Code wird zum Beispiel identifiziert mit einem <script> Kennzeichen. Gemäß einer beispielhaften Ausführungsform können JavaScript Schutzmaßnahmen sofort nach dem <script> Kennzeichen vorangestellt werden, aber vor dem ausführbaren Code innerhalb des Kennzeichens. In einer alternativen beispielhaften Ausführungsform, wenn die Funktionen in dem Code, der ausgeführt werden soll mit Schutzmaßnahmen außer Kraft gesetzt werden kann, die nicht notwendigerweise vor dem Code in den Inhalten erscheint, dann können die Schutzmaßnahmen dem Code an irgendeiner geeigneten Stelle hinzugefügt werden, die durch den besonderen Inhaltstyp und den ausführbaren Code diktiert wird.
  • Zusätzlich zum Modifizieren oder Abbrechen der Ausführung der Inhalte bevor der möglicherweise schädliche Funktionsaufruf auftritt, kann die Schutzmaßnahme ferner eine Alarmfunktionalität umfassen, die eine oder mehrere interessierte Parteien über die Existenz des schädlichen Codes benachrichtigen kann. In einer beispielhaften Ausführungsform der vorliegenden Erfindung wird der Alarm eine Benachrichtigung an den Administrator eines bestimmten Netzwerks oder an einen anderen bezeichneten Dritten senden. Der Alarm kann Informationen enthalten, die sich auf den Angriff beziehen, die dem Systemadministrator beim Bestimmen einer geeigneten Vorgehensweise helfen, einschließlich beispielsweise der Schutzmaßnahme, die den Angriff identifiziert hat, des Typs des Angriffs, den Code, in den der Angriff eingebettet wurde, die Identität des Computers, der den Inhalt angefragt hat, der schließlich den Angriff enthielt, der Identität des entfernten Servers 108, der den Angriff übertragen hat und weitere Informationen, die dem Empfänger des Alarms bei Maßnahmen, die auftreten könnten, unterstützen können. In einer alternativen beispielhaften Ausführungsform kann ein Alarm an den Endnutzer 102 geschickt werden, mittels einer Benachrichtigung, die auf dem Computer des Endnutzers 102 erscheint. In einer alternativen beispielhaften Ausführungsform kann der Alarm an eine dritte Partei geschickt werden, die die Informationen, die sich auf den Alarm beziehen, in einer Vielzahl von Wegen nutzen kann, um wirksamere Dienste bereitzustellen. Beispielsweise kann die dritte Partei Informationen hinsichtlich der Identität des entfernten Servers 108 verwenden, um zu bestimmen, ob die Adresse des entfernten Servers 108 einer unerwünschten Senderliste (manchmal auch als „Blocklist” (schwarze Liste) oder „Blocklist” (Blockliste)) hinzugefügt werden soll. Die dritte Partei kann ferner der Lieferant von Schutzmaßnahmen sein und falls dem so ist, können die Informationen in dem Alarm seine Schutzmaßnahmen verbessern.
  • Sobald die Schutzmaßnahmen der Antwort vorangestellt worden sind, wird die geschützte Antwort zurück an den Proxy-Server 104 geschickt. Die geschützte Antwort wird dann an den Endnutzer 102 geschickt, wo sie von dem Browser des Endnutzers 102 ausgeführt wird.
  • Die Schutzmaschine 112 ist mit einem Schutzserver (protection server) 114 verbunden. Der Schutzserver 114 ist konfiguriert, um der Schutzmaschine 112 aktualisierte Schutzmaßnahmen bereitzustellen. Sicherheitsanalysten halten ständig Ausschau nach neuen Exploits. Bei bestimmten Gelegenheiten werden Exploits durch Sicherheitsanalysten oder Softwareentwickler entdeckt, die nach Schwachstellen in der Software suchen, in dem Bemühen Hackern zuvor zu kommen. Bei anderen Gelegenheiten identifizieren Hacker die Schwachstellen und nutzen sie aus. In beiden Fällen, sobald die Sicherheitsanalysten Exploits gewahr werden, die Nutzen aus gefährdeten Funktionen ziehen, können sie diese Funktionen mit den oben beschriebenen Schutzmaßnahmen außer Kraft setzen. In einer beispielhaften Ausführungsform beinhaltet das außer Kraft setzen der Funktionen, das Untersuchen der Verfahren, die Hacker benutzen können, um Nutzen aus einem Exploit zu ziehen und erzeugen einen Code, um Attribute für die Wirksamkeit solcher Verfahren zu untersuchen. Die Schutzhüllen (wrappers) können ferner einen Code umfassen, der Zustandsinformationen untersucht, wie etwa die Anzahl der Zeiten in denen eine bestimmte Funktion mit bestimmten Argumenten aufgerufen worden ist und feststellen, ob diese Zustandsinformationen einen Angriff darstellen. Aktualisierte Schutzhüllen werden auf dem Schutzserver 114 platziert und periodisch von der Schutzmaschine 112 heruntergeladen oder auf die Schutzmaschine 112 geschoben.
  • Nun mit Bezug auf die 7 stellt ein Blockdiagramm eine Netzwerkstruktur dar, die ein System 700 zur Laufzeitangriffsprävention gemäß einer zweiten beispielhaften Ausführungsform der vorliegenden Erfindung zeigt. Ähnlich wie das System der 1 agiert das System zur Laufzeitangriffsprävention der 7 in dem Antworten Schutzmaßnahmen vorangestellt werden. Das System der 7 unterscheidet sich von dem System der 1 dadurch, dass die Schutzmaßnahmen durch den entfernten Server 108 vorangestellt werden, viel eher als Voranstellen der Schutzmaßnahmen auf Netzwerkebene.
  • In einer beispielhaften Ausführungsform des Systems 700 zur Laufzeitangriffsprävention, beschrieben in der Funktion 7, erzeugt ein Endnutzer 702 eine Anfrage nach Inhalten. Die Anfrage wird an ein lokales Netzwerk („LAN”, local area network) 704 geschickt, an das der Computer des Endnutzers 702 angeschlossen ist. Die Anfrage wird dann über das Internet 706 an einen entfernten Server 708 weitergeleitet, der dazu bestimmt ist, auf die Anfrage zu antworten. Falls die Anfrage eine herkömmliche Anfrage nach Internet/World Wide Web Inhalten ist, ist die Antwort ein oder mehrere Text- oder Datenpakete, die eine Internetseite ausmachen. In einer beispielhaften Ausführungsform der vorliegenden Erfindung stellt vor dem Senden der Antwort der entfernte Server 708 Schutzmaßnahmen der Antwort voran. Der entfernte Server 708 sendet dann die geschützte Antwort durch das Internet 706 und das LAN 704 zurück an den Endnutzer 702. Genau wie in dem System der 1 empfängt der Browser des Endnutzers 702 die geschützte Antwort und führt die Schutzmaßnahmen aus.
  • In dieser Ausführungsform in der Antworten Schutzmaßnahmen vor dem Senden an den Endnutzer 702 vorangestellt werden, empfängt der entfernte Server 708 die Zusicherung, dass er nicht unabsichtlich Angriffen auf den Endnutzer 702 dient, der mit dem Server verbunden ist. Beispielsweise umfassen viele kommerzielle Internetseiten Werbeanzeigen, die Besuchern der Internetseiten serviert werden. Häufig hat die kommerzielle Internetseite wenig direkte Kontrolle über den Inhalt der Werbeanzeige. Viel mehr lädt die kommerzielle Internetseite einfach die Inhalte, die die Werbeanzeige umfasst von einer anderen Stelle des Internets. Wenn der Inhalt schädlichen Code umfasst, kann der entfernte Server darüber keine Anzeichen haben, bis sein Endnutzer 702 sich über Angriffe beschwert, die von der Internetseite herrühren, die der entfernte Server 708 bedient. Durch Voranstellen von Schutzmaßnahmen wird der entfernte Server 708 jedoch den Endnutzer 702 von Angriffen schützen, die irrtümlicherweise gesendet werden könnten, unabhängig davon, ob der Endnutzer 702 mit einem System assoziiert ist (wie etwa den Systemen, die in den 1 und 3 beschrieben sind), das ebenfalls Schutzmaßnahmen bereitstellen würde.
  • Der entfernte Server 708 ist mit einem Schutzserver 710 verbunden. In einer beispielhaften Ausführungsform ist der Schutzserver 710 einfach der Schutzserver 114, wie er mit Bezug auf die 1 beschrieben wurde und stellt dem entfernten Server 708 aktualisierte Schutzmaßnahmen bereit.
  • Nun mit Bezug auf die 9 stellt ein Blockdiagramm eine Netzwerkstruktur dar, die ein System 900 zur Laufzeitangriffsprävention gemäß einer dritten exemplarischen Ausführungsform der vorliegenden Erfindung implementiert. Ähnlich wie das System der 1 und 7 agiert das System zur Laufzeitangriffsprävention der 9 in dem es Antworten Schutzmaßnahmen voranstellt. Das System der 9 unterscheidet sich von dem System der 1 und 7 indem die Schutzmaßnahmen durch den Computer des Endnutzers 702 vorangestellt werden, viel eher als dass die Schutzmaßnahmen auf Netzwerkebene vorangestellt werden.
  • In einer beispielhaften Ausführungsform sendet der Computer des Endnutzers 902 eine Anfrage, die über das LAN 904 und das Internet 906 zu dem entfernten Server 908 läuft. Der entfernte Server 908 antwortet in dem er die Antwort über das Internet 906 und das LAN 904 an den Computer des Endnutzers 902 zurücksendet. Nach Empfangen der Antwort stellt der Computer des Endnutzers 902 bevor er die Nachricht an den Webbrowser weiterreicht der Antwort Schutzmaßnahmen voran. Der geschützten Antwort wird es dann ermöglicht zu dem Browser des Endnutzers 902 durch zu kommen, wo die geschützte Antwort ausgeführt wird. Der Computer des Endnutzers 902 kann mit einem Schutzserver 910 verbunden sein, der aktualisierte Schutzmaßnahmen bereitstellt. In einer beispielhaften Ausführungsform ist der Computer des Endnutzers 902 mit dem Schutzserver 910 über das Internet 906 verbunden und durch ein LAN 904 mit dem der Computer des Endnutzers 902 verbunden ist. In einer alternativen beispielhaften Ausführungsform kann der Schutzserver 910 lokal auf dem Computer des Endnutzers 902 sein oder kann innerhalb des LANs angeordnet sein, mit dem der Computer des Endnutzers 902 verbunden ist.
  • In einer alternativen beispielhaften Ausführungsform des Systems 900, dargelegt in 9, können die Schutzmaßnahmen ausführbarem Code vorangestellt werden, der von den Antworten verschieden ist, die von einem entfernten Server 908 erhalten werden. Beispielsweise können die Schutzmaßnahmen selber ausführbarer binärer Code sein und können existierenden ausführbaren Programmen vorangestellt werden.
  • In einer weiteren alternativen beispielhaften Ausführungsform können Schutzmaßnahmen vorangestellt werden, die den Zugriff modifizieren, die der ausführbare Code auf Systemlevelfunktionen hat, viel eher (oder zusätzlich zum) Voranstellen von Schutzmaßnahmen, die Funktionen in dem ausführbaren Code außer Kraft setzen. In dem Linux Betriebssystem kann beispielsweise auf bestimmte Systemfähigkeiten nur von Nutzern oder Prozessen zugegriffen werden, denen bestimmte Zulassungen gegeben worden sind. Selbst wenn ein Prozess mit der Ausführung beginnt, der Zugriff auf alle verfügbaren Funktionalitäten hat (der normalerweise als „root” oder „superuser” Zugriff bezeichnet wird), kann ein Prozess programmatisch bestimmte Zulassungen aufgeben, während die Ausführung fortschreitet. Sobald ein Prozess eine Zulassung abgetreten hat, kann er diese Zulassung nicht mehr zurückverlangen. Dementsprechend können Schutzmaßnahmen, die den Zugriff des ausführbaren Codes auf das System modifizieren, dem Code vorangestellt werden, bevor schädlicher darin enthaltender Code ausgeführt werden kann und wird ihn daran hindern Zulassungen zurückzuverlangen, die er aus der Perspektive des Systems freiwillig abgegeben hat.
  • Zum Beispiel muss ein Prozess einen bestimmten Satz von Zulassungen aufweisen, um in der Lage zu sein, auf Speicheradressen zuzugreifen, die Ein-/Ausgabe-Anschlüsse und Systemspeicher darstellen. Wenn überhaupt, erfordern einige wenige legitimierte Prozesse einen solchen Zugriff. Dementsprechend kann eine Schutzmaßnahme ausführbarem Code vorangestellt werden, die den Prozess zwingt, diesen Zugriff aufzugeben, wodurch schädlicher Code präventiv daran gehindert wird, diese Ressourcen zu manipulieren.
  • In ähnlicher Weise kann ein Prozess auch mit Bezug auf Systemressourcen, die ihm verfügbar sind, beschränkt werden. Ein Prozess kann zum Beispiel unter anderem darauf beschränkt werden auf Dateien von einer bestimmten maximalen Größe zuzugreifen, einen bestimmten Betrag des Speichers oder der Prozessornutzung, einer bestimmten Anzahl von offenen Dateien, einen bestimmten Betrag der Festplattennutzung und einer bestimmten Anzahl von Tochterprozessen. Ein Kennzeichen von einigen Angriffen, zum Beispiel Dienstverweigerungsangriffen (denial-of-service attack) ist das Hervorbringen von mehreren Tochterprozessen, die Systemressourcen besetzen, wodurch das System daran gehindert wird, auf legitimierte Anfragen zu antworten. Schutzmaßnahmen können ausführbarem Code vorangestellt werden, die die Anzahl von Tochterprozessen (oder anderen Systemressourcen) begrenzen, die ein Prozess erzeugen kann oder auf die er zugreifen kann, wodurch die Wahrscheinlichkeit, dass ein solcher Angriff auftritt, reduziert wird.
  • Nun mit Bezug auf die 2 ist ein Flussdiagramm eines beispielhaften Verfahrens 200 zum Einsetzen von Schutzmaßnahmen in Netzwerkverkehr unter Verwendung des Systems zur Laufzeitangriffsprävention der 1, 7 und 9 dargestellt und zusätzliche Merkmale der vorliegenden Erfindungen werden beschrieben. Die 2 wird mit Bezug auf die 1 diskutiert. Das Verfahren hebt funktionale Schlüsselmerkmale des Systems zur Laufzeitangriffsprävention hervor.
  • Ein Fachmann wird anerkennen, dass Prozessfunktionen oder Schritte, die von dem System zur Laufzeitangriffsprävention 100 ausgeführt werden einen programmierten Universalrechner, elektronische Schaltkreise, die ein elektronisches Gerät bilden, Firmware-Code, die auf einem Mikrocontroller oder einem Mikroprozessor ausgeführt wird, Zustandsmaschinen, die in anwendungsspezifischer oder programmierbaren Logik implementiert sind oder zahlreichen weiteren Formen umfassen, ohne von dem Geist und Geltungsbereich der vorliegenden Erfindung abzuweisen. Mit anderen Worten, die Erfindung kann als ein Computerprogramm bereitgestellt werden, das ein maschinenlesbares Medium umfasst, auf dem Anweisungen gespeichert sind, die verwendet werden können, um einen Computer (oder andere elektronische Gräte) zu programmieren, um einen Prozess gemäß der Erfindung auszuführen.
  • Das computerlesbare Medium kann umfassen, ohne darauf beschränkt zu sein: Floppy Discs, optische Discs, CD ROMs und magnetooptische Discs, ROMs, RAMs, EPROMs, EEPROMs, magnetische oder optische Karten, Flash Speicher, oder ein anderer Medientyp/maschinenlesbare Medien, die zum Speichern von elektronischen Anweisungen geeignet sind.
  • Bestimmte Schritte der Verfahren, die in den logischen Flussdiagrammen beschrieben werden, auf die unten Bezug genommen wird, müssen natürlicherweise anderen der Erfindung vorausgehen, um wie beschrieben, zu funktionieren. Die Erfindung ist jedoch nicht auf die Reihenfolge der beschriebenen Schritte begrenzt, wenn eine solche Ordnung oder Reihenfolge die Funktionalität der vorliegenden Erfindung nicht ändert. Das heißt es wird anerkannt, dass einige Schritte, nach oder parallel zu anderen Schritten durchgeführt werden können, ohne von dem Geltungsbereich und dem Geist der vorliegenden Erfindung abzuweichen. Darüber hinaus wird anerkannt werden, dass bestimmte Schritte in verschiedenen Reihenfolgen angeordnet werden können oder vollständig gelöscht werden können, ohne von dem Geltungsbereich und Geist der Erfindung abzuweichen. In anderen Worten: es wird anerkannt, dass die Schritte, die in den Flussdiagrammen veranschaulicht sind, einen Weg zum Erreichen eines gewünschten Resultats zum Schutz eines Netzwerks erzielen. Andere Wege können zusätzliche, verschiedene Schritte umfassen oder das Eliminieren von Schritten oder die Kombination des Eliminieren von Schritten und des Hinzufügen verschiedener Schritte sind für den Fachmann offensichtlich.
  • Zum Beispiel wird ein Fachmann bei einer Programmierung in der Lage sein, ein solches Computerprogramm zu schreiben oder geeignete Hardware-Schaltkreise zum Implementieren der offenbarten Erfindung ohne Schwierigkeiten auf der Grundlage der Flussdiagramme und der zugehörigen Beschreibung des Anmeldetextes zu identifizieren. Deshalb wird ein bestimmter Satz von Programmcodeanweisungen oder detaillierte Hardware-Geräte für ein adäquates Verständnis, wie die Erfindung ausgeführt und eingesetzt werden kann, nicht als notwendig erachtet. Die erfindungsgemäße Funktionalität der beanspruchten computerimplementierten Prozesse wird detaillierter in der nachfolgenden Beschreibung in Verbindung mit den verbleibenden Figuren, die andere Prozessflüsse veranschaulichen, erklärt.
  • Erneut mit Bezug auf die 2 ist der Schritt 205 der erste Schritt des Verfahrens 200 in dem Schutzmaßnahmen erzeugt werden. Der Prozess des Erzeugens von Schutzmaßnahmen wird detaillierter mit Bezug auf die 3 diskutiert werden. Bei Entscheidungsschritt 210 wird bestimmt, ob Schutzmaßnahmen in das Netzwerk eingefügt werden sollen. Wenn Schutzmaßnahmen in das Netzwerk eingefügt werden sollen, wird dem „Ja”-Zweig zu Schritt 215 gefolgt, wobei Schutzmaßnahmen in das Netzwerk eingefügt werden. Der Prozess des Einfügen von Schutzmaßnahmen in das Netzwerk wird detaillierter mit Bezug auf die 4 diskutiert werden. Das Verfahren 200 schreitet dann zum Entscheidungsschritt 220 fort. Falls andererseits bei Entscheidungsschritt 210 bestimmt wird, dass Schutzmaßnahmen nicht in das Netzwerk eingefügt werden sollen, wird dem „Nein”-Zweig zu Entscheidungsschritt 220 gefolgt.
  • Bei Entscheidungsschritt 220 wird bestimmt, ob die Schutzmaßnahmen beim entfernten Server 108 eingefügt werden sollen. Wenn die Schutzmaßnahmen in den entfernten Server 108 eingefügt werden sollen, wird dem „Ja”-Zweig zu Schritt 225 gefolgt, wobei die Schutzmaßnahmen in den entfernten Server 108 eingefügt werden. Der Prozess des Einfügen von Schutzmaßnahmen in den entfernten Server 108 wird detaillierter mit Bezug auf die 8 diskutiert werden. Das Verfahren 200 wird dann zu Entscheidungsschritt 230 fortschreiten. Wenn andererseits bei Entscheidungsschritt 220 festgestellt wird, dass Schutzmaßnahmen nicht in den entfernten Server 108 eingefügt werden, wird dem „Nein”-Zweig zu Entscheidungsschritt 230 gefolgt.
  • Bei Entscheidungsschritt 230 wird bestimmt, ob Schutzmaßnahmen in den Computer des Endnutzers 102 eingefügt werden. Wenn Schutzmaßnahmen in den Computer des Endnutzers 102 eingefügt werden, wird dem „Ja”-Zweig zu Schritt 235 gefolgt, wobei Schutzmaßnahmen in den Endnutzer 102 eingefügt werden. Der Prozess des Einfügens von Schutzmaßnahmen in den Endnutzer 102 wird detaillierter mit Bezug auf die 10 diskutiert werden. Das Verfahren 200 schreitet dann zu Entscheidungsschritt 240 fort. Wenn andererseits bei Entscheidungsschritt 230 bestimmt wird, dass Schutzmaßnahmen nicht in den Endnutzer 202 eingefügt werden, wird dem „Nein”-Zweig zu Entscheidungsschritt 240 gefolgt.
  • Bei Entscheidungsschritt 240 wird bestimmt, ob das System mit dem Schützen fortfährt. Wenn festgestellt wird, dass das System mit dem Schützen fortfährt, wird dem „Ja”-Zweig zu Schritt 205 gefolgt. Wenn andererseits festgestellt wird, dass das System mit dem Schützen nicht fortfährt, wird dem „Nein”-Zweig gefolgt und das Verfahren 200 endet.
  • Mit Bezug nun auf die 3 ist ein Verfahren 205 zum Erzeugen von Schutzmaßnahmen unter Verwendung der Laufzeitangriffsprävention der 1 beschrieben. Die 3 wird mit Bezug auf die 1 und 2 diskutiert. Der Schritt 300 ist der erste Schritt des Verfahrens 205, wobei gefährdete Verfahren identifiziert werden. Wie oben diskutiert, können in einer beispielhaften Ausführungsform der vorliegenden Erfindung gefährdete Verfahren durch Sicherheitsanalysten und Hacker identifiziert werden, die Schwachstellen in Software suchen und identifizieren. Schwachstellen können ferner identifiziert werden durch Lesen veröffentlichter Berichte von Schwachstellen in Programmen, durch Reverse Engineering Angriffe, die bereits stattgefunden haben, durch „Fuzzing” oder „Fuzz-Testen” eines Programms, das das Übergeben großer Mengen zufälliger oder anderer Weise ungültiger Daten an ein Programm beinhaltet und das Bestimmen, ob diese Daten in einem Ausfall resultieren und das Studieren von Patches (Flicken), Reparaturen (fixes) oder anderer Aktualisierungen, die ein Programmhersteller für ein Programm verteilt hat, da diese oft Schwachstellen früherer Versionen eines Programms beheben und dementsprechend benutzt werden können, solche Schwachstellen zu identifizieren.
  • Das Verfahren 205 schreitet dann zu Schritt 305 fort, wobei ein Code zum außer Kraft setzen gefährdeter Verfahren geschrieben wird und falls gewünscht, um die Ausführung des Inhalts zu modifizieren. Das Verfahren 205 schreitet dann zu Schritt 305 fort, wobei ein Code erzeugt wird, um Attribute der außer Kraft gesetzten gefährdeten Methoden nach bekannten Angriffen zu untersuchen. Das Verfahren 205 schreitet dann zum Schritt 315 fort, wobei ein Code erzeugt wird, um Zustandsinformationen zum Identifizieren von Angriffen zu untersuchen. Zum Beispiel könnte ein Code erzeugt werden, der die Anzahl der Null-Operationsfunktion (NOP) zählt, die aufgerufen wird, um einen potenziellen Angriff zu identifizieren, wenn die Anzahl der Null-Operationen eine vorbestimmte Schwelle überschreitet. Das Verfahren 205 schreitet dann zu Schritt 320 fort, wobei ein Alarmcode erzeugt wird, um den Endnutzer 102, den Netzwerkprovider und/oder andere interessierte Parteien, wie etwa dritte Parteien zu alarmieren, die in der Lage sind Informationen, die mit dem Alarm verbunden sind, nutzen zu können, um existierende Angriffe zu beheben und durch verbesserte Schutzmaßnahmen besser gegen zukünftige Angriffe zu schützen. Das Verfahren 205 schreitet dann zu Schritt 210 der 2 fort.
  • Nun mit Bezug auf die 4 ist ein Verfahren 215 zum Einsetzen von Schutzmaßnahmen in ein Netzwerk unter Verwendung des Systems zur Laufzeitangriffsprävention der 1 beschrieben. Die 4 wird mit Bezug auf die 1 und 2 diskutiert. Der Schritt 400 ist der erste Schritt in dem Verfahren 215, wobei der Endnutzer 102 Inhalte abfragt. Wie oben diskutiert, stammt in einer beispielhaften Ausführungsform die Abfrage von einem Internetbrowser, der auf dem Computer des Endnutzers 102 installiert ist, obwohl in alternativen Ausführungsformen die Abfrage irgendeine Abfrage von einem entfernten Server 108 nach Inhalten sein kann, die letztlich auf dem Computer des Endnutzers 102 ausgeführt werden. Das Verfahren 215 schreitet dann zu Schritt 405 fort, wobei Inhalte von dem Netzwerk empfangen werden. Das Verfahren 215 schreitet dann zu Schritt 410 fort, wobei die Schutzmaßnahmen der Antwort vorangestellt werden. In dieser beispielhaften Ausführungsform ist die Schutzmaschine 112 mit einem Proxy-Server 104 verbunden, der in dem Netzwerk installiert ist, der Antworten abfängt und Schutzmaßnahmen dagegen hinzufügt oder voranstellt, wie oben mit Bezug auf die 1 beschrieben. Der Prozess des Voranstellens mit Schutzmaßnahmen wird detaillierter mit Bezug auf die 5 beschrieben.
  • Das Verfahren 215 schreitet dann zu Schritt 415 fort, wobei der geschützte Inhalt an den Endnutzer 102 geliefert wird. In einer beispielhaften Ausführungsform leitet die Schutzmaschine 112 den geschützten Inhalt an den Proxy-Server 104 zurück (oder an die Stelle des Netzwerks von der er die Antwort abgefangen hat), der die Antworten zurück an den Endnutzer 102 leitet. Das Verfahren 215 schreitet dann zu Schritt 420 fort, wobei der geschützte Inhalt von dem Computer des Endnutzers 102 ausgeführt wird. In einer beispielhaften Ausführungsform wird der geschützte Inhalt innerhalb des Internetbrowsers des Endnutzers 102 ausgeführt. In einer alternativen beispielhaften Ausführungsform wird jedoch der geschützte Inhalt außerhalb des Browsers ausgeführt.
  • Das Verfahren 215 schreitet dann zu Schritt 425 fort, wobei die Schutzmaschine 112 ihre Schutzmaßnahmen aktualisiert. In einer beispielhaften Ausführungsform empfängt die Schutzmaschine 112 aktualisierte Schutzmaßnahmen von einen Schutzserver 114. Das Verfahren 215 schreitet dann zu Entscheidungsschritt 430 fort, wobei bestimmt wird, ob das Schützen fortgesetzt wird. Wenn festgestellt wird, dass das System mit dem Schützen fortfahren sollte, wird dem „Ja”-Zweig zurück zu Schritt 400 gefolgt. Wenn andererseits festgestellt wird, mit dem Schützen nicht fortzufahren, dann wird dem „Nein”-Zweig gefolgt und das Verfahren 215 kehrt zu Schritt 220 der 2 zurück Nun mit Bezug auf die 5 ist ein Verfahren 410/810/1015 zum Voranstellen von Schutzmaßnahmen unter Verwendung des Systems zur Laufzeitangriffsprävention der 1, 7 und 9 gezeigt. Die 5 wird mit Bezug auf die 1, 4, 8 und 10 diskutiert. Der Entscheidungsschritt 500 ist der erste Schritt des Verfahrens 410/810/1015, wobei bestimmt wird, ob die empfangenen Inhalte von einer vertrauenswürdigen Quelle stammen. Beispielsweise können Inhalte identifiziert werden, der von einer vertrauenswürdigen Quelle empfangen worden ist, wenn die Quelladresse der Inhalte in einer Datenbank von bekannten guten Sendern vorhanden ist (die oft als eine white list bezeichnet wird). Wenn festgestellt wird, dass die Inhalte von einer vertrauenswürdigen Quelle empfangen wurden, wird in der beispielhaften Ausführungsform dem „Ja”-Zweig gefolgt und das Verfahren 410/810/1015 kehrt zu Schritt 415/815/1020 zurück. In einer alternativen beispielhaften Ausführungsform kann das System konfiguriert sein Informationen, die sich auf die Quelle der Inhalte beziehen, zu ignorieren und kann ohne Rücksicht auf die Quelle Schutzmaßnahmen voranstellen.
  • Wiederum zurückkehrend zu Entscheidungsschritt 500, wenn festgestellt wird, dass die Inhalte nicht von einer vertrauenswürdigen Quelle stammen, dann wird dem „Nein”-Zweig zu Schritt 505 gefolgt, wobei der Typ der empfangenen Informationen bestimmt wird. Es wird beispielsweise bestimmt, ob die empfangenen Inhalte ausführbaren Code enthalten, der möglicherweise in einem Angriff, wie etwa JavaScript, Flash oder Silverlight benutzt werden kann. Das Verfahren 410/810/1015 schreitet dann zu Schritt 510 fort, wobei Schutzmaßnahmen identifiziert werden, die dem Inhaltstyp entsprechen, die in Schritt 505 identifiziert wurden. Bei bestimmten Gelegenheiten werden nur bestimmte Schutzmaßnahmen auf bestimmte Formen ausführbarer Inhalte anwendbar sein. Dementsprechend kann es die Leistungsfähigkeit verbessern, nur solche Schutzmaßnahmen zu identifizieren, die auf die vorliegenden Inhalte angewandt werden können.
  • Das Verfahren 410/810/1015 schreitet dann zu Entscheidungsschritt 515 fort, wobei die Schutzmaschine 112 bestimmt, ob sie Kenntnis der Endnutzerumgebung hat. In einer beispielhaften Ausführungsform erhält die Schutzmaschine 112 Informationen, die sich auf den Endnutzer beziehen von der Anfrage nach Inhalten. Alternativ kann die Schutzmaschine 112 Informationen speichern, die sich auf die Konfiguration des Endnutzers 102 in dem Netzwerk beziehen, die Endnutzerumgebungsinformationen umfassen. Wenn festgestellt wird, dass die Schutzmaschine 112 keine Kenntnis der Umgebung des Endnutzers 102 hat, wird dem „Nein”-Zweig zu Schritt 525 gefolgt, wobei die Schutzmaßnahmen, die in Schritt 510 identifiziert wurden, dem Inhalt vorangestellt werden. Das Verfahren 410/810/1015 kehrt dann zu Schritt 415/815/1020 zurück Wiederum mit Bezug auf Entscheidungsschritt 515, wenn festgestellt wird, dass die Schutzmaschine 112 Kenntnis von der Umgebung des Endnutzers 102 hat, wird dem „Ja”-Zweig zu Schritt 520 gefolgt, wobei Schutzmaßnahmen, die der Umgebung des Endnutzers 102 entsprechen, identifiziert werden. Falls die Umgebung des Endnutzers 102 beispielsweise Google Chrome als Webbrowser umfasst, dann müssen die Schutzmaßnahmen, die nur darauf gerichtet sind gegen ein Exploit zu schützen, das nur in der Microsoft Internet-Explorer Version 6 existiert, nicht vorangestellt werden. In einer beispielhaften Ausführungsform werden die Schutzmaßnahmen, die der Umgebung des Endnutzers 102 entsprechen, von einem Satz von Schutzmaßnahmen ausgewählt, die dem Inhaltstyp entsprechen. In einer alternativen Ausführungsform können die Schutzmaßnahmen, die der Umgebung des Endnutzers 102 entsprechen, getrennt von den Schutzmaßnahmen, die dem Inhaltstyp entsprechen, ausgewählt werden. Das Verfahren 410/810/1015 schreitet dann zu Schritt 525 fort, wobei alle identifizierten Schutzmaßnahmen den Inhalten vorangestellt werden. Das Verfahren 410/810/1015 kehrt dann zu Schritt 415/815/1020 zurück.
  • Nun der 6 zuwendend ist ein Verfahren 420/820/1020 zum Ausführen geschützter Inhalte unter Verwendung des Systems zur Laufzeitzugriffsprävention der 1, 7 und 9 gezeigt. Die 6 wird beschrieben mit Bezug auf die 1, 4, 8 und 10. Der Schritt 600 ist der erste Schritt des Verfahrens 420/820/1020, wobei der Systemzugriff, der den Inhalten geboten wird, modifiziert wird. Das Verfahren 420/820/1020 schreitet dann zu Schritt 605 fort, wobei die Funktion Verpackung ausgeführt wird. In einer beispielhaften Ausführungsform wird die Funktion Verpackung ausgeführt, wenn ausführbarer Code die geschützte Funktion aufruft (d. h. eine Funktion für die eine Schutzmaßnahme erzeugt worden ist). Das Verfahren 420/820/1020 schreitet dann zu Schritt 610 fort, wobei die Argumente, die an die geschützte Funktion weitergereicht wurden, in Hinblick auf Angriffe analysiert werden. Das Verfahren 420/820/1020 schreitet dann zu Schritt 615 fort, wobei die Zustandsinformationen analysiert werden. Die Zustandsinformationen können sich beispielsweise auf die Anzahl der Zeitpunkte beziehen, in denen eine bestimmte geschützte Funktion innerhalb einer gegebenen Browsing-Sitzung (browsing session) oder Zeitperiode aufgerufen worden ist, der zeitlichen Beziehung zwischen einem Aufruf der geschützten Funktion und einer weiteren geschützten Funktion oder anderer zustandsbasierter Informationen, die einen Angriff anzeigen.
  • Das Verfahren 420/820/1020 schreitet dann zu Schritt 620 fort, wobei bestimmt wird, ob die Zustandsinformationen oder die Argumente die Existenz einer potentiellen Bedrohung anzeigen. Wenn festgestellt wird, dass eine mögliche Bedrohung nicht existiert, wird dem „Nein”-Zweig zu Schritt 625 gefolgt, wobei dem außer Kraft gesetzten Verfahren erlaubt wird, normal ausgeführt zu werden. Das Verfahren 420/820/1020 schreitet dann zum Entscheidungsschritt 630 fort, wobei bestimmt wird, ob die Inhalte mehr lauffähigen Code enthalten. Wenn festgestellt wird, dass die Inhalte keinen weiteren lauffähigen Code enthalten, wird dem „Ja”-Zweig gefolgt und das Verfahren 420/820/1020 schreitet zu Schritt 605 fort. Wenn andererseits die Inhalte keinen weiteren lauffähigen Code enthalten, wird dem „Nein”-Zweig gefolgt und das Verfahren 420/820/1020 kehrt zu Schritt 425/825/1025 zurück.
  • Erneut mit Bezug auf Entscheidungsschritt 620, wenn festgestellt wird, dass eine Bedrohung erkannt ist, wird dem „Ja”-Zweig zu Schritt 635 gefolgt, bei dem die Ausführung der Inhalte beendet wird oder modifiziert wird. In einer beispielhaften Ausführungsform der vorliegenden Erfindung wird die Ausführung der Inhalte ohne Ausführen der Schutzfunktion beendet. In einer alternativen beispielhaften Ausführungsform kann die Ausführung der Inhalte modifiziert werden, um den Angriff ohne Beenden der Ausführung zu durchkreuzen. Das Verfahren 420/820/1020 schreitet dann zu Schritt 640 fort, wobei ein Alarm übertragen wird. Verschiedene Alarme können übertragen werden und die Alarme können an verschiedene Empfänger übertragen werden. In einer beispielhaften Ausführungsform wird der Alarm an den Netzwerkadministrator übertragen, der bestimmen kann, wie auf den Alarm zu antworten ist. In einer alternativen beispielhaften Ausführungsform wird der Alarm an den Endnutzer 102 übertragen. In einer weiteren alternativen Ausführungsform wird der Alarm an einen Dritten übertragen. Das Verfahren 420/820/1020 kehrt dann zu Schritt 425/825/1025 zurück.
  • Nun der 8 zuwendend ist ein Flussdiagramm gezeigt, das ein Verfahren 225 zum Einsetzen von Schutzmaßnahmen in einem Server unter Verwendung des Systems 700 zur Laufzeitangriffsprävention der 7 darstellt. Die 8 wird diskutiert mit Bezug auf die 7. Der Schritt 800 ist der erste Schritt des Verfahrens 225, wobei der entfernte Server 708 eine Anfrage nach Inhalten empfängt. Das Verfahren 225 schreitet dann zu Schritt 805 fort, wobei eine Antwort auf die Anfrage erzeugt wird. Das Verfahren 225 schreitet dann zu Schritt 810 fort, wobei Schutzmaßnahmen der Antwort vorangestellt werden. Der Prozess des Voranstellens von Schutzmaßnahmen für die Antwort ist oben mit Bezug auf die 5 beschrieben.
  • Das Verfahren 225 schreitet dann zu Schritt 815 fort, wobei die geschützte Antwort dem Endnutzer 702 über das Internet geliefert wird. Das Verfahren 225 schreitet dann zu Schritt 820 fort, wobei der geschützte Inhalt ausgeführt wird. Der Prozess des Ausführen von geschütztem Inhalt ist detaillierter mit Bezug auf die 6 beschrieben. Das Verfahren 225 schreitet dann zu Schritt 825 fort, wobei die Schutzmaßnahmen aktualisiert werden. Das Verfahren 225 schreitet dann zu Entscheidungsschritt 830 fort, wobei bestimmt wird, ob das System 700 mit dem Schützen fortfahren soll. Wenn festgestellt wird, dass das System 700 mit dem Schützen fortfahren wird, wird dem „Ja”-Zweig zu Schritt 800 gefolgt. Wenn andererseits bestimmt wird, dass das System mit dem Schützen aufhören sollte, wird dem „Nein”-Zweig gefolgt und das Verfahren 225 kehrt zu Schritt 230 zurück.
  • Nun der 10 zuwendend, ist ein Flussdiagramm gezeigt, das ein Verfahren 235 zum Einsetzen von Schutzmaßnahmen in den Computer eines Endnutzers 902 unter Verwendung des Systems 900 zur Laufzeitangriffsprävention der 9 darstellt. Die 10 wird mit Bezug auf die 9 diskutiert. Der Schritt 1000 ist der erste Schritt in dem Verfahren 235, wobei die Schutzmaßnahmen auf den Computer des Endnutzers 902 geladen werden. Das Verfahren 235 schreitet dann zu Schritt 1005 fort, wobei der Computer des Endnutzers 902 Inhalte von einem entfernten Server 908 abfragt. Das Verfahren 235 schreitet dann zu Schritt 1010 fort, wobei die Inhalte auf dem Computer des Endnutzers 902 empfangen werden. Das Verfahren 235 schreitet dann zu Schritt 1015 fort, wobei der Computer des Endnutzers 902 den Inhalten Schutzmaßnahmen voranstellt. Das Verfahren des Voranstellens von Schutzmaßnahmen wird detaillierter mit Bezug auf die 5 beschrieben. Das Verfahren 235 schreitet dann zu Schritt 1020 fort, wobei die geschützten Inhalte ausgeführt werden. Der Prozess des Ausführens geschützter Inhalte ist detaillierter mit Bezug auf die 6 beschrieben. Das Verfahren 235 schreitet dann zu Schritt 1025 fort, wobei Aktualisierungen geschützt werden. Das Verfahren 235 schreitet dann zu Entscheidungsschritt 1030 fort, wobei bestimmt wird, ob zusätzliche Inhalte angefragt werden. Wenn bestimmt wird, dass zusätzliche Inhalte angefragt werden, folgt das Verfahren 235 dem „Ja”-Zweig zu Schritt 1010. Wenn andererseits bei Schritt 630 bestimmt wird, dass keine zusätzlichen Inhalte angefragt werden, folgt das Verfahren 235 dem „Nein”-Zweig und das Verfahren 235 kehrt zu Schritt 240 zurück.
  • Alternative Ausführungsformen des Systems und des Verfahrens zur Laufzeitangriffsprävention werden für Fachleute offensichtlich, für die die vorliegende Erfindung einschlägig ist, ohne von dem Geist und Geltungsbereich dieser Offenbarung abzuweichen. Deshalb, obwohl diese Erfindung in beispielhafter Form mit einem gewissen Grad an Genauigkeit beschrieben worden ist, sollte verstanden werden, dass die vorliegende Offenbarung nur als Beispiel gemacht worden ist und dass zahlreiche Änderungen in den Details der Konstruktion und der Kombination und der Anordnung von Teilen oder Schritten ergriffen werden können ohne von dem Geist und Geltungsbereich der Erfindung abzuweichen. Demzufolge ist der Geltungsbereich der vorliegenden Erfindung durch die begleitenden Ansprüche definiert viel eher als durch die vorhergehende Beschreibung.

Claims (43)

  1. Ein Verfahren zum Schützen eines Computers, aufweisend: Empfangen von Inhalten, die für einen Computer bestimmt sind, wobei die Inhalte konfiguriert sind, um zumindest auf eine Funktion des Computers zuzugreifen; Hinzufügen von Schutzmaßnahmen zu den Inhalten entsprechend der Funktion, wobei die Schutzmaßnahmen konfiguriert sind, um die Funktion zu beobachten; Übertragen der Inhalte und der Schutzmaßnahmen an den Computer.
  2. Das Verfahren nach Anspruch 1, wobei Beobachten der Funktion Außerkraftsetzen der Funktion umfasst.
  3. Das Verfahren nach Anspruch 1, wobei Beobachten der Funktion Analysieren der Argumente umfasst, die der Funktion übergeben werden.
  4. Das Verfahren nach Anspruch 1, wobei die Funktion eine Funktion umfasst, die eine Schwachstelle des Computers aufdeckt.
  5. Das Verfahren nach Anspruch 1, wobei bestimmte Argumente, die der Funktion übergeben werden, eine Schwachstelle des Computers ausnutzen.
  6. Das Verfahren nach Anspruch 1, wobei die Inhalte zumindest einen Aufruf der Funktion umfassen.
  7. Das Verfahren nach Anspruch 1, ferner aufweisend Ausführen einer der Schutzmaßnahmen in Antwort auf den Aufruf der Funktion, wobei Ausführen der Schutzmaßnahme Bestimmen umfasst, ob die Argumente der Inhalte, die der Funktion übergeben wurden, eine Bedrohung für den Computer darstellen.
  8. Das Verfahren nach Anspruch 7, ferner aufweisend den Schritt des Beenden der Ausführung der Inhalte ohne Ausführen der Funktion in Antwort auf das Bestimmen, dass die Argumente eine Bedrohung darstellen.
  9. Das Verfahren nach Anspruch 7, ferner aufweisend den Schritt des Modifizieren der Inhalte in Antwort auf das Bestimmen, dass die Argumente eine Bedrohung darstellen.
  10. Das Verfahren nach Anspruch 7, ferner aufweisend den Schritt des Erlauben, dass die gefährdete Funktion normal ausgeführt wird in Antwort auf das Bestimmen, dass keine Bedrohung existiert.
  11. Das Verfahren nach Anspruch 7, ferner aufweisend Alarmieren von zumindest einem aus einem Endnutzer, einem Netzwerkadministrator und einem Dritten über die Bedrohung in Antwort auf das Bestimmen, dass die Argumente eine Bedrohung darstellen.
  12. Das Verfahren nach Anspruch 1, wobei der Schritt des Hinzufügens von Schutzmaßnahmen die Schritte umfasst: Bestimmen einer Rechnerumgebung, die dem Computer zugeordnet ist; Identifizieren erster Schutzmaßnahmen entsprechend der Rechnerumgebung; Hinzufügen der ersten Schutzmaßnahmen zu den Inhalten.
  13. Das Verfahren nach Anspruch 12, wobei die Rechnerumgebung zumindest eines umfasst aus dem Betriebssystem, dem Internet-Browser und den auf dem Computer installierten Applikationen.
  14. Das Verfahren nach Anspruch 1, ferner aufweisend die Schritte: Bestimmen eines Inhaltstyps; Identifizieren zweiter Schutzmaßnahmen, die dem Typ entsprechen; und Hinzufügen der zweiten Schutzmaßnahmen zu den Inhalten.
  15. Das Verfahren nach Anspruch 14, wobei der Inhaltstyp ausführbaren Code für zumindest eines aus JavaScript, Flash und Silverlight umfasst.
  16. Das Verfahren nach Anspruch 1, wobei der Schritt des Hinzufügens von Schutzmaßnahmen das Voranstellen von Schutzmaßnahmen für die Inhalte umfasst.
  17. Ein System zum Schützen eines Computers, aufweisend: einen ersten Computer, der konfiguriert ist, um Inhalte zu empfangen; einen zweiten Computer, der konfiguriert ist, um Inhalte von dem ersten Computer zu empfangen, wobei die Inhalte konfiguriert sind, um auf zumindest eine Funktion des zweiten Computers zuzugreifen; eine Schutzmaschine, die mit dem ersten Computer verbunden ist, wobei die Schutzmaschine konfiguriert ist, um die Inhalte abzufangen, Schutzmaßnahmen zu den Inhalten hinzuzufügen und die Schutzmaßnahmen und die Inhalte an den zweiten Computer zu übertragen, und wobei die Schutzmaßnahmen die Funktion außer Kraft setzen, so dass die Schutzmaßnahmen ausgeführt werden, wenn die Inhalte die Funktion aufrufen und bestimmen, ob die Funktion eine Bedrohung für den zweiten Computer darstellt.
  18. Das System nach Anspruch 17, wobei das Hinzufügen von Schutzmaßnahmen zu den Inhalten Voranstellen von Schutzmaßnahmen für die Inhalte umfasst.
  19. Das System nach Anspruch 17, wobei der erste Computer die Schutzmaschine umfasst.
  20. Das System nach Anspruch 17, wobei der erste Computer den zweiten Computer umfasst.
  21. Das System nach Anspruch 17, wobei die Schutzmaßnahmen konfiguriert sind, um die Inhalte zu modifizieren nach dem Bestimmen, dass die Funktion eine Bedrohung umfasst.
  22. Das System nach Anspruch 17, wobei die Schutzmaßnahmen konfiguriert sind, um die Ausführung der Inhalte nach dem Bestimmen, dass die Funktion eine Bedrohung umfasst, zu beenden.
  23. Das System nach Anspruch 17, wobei die Schutzmaßnahmen konfiguriert sind, um einen aus einem Endnutzer, einem Netzwerkadministrator und einem Dritten nach dem Bestimmen, dass die Funktion eine Bedrohung umfasst, zu alarmieren.
  24. Ein Verfahren zur Laufzeit-Prävention von Angriffen auf einen Computer, das Verfahren aufweisend: Empfangen einer Anfrage nach ausführbaren Inhalten von einem Computer, wobei die ausführbaren Inhalte konfiguriert sind, um auf zumindest eine Funktion des Computers zuzugreifen; Hinzufügen von Schutzmaßnahmen zu den Inhalten, wobei die Schutzmaßnahmen die Funktion außer Kraft setzen, auf die die ausführbaren Inhalte zugreifen können; Übertragen der Schutzmaßnahmen und der Inhalte an den Computer.
  25. Das Verfahren nach Anspruch 24, ferner aufweisend den Schritt des Ausführens der Inhalte und der Schutzmaßnahmen, aufweisend: Mit den Schutzmaßnahmen Bestimmen, ob die Argumente, die die ausführbaren Inhalte der Funktion übergeben, eine Bedrohung für den Computer darstellen.
  26. Das Verfahren nach Anspruch 25, ferner aufweisend Beenden der Ausführung der Inhalte in Antwort auf das Bestimmen, dass die Argumente eine Bedrohung für den Computer darstellen.
  27. Das Verfahren nach Anspruch 25, weiter aufweisend Modifizieren der Inhalte in Antwort auf das Bestimmen, dass die Argumente eine Bedrohung für den Computer darstellen.
  28. Das Verfahren nach Anspruch 25, ferner aufweisend Alarmieren von zumindest einen aus einem Endnutzer, einem Netzadministrator und einem Dritten über die Bedrohung.
  29. Das Verfahren nach Anspruch 24, wobei die Inhalte eines umfassen aus JavaScript, Flash und Silverlight.
  30. Das Verfahren nach Anspruch 24, wobei Hinzufügen von Schutzmaßnahmen Voranstellen der Schutzmaßnahmen umfasst.
  31. Das Verfahren nach Anspruch 24, wobei die Anfrage von einem entfernten Server empfangen wird.
  32. Das Verfahren nach Anspruch 31, wobei die Schutzmaßnahmen dem entfernten Server hinzugefügt werden.
  33. Ein System zum Schützen eines Computers, aufweisend: einen Computer, der zumindest eine Funktion, die mit einem Netzwerk verbunden ist, aufdeckt, wobei der Computer konfiguriert ist, um Inhalte über ein Netzwerk zu empfangen, die konfiguriert sind, um auf die Funktion zuzugreifen, und die Inhalte nach dem Empfang auszuführen, wobei die Funktion zumindest ein Argument umfasst; eine Schutzmaschine, die mit dem Netzwerk verbunden ist und die konfiguriert ist, um die Inhalte abzufangen, bevor sie von dem Computer empfangen werden und den Inhalten eine Schutzmaßnahme voranzustellen; wobei die Schutzmaßnahme konfiguriert ist, um von dem Computer ausgeführt zu werden, wenn die Inhalte versuchen, die Funktion auszuführen, wobei die Schutzmaßnahme ferner konfiguriert ist, um das Argument zu analysieren, zum Bestimmen, ob das Argument eine Bedrohung für den Computer umfasst, wenn es der Funktion übergeben wird, wobei die Schutzmaßnahme ferner konfiguriert ist, um die Ausführung der Inhalte zu modifizieren in Antwort auf das Bestimmen, dass das Argument eine Bedrohung für den Computer umfasst, wenn es der Funktion übergeben wird, und wobei die Schutzmaßnahme ferner konfiguriert ist, um der Funktion zu erlauben, wie von den Inhalten aufgerufen, ausgeführt zu werden in Antwort auf das Bestimmen, dass das Argument keine Bedrohung für den Computer umfasst, wenn es der Funktion übergeben wird.
  34. Das System nach Anspruch 33, wobei der Schritt des Modifizierens der Ausführung der Inhalte das Beenden der Ausführung der Inhalte umfasst.
  35. Das System nach Anspruch 33, wobei die Inhalte zumindest eines umfassen aus JavaScript, Flash und Silverlight.
  36. Das System nach Anspruch 33, wobei die Inhalte ASCII-Text umfassen, der nach Erhalt ausgeführt wird.
  37. Das System nach Anspruch 33, wobei der Computer ferner einen Internet-Browser umfasst, der konfiguriert ist, um die Inhalte nach Erhalt auszuführen und die Funktion durch den Internet-Browser aufgedeckt ist.
  38. Das System nach Anspruch 33, wobei die Schutzmaßnahme ferner konfiguriert ist, um einen Alarm an zumindest einen aus einem Endnutzer, einem Netzwerkadministrator und einem Dritten zu übertragen in Antwort auf das Bestimmen, dass das Argument eine Bedrohung für den Computer umfasst, wenn es der Funktion übergeben wird.
  39. Ein Computerprogrammprodukt zur Laufzeit-Prävention von Angriffen auf einen Computer, das Computerprogrammprodukt aufweisend: ein computerlesbares Speichermedium; erste Programmanweisungen zum Ausführen von Inhalten auf einem Computer, wobei die Inhalte konfiguriert sind, um auf zumindest eine Funktion des Computers zuzugreifen; zweite Programmanweisungen, um Schutzmaßnahmen den Inhalten hinzuzufügen, wobei die Schutzmaßnahmen ausgeführt werden, bevor die Inhalte auf die zumindest eine Funktion zugreifen, und wobei die Schutzmaßnahmen die Zulassungen, die den ausführbaren Inhalten zugeordnet sind, modifizieren; dritte Programmanweisungen, um den Inhalten zu erlauben, auf die zumindest eine Funktion mit einem verringerten Zulassungslevel zuzugreifen; wobei die ersten, zweiten und dritten Programmanweisungen in dem computerlesbaren Speichermedium gespeichert sind.
  40. Das Computerprogrammprodukt nach Anspruch 39, wobei Modifizieren der Zulassungen Beschränken der Fähigkeit der Inhalte zum Zugreifen Systemfunktionen umfasst.
  41. Das Computerprogrammprodukt nach Anspruch 39, wobei Modifizieren der Zulassungen Beschränken des Zugriffs der Inhalte auf Systemressourcen umfasst.
  42. Das Computerprogrammprodukt nach Anspruch 39, wobei die Inhalte kompilierte ausführbare Software umfassen.
  43. Das Computerprogrammprodukt nach Anspruch 39, wobei Hinzufügen von Schutzmaßnahmen zu den Inhalten Voranstellen der Schutzmaßnahmen zu den Inhalten umfasst.
DE112009002738T 2008-11-19 2009-11-19 System und Verfahren zur Laufzeitangriffsprävention Pending DE112009002738T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US19972808P 2008-11-19 2008-11-19
US61/199,728 2008-11-19
PCT/US2009/065171 WO2010059843A2 (en) 2008-11-19 2009-11-19 System and method for run-time attack prevention

Publications (1)

Publication Number Publication Date
DE112009002738T5 true DE112009002738T5 (de) 2012-10-31

Family

ID=42173035

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112009002738T Pending DE112009002738T5 (de) 2008-11-19 2009-11-19 System und Verfahren zur Laufzeitangriffsprävention

Country Status (5)

Country Link
US (2) US8522350B2 (de)
CN (1) CN102224505B (de)
DE (1) DE112009002738T5 (de)
GB (1) GB2478098B (de)
WO (1) WO2010059843A2 (de)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8079086B1 (en) 1997-11-06 2011-12-13 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US7058822B2 (en) 2000-03-30 2006-06-06 Finjan Software, Ltd. Malicious mobile code runtime monitoring system and methods
US9219755B2 (en) 1996-11-08 2015-12-22 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US8522350B2 (en) 2008-11-19 2013-08-27 Dell Products, Lp System and method for run-time attack prevention
US9742778B2 (en) * 2009-09-09 2017-08-22 International Business Machines Corporation Differential security policies in email systems
US8819831B2 (en) * 2009-09-30 2014-08-26 Ca, Inc. Remote procedure call (RPC) services fuzz attacking tool
US10102301B2 (en) 2010-04-01 2018-10-16 Cloudflare, Inc. Internet-based proxy security services
US9049247B2 (en) 2010-04-01 2015-06-02 Cloudfare, Inc. Internet-based proxy service for responding to server offline errors
CA2704863A1 (en) * 2010-06-10 2010-08-16 Ibm Canada Limited - Ibm Canada Limitee Injection attack mitigation using context sensitive encoding of injected input
US8082585B1 (en) * 2010-09-13 2011-12-20 Raymond R. Givonetti Protecting computers from malware using a hardware solution that is not alterable by any software
CN102801741A (zh) * 2012-08-30 2012-11-28 山石网科通信技术(北京)有限公司 木马病毒的阻止方法及装置
US20150244737A1 (en) * 2012-09-25 2015-08-27 Checkmarx Ltd. Detecting malicious advertisements using source code analysis
US9904792B1 (en) * 2012-09-27 2018-02-27 Palo Alto Networks, Inc Inhibition of heap-spray attacks
CN103856471B (zh) * 2012-12-06 2018-11-02 阿里巴巴集团控股有限公司 跨站脚本攻击监控系统及方法
US9721120B2 (en) 2013-05-14 2017-08-01 Apple Inc. Preventing unauthorized calls to a protected function
US9207914B2 (en) * 2013-12-20 2015-12-08 Microsoft Technology Licensing, Llc Execution guards in dynamic programming
US10944765B2 (en) * 2014-01-10 2021-03-09 Red Bend Ltd. Security system for machine to machine cyber attack detection and prevention
US9075990B1 (en) * 2014-07-01 2015-07-07 Shape Security, Inc. Reliable selection of security countermeasures
US10120997B2 (en) 2015-01-01 2018-11-06 Checkmarx Ltd. Code instrumentation for runtime application self-protection
US20170316202A1 (en) * 2015-01-18 2017-11-02 Checkmarx Ltd. Rasp for scripting languages
US9804800B2 (en) 2015-06-29 2017-10-31 Palo Alto Networks, Inc. Detecting heap-spray in memory images
US9916443B1 (en) 2015-07-21 2018-03-13 Palo Alto Networks, Inc. Detecting an attempt to exploit a memory allocation vulnerability
US9888022B2 (en) * 2015-12-01 2018-02-06 International Business Machines Corporation Providing application-specific threat metrics
US10387656B2 (en) 2016-03-21 2019-08-20 Checkmarx Ltd. Integrated interactive application security testing
US10728274B2 (en) * 2016-09-22 2020-07-28 Check Point Software Technologies Ltd. Method and system for injecting javascript into a web page
US10841337B2 (en) 2016-11-28 2020-11-17 Secureworks Corp. Computer implemented system and method, and computer program product for reversibly remediating a security risk
CN106850591B (zh) * 2017-01-13 2019-08-02 北京蓝海讯通科技股份有限公司 数据标记装置和方法
US10678907B2 (en) * 2017-01-26 2020-06-09 University Of South Florida Detecting threats in big data platforms based on call trace and memory access patterns
CN108512808B (zh) * 2017-02-24 2019-05-31 北京数安鑫云信息技术有限公司 一种提高访问响应速度的恶意请求拦截方法和系统
IL259201B (en) 2017-05-10 2021-12-01 Checkmarx Ltd Using the same query language for static and dynamic application security testing tools
US10735470B2 (en) 2017-11-06 2020-08-04 Secureworks Corp. Systems and methods for sharing, distributing, or accessing security data and/or security applications, models, or analytics
US10594713B2 (en) 2017-11-10 2020-03-17 Secureworks Corp. Systems and methods for secure propagation of statistical models within threat intelligence communities
US10853457B2 (en) * 2018-02-06 2020-12-01 Didi Research America, Llc System and method for program security protection
CN108898020A (zh) * 2018-05-31 2018-11-27 深圳壹账通智能科技有限公司 基于代理端的漏洞检测方法、装置、移动终端和存储介质
US10785238B2 (en) 2018-06-12 2020-09-22 Secureworks Corp. Systems and methods for threat discovery across distinct organizations
US11003718B2 (en) 2018-06-12 2021-05-11 Secureworks Corp. Systems and methods for enabling a global aggregated search, while allowing configurable client anonymity
US10963561B2 (en) * 2018-09-04 2021-03-30 Intel Corporation System and method to identify a no-operation (NOP) sled attack
US11347850B2 (en) 2018-10-01 2022-05-31 Blackberry Limited Analyzing binary software code
US10984102B2 (en) * 2018-10-01 2021-04-20 Blackberry Limited Determining security risks in binary software code
US10936718B2 (en) * 2018-10-01 2021-03-02 Blackberry Limited Detecting security risks in binary software code
US11106791B2 (en) 2018-10-01 2021-08-31 Blackberry Limited Determining security risks in binary software code based on network addresses
US11310268B2 (en) 2019-05-06 2022-04-19 Secureworks Corp. Systems and methods using computer vision and machine learning for detection of malicious actions
US11418524B2 (en) 2019-05-07 2022-08-16 SecureworksCorp. Systems and methods of hierarchical behavior activity modeling and detection for systems-level security
US11263316B2 (en) * 2019-08-20 2022-03-01 Irdeto B.V. Securing software routines
US11381589B2 (en) 2019-10-11 2022-07-05 Secureworks Corp. Systems and methods for distributed extended common vulnerabilities and exposures data management
US11522877B2 (en) 2019-12-16 2022-12-06 Secureworks Corp. Systems and methods for identifying malicious actors or activities
US11836258B2 (en) 2020-07-28 2023-12-05 Checkmarx Ltd. Detecting exploitable paths in application software that uses third-party libraries
US11588834B2 (en) 2020-09-03 2023-02-21 Secureworks Corp. Systems and methods for identifying attack patterns or suspicious activity in client networks
US11528294B2 (en) 2021-02-18 2022-12-13 SecureworksCorp. Systems and methods for automated threat detection

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974549A (en) * 1997-03-27 1999-10-26 Soliton Ltd. Security monitor
US5949973A (en) * 1997-07-25 1999-09-07 Memco Software, Ltd. Method of relocating the stack in a computer system for preventing overrate by an exploit program
US6934857B1 (en) * 2000-11-27 2005-08-23 Networks Associates Technology, Inc. Security system and method for handheld computers
US6824051B2 (en) 2001-06-07 2004-11-30 Contentguard Holdings, Inc. Protected content distribution system
US7228563B2 (en) * 2003-02-06 2007-06-05 Symantec Corporation Shell code blocking system and method
US7594277B2 (en) 2004-06-30 2009-09-22 Microsoft Corporation Method and system for detecting when an outgoing communication contains certain content
US8458793B2 (en) * 2004-07-13 2013-06-04 International Business Machines Corporation Methods, computer program products and data structures for intrusion detection, intrusion response and vulnerability remediation across target computer systems
JP2006053788A (ja) * 2004-08-12 2006-02-23 Ntt Docomo Inc ソフトウェア動作監視装置及びソフトウェア動作監視方法
US20060075494A1 (en) * 2004-10-01 2006-04-06 Bertman Justin R Method and system for analyzing data for potential malware
US8225409B2 (en) * 2005-03-23 2012-07-17 Belarc, Inc. Security control verification and monitoring subsystem for use in a computer information database system
US20070107057A1 (en) * 2005-11-10 2007-05-10 Docomo Communications Laboratories Usa, Inc. Method and apparatus for detecting and preventing unsafe behavior of javascript programs
US7757289B2 (en) 2005-12-12 2010-07-13 Finjan, Inc. System and method for inspecting dynamically generated executable code
US8495708B2 (en) * 2007-03-22 2013-07-23 The Invention Science Fund I, Llc Resource authorizations dependent on emulation environment isolation policies
US9686288B2 (en) * 2008-01-25 2017-06-20 Ntt Docomo, Inc. Method and apparatus for constructing security policies for web content instrumentation against browser-based attacks
US20100037317A1 (en) * 2008-08-06 2010-02-11 Jeong Wook Oh Mehtod and system for security monitoring of the interface between a browser and an external browser module
US8997219B2 (en) * 2008-11-03 2015-03-31 Fireeye, Inc. Systems and methods for detecting malicious PDF network content
US8522350B2 (en) 2008-11-19 2013-08-27 Dell Products, Lp System and method for run-time attack prevention
US8789178B2 (en) * 2009-08-03 2014-07-22 Barracuda Networks, Inc. Method for detecting malicious javascript
US8214903B2 (en) * 2009-10-02 2012-07-03 International Business Machines Corporation Analysis of scripts

Also Published As

Publication number Publication date
WO2010059843A3 (en) 2010-08-26
GB201110367D0 (en) 2011-08-03
US8938802B2 (en) 2015-01-20
CN102224505B (zh) 2014-06-04
WO2010059843A2 (en) 2010-05-27
US20100125913A1 (en) 2010-05-20
US20130291103A1 (en) 2013-10-31
GB2478098B (en) 2013-07-10
US8522350B2 (en) 2013-08-27
GB2478098A (en) 2011-08-24
CN102224505A (zh) 2011-10-19

Similar Documents

Publication Publication Date Title
DE112009002738T5 (de) System und Verfahren zur Laufzeitangriffsprävention
US9773109B2 (en) Alternate files returned for suspicious processes in a compromised computer network
Wurzinger et al. SWAP: Mitigating XSS attacks using a reverse proxy
Weichselbaum et al. Csp is dead, long live csp! on the insecurity of whitelists and the future of content security policy
US10728274B2 (en) Method and system for injecting javascript into a web page
US9292684B2 (en) Systems and methods for security in computer systems
Reis et al. BrowserShield: Vulnerability-driven filtering of dynamic HTML
US8239939B2 (en) Browser protection module
US8201245B2 (en) System, method and program product for detecting computer attacks
US8225392B2 (en) Immunizing HTML browsers and extensions from known vulnerabilities
US9906549B2 (en) Proxy engine for custom handling of web content
US20100037317A1 (en) Mehtod and system for security monitoring of the interface between a browser and an external browser module
JP2004318816A (ja) 通信中継装置、通信中継方法及びプログラム
US20090070663A1 (en) Proxy engine for custom handling of web content
US20050125685A1 (en) Method and system for processing events
EP3518135B1 (de) Schutz vor javascript-schwachstellen dritter
US20130167220A1 (en) Secure Operation of Transitory Computer Applications
CN113645234A (zh) 基于蜜罐的网络防御方法、系统、介质及装置
Knittel et al. Xsinator. com: From a formal model to the automatic evaluation of cross-site leaks in web browsers
CN109218296B (zh) 基于改进csp策略的xss防御系统和方法
CN114095264A (zh) 一种蜜罐系统的高交互溯源方法、装备及硬件
Ofuonye et al. Securing web-clients with instrumented code and dynamic runtime monitoring
Wagner et al. A security analysis of the Combex DarpaBrowser architecture
Gostev Kaspersky security bulletin
Piessens et al. Developing Secure Software: A survey and classification of common software vulnerabilities

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0021000000

Ipc: G06F0021600000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0021000000

Ipc: G06F0021600000

Effective date: 20130506

R016 Response to examination communication
R016 Response to examination communication