DE112013000485T5 - Automatische Synthese von Einheitentests für Sicherheitstests - Google Patents

Automatische Synthese von Einheitentests für Sicherheitstests Download PDF

Info

Publication number
DE112013000485T5
DE112013000485T5 DE112013000485.2T DE112013000485T DE112013000485T5 DE 112013000485 T5 DE112013000485 T5 DE 112013000485T5 DE 112013000485 T DE112013000485 T DE 112013000485T DE 112013000485 T5 DE112013000485 T5 DE 112013000485T5
Authority
DE
Germany
Prior art keywords
cput
test
program code
unit
computer readable
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
DE112013000485.2T
Other languages
English (en)
Inventor
c/o IBM Israel Tripp Omer
c/o IBM Israel Segal Ori
c/o IBM Israel Weisman Omri
c/o IBM Israel Kalman Daniel
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112013000485T5 publication Critical patent/DE112013000485T5/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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • 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/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

Durchführen einer Sicherheitsanalyse an einem im Test befindlichen Computerprogramm (CPUT). Das CPUT kann analysiert werden, um Daten zu identifizieren, die für potenzielle Sicherheitslücken des CPUT relevant sind. Zumindest ein erster Einheitentest, der dazu eingerichtet ist, eine bestimmte Einheit von Programmcode innerhalb des CPUT zu testen, kann automatisch synthetisiert werden. Der erste Einheitentest kann dazu eingerichtet sein, zumindest einen Parameter zu initialisieren, der durch die bestimmte Einheit des Programmcodes innerhalb des CPUT verwendet wird, und für ihn kann zumindest eine erste Testnutzdatenmenge bereitgestellt werden, die dazu eingerichtet ist, zumindest eine potenzielle Sicherheitslücke des CPUT auszunutzen. Der erste Einheitentest kann dynamisch verarbeitet werden, um die erste Testnutzdatenmenge an die bestimmte Einheit des Programmcodes innerhalb des CPUT zu übertragen. Es kann ermittelt werden, ob die erste Testnutzdatenmenge eine tatsächliche Sicherheitslücke des CPUT ausnutzt, und es kann ein Sicherheitsanalysebericht ausgegeben werden.

Description

  • HINTERGRUND
  • Eine oder mehrere in dieser Beschreibung offenbarte Ausführungsformen beziehen sich auf Sicherheitstests von Software.
  • Ein Testen von Einheiten wird häufig dazu verwendet sicherzustellen, dass eine Software-Einheit ihre funktionale Spezifikation einhält. Bei dem Testen von Einheiten handelt es sich um ein Verfahren, durch das einzelne Einheiten von Programmcode getestet werden, um zu ermitteln, ob sie ordnungsgemäß funktionieren und sich wie beabsichtigt verhalten. Allgemein ausgedrückt ist eine Einheit der kleinste testbare Teil einer Anwendung. In der prozeduralen Programmierung kann eine Einheit ein gesamtes Modul sein, häufiger handelt es sich jedoch um eine einzelne Funktion oder Prozedur. In der objektorientierten Programmierung ist eine Einheit häufig eine gesamte Schnittstelle wie zum Beispiel eine Klasse, es kann sich jedoch auch um eine einzelne Methode handeln. Einheitentests werden üblicherweise durch Software-Entwickler geschrieben und ausgeführt. Ihre Implementierung kann von einem sehr manuellen Vorgang bis zu einer Formalisierung als Teil einer Build-Automatisierung variieren.
  • KURZDARSTELLUNG
  • Eine oder mehrere in dieser Beschreibung offenbarte Ausführungsformen beziehen sich auf ein Durchführen einer Sicherheitsanalyse an einem im Test befindlichen Computerprogramm (computer program under test, CPUT).
  • Eine Ausführungsform kann über einen Prozessor ein Analysieren des CPUT beinhalten, um Daten zu identifizieren, die für potenzielle Sicherheitslücken des CPUT relevant sind. Das Verfahren kann des Weiteren ein automatisches Synthetisieren zumindest eines ersten Einheitentests beinhalten, der dazu eingerichtet ist, eine bestimmte Einheit eines Programmcodes innerhalb des CPUT zu testen, wobei der erste Einheitentest dazu eingerichtet ist, zumindest einen Parameter zu initialisieren, der durch die bestimmte Einheit des Programmcodes innerhalb des CPUT verwendet wird. Das Verfahren kann außerdem ein Bereitstellen zumindest einer ersten Testnutzdatenmenge für den ersten Einheitentest beinhalten, die dazu eingerichtet ist, zumindest eine potenzielle Sicherheitslücke des CPUT auszunutzen. Das Verfahren kann des Weiteren ein dynamisches Verarbeiten des ersten Einheitentests, um die erste Testnutzdatenmenge an die bestimmte Einheit des Programmcodes innerhalb des CPUT zu übertragen, um zu ermitteln, ob die erste Testnutzdatenmenge eine tatsächliche Sicherheitslücke des CPUT ausnutzt, und ein Ausgeben eines Sicherheitsanalyseberichts beinhalten, der angibt, ob die erste Testnutzdatenmenge eine tatsächliche Sicherheitslücke des CPUT ausnutzt.
  • Eine weitere Ausführungsform kann über einen Prozessor ein Durchführen einer statischen Analyse des CPUT beinhalten, um Daten zu identifizieren, die für potenzielle Sicherheitslücken des CPUT relevant sind. Das Verfahren kann des Weiteren ein automatisches Synthetisieren zumindest eines ersten Einheitentests beinhalten, der dazu eingerichtet ist, eine bestimmte Einheit eines Programmcodes innerhalb des CPUT zu testen, wobei der erste Einheitentest dazu eingerichtet ist, zumindest einen Parameter zu initialisieren, der durch die bestimmte Einheit des Programmcodes innerhalb des CPUT verwendet wird. Das Verfahren kann außerdem ein Bereitstellen zumindest einer ersten Testnutzdatenmenge, die dazu eingerichtet ist, zumindest eine potenzielle Sicherheitslücke des CPUT auszunutzen, ein dynamisches Verarbeiten des ersten Einheitentests, um die erste Testnutzdatenmenge an die bestimmte Einheit des Programmcodes innerhalb des CPUT über eine Hypertext-Transfer-Protocol(HTTP)-Anforderung zu übertragen, um zu ermitteln, ob die erste Testnutzdatenmenge eine tatsächliche Sicherheitslücke des CPUT ausnutzt, und ein Ausgeben eines Sicherheitsanalyseberichts beinhalten, der angibt, ob die erste Testnutzdatenmenge eine tatsächliche Sicherheitslücke des CPUT ausnutzt.
  • Eine weitere Ausführungsform kann ein Computerprogrammprodukt zum Durchführen einer Sicherheitsanalyse an einem im Test befindlichen Computerprogramm (CPUT) beinhalten. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium beinhalten, in dem computerlesbarer Programmcode verkörpert ist, wobei der computerlesbare Programmcode computerlesbaren Programmcode aufweist, der dazu eingerichtet ist, die verschiedenen Vorgänge und/oder Funktionen durchzuführen, die in dieser Beschreibung offenbart werden.
  • Eine weitere Ausführungsform kann ein System beinhalten, das einen Prozessor beinhalten kann, der dazu eingerichtet ist, Vorgänge/ausführbare Vorgänge/usw. durchzuführen, wie sie in dieser Beschreibung beschrieben werden.
  • KURZBESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN DER ZEICHNUNGEN
  • 1 ist ein Blockschaubild, das ein System zum automatischen Synthetisieren von Einheitentests für Sicherheitstests gemäß einer Ausführungsform veranschaulicht, die in dieser Beschreibung offenbart wird.
  • 2 ist ein Blockschaubild, das ein Verarbeitungssystem gemäß einer Ausführungsform veranschaulicht, die in dieser Beschreibung offenbart wird.
  • 3 ist ein Ablaufplan, der ein Verfahren zum Durchführen einer Sicherheitsanalyse an einem CPUT gemäß einer weiteren Ausführungsform veranschaulicht, die in dieser Beschreibung offenbart wird.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Wie für einen Fachmann ersichtlich ist, können Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt verkörpert werden. Dementsprechend können Aspekte der vorliegenden Erfindung eine reine Hardware-Ausführungsform, eine reine Software-Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder eine Ausführungsform annehmen, in der Software- und Hardware-Aspekte kombiniert werden, die sämtlich hierin verallgemeinernd als „Schaltung”, „Modul” oder „System” bezeichnet werden können. Des Weiteren können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert wird, auf denen computerlesbarer Programmcode verkörpert, z. B. gespeichert, ist.
  • Es kann eine beliebige Kombination eines oder mehrerer computerlesbarer Medien verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Bei dem computerlesbaren Speichermedium kann es sich im Sinne einer nicht abschließenden Aufzählung zum Beispiel um ein(e) elektronische(s), magnetische(s), optische(s), elektromagnetische(s), Infrarot- bzw. Halbleitersystem, -vorrichtung oder -einheit oder um eine beliebige geeignete Kombination aus Obigem handeln. Zu konkreteren Beispielen (einer nicht erschöpfenden Liste) des computerlesbaren Speichermediums würden folgende gehören: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, ein Festplattenlaufwerk (hard disk drive, HDD), ein Halbleiterlaufwerk (solid state drive, SDD), ein Direktzugriffsspeicher (random access memory, RAM), ein Festwertspeicher (read-only memory, ROM), ein löschbarer, programmierbarer Festwertspeicher (erasable programmable read-only memory, EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disk-Festwertspeicher (CD-ROM), eine digitale, vielseitige Scheibe (digital versatile disc, DVD) eine optische Speichereinheit, eine Magnetspeichereinheit oder eine beliebige geeignete Kombination der Obigen. Im Rahmen dieses Dokuments kann ein computerlesbares Speichermedium jedes greifbare Medium sein, das ein Programm zur Verwendung durch ein System, eine Vorrichtung oder Einheit zur Befehlsausführung bzw. in Verbindung mit diesen enthalten oder speichern kann.
  • Ein computerlesbares Signalmedium kann ein sich ausbreitendes Datensignal, in dem computerlesbarer Programmcode verkörpert wird, zum Beispiel im Basisband oder als Teil einer Trägerwelle beinhalten. Ein solches sich ausbreitendes Signal kann eine Vielfalt von Formen annehmen, darunter eine elektromagnetische Form, eine optische Form oder eine beliebige geeignete Kombination derselben, ohne auf diese beschränkt zu sein. Bei einem computerlesbaren Signalmedium kann es sich um ein beliebiges computerlesbares Medium handeln, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch ein System, eine Vorrichtung oder Einheit zur Befehlsausführung bzw. in Verbindung mit diesen austauschen, verbreiten oder transportieren kann.
  • Auf einem computerlesbaren Medium verkörperter Programmcode kann mithilfe eines beliebigen geeigneten Mediums übertragen werden, zum Beispiel drahtlos, drahtgebunden, über Lichtwellenleiter, Kabel, Hochfrequenz (HF) usw. oder über eine beliebige geeignete Kombination der Obigen, ohne auf diese beschränkt zu sein. Computerprogrammcode zum Ausführen von Vorgängen für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination einer oder mehrerer Programmiersprachen geschrieben werden, zum Beispiel in einer objektorientierten Programmiersprache wie etwa JavaTM, Smalltalk, C++ oder dergleichen und in herkömmlichen prozeduralen Programmiersprachen wie zum Beispiel der Programmiersprache „C” oder ähnlichen Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, zum Teil auf dem Computer des Benutzers, als eigenständiges Software-Paket, zum Teil auf dem Computer des Benutzers und zum Teil auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art von Netzwerk verbunden sein, zum Beispiel durch ein lokales Netzwerk (local area network, LAN) oder ein Weitverkehrs-Netzwerk (wide area network, WAN), oder die Verbindung kann mit einem externen Computer (zum Beispiel über das Internet mithilfe eines Internet-Diensteanbieters) hergestellt werden.
  • Aspekte der vorliegenden Erfindung werden nachfolgend unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufpläne und/oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaubildern durch Computerprogramm befehle implementiert werden kann/können. Diese Computerprogrammbefehle können für einen Prozessor eines Universalcomputers, eines Spezialcomputers oder einer sonstigen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Befehle, die über den Prozessor des Computers, einer sonstigen programmierbaren Datenverarbeitungsvorrichtung, oder sonstige Einheiten ausgeführt werden, ein Mittel zum Implementieren der Funktionen/Vorgänge erzeugen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind.
  • Diese Computerprogrammbefehle können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine sonstige programmierbare Datenverarbeitungsvorrichtung oder sonstige Einheiten so steuern kann, dass sie in einer bestimmten Weise funktionieren, sodass die in dem computerlesbaren Medium gespeicherten Befehle einen Herstellungsgegenstand erzeugen, der Befehle beinhaltet, die die/den Funktion/Vorgang implementieren, die/der in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben ist.
  • Die Computerprogrammbefehle können außerdem auf einen Computer, eine sonstige programmierbare Datenverarbeitungsvorrichtung oder sonstige Einheiten geladen werden, um zu bewirken, dass eine Reihe von Schritten eines Vorgangs auf dem Computer, einer sonstigen programmierbaren Vorrichtung oder sonstigen Einheiten ausgeführt wird, um einen computerimplementierten Prozess zu erzeugen, sodass die auf dem Computer oder einer sonstigen programmierbaren Vorrichtung ausgeführten Befehle Prozesse bereitstellen, um die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Vorgänge zu implementieren.
  • Die hierin beschriebenen Anordnungen beziehen sich auf die Sicherheitsanalyse und das Testen eines im Test befindlichen Computerprogramms (CPUT) wie zum Beispiel einer Anwendung auf der Grundlage des Web. Im Besonderen können Daten, die sich auf das CPUT beziehen, extrahiert und verarbeitet werden, um Einheitentests dynamisch zu erstellen, die speziell zum Testen auf Sicherheitslücken gestaltet sind, die in dem CPUT vorhanden sein können. Die Einheitentests können auf der Grundlage der Daten, die für den Programmcode des CPUT abgerufen werden, automatisch synthetisiert werden. Dementsprechend können die Einheitentests, die automatisch erstellt werden, CPUT-spezifisch sein und können das CPUT anwenden, um Sicherheitslücken zu ermitteln. Im Besonderen können die Einstiegspunkte des CPUT identifiziert werden, und für jeden Einstiegspunkt können Hypertext-Transfer-Protocol(HTTP)-Parameter festgelegt werden, die dem Einstiegspunkt entsprechen. Diese Einstiegspunkte können mithilfe eines oder mehrerer Einheitentests angewendet werden, um Testdaten, beispielsweise Testnutzdaten, die zerstörerischen Programmcode enthalten, Werte oder dergleichen in einen oder mehrere Parameter zu injizieren, die durch die Einstiegspunkte des CPUT verarbeitet werden. Dementsprechend können die Einheitentests dazu verwendet werden, das CPUT zu testen, um zu ermitteln, ob das CPUT anfällig für zerstörerische Daten ist, die potenziell durch einen Endbenutzer injiziert werden können, wenn das CPUT aktiv ist (d. h. implementiert ist und in seiner beabsichtigten Weise arbeitet).
  • So, wie der Begriff hierin verwendet wird, handelt es sich bei einem Einheitentest um einen computerlesbaren Programmcode, der einen Test an einer bestimmten Einheit eines CPUT-Programmcodes (z. B. einem kleinsten testbaren Teil des CPUT) durchführt und zumindest einen Parameter initialisiert, der durch die bestimmte Einheit verwendet wird. Zu Beispielen für Programmcode zählen Quellcode, Byte-Code (d. h. portierbarer Code oder P-Code), Binärcode und dergleichen, ohne jedoch auf diese beschränkt zu sein. Eine oder mehrere Mengen von Nutzdaten wie zum Beispiel Programmcode (z. B. ein Skript), Werte oder dergleichen können einem Einheitentest bereitgestellt werden, damit sie für einen Sicherheitstest in das CPUT injiziert werden. So, wie der Begriff hierin verwendet wird, handelt es sich bei einer Einheit des CPUT um eine Funktion, ein Modul oder eine beliebige sonstige Gruppe einer oder mehrerer Zeilen des CPUT-Programmcodes, die einen bestimmten Vorgang durchführen. Nachstehend kann innerhalb der folgenden Beschreibung und/oder Ansprüche eine Einheit des CPUT als „Einheit des Programmcodes” bezeichnet werden.
  • 1 ist ein Blockschaubild, das ein System 100 zum automatischen Synthetisieren von Einheitentests 112 für Sicherheitstests gemäß einer Ausführungsform veranschaulicht, die in dieser Beschreibung offenbart wird. Das System kann eine Sicherheitsanalyseanwendung 110 und ein CPUT 120 beinhalten, das durch die Sicherheitsanalyseanwendung 110 auf Sicherheitslücken getestet wird.
  • Bei einer Ausführungsform können die Sicherheitsanalyseanwendung 110 und ein CPUT 120 auf demselben Verarbeitungssystem ausgeführt werden. Dementsprechend können die Kosten für die Bandbreite der Datenübertragungen für die Sicherheitsanalyseanwendung 110 und das CPUT 120 beseitigt werden. Zur Veranschaulichung, die Latenzzeit für die Datenübertragung kann so weit wie möglich verringert werden, und Mehraufwandsprozesse, die zur Unterstützung von Datenübertragungen zwischen ungleichartigen Systemen erforderlich sind, können beseitigt werden.
  • Im Betrieb kann die Sicherheitsanalyseanwendung 110 das CPUT 120 analysieren, um Daten zu identifizieren, die für potenzielle Sicherheitslücken des CPUT 120 relevant sind. Beispielsweise kann die Sicherheitsanalyseanwendung 110 den Programmcode für das CPUT 120 abrufen und eine statische Analyse des Programmcodes durchführen, um Rohdaten zu identifizieren und zu extrahieren, die mit Einheiten des CPUT 120, die Benutzereingaben empfangen, und der Weise in Zusammenhang stehen, in der solche Benutzereingaben bearbeitet werden. Beispielsweise kann die Sicherheitsanalyseanwendung 110 Programmcode für Anweisungen in dem CPUT, die eine Benutzereingabe in das CPUT 120 einlesen, und Programmcode für Einheiten des CPUT identifizieren, die mit dem Verarbeiten von Daten in Zusammenhang stehen, die von Benutzern an diesen Einstiegspunkten empfangen werden.
  • Bei einer Anordnung, bei der es sich bei dem CPUT 120 um eine Web-Anwendung handelt, kann die Sicherheitsanalyseanwendung 110 Programmcode für jede Einheit des CPUT (d. h. Einheit des Programmcodes), die mit dem Empfangen von HTTP-Anforderungen in Zusammenhang steht, und Programmcode für jede Einheit des CPUT analysieren und abrufen, die mit dem Verarbeiten solcher HTTP-Anforderungen in Zusammenhang steht. Mit anderen Worten, zusätzlich zu dem Analysieren des Programmcodes, der mit dem Bereitstellen einer Schnittstelle für eine Benutzerinteraktion mit dem CPUT 120 in Zusammenhang steht, kann die Sicherheitsanalyseanwendung 110 eine statische Analyse an dem Programmcode durchführen, der mit einer Back-End-Verarbeitung in Zusammenhang steht, die durch das CPUT 120 durchgeführt wird. Dementsprechend kann die statische Analyse, die durch die Sicherheitsanalyseanwendung 110 durchgeführt wird, sehr gründlich sein und potenzielle Sicherheitslücken identifizieren, die anderenfalls übersehen würden, wenn lediglich eine dynamische Analyse angewendet würde. Darüber hinaus können die vorliegenden Ausführungsformen die Verwendung sehr kostspieliger HTTP-Datenübertragungen durch Synthetisieren von Einheitentests auf der Seite des Servers beseitigen.
  • Auf der Grundlage solcher Identifizierungen kann die Sicherheitsanalyseanwendung 110 die Einheitentests 112 dynamisch synthetisieren, die versuchen, Sicherheitslücken auszunutzen, die potenziell in einer oder mehreren Einheiten des CPUT 120 vorhanden sein können. Im Besonderen kann jeder Einheitentest 112 dazu eingerichtet sein, einen oder mehrere Parameter zu initialisieren, die durch eine bestimmte Einheit des CPUT 120 verarbeitet werden.
  • Bei einer Ausführungsform, bei der die Einheitentests 112 künstliche HTTP-Anforderungen 130 erzeugen, kann die Sicherheitsanalyseanwendung 110 ein Mocking-Framework implementieren, das Unterstützung für die Sicherheitsanalyseanwendung 110 zum Synthetisieren der Einheitentests 112 bereitstellt, die künstliche HTTP-Anforderungen 130 erzeugen. Solche Mocking-Frameworks sind nach dem Stand der Technik bekannt. Zur Veranschaulichung, das Mocking-Framework kann, statt eine herkömmliche Benutzeroberfläche zu verwenden, die durch das CPUT 120 bereitgestellt wird, durch die Endbenutzer mit dem CPUT 120 interagieren, eine synthetische Klasse beinhalten, die ein Mock-Objekt implementiert, das durch den/die Einheitentest(s) 112 erzeugte HTTP-Anforderungen in geeigneter Weise für die Verarbeitung durch das CPUT 120 strukturiert. In dieser Hinsicht kann das Mocking-Framework die Weise nachahmen, in der eine herkömmliche Benutzeroberfläche Parameter von einem Benutzer empfängt und herkömmliche HTTP-Anforderungen erzeugt. Der Prozess des Nachahmens der Arbeitsweise einer herkömmlichen Benutzeroberfläche wird nach dem Stand der Technik häufig als „Mocking” bezeichnet.
  • Des Weiteren können eine oder mehrere Testnutzdatenmengen für jeden Einheitentest 112 bereitgestellt werden, die der Einheitentest 112 an das CPUT übertragen (z. B. dort hinein injizieren) kann, und die dazu führen können, dass eine Zieleinheit des CPUT 120 in unerwünschter Weise ausgeführt wird, wenn die Testnutzdatenmengen durch das CPUT 120 empfangen und verarbeitet werden. Die Sicherheitsanalyseanwendung 110 kann die Testnutzdatenmengen in beliebiger geeigneter Weise erstellen. Beispielsweise kann die Sicherheitsanalyseanwendung 110 auf eine Bibliothek von Testnutzdaten-Werten zugreifen, die verschiedenen während der statischen Analyse identifizierten Parametern entsprechen können, die durch das CPUT 120 verarbeitet werden. Insofern können die Testnutzdaten vordefiniert werden, wenngleich die Erfindung nicht in dieser Hinsicht beschränkt ist. Beispielsweise kann ein Benutzer auswählen, welche Testnutzdaten ausgeführt werden sollen, oder die Testnutzdaten können auf der Grundlage der Analyse des CPUT-Programmcodes dynamisch angepasst werden.
  • Als Beispiel werde angenommen, dass eine Einheit des CPUT 120 dazu eingerichtet ist, einen Parameter „name” zu verarbeiten, der durch einen Endbenutzer bereitgestellt wird, beispielsweise mithilfe einer Anweisung „get name” im Programmcode des CPUT 120. Da der Parameter „name” zum Beispiel mithilfe einer HTTP-Anforderung durch den Endbenutzer bereitgestellt wird, kann er als nicht vertrauenswürdiger Parameter betrachtet werden; bestimmte skrupellose Endbenutzer könnten versuchen, mithilfe dieses Parameters zerstörerische Nutzdaten in das CPUT 120 zu injizieren. Die Sicherheitsanalyseanwendung 110 kann auf der Grundlage der statischen Analyse erkennen, dass ein solcher nicht vertrauenswürdiger Parameter durch eine Einheit des CPUT 120 verwendet wird, und den Einheitentest 112 synthetisieren, um den Parameter „name” zu definieren und diesen Parameter zu initialisieren. Des Weiteren kann die Sicherheitsanalyseanwendung 110 dem Einheitentest 112 eine Testnutzdatenmenge bereitstellen, die als Parameter „name” an das CPUT 120 übertragen werden soll. Ein Beispiel für die Nutzdatenmenge kann zum Beispiel ein Skript-Tag (z. B. ”<script type = 'text/javascript' name = 'name' > 'alert' </script>”) sein. Insofern kann die Testnutzdatenmenge dazu eingerichtet werden, durch das CPUT 120 verarbeitet zu werden, um einen bestimmten Test an der Anweisung „get name” in der Einheit des im Test befindlichen CPUT 120 durchzuführen. Nichtsdestotrotz ist die Erfindung nicht auf dieses spezifische Beispiel beschränkt. Beispielsweise kann eine Testnutzdatenmenge einen beliebigen sonstigen Programmcode, einen oder mehrere Werte oder dergleichen enthalten, die dazu eingerichtet sind, das CPUT auf Sicherheitslücken zu testen.
  • Die Sicherheitsanalyseanwendung 110 kann den/die Einheitentest(s) 112 verarbeiten, um die Testnutzdatenmenge(n) an das CPUT 120 zu übertragen. Beispielsweise kann ein Einheitentest 112 bei einer Ausführungsform verarbeitet werden, um eine oder mehrere künstliche HTTP-Anforderungen 130 zu erzeugen und die künstlichen HTTP-Anforderungen 130 an das CPUT 120 zu übertragen. Jede künstliche HTTP-Anforderung 130 kann eine oder mehrere Testnutzdatenmengen beinhalten. So, wie der Begriff hierin verwendet wird, handelt es sich bei einer künstlichen HTTP-Anforderung um eine HTTP-Anforderung, die automatisch zum Zweck des Testens eines CPUT und nicht direkt durch einen Benutzer erzeugt wird.
  • In Reaktion auf das Empfangen der künstlichen HTTP-Anforderung 130 wie auch jeglicher Testnutzdatenmengen, die in der künstlichen HTTP-Anforderung 130 enthalten oder dieser auf andere Weise zugehörig sind, kann das CPUT 120 eine HTTP-Antwort 140 erzeugen. Die Sicherheitsanalyseanwendung 110 kann die HTTP-Antwort 140 analysieren, um zu ermitteln, ob das CPUT 120 in unerwünschter Weise auf die künstliche HTTP-Anforderung 130 reagiert. Darüber hinaus kann die Sicherheitsanalyseanwendung 110 auch sonstige Prozesse überwachen, die durch das CPUT 120 ausgeführt werden, um zu ermitteln, ob das CPUT 120 in unerwünschter Weise reagiert. Beispielsweise kann die Sicherheitsanalyseanwendung 110 eine Gültigkeitsprüfungslogik implementieren, um eine Dateneingabe-/-ausgabeaktivität zu überwachen, die durch das CPUT 120 durchgeführt wird, beispielsweise Senden zusätzlicher künstlicher HTTP-Anforderungen, Erzeugen von Daten, Speichern von Daten, Abrufen von Daten und dergleichen.
  • Bei einer Anordnung kann die Sicherheitsanalyseanwendung 110 die HTTP-Antwort 140 verarbeiten, um zusätzliche Daten zu identifizieren, die für potenzielle Sicherheitslücken des CPUT relevant sind, wie zum Beispiel zusätzliche Sicherheitslücken in dem CPUT oder zusätzliche Aspekte einer bestimmten Lücke, die identifiziert worden ist. Auf der Grundlage solcher Identifizierungen kann die Sicherheitsanalyseanwendung 110 einen oder mehrere nachfolgende Einheitentests 112 dynamisch synthetisieren, die versuchen, Sicherheitslücken auszunutzen, die potenziell in dem CPUT 120 vorhanden sein können. Zur Veranschaulichung, die Sicherheitsanalyseanwendung 110 kann einen oder mehrere sonstige Einheitentests 112 synthetisieren, die eine oder mehrere sonstige Testnutzdatenmenge(n) aufweisen, die dazu eingerichtet sind, das CPUT auf potenzielle Sicherheitslücken zu testen, und den/die sonstigen Einheitentest(s) 112 dynamisch ausführen, um eine oder mehrere weitere Testnutzdatenmenge(n) über eine oder mehrere sonstige künstliche HTTP-Anforderungen an das CPUT 120 zu übertragen, beispielsweise wie zuvor beschrieben. Die Sicherheitsanalyseanwendung 110 kann nachfolgende HTTP-Antworten empfangen und/oder das CPUT 120 überwachen, wie zuvor beschrieben, um zu ermitteln, ob das CPUT 120 in unerwünschter Weise auf den/die nachfolgenden Einheitentest(s) 112 reagiert.
  • Die Sicherheitsanalyseanwendung 110 kann die HTTP-Antwort 140, jegliche sonstige Antworten, die von dem CPUT 120 empfangen werden, und/oder eine Dateneingabe-/ausgabeaktivität, die durch das CPUT 120 durchgeführt wird, analysieren, um Sicherheitslücken in dem CPUT 120 zu identifizieren. Auf der Grundlage einer solchen Analyse kann die Sicherheitsanalyseanwendung 110 einen Sicherheitsanalysebericht 150 erzeugen, der Sicherheitslücken angibt, die mit dem CPUT 120 in Zusammenhang stehen. Zur Veranschaulichung, die Sicherheitsanalyseanwendung 110 kann den Sicherheitsanalysebericht 150 an eine Benutzeroberfläche 160, eine computerlesbare Speichereinheit oder dergleichen ausgeben. Die Benutzeroberfläche 160 kann durch das Verarbeitungssystem dargestellt werden, auf dem die Sicherheitsanalyseanwendung 110 ausgeführt wird, dies muss jedoch nicht der Fall sein.
  • 2 ist ein Blockschaubild, das ein Verarbeitungssystem 200 gemäß einer Ausführungsform veranschaulicht, die in dieser Beschreibung offenbart wird. Das Verarbeitungssystem 200 kann zumindest einen Prozessor 205 beinhalten, der durch einen Systembus 215 oder sonstige geeignete Schaltungen mit Speicherelementen 210 verbunden ist. Insofern kann das Verarbeitungssystem 200 computerlesbaren Programmcode innerhalb der Speicherelemente 210 speichern. Der Prozessor 105 kann den computerlesbaren Programmcode ausführen, der von den Speicherelementen 210 über den Systembus 215 abgerufen wird. In einem Aspekt kann das Verarbeitungssystem 200 zum Beispiel als Computer implementiert werden, der zum Speichern und/oder Ausführen von Programmcode geeignet ist. Es ist jedoch zu beachten, dass das Verarbeitungssystem 200 in Form eines beliebigen Systems implementiert werden kann, das einen Prozessor und einen Speicher beinhaltet, das in der Lage ist, die Funktionen und/oder Vorgänge durchzuführen, die in dieser Beschreibung beschrieben werden.
  • Die Speicherelemente 210 können eine oder mehrere physische Speichereinheiten wie zum Beispiel einen lokalen Speicher 220 und einen oder mehrere Massenspeichereinheiten 225 beinhalten. Der lokale Speicher 220 bezieht sich auf einen Direktzugriffsspeicher oder eine oder mehrere sonstige nichtdauerhafte Speichereinheiten, die im Allgemeinen während einer eigentlichen Ausführung des Programmcodes verwendet werden. Die Massenspeichereinheit(en) 225 kann/können als Festplattenlaufwerk (HDD), Halbleiterlaufwerk (SSD) oder sonstige dauerhafte Datenspeichereinheit implementiert werden. Das Verarbeitungssystem 200 kann außerdem einen oder mehrere (nicht dargestellte) Cachespeicher beinhalten, die eine vorübergehende Speicherung zumindest eines Teils des Programmcodes bereitstellen, um die Häufigkeit zu verringern, mit der Programmcode während der Ausführung aus der Massenspeichereinheit 225 abgerufen werden muss.
  • Eingabe-/Ausgabe(E/A)-Einheiten wie zum Beispiel eine Tastatur 230, eine Anzeige 235 und eine Zeigeeinheit 240 können optional mit dem Verarbeitungssystem 200 verbunden werden. Die E/A-Einheiten können entweder direkt oder durch dazwischengeschaltete E/A-Steuereinheiten mit dem Verarbeitungssystem 200 verbunden werden. Ein oder mehrere Netzwerkadapter 245 können ebenfalls mit dem Verarbeitungssystem 200 verbunden werden, um dem Verarbeitungssystem 200 zu ermöglichen, durch dazwischengeschaltete private oder öffentliche Netzwerke mit sonstigen Systemen, Computersystemen, entfernt angeordneten Druckern und/oder Speichereinheiten verbunden zu werden. Modems, Kabelmodems, Ethernet-Karten, drahtlose Netzwerkadapter und persönliche Netzwerkeinheiten sind Beispiele für verschiedene Arten der Netzwerkadapter 245, die mit dem Verarbeitungssystem 200 verwendet werden können.
  • Wie in 2 dargestellt, können die Speicherelemente 210 die Sicherheitsanalyseanwendung 110 und das CPUT 120 speichern. Die Sicherheitsanalyseanwendung 110, die in Form von ausführbarem Programmcode implementiert ist, kann durch das Verarbeitungssystem 200 ausgeführt werden und kann insofern als Teil des Verarbeitungssystems 200 betrachtet werden.
  • Die Sicherheitsanalyseanwendung 110 kann durch den Prozessor 205 ausgeführt werden, um die hierin beschriebenen Verfahren und Prozesse durchzuführen. Beispielsweise kann die Sicherheitsanalyseanwendung 110 ausgeführt werden, um das CPUT 120 zu analysieren, um Daten zu identifizieren, die für potenzielle Sicherheitslücken des CPUT relevant sind, automatisch/dynamisch zumindest einen Einheitentest 112 zu synthetisieren und den/die Einheitentest(s) 112 dynamisch zu verarbeiten, um eine oder mehrere Testnutzdatenmengen an das CPUT 120 zu übertragen, um auf potenzielle Sicherheitslücken zu testen, die in dem CPUT 120 vorhanden sind.
  • Die Sicherheitsanalyseanwendung 110 kann die Ergebnisse eines solchen Tests an die Speicherelemente 210 ausgeben und darin speichern. So, wie der Begriff hierin verwendet wird, kann „ausgeben” und/oder „Ausgabe” das Speichern in den Speicherelementen 210 bedeuten, beispielsweise Schreiben in eine oder mehrere in den Speicherelementen 210 gespeicherte Dateien, Schreiben in die Anzeige 235 oder eine sonstige periphere Ausgabeeinheit, Abspielen hörbarer Benachrichtigungen, Senden oder Übermitteln an ein weiteres System, Exportieren oder dergleichen. Bei einer Ausführungsform kann die Sicherheitsanalyseanwendung 100 als IBM® Rational® AppScan® Source Edition implementiert werden (IBM, Rational und AppScan sind Marken von International Business Machines Corporation in den Vereinigten Staaten, sonstigen Ländern oder beiden).
  • 3 ist ein Ablaufplan, der ein Verfahren 300 zum Durchführen einer Sicherheitsanalyse an einem CPUT gemäß einer weiteren Ausführungsform veranschaulicht, die in dieser Beschreibung offenbart wird. Das Verfahren 300 kann durch das Verarbeitungssystem von 2 implementiert werden.
  • In Schritt 302 kann das CPUT über den Prozessor analysiert werden, um Daten zu identifizieren, die für potenzielle Sicherheitslücken des CPUT relevant sind. Beispielsweise kann die Sicherheitsanalyseanwendung eine statische Analyse des CPUT durchführen. Im Besonderen kann die Sicherheitsanalyseanwendung Programmcode des CPUT analysieren, der mit dem Empfangen von HTTP-Anforderungen in Zusammenhang steht, und Programmcode des CPUT analysieren, der mit dem Verarbeiten von HTTP-Anforderungen in Zusammenhang steht.
  • In Schritt 304 kann die Sicherheitsanalyseanwendung automatisch einen oder mehrere Einheitentests synthetisieren, wobei jeder Einheitentest dazu eingerichtet ist, einen oder mehrere Parameter zu initialisieren, die durch eine bestimmte Einheit des CPUT-Programmcodes verarbeitet werden. Beispielsweise kann die Sicherheitsanalyseanwendung die Daten verarbeiten, die für potenzielle Sicherheitslücken des CPUT relevant sind, um den/die Einheitentest(s) zu synthetisieren. Die Sicherheitsanalyseanwendung kann des Weiteren jedem Einheitentest eine oder mehrere Testnutzdatenmengen bereitstellen, die dazu eingerichtet sind, das CPUT auf eine oder mehrere potenzielle Sicherheitslücken zu testen. Wie angemerkt, kann eine Testnutzdatenmenge einen oder mehrere Werte, Programmcode (z. B. ein Skript) oder dergleichen aufweisen, die dazu bestimmt sind, zerstörerische Nutzdaten zu replizieren, die ein skrupelloser Endbenutzer während eines herkömmlichen Ablaufs des im Einsatz befindlichen CPUT in das CPUT zu injizieren versuchen könnte.
  • In Schritt 306 kann/können der/die Einheitentest(s) dynamisch verarbeitet werden, um die erste(n) Menge(n) von Testnutzdaten an das CPUT zu übertragen. Beispielsweise kann/können der/die Einheitentest(s) dynamisch verarbeitet werden, um eine oder mehrere künstliche HTTP-Anforderungen zu erzeugen, die jeweils eine oder mehrere Testnutzdatenmengen aufweisen, und die künstlichen HTTP-Anforderungen, die die Testnutzdatenmengen aufweisen, an das CPUT zu übertragen. In Reaktion auf das Empfangen der Testnutzdatenmenge(n) kann das CPUT eine oder mehrere HTTP-Antworten erzeugen und die HTTP-Antworten an die Sicherheitsanalyseanwendung übertragen.
  • In Schritt 308 kann die Sicherheitsanalyseanwendung von dem CPUT die HTTP-Antworten auf die künstlichen HTTP-Anforderungen empfangen. In Schritt 310 kann die Sicherheitsanalyseanwendung ermitteln, ob die Testnutzdatenmenge(n) tatsächliche Sicherheitslücken des CPUT ausnutzt/ausnutzen. Beispielsweise kann die Sicherheitsanalyseanwendung das CPUT analysieren, während sie die Testnutzdatenmengen verarbeitet, und/oder die durch das CPUT erzeugte(n) HTTP-Antwort(en) analysieren, beispielsweise wie zuvor beschrieben. Zur Veranschaulichung, wenn sich das CPUT während des Verarbeitens einer oder mehrerer Testnutzdatenmengen in unerwünschter Weise verhält oder das CPUT unerwünschte HTTP-Antworten erzeugt, kann ein solches Verhalten des CPUT identifiziert werden.
  • In Schritt 312 kann die Sicherheitsanalyseanwendung die HTTP-Antwort(en) analysieren, um zu ermitteln, ob zusätzliche Sicherheitslücken des CPUT vorhanden sind. Zur Veranschaulichung, eine HTTP-Antwort kann Inhalt aufweisen, der auf zusätzliche Daten hinweist, die für potenzielle Sicherheitslücken des CPUT relevant sind, die in Schritt 302 möglicherweise nicht identifiziert worden sind. Unter Bezugnahme auf das Entscheidungsfeld 314 können die zusätzlichen Daten in Schritt 316 identifiziert werden, wenn zusätzliche potenzielle Sicherheitslücken durch Analysieren der HTTP-Antwort(en) identifiziert werden. In Schritt 318 kann die Sicherheitsanalyseanwendung einen oder mehrere zusätzliche Einheitentests synthetisieren. Zumindest eine sonstige Testnutzdatenmenge, die dazu eingerichtet ist, das CPUT auf zumindest eine potenzielle Sicherheitslücke des CPUT zu testen, kann jedem zusätzlichen Einheitentest bereitgestellt werden. Der Prozess kann dann zu Schritt 306 übergehen und wie beschrieben fortgesetzt werden.
  • Erneut unter Bezugnahme auf das Entscheidungsfeld 314 kann der Prozess, wenn keine zusätzlichen potenziellen Sicherheitslücken identifiziert werden, zu Schritt 320 übergehen, und es kann ein Sicherheitsanalysebericht ausgegeben werden, beispielsweise auf der Grundlage der Ermittlungen, die in Schritt 310 durchgeführt worden sind. Die Ergebnisse der Sicherheitsanalyse, die in dem Sicherheitsanalysebericht enthalten sind, können angeben, ob die Testnutzdatenmenge(n) tatsächliche Sicherheitslücken des CPUT ausnutzt/ausnutzen. Wie angemerkt, können die Ergebnisse an eine Anzeige, einen Drucker ausgegeben werden, in einem Speicher gespeichert werden oder dergleichen.
  • In dieser gesamten Beschreibung sind gleiche Zahlen verwendet worden, um Bezug auf dieselben Elemente zu nehmen. Die Ablaufpläne und Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und Arbeitsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment oder einen Abschnitt eines Codes darstellen, der einen oder mehrere ausführbare Befehle zum Implementieren der angegebenen logischen Funktion(en) aufweist. Es ist außerdem zu beachten, dass bei einigen alternativen Implementierungen die in dem Block vermerkten Funktionen in einer anderen Reihenfolge als in den Figuren vermerkt auftreten können. Beispielsweise können je nach einbezogener Funktionalität zwei nacheinander dargestellte Blöcke sogar im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können bisweilen in der umgekehrten Reihenfolge ausgeführt werden. Es ist ferner zu beachten, dass jeder Block der Blockschaubilder und/oder der Ablaufpläne und Kombinationen von Blöcken in den Blockschaubildern und/oder in den Ablaufplänen durch Spezialsysteme auf der Grundlage von Hardware, die die angegebenen Funktionen oder Vorgänge ausführen, oder durch Kombinationen von Spezial-Hardware und Computerbefehlen implementiert werden können.
  • Die hierin verwendete Terminologie dient lediglich der Beschreibung bestimmter Ausführungsformen und soll die Erfindung nicht beschränken. So, wie sie hierin verwendet werden, sollen die Singularformen „ein”, „eine” und „der”, „die”, „das” auch die Pluralformen beinhalten, sofern dies aus dem Kontext nicht eindeutig anders hervorgeht. Es versteht sich darüber hinaus, dass die Begriffe „aufweist” und/oder „aufweisend”, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein von angegebenen Merkmalen, Ganzzahlen, Schritten, Vorgängen, Elementen und/oder Komponenten bezeichnen, jedoch nicht das Vorhandensein oder die Beifügung von einem/einer oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Vorgängen, Elementen, Komponenten und/oder Gruppen davon ausschließen.
  • Die entsprechenden Strukturen, Materialien, Vorgänge und Entsprechungen aller Mittel oder Schritt-plus-Funktion-Elemente in den nachstehenden Ansprüchen sollen jede Struktur, jedes Material bzw. jeden Vorgang zum Ausführen der Funktion in Kombination mit anderen beanspruchten Elementen als ausdrücklich beansprucht beinhalten. Die Beschreibung der vorliegenden Erfindung erfolgte zum Zweck der Veranschaulichung und Beschreibung, ist jedoch nicht erschöpfend oder auf die Erfindung in der offenbarten Form beschränkt gemeint. Viele Modifizierungen und Varianten sind für Fachleute ersichtlich, ohne vom Umfang und Gedanken der Erfindung abzuweichen. Die Ausführungsform wurde ausgewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung am besten zu erläutern und um anderen Fachleuten das Verständnis der Erfindung für verschiedene Ausführungsformen mit verschiedenen, für den in Betracht gezogenen Einsatz geeigneten Modifizierungen zu ermöglichen.

Claims (25)

  1. Verfahren zum Durchführen einer Sicherheitsanalyse an einem im Test befindlichen Computerprogramm (CPUT), wobei das Verfahren aufweist: Analysieren des CPUT über einen Prozessor, um Daten zu identifizieren, die für potenzielle Sicherheitslücken des CPUT relevant sind; automatisches Synthetisieren zumindest eines ersten Einheitentests, der dazu eingerichtet ist, eine bestimmte Einheit eines Programmcodes innerhalb des CPUT zu testen, wobei der erste Einheitentest dazu eingerichtet ist, zumindest einen Parameter zu initialisieren, der durch die bestimmte Einheit des Programmcodes innerhalb des CPUT verwendet wird; Bereitstellen zumindest einer ersten Testnutzdatenmenge für den ersten Einheitentest, die dazu eingerichtet ist, zumindest eine potenzielle Sicherheitslücke des CPUT auszunutzen; dynamisches Verarbeiten des ersten Einheitentests, um die erste Testnutzdatenmenge an die bestimmte Einheit des Programmcodes innerhalb des CPUT zu übertragen; Ermitteln, ob die erste Testnutzdatenmenge eine tatsächliche Sicherheitslücke des CPUT ausnutzt; und Ausgeben eines Sicherheitsanalyseberichts, der angibt, ob die erste Testnutzdatenmenge eine tatsächliche Sicherheitslücke des CPUT ausnutzt.
  2. Verfahren nach Anspruch 1, wobei das Ermitteln, ob die erste Testnutzdatenmenge eine tatsächliche Sicherheitslücke des CPUT ausnutzt, aufweist: Analysieren von Prozessen, die durch das CPUT ausgeführt werden, während das CPUT die erste Testnutzdatenmenge verarbeitet.
  3. Verfahren nach Anspruch 1, wobei das dynamische Verarbeiten des ersten Einheitentests, um die erste Testnutzdatenmenge an das CPUT zu übertragen, aufweist: Übertragen einer künstlichen Hypertext-Transfer-Protocol(HTTP)-Anforderung an das CPUT, die die erste Testnutzdatenmenge aufweist.
  4. Verfahren nach Anspruch 3, das des Weiteren aufweist: Empfangen einer HTTP-Antwort auf die künstliche HTTP-Anforderung von dem CPUT; wobei das Ermitteln, ob die erste Testnutzdatenmenge eine tatsächliche Sicherheitslücke des CPUT ausnutzt, ein Analysieren der HTTP-Antwort aufweist.
  5. Verfahren nach Anspruch 3, das des Weiteren aufweist: Empfangen einer HTTP-Antwort auf die künstliche HTTP-Anforderung von dem CPUT; Analysieren der HTTP-Antwort, um zusätzliche Daten zu identifizieren, die für potenzielle Sicherheitslücken des CPUT relevant sind; automatisches Synthetisieren zumindest eines zweiten Einheitentests, wobei der zweite Einheitentest zumindest eine zweite Testnutzdatenmenge aufweist, die dazu eingerichtet ist, das CPUT auf zumindest eine potenzielle Sicherheitslücke des CPUT zu testen; und dynamisches Verarbeiten des zweiten Einheitentests, um die zweite Testnutzdatenmenge an das CPUT zu übertragen.
  6. Verfahren nach Anspruch 3, wobei das Übertragen der künstlichen HTTP-Anforderung an das CPUT aufweist: automatisches Erzeugen einer künstlichen HTTP-Anforderung, die die erste Testnutzdatenmenge aufweist, durch den ersten Einheitentest; und automatisches Übertragen der künstlichen HTTP-Anforderung an das CPUT durch den ersten Einheitentest.
  7. Verfahren nach Anspruch 1, wobei das automatische Synthetisieren zumindest des ersten Einheitentests aufweist: Verarbeiten der Daten, die für potenzielle Sicherheitslücken des CPUT relevant sind, um den ersten Einheitentest zu synthetisieren.
  8. Verfahren nach Anspruch 1, wobei das Analysieren des CPUT, um Daten zu identifizieren, die für potenzielle Sicherheitslücken des CPUT relevant sind, aufweist: Durchführen einer statischen Analyse des CPUT.
  9. Verfahren nach Anspruch 8, wobei das Durchführen der statischen Analyse des CPUT aufweist: Analysieren von Programmcode des CPUT, der mit dem Empfangen der Hypertext-Transfer-Protocol(HTTP)-Anforderungen in Zusammenhang steht; und Analysieren von Programmcode des CPUT, der mit dem Verarbeiten der HTTP-Anforderungen in Zusammenhang steht.
  10. Verfahren zum Durchführen einer Sicherheitsanalyse an einem im Test befindlichen Computerprogramm (CPUT), wobei das Verfahren aufweist: Durchführen einer statischen Analyse des CPUT über einen Prozessor, um Daten zu identifizieren, die für potenzielle Sicherheitslücken des CPUT relevant sind; automatisches Synthetisieren zumindest eines ersten Einheitentests, der dazu eingerichtet ist, eine bestimmte Einheit eines Programmcodes innerhalb des CPUT zu testen, wobei der erste Einheitentest dazu eingerichtet ist, zumindest einen Parameter zu initialisieren, der durch die bestimmte Einheit des Programmcodes innerhalb des CPUT verwendet wird; Bereitstellen zumindest einer ersten Testnutzdatenmenge für den ersten Einheitentest, die dazu eingerichtet ist, zumindest eine potenzielle Sicherheitslücke des CPUT auszunutzen; dynamisches Verarbeiten des ersten Einheitentests, um die erste Testnutzdatenmenge an die bestimmte Einheit des Programmcodes innerhalb des CPUT über eine Hypertext-Transfer-Protocol(HTTP)-Anforderung zu übertragen; Ermitteln, ob die erste Testnutzdatenmenge eine tatsächliche Sicherheitslücke des CPUT ausnutzt; und Ausgeben eines Sicherheitsanalyseberichts, der angibt, ob die erste Testnutzdatenmenge eine tatsächliche Sicherheitslücke des CPUT ausnutzt.
  11. Computerprogrammprodukt zum Durchführen einer Sicherheitsanalyse an einem im Test befindlichen Computerprogramm (CPUT), wobei das Computerprogrammprodukt aufweist: ein computerlesbares Speichermedium, das einen computerlesbaren Programmcode aufweist, der darin verkörpert ist, wobei der computerlesbare Programmcode aufweist: computerlesbaren Programmcode, der dazu eingerichtet ist, das CPUT zu analysieren, um Daten zu identifizieren, die für potenzielle Sicherheitslücken des CPUT relevant sind; computerlesbaren Programmcode, der dazu eingerichtet ist, zumindest einen ersten Einheitentest automatisch zu synthetisieren, der dazu eingerichtet ist, eine bestimmte Einheit eines Programmcodes innerhalb des CPUT zu testen, wobei der erste Einheitentest dazu eingerichtet ist, zumindest einen Parameter zu initialisieren, der durch die bestimmte Einheit des Programmcodes innerhalb des CPUT verwendet wird; computerlesbaren Programmcode, der dazu eingerichtet ist, zumindest eine erste Testnutzdatenmenge für den ersten Einheitentest bereitzustellen, die dazu eingerichtet ist, zumindest eine potenzielle Sicherheitslücke des CPUT auszunutzen; computerlesbaren Programmcode, der dazu eingerichtet ist, den ersten Einheitentest dynamisch zu verarbeiten, um die erste Testnutzdatenmenge an die bestimmte Einheit des Programmcodes innerhalb des CPUT zu übertragen; computerlesbaren Programmcode, der dazu eingerichtet ist zu ermitteln, ob die erste Testnutzdatenmenge eine tatsächliche Sicherheitslücke des CPUT ausnutzt; und computerlesbaren Programmcode, der dazu eingerichtet ist, einen Sicherheitsanalysebericht auszugeben, der angibt, ob die erste Testnutzdatenmenge eine tatsächliche Sicherheitslücke des CPUT ausnutzt.
  12. Computerprogrammprodukt nach Anspruch 11, wobei der computerlesbare Programmcode, der dazu eingerichtet ist zu ermitteln, ob die erste Testnutzdatenmenge eine tatsächliche Sicherheitslücke des CPUT ausnutzt, aufweist: computerlesbaren Programmcode, der dazu eingerichtet ist, Prozesse zu analysieren, die durch das CPUT ausgeführt werden, während das CPUT die erste Testnutzdatenmenge verarbeitet.
  13. Computerprogrammprodukt nach Anspruch 11, wobei der computerlesbare Programmcode, der dazu eingerichtet ist, den ersten Einheitentest dynamisch zu verarbeiten, um die erste Testnutzdatenmenge an das CPUT zu übertragen, aufweist: computerlesbaren Programmcode, der dazu eingerichtet ist, eine künstliche Hypertext-Transfer-Protocol(HTTP)-Anforderung an das CPUT zu übertragen, die die erste Testnutzdatenmenge aufweist.
  14. Computerprogrammprodukt nach Anspruch 13, wobei der computerlesbare Programmcode des Weiteren aufweist: computerlesbaren Programmcode, der dazu eingerichtet ist, eine HTTP-Antwort auf die künstliche HTTP-Anforderung von dem CPUT zu empfangen; wobei der computerlesbare Programmcode, der dazu eingerichtet ist zu ermitteln, ob die erste Testnutzdatenmenge eine tatsächliche Sicherheitslücke des CPUT ausnutzt, computerlesbaren Programmcode aufweist, der dazu eingerichtet ist, die HTTP-Antwort zu analysieren.
  15. Computerprogrammprodukt nach Anspruch 13, wobei der computerlesbare Programmcode des Weiteren aufweist: computerlesbaren Programmcode, der dazu eingerichtet ist, eine HTTP-Antwort auf die künstliche HTTP-Anforderung von dem CPUT zu empfangen; computerlesbaren Programmcode, der dazu eingerichtet ist, die HTTP-Antwort zu analysieren, um zusätzliche Daten zu identifizieren, die für potenzielle Sicherheitslücken des CPUT relevant sind; computerlesbaren Programmcode, der dazu eingerichtet ist, zumindest einen zweiten Einheitentest automatisch zu synthetisieren, wobei der zweite Einheitentest zumindest eine zweite Testnutzdatenmenge aufweist, die dazu eingerichtet ist, das CPUT auf zumindest eine potenzielle Sicherheitslücke des CPUT zu testen; und computerlesbaren Programmcode, der dazu eingerichtet ist, den zweiten Einheitentest dynamisch zu verarbeiten, um die zweite Testnutzdatenmenge an das CPUT zu übertragen.
  16. Computerprogrammprodukt nach Anspruch 13, wobei das Übertragen der künstlichen HTTP-Anforderung an das CPUT aufweist: automatisches Erzeugen einer künstlichen HTTP-Anforderung, die die erste Testnutzdatenmenge aufweist, durch den ersten Einheitentest; und automatisches Übertragen der künstlichen HTTP-Anforderung an das CPUT durch den ersten Einheitentest.
  17. Computerprogrammprodukt nach Anspruch 11, wobei der computerlesbare Programmcode, der dazu eingerichtet ist, zumindest den ersten Einheitentest automatisch zu synthetisieren, aufweist: computerlesbaren Programmcode, der dazu eingerichtet ist, die Daten zu verarbeiten, die für potenzielle Sicherheitslücken des CPUT relevant sind, um den ersten Einheitentest zu synthetisieren.
  18. Computerprogrammprodukt nach Anspruch 11, wobei der computerlesbare Programmcode, der dazu eingerichtet ist, das CPUT zu analysieren, um Daten zu identifizieren, die für potenzielle Sicherheitslücken des CPUT relevant sind, aufweist: computerlesbaren Programmcode, der dazu eingerichtet ist, eine statische Analyse des CPUT durchzuführen.
  19. Computerprogrammprodukt nach Anspruch 18, wobei der computerlesbare Programmcode, der dazu eingerichtet ist, die statische Analyse des CPUT durchzuführen, aufweist: computerlesbaren Programmcode, der dazu eingerichtet ist, Programmcode des CPUT zu analysieren, der mit dem Empfangen von Hypertext-Transfer-Protocol(HTTP)-Anforderungen in Zusammenhang steht; und computerlesbaren Programmcode, der dazu eingerichtet ist, Programmcode des CPUT zu analysieren, der mit dem Verarbeiten der Hypertext-Transfer-Protocol(HTTP)-Anforderungen in Zusammenhang steht.
  20. Computerprogrammprodukt zum Durchführen einer Sicherheitsanalyse an einem im Test befindlichen Computerprogramm (CPUT), wobei das Computerprogrammprodukt aufweist: ein computerlesbares Speichermedium, das einen computerlesbaren Programmcode aufweist, der darin verkörpert ist, wobei der computerlesbare Programmcode aufweist: computerlesbaren Programmcode, der dazu eingerichtet ist, eine statische Analyse des CPUT durchzuführen, um Daten zu identifizieren, die für potenzielle Sicherheitslücken des CPUT relevant sind; computerlesbaren Programmcode, der dazu eingerichtet ist, zumindest einen ersten Einheitentest automatisch zu synthetisieren, der dazu eingerichtet ist, eine bestimmte Einheit eines Programmcodes innerhalb des CPUT zu testen, wobei der erste Einheitentest dazu eingerichtet ist, zumindest einen Parameter zu initialisieren, der durch die bestimmte Einheit des Programmcodes innerhalb des CPUT verwendet wird; computerlesbaren Programmcode, der dazu eingerichtet ist, zumindest eine erste Testnutzdatenmenge für den ersten Einheitentest bereitzustellen, die dazu eingerichtet ist, zumindest eine potenzielle Sicherheitslücke des CPUT auszunutzen; computerlesbaren Programmcode, der dazu eingerichtet ist, den ersten Einheitentest dynamisch zu verarbeiten, um die erste Testnutzdatenmenge an die bestimmte Einheit des Programmcodes innerhalb des CPUT über eine Hypertext-Transfer-Protocol(HTTP)-Anforderung zu übertragen; computerlesbaren Programmcode, der dazu eingerichtet ist zu ermitteln, ob die erste Testnutzdatenmenge eine tatsächliche Sicherheitslücke des CPUT ausnutzt; und computerlesbaren Programmcode, der dazu eingerichtet ist, einen Sicherheitsanalysebericht auszugeben, der angibt, ob die erste Testnutzdatenmenge eine tatsächliche Sicherheitslücke des CPUT ausnutzt.
  21. System, das aufweist: einen Prozessor, der dazu eingerichtet ist, ausführbare Vorgänge zu initiieren, die aufweisen: Analysieren des CPUT, um Daten zu identifizieren, die für potenzielle Sicherheitslücken des CPUT relevant sind; automatisches Synthetisieren zumindest eines ersten Einheitentests, der dazu eingerichtet ist, eine bestimmte Einheit eines Programmcodes innerhalb des CPUT zu testen, wobei der erste Einheitentest dazu eingerichtet ist, zumindest einen Parameter zu initialisieren, der durch die bestimmte Einheit des Programmcodes innerhalb des CPUT verwendet wird; Bereitstellen zumindest einer ersten Testnutzdatenmenge für den ersten Einheitentest, die dazu eingerichtet ist, zumindest eine potenzielle Sicherheitslücke des CPUT auszunutzen; dynamisches Verarbeiten des ersten Einheitentests, um die erste Testnutzdatenmenge an die bestimmte Einheit des Programmcodes innerhalb des CPUT zu übertragen; Ermitteln, ob die erste Testnutzdatenmenge eine tatsächliche Sicherheitslücke des CPUT ausnutzt; und Ausgeben eines Sicherheitsanalyseberichts, der angibt, ob die erste Testnutzdatenmenge eine tatsächliche Sicherheitslücke des CPUT ausnutzt.
  22. System nach Anspruch 21, wobei das Ermitteln, ob die erste Testnutzdatenmenge eine tatsächliche Sicherheitslücke des CPUT ausnutzt, aufweist: Analysieren von Prozessen, die durch das CPUT ausgeführt werden, während das CPUT die erste Testnutzdatenmenge verarbeitet.
  23. System nach Anspruch 21, wobei das dynamische Verarbeiten des ersten Einheitentests, um die erste Testnutzdatenmenge an das CPUT zu übertragen, aufweist: Übertragen einer künstlichen Hypertext-Transfer-Protocol(HTTP)-Anforderung an das CPUT, die die erste Testnutzdatenmenge aufweist.
  24. System nach Anspruch 23, wobei der Prozessor des Weiteren dazu eingerichtet ist, ausführbare Vorgänge zu initiieren, die aufweisen: Empfangen einer HTTP-Antwort auf die künstliche HTTP-Anforderung von dem CPUT; wobei das Ermitteln, ob die erste Testnutzdatenmenge eine tatsächliche Sicherheitslücke des CPUT ausnutzt, ein Analysieren der HTTP-Antwort aufweist.
  25. System nach Anspruch 23, wobei der Prozessor des Weiteren dazu eingerichtet ist, ausführbare Vorgänge zu initiieren, die aufweisen: Empfangen einer HTTP-Antwort auf die künstliche HTTP-Anforderung von dem CPUT; Analysieren der HTTP-Antwort, um zusätzliche Daten zu identifizieren, die für potenzielle Sicherheitslücken des CPUT relevant sind; automatisches Synthetisieren zumindest eines zweiten Einheitentests, wobei der zweite Einheitentest zumindest eine zweite Testnutzdatenmenge aufweist, die dazu eingerichtet ist, das CPUT auf zumindest eine potenzielle Sicherheitslücke des CPUT zu testen; und dynamisches Verarbeiten des zweiten Einheitentests, um die zweite Testnutzdatenmenge an das CPUT zu übertragen.
DE112013000485.2T 2012-02-07 2013-01-17 Automatische Synthese von Einheitentests für Sicherheitstests Pending DE112013000485T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/367,633 2012-02-07
US13/367,633 US8856935B2 (en) 2012-02-07 2012-02-07 Automatic synthesis of unit tests for security testing
PCT/IB2013/050432 WO2013118006A1 (en) 2012-02-07 2013-01-17 Automatic synthesis of unit tests for security testing

Publications (1)

Publication Number Publication Date
DE112013000485T5 true DE112013000485T5 (de) 2014-11-27

Family

ID=48904092

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013000485.2T Pending DE112013000485T5 (de) 2012-02-07 2013-01-17 Automatische Synthese von Einheitentests für Sicherheitstests

Country Status (5)

Country Link
US (3) US8856935B2 (de)
CN (1) CN104115117B (de)
DE (1) DE112013000485T5 (de)
GB (1) GB2512258A (de)
WO (1) WO2013118006A1 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856935B2 (en) 2012-02-07 2014-10-07 International Business Machines Corporation Automatic synthesis of unit tests for security testing
US9141807B2 (en) * 2012-09-28 2015-09-22 Synopsys, Inc. Security remediation
US8966636B2 (en) * 2012-10-16 2015-02-24 International Business Machines Corporation Transforming unit tests for security testing
US10521288B2 (en) * 2012-11-07 2019-12-31 International Business Machines Corporation Collaborative application testing
US11057416B2 (en) * 2013-12-19 2021-07-06 Micro Focus Llc Analyze code that uses web framework using local parameter model
US9824222B1 (en) * 2014-05-06 2017-11-21 Synack, Inc. Method of distributed discovery of vulnerabilities in applications
US10657262B1 (en) * 2014-09-28 2020-05-19 Red Balloon Security, Inc. Method and apparatus for securing embedded device firmware
US10678926B2 (en) * 2017-01-09 2020-06-09 International Business Machines Corporation Identifying security risks in code using security metric comparison
EP3376442A1 (de) 2017-03-16 2018-09-19 Siemens Aktiengesellschaft Vorrichtung und verfahren für wiederverwendbare funktionale fehlerprüfung für ein spezifisches technisches system
US10846410B2 (en) * 2017-12-21 2020-11-24 Microsoft Technology Licensing, Llc Automated fuzzing based on analysis of application execution flow
US10872157B2 (en) * 2017-12-22 2020-12-22 Royal Bank Of Canada Reinforcement-based system and method for detecting system vulnerabilities
CN108256335B (zh) * 2018-02-08 2019-06-18 北京百度网讯科技有限公司 用于检测漏洞的方法和装置
CN109508548B (zh) * 2018-11-19 2022-06-03 四川长虹电器股份有限公司 一种基于仿真器技术的威胁行为搜集系统及方法
CN113111005A (zh) * 2021-05-06 2021-07-13 腾讯科技(深圳)有限公司 应用程序测试方法和装置
US20230351022A1 (en) * 2022-05-02 2023-11-02 Cisco Technology, Inc. Systems and Methods for Merging Performance and Security into a Unit Testing Environment
CN118631586A (zh) * 2024-08-06 2024-09-10 中国人民解放军国防科技大学 一种基于载荷自动生成的域名系统安全测试方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7543056B2 (en) * 2002-01-15 2009-06-02 Mcafee, Inc. System and method for network vulnerability detection and reporting
US7039898B2 (en) 2002-07-12 2006-05-02 Netspective Communications, Llc Computer system for performing reusable software application development from a set of declarative executable specifications
US20050273860A1 (en) 2004-06-04 2005-12-08 Brian Chess Apparatus and method for developing, testing and monitoring secure software
WO2006051013A2 (de) 2004-11-15 2006-05-18 Siemens Aktiengesellschaft Verfahren zur handhabung von software-tests
US8281401B2 (en) * 2005-01-25 2012-10-02 Whitehat Security, Inc. System for detecting vulnerabilities in web applications using client-side application interfaces
US7877780B2 (en) 2005-04-01 2011-01-25 Parasoft Corporation System and method for enforcing functionality in computer software through policies
US7849448B2 (en) * 2005-06-01 2010-12-07 Crosscheck Networks Technique for determining web services vulnerabilities and compliance
WO2008047351A2 (en) 2006-10-19 2008-04-24 Checkmarx Ltd. Locating security vulnerabilities in source code
US20080115114A1 (en) 2006-11-10 2008-05-15 Sashank Palaparthi Automated software unit testing
US8499353B2 (en) * 2007-02-16 2013-07-30 Veracode, Inc. Assessment and analysis of software security flaws
US8484738B2 (en) * 2007-03-06 2013-07-09 Core Sdi Incorporated System and method for providing application penetration testing
US8099787B2 (en) * 2007-08-15 2012-01-17 Bank Of America Corporation Knowledge-based and collaborative system for security assessment of web applications
KR100916329B1 (ko) * 2007-11-01 2009-09-11 한국전자통신연구원 소프트웨어 취약점 점검 장치 및 방법
US9264443B2 (en) * 2008-08-25 2016-02-16 International Business Machines Corporation Browser based method of assessing web application vulnerability
CN101482846A (zh) * 2008-12-25 2009-07-15 上海交通大学 基于可执行代码逆向分析的漏洞挖掘方法
US8516449B2 (en) * 2009-07-14 2013-08-20 International Business Machines Corporation Detecting and localizing security vulnerabilities in client-server application
US8468605B2 (en) 2009-11-30 2013-06-18 International Business Machines Corporation Identifying security vulnerability in computer software
US9507940B2 (en) * 2010-08-10 2016-11-29 Salesforce.Com, Inc. Adapting a security tool for performing security analysis on a software application
CN102136047A (zh) 2011-02-25 2011-07-27 天津大学 一种基于形式化及统一软件模型的软件可信工程方法
US8949992B2 (en) * 2011-05-31 2015-02-03 International Business Machines Corporation Detecting persistent vulnerabilities in web applications
US8695027B2 (en) * 2011-06-30 2014-04-08 Mcafee, Inc. System and method for application security assessment
US9471787B2 (en) * 2011-08-25 2016-10-18 International Business Machines Corporation Detecting stored cross-site scripting vulnerabilities in web applications
US9118713B2 (en) * 2011-09-26 2015-08-25 The Board Of Trustees Of The University Of Illinois System and a method for automatically detecting security vulnerabilities in client-server applications
US10701097B2 (en) * 2011-12-20 2020-06-30 Micro Focus Llc Application security testing
US8856935B2 (en) 2012-02-07 2014-10-07 International Business Machines Corporation Automatic synthesis of unit tests for security testing

Also Published As

Publication number Publication date
US20140298474A1 (en) 2014-10-02
CN104115117B (zh) 2017-09-05
US9892258B2 (en) 2018-02-13
US8856935B2 (en) 2014-10-07
GB2512258A (en) 2014-09-24
WO2013118006A1 (en) 2013-08-15
US20130205399A1 (en) 2013-08-08
CN104115117A (zh) 2014-10-22
GB201412804D0 (en) 2014-09-03
US20130205398A1 (en) 2013-08-08
US8925094B2 (en) 2014-12-30

Similar Documents

Publication Publication Date Title
DE112013000485T5 (de) Automatische Synthese von Einheitentests für Sicherheitstests
DE112012002718B4 (de) Erkennen von Sicherheitsschwachstellen in Web-Anwendungen
DE112013000387B4 (de) Dynamisches Abtasten einer Webanwendung durch Verwendung von Webdatenverkehrs- Informationen
DE60017457T2 (de) Verfahren zur isolierung eines fehlers in fehlernachrichten
DE112012005016T5 (de) Zielgerichtete Sicherheitsprüfung
DE102012218704A1 (de) Erkennung von schwachstellen für dom-basiertes cross-site-scripting
DE112016003949T5 (de) Webbasierte programmierumgebung für eingebettete geräte
DE112012000279T5 (de) Ermitteln der Anfälligkeit von Computer-Software-Anwendungen gegenüber Rechteausweitungsangriffen
DE112013000656T5 (de) System und Verfahren zum Verringern der Speichernutzung durch optimales Platzieren von virtuellen Maschinen in einem virtualisierten Rechenzentrum
DE102012216841A1 (de) Verfahren und Vorrichtung zur Durchführung von Sicherheitstests hinsichtlich von Protokollimplementierungen
DE112012004776T5 (de) Erzeugen einer Produktionsserver-Lastaktivität für einen Testserver
EP3864547B1 (de) Verfahren zur detektion sicherheitsrelevanter datenflüsse
DE112012003670T5 (de) Fehlererkennung auf der Grundlage von Diagnoseprotokollen
DE102012209006A1 (de) Testen von Web-Anwendungen auf Sicherheitslücken beim Heraufladen von Dateien
DE112012004499T5 (de) Testen von Transaktionsanwendungen
DE112012004247T5 (de) Passives Überwachen virtueller Systeme unter Verwendung einer erweiterbaren Indexierung
DE112011103428T5 (de) Automatisierte Analyse zusammengesetzter Anwendungen
DE102012218699A1 (de) Passives überwachen virtueller systeme mittels agentenlosem offline-indexieren
DE112014002960T5 (de) Ableitung verallgemeinerter Testfälle
DE10309246A1 (de) Verfahren für das Event Management
DE102021124264A1 (de) Erzeugung von synthetischen Systemfehlern
DE102021130630A1 (de) Testen von software-anwendungskomponenten
DE112011100168T5 (de) Erfassen von Diagnosedaten in einer Datenverarbeitungsumgebung
DE102013114558A1 (de) Ausschneiden-bei-der Diagnose (CID) - Ein Verfahren zur Verbesserung des Durchsatzes des Vorgangs für Anhebung der Ausbeute
DE112020000434T5 (de) Disaggregierte verteilte messanalyse system unter verwendung von dynamic application builder

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R409 Internal rectification of the legal status completed
R409 Internal rectification of the legal status completed
R012 Request for examination validly filed

Effective date: 20140725

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0009440000

Ipc: G06F0015160000

R016 Response to examination communication
R084 Declaration of willingness to licence