DE112012000279T5 - Ermitteln der Anfälligkeit von Computer-Software-Anwendungen gegenüber Rechteausweitungsangriffen - Google Patents

Ermitteln der Anfälligkeit von Computer-Software-Anwendungen gegenüber Rechteausweitungsangriffen Download PDF

Info

Publication number
DE112012000279T5
DE112012000279T5 DE112012000279T DE112012000279T DE112012000279T5 DE 112012000279 T5 DE112012000279 T5 DE 112012000279T5 DE 112012000279 T DE112012000279 T DE 112012000279T DE 112012000279 T DE112012000279 T DE 112012000279T DE 112012000279 T5 DE112012000279 T5 DE 112012000279T5
Authority
DE
Germany
Prior art keywords
computer software
software application
access
restricted
computer
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.)
Ceased
Application number
DE112012000279T
Other languages
English (en)
Inventor
Marco Pistoia
Ori Segal
Omer Tripp
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 DE112012000279T5 publication Critical patent/DE112012000279T5/de
Ceased 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
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

Ermitteln der Anfälligkeit von Computer-Software-Anwendungen gegenüber Rechteausweitungsangriffen, wobei zum Beispiel ein Befehlsklassifizierungsprogramm so konfiguriert wird, dass es zum Identifizieren eines möglichen zugriffsbeschränkten Bereichs der Befehle einer Computer-Software-Anwendung verwendet werden soll, und ein statisches Analyseprogramm so konfiguriert wird, dass es den möglichen zugriffsbeschränkten Bereich statisch analysiert, um zu ermitteln, ob eine bedingte Anweisung vorhanden ist, die einen Ausführungsablauf in den möglichen zugriffsbeschränkten Bereich steuert, dass es eine statische Analyse durchführt, um zu ermitteln, ob die bedingte Anweisung von einer Datenquelle innerhalb der Computer-Software-Anwendung abhängig ist, und dass es den möglichen zugriffsbeschränkten Bereich mangels entweder der bedingten Anweisung oder der Datenquelle als anfällig gegenüber Rechteausweitungsangriffen kennzeichnet.

Description

  • GEBIET DER ERFINDUNG
  • Die Erfindung bezieht sich auf die Sicherheit von Computer-Software und auf die Analyse im Allgemeinen.
  • HINTERGRUND DER ERFINDUNG
  • Ein Angriff durch Rechteausweitung (privilege escalation, PE) bezieht sich auf einen Typ eines Angriffs auf der Grundlage eines Computers, bei dem ein Angreifer versucht, unzureichende oder nicht vorhandene Steuerungsmechanismen auszunutzen, um Zugriff auf Ressourcen einer Computer-Software-Anwendung zu erlangen, die nur für den Zugriff durch gültige Benutzer mit privilegierten Rechten bestimmt sind oder die für den Zugriff durch gültige Benutzer bestimmt sind, die sogar über nichtprivilegierte Rechte verfügen, die jedoch für den Angreifer gesperrt sein sollen. Es wäre zweckmäßig, Computer-Software-Anwendungen während ihrer Entwicklung zu überprüfen, um zu ermitteln, ob sie anfällig gegenüber PE-Angriffen sind.
  • KURZDARSTELLUNG DER ERFINDUNG
  • In einem Aspekt der vorliegenden Erfindung wird ein Verfahren zum Ermitteln der Anfälligkeit von Computer-Software-Anwendungen gegenüber Rechteausweitungsangriffen bereitgestellt, wobei das Verfahren beinhaltet:
    Identifizieren eines möglichen zugriffsbeschränkten Bereichs von Befehlen einer Computer-Software-Anwendung; statisches Analysieren des möglichen zugriffsbeschränkten Bereichs, um zu ermitteln, ob eine bedingte Anweisung vorhanden ist, die den Ausführungsablauf in den möglichen zugriffsbeschränkten Bereich steuert; Durchführen einer statischen Analyse, um zu ermitteln, ob die bedingte Anweisung von einer Datenquelle innerhalb der Computer-Software-Anwendung abhängig ist; und Kennzeichnen des möglichen zugriffsbeschränkten Bereichs mangels entweder der bedingten Anweisung oder der Datenquelle als anfällig gegenüber Rechteausweitungsangriffen. Außerdem werden ein System und ein Computerprogrammprodukt bereitgestellt, die die Erfindung verkörpern.
  • KURZBESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN DER ZEICHNUNGEN
  • Die vorliegende Erfindung wird anhand der folgenden ausführlichen Beschreibung in Verbindung mit den beigefügten Zeichnungen besser verständlich und nachvollziehbar, für die gilt:
  • 1 ist eine konzeptionelle Darstellung eines Systems zum Ermitteln der Anfälligkeit von Computer-Software-Anwendungen gegenüber Rechteausweitungsangriffen gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 2 ist ein Ablaufplan einer beispielhaften Arbeitsweise des Systems von 1 gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 3 ist ein Beispiel für Befehle einer Computer-Software-Anwendung gemäß einer Ausführungsform der vorliegenden Erfindung; und
  • 4 ist ein Blockschaubild einer beispielhaften Hardware-Ausführung eines Datenverarbeitungssystems gemäß einer Ausführungsform der vorliegenden Erfindung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die vorliegende Erfindung wird nun im Zusammenhang mit einer oder mehreren Ausführungsformen beschrieben, wenngleich die Beschreibung zur Veranschaulichung der vorliegenden Erfindung insgesamt bestimmt und nicht so auszulegen ist, dass sie die vorliegende Erfindung auf die dargestellten Ausführungsformen beschränkt. Es ist ersichtlich, dass Fachleuten verschiedene Modifizierungen einfallen können, die, auch wenn sie nicht ausdrücklich hierin dargestellt werden, dennoch vom Wesensgehalt und Umfang der vorliegenden Erfindung umfasst sind.
  • 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 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 einem computerlesbaren Speichermedium kann es sich zum Beispiel um ein(e) elektronische(s), magnetische(s), optische(s), elektromagnetische(s), Infrarot- oder Halbleitersystem, -vorrichtung oder -einheit oder um eine beliebige geeignete Kombination aus Obigen handeln, ohne auf diese beschränkt zu sein. 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, eine Festplatte, 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 optische Datenspeichereinheit, eine Magnetdatenspeichereinheit oder eine beliebige geeignete Kombination der Obigen. Im Rahmen dieses Dokuments kann ein computerlesbares Speichermedium jedes physische 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 über Funk, Kabel, Lichtwellenleiterkabel, 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 Java, Smalltalk, C++ oder dergleichen und in herkömmlichen verfahrensorientierten 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-Dienstanbieters) 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 vorliegenden 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 Computerprogrammbefehle ausgeführt 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 oder einer sonstigen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zum Ausführen 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 (article of manufacture) erzeugen, der Befehle beinhaltet, die die/den Funktion/Vorgang ausführen, 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 computerausgeführten 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 auszuführen.
  • Es wird nun auf 1 Bezug genommen, bei der es sich um eine konzeptionelle Darstellung eines Systems zum Ermitteln der Anfälligkeit von Computer-Software-Anwendungen gegenüber Rechteausweitungsangriffen gemäß einer Ausführungsform der vorliegenden Erfindung handelt. In dem System von 1 wird ein Befehlsklassifizierungsprogramm 100 so konfiguriert, dass es zum Identifizieren von möglichen zugriffsbeschränkten Bereichen der Befehle einer Computer-Software-Anwendung gemäß vordefinierten Kriterien zum Identifizieren von Befehlen als zugriffsbeschränkte Befehle verwendet werden soll. Solche Kriterien können zum Beispiel Befehle beinhalten, die einen Zugriff auf das Dateisystem oder auf Datenbanken regeln. Dies kann manuell gemäß herkömmlichen Techniken geschehen, zum Beispiel indem der Benutzer den Quellcode der Computer-Software-Anwendung manuell durchsucht, um zugriffsbeschränkte Befehle zu identifizieren, und die Position der identifizierten Kandidaten über eine Dateneingabe-Schnittstelle in das Befehlsklassifizierungsprogramm 100 eingibt, woraufhin das Befehlsklassifizierungsprogramm 100 die möglichen Positionen bevorzugt in einem Datenspeicher möglicher Positionen 102 speichert.
  • Zusätzlich oder alternativ wird das Befehlsklassifizierungsprogramm 100 so konfiguriert, dass es eine Black-Box-Testeinheit 104 so steuert, dass sie Black-Box-Differenztests der Computer-Software-Anwendung durchführt, um mögliche zugriffsbeschränkte Bereiche der Anwendung mithilfe einer Black-Box-Test-Software wie zum Beispiel AppScan SETM zu identifizieren, die im Handel von International Business Machines CorporationTM, Armonk, NY, erhältlich ist. Bei diesem Ansatz simuliert die Black-Box-Testeinheit 104 Interaktionen mit der Anwendung als Benutzer, der berechtigt ist, auf beschränkte Bereiche der Anwendung zuzugreifen, beispielsweise wenn ein Benutzer als „Administrator” bei der Anwendung angemeldet ist. Die Black-Box-Testeinheit 104 simuliert außerdem Interaktionen mit der Anwendung als Benutzer, der nicht berechtigt ist, auf beschränkte Bereiche der Anwendung zuzugreifen, beispielsweise wenn ein Benutzer als normaler Benutzer bei der Anwendung angemeldet ist. Die Ergebnisse beider Black-Box-Tests werden anschließend durch das Befehlsklassifizierungsprogramm 100 verglichen, um diejenigen Dateneingabe-Schnittstellen zu identifizieren, die für den berechtigten Benutzer zugänglich gemacht worden waren, die jedoch nicht für den normalen Benutzer zugänglich gemacht worden waren. Mithilfe herkömmlicher Techniken setzt das Befehlsklassifizierungsprogramm 100 die identifizierten Dateneingabe-Schnittstellen mit den Befehlen des Anwendungsquellcodes oder des Byte-Codes, die den identifizierten Dateneingabe-Schnittstellen zugrunde liegen, in Beziehung, woraufhin solche in Beziehung gesetzten Befehle durch das Befehlsklassifizierungsprogramm 100 als mögliche zugriffsbeschränkte Bereiche gekennzeichnet werden, die bevorzugt an möglichen Positionen 102 gespeichert werden.
  • Zusätzlich oder alternativ wird das Befehlsklassifizierungsprogramm 100 so konfiguriert, dass es mögliche zugriffsbeschränkte Bereiche der Computer-Software-Anwendung durch statisches Analysieren der Anwendungsbefehle gemäß herkömmlichen Techniken mithilfe einer vordefinierten Spezifikation von sicherheitsrelevanten Operationen und/oder domänenspezifischem Wissen identifiziert, das sich auf solche Operationen bezieht. Beispielsweise kann eine Liste von Anwendungsprogrammierschnittstellen (application programming interfaces, APIs) in der Programmiersprache, in der die Anwendung geschrieben ist, bei denen die APIs bekanntermaßen den Zugriff auf das Dateisystem, Datenbanken und sonstige sensible Bereiche regeln, in der Annahme vordefiniert werden, dass nur Benutzer dazu in der Lage sind, die ausdrücklich die Berechtigung erhalten haben, auf diejenigen Teile der Anwendung zuzugreifen, die diese APIs verwenden. Bereiche der Anwendung, die auf diese APIs zugreifen, werden durch das Befehlsklassifizierungsprogramm 100 als mögliche zugriffsbeschränkte Bereiche gekennzeichnet, die bevorzugt an möglichen Positionen 102 gespeichert werden.
  • Ein statisches Analyseprogramm 106 wird so konfiguriert, dass es einen möglichen zugriffsbeschränkten Bereich statisch analysiert, um zu ermitteln, ob eine bedingte Anweisung vorhanden ist, die steuert, ob eine Ausführung in den möglichen zugriffsbeschränkten Bereich übergeht. Wenn keine solche bedingte Anweisung gefunden wird, kennzeichnet das statische Analyseprogramm 106 den möglichen zugriffsbeschränkten Bereich in der Annahme, dass ein Zugriff nicht ohne bedingte Berechtigungsprüfung beschränkt werden kann, als PE-anfällig. Wenn eine solche bedingte Anweisung gefunden wird, führt das statische Analyseprogramm 106 bevorzugt eine statische Analyse durch, um zu ermitteln, ob die bedingte Anweisung von einer Datenquelle innerhalb der Anwendung abhängig ist, in der eine Datenquelle als Anweisung definiert ist, die eine Benutzereingabe in die Anwendung einbringt, wie zum Beispiel einen ,getParameter'-Aufruf eines JavaTM-Servlet. Wenn die bedingte Anweisung nicht von einer Datenquelle abhängig ist, kennzeichnet das statische Analyseprogramm 106 den möglichen zugriffsbeschränkten Bereich in der Annahme, dass ohne Zugriff auf Benutzereingaben keine Berechtigungsprüfung des Benutzers hätte durchgeführt werden können, bevorzugt als PE-anfällig.
  • Wenn ein möglicher zugriffsbeschränkter Bereich identifiziert wird, für den eine bedingte Anweisung vorhanden ist, die a) steuert, ob die Ausführung in den möglichen zugriffsbeschränkten Bereich übergeht, und b) von einer Datenquelle abhängig ist, kann der durch die bedingte Anweisung durchgeführte Test analysiert werden, um zu ermitteln, ob es sich bei dem Test tatsächlich um einen gültigen Berechtigungsprüfungstest handelt. Beispielsweise kann das statische Analyseprogramm 106 eine statische Analyse durchführen, um festzustellen, welche Dateneingabe-Schnittstellen, die durch die Computer-Software-Anwendung zugänglich gemacht werden, zu dem Test führen. Anschließend kann das Befehlsklassifizierungsprogramm 100 für jede dieser Dateneingabe-Schnittstellen die Block-Box-Testeinheit 104 so steuern, dass sie zwei Anforderungen ausgibt, die auf die Dateneingabe-Schnittstelle abzielen, einmal in Form einer simulierten Interaktion durch einen Benutzer, der berechtigt ist, auf beschränkte Bereiche der Anwendung zuzugreifen, wie zum Beispiel wenn ein Benutzer bei der Anwendung als „Administrator” angemeldet ist, und einmal in Form einer simulierten Interaktion durch einen Benutzer, der nicht berechtigt ist, auf beschränkte Bereiche der Anwendung zuzugreifen, etwa wenn ein Benutzer bei der Anwendung als normaler Benutzer angemeldet ist. Wenn nur der erstgenannte Test erfolgreich verläuft, stellt das Befehlsklassifizierungsprogramm 100 bevorzugt fest, dass es sich bei dem Test um einen gültigen Berechtigungsprüfungstest handelt. Zusätzlich oder alternativ kann eine Beschreibung des Tests und/oder des möglichen zugriffsbeschränkten Bereichs und/oder der Datenquelle durch das Befehlsklassifizierungsprogramm 100 einem Benutzer angezeigt werden, der manuell entscheiden kann, ob es sich bei dem Test tatsächlich um einen gültigen Berechtigungsprüfungstest handelt.
  • Wenn mehrere bedingte Anweisungen gefunden werden, die mehrere Ausführungsabläufe in einen möglichen zugriffsbeschränkten Bereich darstellen, und insbesondere, wenn nicht alle bedingten Anweisungen denselben Test an denselben Quelldaten durchführen, kann diese Feststellung durch das Befehlsklassifizierungsprogramm 100 vermerkt werden, um sie später als Ausdruck schlechter Programmierungspraxis zu melden.
  • Beliebige der in 1 dargestellten Elemente werden bevorzugt durch einen Computer 108 ausgeführt oder diesem auf andere Weise zugänglich gemacht, beispielsweise durch Ausführen beliebiger der Elemente in Computer-Hardware und/oder in Computer-Software, die in einem physisch greifbaren, nichttransitorischen, computerlesbaren Medium gemäß herkömmlichen Techniken verkörpert sind. Daten, die durch ein beliebiges Element des Systems von 1 erfasst oder erzeugt werden, können einem Benutzer gemäß herkömmlicher Techniken über eine computergesteuerte Ausgabeeinheit wie zum Beispiel einen durch den Computer 108 gesteuerten Drucker oder Computerbildschirm angezeigt werden.
  • Es wird nun auf 2 Bezug genommen, bei der es sich um einen Ablaufplan einer beispielhaften Arbeitsweise des Systems von 1 gemäß einer Ausführungsform der vorliegenden Erfindung handelt. Bei dem Verfahren von 2 werden mögliche zugriffsbeschränkte Bereiche der Befehle einer Computer-Software-Anwendung gemäß vordefinierten Kriterien zum Identifizieren von Befehlen als zugriffsbeschränkte Befehle identifiziert (200). Wie hierin oben unter Bezugnahme auf 1 beschrieben, kann dies manuell, durch Durchführen von Black-Box-Differenztests der Anwendung und/oder durch statisches Analysieren der Anwendungsbefehle durchgeführt werden. Für jeden identifizierten möglichen zugriffsbeschränkten Bereich wird eine statische Analyse durchgeführt, um zu ermitteln, ob eine bedingte Anweisung vorhanden ist, die steuert, ob die Ausführung in den möglichen zugriffsbeschränkten Bereich übergeht (202). Wenn keine solche bedingte Anweisung gefunden wird (204), wird der mögliche zugriffsbeschränkte Bereich in der Annahme, dass der Zugriff nicht ohne bedingte Berechtigungsprüfung beschränkt werden kann, bevorzugt als PE-anfällig gekennzeichnet (206). Wenn eine solche bedingte Anweisung gefunden wird, wird eine statische Analyse durchgeführt, um zu ermitteln, ob die bedingte Anweisung von einer Datenquelle abhängig ist (208). Wenn die bedingte Anweisung nicht von einer Datenquelle abhängig ist (210), wird der mögliche zugriffsbeschränkte Bereich in der Annahme, dass ohne Zugriff auf Benutzereingaben keine Berechtigungsprüfung des Benutzers hätte durchgeführt werden können, bevorzugt als PE-anfällig gekennzeichnet (206). Wenn ein möglicher zugriffsbeschränkter Bereich identifiziert wird, für den eine bedingte Anweisung vorhanden ist, die a) steuert, ob die Ausführung in den möglichen zugriffsbeschränkten Bereich übergeht, und b) von einer Datenquelle abhängig ist, kann der durch die bedingte Anweisung durchgeführte Test analysiert werden, um zu ermitteln, ob es sich bei dem Test tatsächlich um einen gültigen Berechtigungsprüfungstest handelt (212). Wenn mehrere bedingte Anweisungen gefunden werden, die mehrere Ausführungsabläufe in einen möglichen zugriffsbeschränkten Bereich darstellen, und insbesondere, wenn nicht alle bedingten Anweisungen denselben Test an denselben Quelldaten durchführen, kann diese Feststellung vermerkt werden, um sie später als Ausdruck schlechter Programmierungspraxis zu melden (214). Daten, die, wie oben unter Bezugnahme auf 2 beschrieben, erfasst oder erzeugt werden, können einem Benutzer gemäß herkömmlicher Techniken über eine computergesteuerte Ausgabeeinheit wie zum Beispiel einen Drucker oder Computerbildschirm angezeigt werden.
  • Das System von 1 und das Verfahren von 2 können im Zusammenhang mit 3 veranschaulicht werden, die beispielhafte Befehle einer Computer-Software-Anwendung zum Löschen eines Benutzerdatensatzes aus einer Datenbank gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. Die in 3 dargestellten Befehle sind so konfiguriert, dass sie vor PE-Angriffen schützen, indem sie Tests einbeziehen, die überprüfen, ob der Benutzer, der die Operation auslöst, als „Admin” identifiziert wird und ob das angegebene Kennwort korrekt ist. Wenn diese Tests bei denselben Befehlen fehlen, ist die Benutzerentfernungsoperation weiterhin durch einen Test „geschützt”, der überprüft, ob die URL, die die Benutzerentfernungsoperation ausgelöst hat, mit „removeUser” endet. Dieser Test ist jedoch nicht geeignet, um zu ermitteln, ob der aktuelle Benutzer als „Admin” identifiziert wird, und folglich sind die Befehle anfällig gegenüber PE-Angriffen. Black-Box-Tests, wie sie hierin oben beschrieben worden sind, wären in der Lage, zwischen den beiden Fällen des vorhergehenden Beispiels zu unterscheiden. Wenn die „Admin”- und Kennworttests vorhanden sind, werden die Befehle zum Entfernen des Benutzerdatensatzes während der Black-Box-Tests nur aufgerufen, wenn der simulierte Benutzer als „Admin” angemeldet ist. Wenn die „Admin”- und Kennworttests nicht vorhanden sind, wird der Benutzerdatensatz während der Black-Box-Tests unabhängig davon entfernt, ob der simulierte Benutzer als „Admin” angemeldet ist, was darauf hindeuten würde, dass die Anwendung anfällig gegenüber PE-Angriffen ist.
  • Es wird nun auf 4 Bezug genommen, in der ein Blockschaubild 400 eine beispielhafte Hardware-Ausführung eines Datenverarbeitungssystems veranschaulicht, gemäß der eine oder mehrere Komponenten/Methoden der vorliegenden Erfindung (z. B. im Zusammenhang mit 1 bis 3 beschriebene Komponenten/Methoden) gemäß einer Ausführungsform der vorliegenden Erfindung ausgeführt werden können.
  • Wie dargestellt wurde, können die Techniken zum Steuern eines Zugriffs auf zumindest eine Ressource gemäß einem Prozessor 410, einem Speicher 412, E/A-Einheiten 414 und einer Netzwerk-Schnittstelle 416, die über einen Computer-Bus 418 oder eine alternative Verbindungsanordnung verbunden sind, ausgeführt werden.
  • Es ist zu beachten, dass der Begriff „Prozessor” so, wie er hierin verwendet wird, eine beliebige Verarbeitungseinheit beinhalten soll, wie zum Beispiel eine, die eine CPU (central processing unit, Zentralverarbeitungseinheit) und/oder eine sonstige Verarbeitungsschaltung beinhaltet. Es versteht sich außerdem, dass sich der Begriff „Prozessor” auf mehr als eine Verarbeitungseinheit beziehen kann und dass verschiedene einer Verarbeitungseinheit zugehörige Elemente auch von sonstigen Verarbeitungseinheiten genutzt werden können.
  • So, wie der Begriff „Speicher” hierin verwendet wird, soll er einen Speicher beinhalten, der einem Prozessor oder einer CPU zugehörig ist, wie zum Beispiel einen RAM, einen ROM, eine feste Speichereinheit (z. B. eine Festplatte), eine Wechselspeichereinheit (z. B. eine Diskette), einen Flash-Speicher usw. Ein solcher Speicher kann als computerlesbares Speichermedium betrachtet werden.
  • Darüber hinaus soll der Ausdruck „Eingabe-/Ausgabeeinheiten” oder „E/A-Einheiten” so, wie er hierin verwendet wird, zum Beispiel eine oder mehrere Eingabeeinheiten (z. B. Tastatur, Maus, Scanner usw.) zum Eingeben von Daten in die Verarbeitungseinheit und/oder eine oder mehrere Ausgabeeinheiten (z. B. Lautsprecher, Anzeige, Drucker usw.) zum Darstellen von Ergebnissen beinhalten, die der Verarbeitungseinheit zugehörig sind.
  • Die Ablaufpläne und Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und Arbeitsweise möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener 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 ausgeführt werden können.
  • Es ist ersichtlich, dass beliebige der oben beschriebenen Elemente als Computerprogrammprodukt ausgeführt werden können, das in einem computerlesbaren Medium verkörpert wird, wie zum Beispiel in Form von Computerprogrammbefehlen, die in magnetischen oder optischen Speichermedin gespeichert oder in Computer-Hardware eingebunden sind, und die durch einen (nicht dargestellten) Computer ausgeführt werden oder für diesen auf sonstige Weise zugänglich sein können.
  • Wenngleich die Verfahren und Vorrichtungen hierin unter Bezugnahme auf bestimmte Computer-Hardware oder -Software beschrieben worden sein mögen, ist doch ersichtlich, dass die hierin beschriebenen Verfahren und Vorrichtungen leicht mithilfe herkömmlicher Techniken in Computer-Hardware oder -Software ausgeführt werden können.
  • Wenngleich die vorliegende Erfindung unter Bezugnahme auf eine oder mehrere bestimmte Ausführungsformen beschrieben worden sein mag, ist die Beschreibung doch zur Veranschaulichung der vorliegenden Erfindung insgesamt bestimmt und nicht so auszulegen, dass sie die vorliegende Erfindung auf die dargestellten Ausführungsformen beschränkt. Es ist ersichtlich, dass Fachleuten verschiedene Modifizierungen einfallen können, die, auch wenn sie nicht ausdrücklich hierin dargestellt werden, dennoch vom Wesensgehalt und Umfang der vorliegenden Erfindung umfasst sind.

Claims (25)

  1. Verfahren zum Ermitteln einer Anfälligkeit von Computer-Software-Anwendungen gegenüber Rechteausweitungsangriffen, wobei das Verfahren aufweist: Identifizieren eines möglichen zugriffsbeschränkten Bereichs von Befehlen einer Computer-Software-Anwendung; statisches Analysieren des möglichen zugriffsbeschränkten Bereichs, um zu ermitteln, ob eine bedingte Anweisung vorhanden ist, die den Ausführungsablauf in den möglichen zugriffsbeschränkten Bereich steuert; Durchführen einer statischen Analyse, um zu ermitteln, ob die bedingte Anweisung von einer Datenquelle innerhalb der Computer-Software-Anwendung abhängig ist; und Kennzeichnen des möglichen zugriffsbeschränkten Bereichs mangels entweder der bedingten Anweisung oder der Datenquelle als anfällig gegenüber Rechteausweitungsangriffen.
  2. Verfahren nach Anspruch 1, wobei das Identifizieren des möglichen zugriffsbeschränkten Bereichs der Befehle der Computer-Software-Anwendung aufweist: Identifizieren des möglichen zugriffsbeschränkten Bereichs nach vordefinierten Kriterien zum Identifizieren beliebiger der Befehle als zugriffsbeschränkte Befehle.
  3. Verfahren nach Anspruch 1, wobei das Identifizieren des möglichen zugriffsbeschränkten Bereichs der Befehle der Computer-Software-Anwendung aufweist: Empfangen einer manuell eingegebenen Position des möglichen zugriffsbeschränkten Bereichs der Befehle innerhalb der Computer-Software-Anwendung.
  4. Verfahren nach Anspruch 1, wobei das Identifizieren des möglichen zugriffsbeschränkten Bereichs der Befehle der Computer-Software-Anwendung aufweist: Durchführen von Black-Box-Differenztests der Computer-Software-Anwendung, um den möglichen zugriffsbeschränkten Bereich zu identifizieren.
  5. Verfahren nach Anspruch 4, wobei das Durchführen der Black-Box-Differenztests der Computer-Software-Anwendung zum Identifizieren des möglichen zugriffsbeschränkten Bereichs aufweist: Steuern einer Black-Box-Testeinheit so, dass sie einen ersten Test durchführt, der Interaktionen mit der Computer-Software-Anwendung als Benutzer simuliert, der berechtigt ist, auf beschränkte Bereiche der Computer-Software-Anwendung zuzugreifen; Steuern der Black-Box-Testeinheit so, dass sie einen zweiten Test durchführt, der Interaktionen mit der Computer-Software-Anwendung als Benutzer simuliert, der nicht berechtigt ist, auf die beschränkten Bereiche der Computer-Software-Anwendung zuzugreifen; Vergleichen der Ergebnisse beider Tests, um jegliche Dateneingabe-Schnittstellen zu identifizieren, die für den berechtigten Benutzer zugänglich gemacht worden waren, die jedoch nicht für den nicht berechtigten Benutzer zugänglich gemacht worden waren; in Beziehung Setzen der identifizierten Dateneingabe-Schnittstellen mit den Befehlen der Computer-Software-Anwendung, die den identifizierten Dateneingabe-Schnittstellen zugrunde liegen; und Kennzeichnen der in Beziehung gesetzten Befehle als möglichen zugriffsbeschränkten Bereich.
  6. Verfahren nach Anspruch 1, wobei das Identifizieren des möglichen zugriffsbeschränkten Bereichs der Befehle der Computer-Software-Anwendung aufweist: statisches Analysieren der Anwendungsbefehle mithilfe einer vordefinierten Spezifikation von sicherheitsrelevanten Operationen.
  7. Verfahren nach Anspruch 1, wobei das Identifizieren des möglichen zugriffsbeschränkten Bereichs der Befehle der Computer-Software-Anwendung aufweist: statisches Analysieren der Anwendungsbefehle mithilfe einer vordefinierten Spezifikation von domänenspezifischem Wissen, das sich auf sicherheitsrelevante Operationen bezieht.
  8. Verfahren nach Anspruch 1, das des Weiteren aufweist: für jede Dateneingabe-Schnittstelle, die durch die Computer-Software-Anwendung zugänglich gemacht wird und die zu einem Berechtigungsprüfungstest führt, der durch die bedingte Anweisung durchgeführt wird, Durchführen eines ersten Tests, der eine Interaktion mit der Dateneingabe-Schnittstelle als Benutzer simuliert, der berechtigt ist, auf zugriffsbeschränkte Bereiche der Computer-Software-Anwendung zuzugreifen, Durchführen eines zweiten Tests, der eine Interaktion mit der Dateneingabe-Schnittstelle als Benutzer simuliert, der nicht berechtigt ist, auf zugriffsbeschränkte Bereiche der Computer-Software-Anwendung zuzugreifen, und wenn nur der erste Test erfolgreich verläuft, Feststellen, dass es sich bei dem Berechtigungsprüfungstest um einen gültigen Berechtigungsprüfungstest handelt.
  9. Verfahren nach Anspruch 1, das des Weiteren aufweist: Darstellen der Kennzeichnung des möglichen zugriffsbeschränkten Bereichs als anfällig gegenüber Rechteausweitungsangriffen über eine computergesteuerte Ausgabeeinheit.
  10. Computerprogrammprodukt zum Ermitteln einer Anfälligkeit von Computer-Software-Anwendungen gegenüber Rechteausweitungsangriffen, wobei das Computerprogrammprodukt aufweist: ein computerlesbares Speichermedium; und computerlesbaren Programmcode, der in dem computerlesbaren Speichermedium verkörpert wird, wobei der computerlesbare Programmcode konfiguriert ist zum: Identifizieren eines möglichen zugriffsbeschränkten Bereichs von Befehlen einer Computer-Software-Anwendung; statischen Analysieren des möglichen zugriffsbeschränkten Bereichs, um zu ermitteln, ob eine bedingte Anweisung vorhanden ist, die den Ausführungsablauf in den möglichen zugriffsbeschränkten Bereich steuert; Durchführen einer statischen Analyse, um zu ermitteln, ob die bedingte Anweisung von einer Datenquelle innerhalb der Computer-Software-Anwendung abhängig ist; und Kennzeichnen des möglichen zugriffsbeschränkten Bereichs mangels entweder der bedingten Anweisung oder der Datenquelle als anfällig gegenüber Rechteausweitungsangriffen.
  11. Computerprogrammprodukt nach Anspruch 10, wobei der computerlesbare Programmcode, der so konfiguriert ist, dass er den möglichen zugriffsbeschränkten Bereich der Befehle der Computer-Software-Anwendung identifiziert, des Weiteren konfiguriert ist zum: Identifizieren des möglichen zugriffsbeschränkten Bereichs nach vordefinierten Kriterien zum Identifizieren beliebiger der Befehle als zugriffsbeschränkte Befehle.
  12. Computerprogrammprodukt nach Anspruch 10, wobei der computerlesbare Programmcode, der so konfiguriert ist, dass er den möglichen zugriffsbeschränkten Bereich der Befehle der Computer-Software-Anwendung identifiziert, des Weiteren konfiguriert ist zum: Empfangen einer manuell eingegebenen Position des möglichen zugriffsbeschränkten Bereichs innerhalb der Computer-Software-Anwendung.
  13. Computerprogrammprodukt nach Anspruch 10, wobei der computerlesbare Programmcode, der so konfiguriert ist, dass er den möglichen zugriffsbeschränkten Bereich der Befehle der Computer-Software-Anwendung identifiziert, des Weiteren konfiguriert ist zum: Durchführen von Black-Box-Differenztests der Computer-Software-Anwendung, um den möglichen zugriffsbeschränkten Bereich zu identifizieren.
  14. Computerprogrammprodukt nach Anspruch 13, wobei der computerlesbare Programmcode, der so konfiguriert ist, dass er Black-Box-Differenztests der Computer-Software-Anwendung durchführt, um den möglichen zugriffsbeschränkten Bereich zu identifizieren, des Weiteren konfiguriert ist zum: Steuern einer Black-Box-Testeinheit so, dass sie einen ersten Test durchführt, der Interaktionen mit der Computer-Software-Anwendung als Benutzer simuliert, der berechtigt ist, auf beschränkte Bereiche der Computer-Software-Anwendung zuzugreifen, Steuern der Black-Box-Testeinheit so, dass sie einen zweiten Test durchführt, der Interaktionen mit der Computer-Software-Anwendung als Benutzer simuliert, der nicht berechtigt ist, auf die beschränkten Bereiche der Computer-Software-Anwendung zuzugreifen, Vergleichen der Ergebnisse beider Tests, um jegliche Dateneingabe-Schnittstellen zu identifizieren, die für den berechtigten Benutzer zugänglich gemacht worden waren, die jedoch nicht für den normalen Benutzer zugänglich gemacht worden waren, in Beziehung Setzen der identifizierten Dateneingabe-Schnittstellen mit den Befehlen der Computer-Software-Anwendung, die den identifizierten Dateneingabe-Schnittstellen zugrunde liegen, und Kennzeichnen der in Beziehung gesetzten Befehle als möglichen zugriffsbeschränkten Bereich.
  15. Computerprogrammprodukt nach Anspruch 10, wobei der computerlesbare Programmcode, der so konfiguriert ist, dass er den möglichen zugriffsbeschränkten Bereich der Befehle der Computer-Software-Anwendung identifiziert, des Weiteren konfiguriert ist zum: statischen Analysieren der Anwendungsbefehle mithilfe einer vordefinierten Spezifikation von sicherheitsrelevanten Operationen.
  16. Computerprogrammprodukt nach Anspruch 10, wobei der computerlesbare Programmcode, der so konfiguriert ist, dass er den möglichen zugriffsbeschränkten Bereich der Befehle der Computer-Software-Anwendung identifiziert, des Weiteren aufweist: statisches Analysieren der Anwendungsbefehle mithilfe einer vordefinierten Spezifikation von domänenspezifischem Wissen, das sich auf sicherheitsrelevante Operationen bezieht.
  17. Computerprogrammprodukt nach Anspruch 10, wobei der computerlesbare Programmcode des Weiteren konfiguriert ist: für jede Dateneingabe-Schnittstelle, die durch die Computer-Software-Anwendung zugänglich gemacht wird und die zu einem Berechtigungsprüfungstest führt, der durch die bedingte Anweisung durchgeführt wird, zum Durchführen eines ersten Tests, der eine Interaktion mit der Dateneingabe-Schnittstelle als Benutzer simuliert, der berechtigt ist, auf zugriffsbeschränkte Bereiche der Computer-Software-Anwendung zuzugreifen, Durchführen eines zweiten Tests, der eine Interaktion mit der Dateneingabe-Schnittstelle als Benutzer simuliert, der nicht berechtigt ist, auf zugriffsbeschränkte Bereiche der Computer-Software-Anwendung zuzugreifen, und wenn nur der erste Test erfolgreich verläuft, Feststellen, dass es sich bei dem Berechtigungsprüfungstest um einen gültigen Berechtigungsprüfungstest handelt.
  18. Computerprogrammprodukt nach Anspruch 10, wobei der computerlesbare Programmcode des Weiteren konfiguriert ist zum: Darstellen der Kennzeichnung des möglichen zugriffsbeschränkten Bereichs als anfällig gegenüber Rechteausweitungsangriffen über eine computergesteuerte Ausgabeeinheit.
  19. System zum Ermitteln der Anfälligkeit von Computer-Software-Anwendungen gegenüber Rechteausweitungsangriffen, wobei das System aufweist: einen Prozessor; und ein computerlesbares Speichermedium, das einen computerlesbaren Programmcode aufweist, der darin verkörpert wird, wobei der computerlesbare Programmcode konfiguriert ist zum: Identifizieren eines möglichen zugriffsbeschränkten Bereichs von Befehlen einer Computer-Software-Anwendung; statischen Analysieren des möglichen zugriffsbeschränkten Bereichs, um zu ermitteln, ob eine bedingte Anweisung vorhanden ist, die den Ausführungsablauf in den möglichen zugriffsbeschränkten Bereich steuert; Durchführen einer statischen Analyse, um zu ermitteln, ob die bedingte Anweisung von einer Datenquelle innerhalb der Computer-Software-Anwendung abhängig ist; und Kennzeichnen des möglichen zugriffsbeschränkten Bereichs mangels entweder der bedingten Anweisung oder der Datenquelle als anfällig gegenüber Rechteausweitungsangriffen.
  20. System nach Anspruch 19, wobei der computerlesbare Programmcode, der so konfiguriert ist, dass er den möglichen zugriffsbeschränkten Bereich der Befehle der Computer-Software-Anwendung identifiziert, des Weiteren konfiguriert ist zum: Identifizieren des möglichen zugriffsbeschränkten Bereichs nach vordefinierten Kriterien zum Identifizieren beliebiger der Befehle als zugriffsbeschränkte Befehle.
  21. System nach Anspruch 19, wobei der computerlesbare Programmcode, der so konfiguriert ist, dass er den möglichen zugriffsbeschränkten Bereich der Befehle der Computer-Software-Anwendung identifiziert, des Weiteren konfiguriert ist zum: Steuern einer Black-Box-Testeinheit zum Durchführen von Black-Box-Differenztests der Computer-Software-Anwendung, um den möglichen zugriffsbeschränkten Bereich zu identifizieren.
  22. System nach Anspruch 19, wobei der computerlesbare Programmcode, der so konfiguriert ist, dass er die Black-Box-Testeinheit so steuert, dass sie Black-Box-Differenztests der Computer-Software-Anwendung durchführt, um den möglichen zugriffsbeschränkten Bereich zu identifizieren, des Weiteren konfiguriert ist zum: Steuern der Black-Box-Testeinheit so, dass sie einen ersten Test durchführt, der Interaktionen mit der Computer-Software-Anwendung als Benutzer simuliert, der berechtigt ist, auf beschränkte Bereiche der Computer-Software-Anwendung zuzugreifen; Steuern der Black-Box-Testeinheit so, dass sie einen zweiten Test durchführt, der Interaktionen mit der Computer-Software-Anwendung als Benutzer simuliert, der nicht berechtigt ist, auf die beschränkten Bereiche der Computer-Software-Anwendung zuzugreifen; Vergleichen der Ergebnisse beider Tests, um jegliche Dateneingabe-Schnittstellen zu identifizieren, die für den berechtigten Benutzer zugänglich gemacht worden waren, die jedoch nicht für den normalen Benutzer zugänglich gemacht worden waren; in Beziehung Setzen der identifizierten Dateneingabe-Schnittstellen mit den Befehlen der Computer-Software-Anwendung, die den identifizierten Dateneingabe-Schnittstellen zugrunde liegen; und Kennzeichnen der in Beziehung gesetzten Befehle als mögliche zugriffsbeschränkte Bereiche.
  23. System nach Anspruch 19, wobei der computerlesbare Programmcode, der so konfiguriert ist, dass er den möglichen zugriffsbeschränkten Bereich der Befehle der Computer-Software-Anwendung identifiziert, des Weiteren konfiguriert ist zum: Identifizieren der möglichen zugriffsbeschränkten Bereiche der Computer-Software-Anwendung durch statisches Analysieren der Anwendungsbefehle mithilfe einer vordefinierten Spezifikation von sicherheitsrelevanten Operationen.
  24. System nach Anspruch 19, wobei der computerlesbare Programmcode, der so konfiguriert ist, dass er den möglichen zugriffsbeschränkten Bereich der Befehle der Computer-Software-Anwendung identifiziert, des Weiteren konfiguriert ist zum: Identifizieren möglicher zugriffsbeschränkter Bereiche der Computer-Software-Anwendung durch statisches Analysieren der Anwendungsbefehle mithilfe einer vordefinierten Spezifikation von domänenspezifischem Wissen, das sich auf sicherheitsrelevante Operationen bezieht.
  25. System nach Anspruch 19, das des Weiteren eine Black-Box-Testeinheit aufweist, wobei der computerlesbare Programmcode, der so konfiguriert ist, dass er den möglichen zugriffsbeschränkten Bereich der Befehle der Computer-Software-Anwendung identifiziert, des Weiteren konfiguriert ist: für jede Dateneingabe-Schnittstelle, die durch die Computer-Software-Anwendung zugänglich gemacht wird und die zu einem Berechtigungsprüfungstest führt, der durch die bedingte Anweisung durchgeführt wird, zum Steuern der Black-Box-Testeinheit so, dass sie einen ersten Test durchführt, der eine Interaktion mit der Dateneingabe-Schnittstelle als Benutzer simuliert, der berechtigt ist, auf beschränkte Bereiche der Computer-Software-Anwendung zuzugreifen, Steuern der Black-Box-Testeinheit so, dass sie einen zweiten Test durchführt, der eine Interaktion mit der Dateneingabe-Schnittstelle als Benutzer simuliert, der nicht berechtigt ist, auf zugriffsbeschränkte Bereiche der Computer-Software-Anwendung zuzugreifen, und wenn nur der erste Test erfolgreich verläuft, Feststellen, dass es sich bei dem Berechtigungsprüfungstest um einen gültigen Berechtigungsprüfungstest handelt.
DE112012000279T 2011-01-31 2012-01-30 Ermitteln der Anfälligkeit von Computer-Software-Anwendungen gegenüber Rechteausweitungsangriffen Ceased DE112012000279T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/018,342 2011-01-31
US13/018,342 US8914890B2 (en) 2011-01-31 2011-01-31 Determining the vulnerability of computer software applications to privilege-escalation attacks
PCT/CA2012/050052 WO2012103646A1 (en) 2011-01-31 2012-01-30 Determining the vulnerability of computer software applications to privilege-escalation attacks

Publications (1)

Publication Number Publication Date
DE112012000279T5 true DE112012000279T5 (de) 2013-10-10

Family

ID=46578550

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012000279T Ceased DE112012000279T5 (de) 2011-01-31 2012-01-30 Ermitteln der Anfälligkeit von Computer-Software-Anwendungen gegenüber Rechteausweitungsangriffen

Country Status (6)

Country Link
US (2) US8914890B2 (de)
JP (1) JP5852676B2 (de)
CN (1) CN103339635B (de)
DE (1) DE112012000279T5 (de)
GB (1) GB2499353B (de)
WO (1) WO2012103646A1 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0700687A1 (de) 1994-06-23 1996-03-13 Ralph A. Milliken T-Stück mit doppeltem Rückschlagventil und mit einem ein Gewinde aufweisenden, weiblichen Luerverbinder für Beatmungsgerät
US8893268B2 (en) * 2011-11-15 2014-11-18 Microsoft Corporation Permission re-delegation prevention
US9990500B2 (en) * 2012-07-25 2018-06-05 Entit Software Llc Determining application vulnerabilities
FI124560B (en) * 2012-09-14 2014-10-15 Codenomicon Oy Monitoring of the operation of the communication protocol procedure
US10521288B2 (en) * 2012-11-07 2019-12-31 International Business Machines Corporation Collaborative application testing
WO2014143029A1 (en) 2013-03-15 2014-09-18 Mcafee, Inc. Generic privilege escalation prevention
US20150007330A1 (en) * 2013-06-26 2015-01-01 Sap Ag Scoring security risks of web browser extensions
CN104751052A (zh) * 2013-12-30 2015-07-01 南京理工大学常熟研究院有限公司 基于svm算法的移动智能终端软件的动态行为分析方法
US10310962B2 (en) 2014-09-24 2019-06-04 Entit Software Llc Infrastructure rule generation
US10264008B2 (en) 2015-10-08 2019-04-16 Bank Of America Corporation Vulnerability exposing application characteristic variation identification engine
US10268824B2 (en) 2016-03-01 2019-04-23 Wipro Limited Method and system for identifying test cases for penetration testing of an application
US10505962B2 (en) * 2016-08-16 2019-12-10 Nec Corporation Blackbox program privilege flow analysis with inferred program behavior context
WO2018174990A1 (en) 2017-03-21 2018-09-27 Mcafee, Llc Automatic detection of software that performs unauthorized privilege escalation
EP3663959B1 (de) * 2018-12-06 2021-08-11 Mastercard International Incorporated Integrierte schaltung, verfahren und computerprogramm
US10965686B1 (en) * 2020-12-30 2021-03-30 Threatmodeler Software Inc. System and method of managing privilege escalation in cloud computing environments

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7096502B1 (en) * 2000-02-08 2006-08-22 Harris Corporation System and method for assessing the security posture of a network
US7975296B2 (en) * 2002-02-07 2011-07-05 Oracle International Corporation Automated security threat testing of web pages
US6952779B1 (en) * 2002-10-01 2005-10-04 Gideon Cohen System and method for risk detection and analysis in a computer network
AU2004232058B2 (en) * 2003-04-18 2010-05-27 International Business Machines Corporation Method and system for detecting vulnerabilities in source code
US7398516B2 (en) * 2003-04-18 2008-07-08 Ounce Labs, Inc. Method and system for detecting race condition vulnerabilities in source code
JP4789933B2 (ja) * 2004-06-04 2011-10-12 フォーティファイ ソフトウェア, エルエルシー セキュアーソフトウェアを開発し、テストし、監視するための装置および方法
US20050273859A1 (en) * 2004-06-04 2005-12-08 Brian Chess Apparatus and method for testing secure software
US7207065B2 (en) 2004-06-04 2007-04-17 Fortify Software, Inc. Apparatus and method for developing secure software
JPWO2006087780A1 (ja) * 2005-02-17 2008-07-03 富士通株式会社 脆弱性監査プログラム、脆弱性監査装置、脆弱性監査方法
US7779399B2 (en) 2005-05-16 2010-08-17 Armorize Technologies, Inc. System and method for securing web application code and verifying correctness of software
US8266700B2 (en) * 2005-05-16 2012-09-11 Hewlett-Packard Development Company, L. P. Secure web application development environment
US7900193B1 (en) * 2005-05-25 2011-03-01 Parasoft Corporation System and method for detecting defects in a computer program using data and control flow analysis
EP2092424B1 (de) 2006-10-19 2015-12-30 Checkmarx Ltd. Finden von sicherheitsanfälligkeiten in quellcode
US8266702B2 (en) * 2006-10-31 2012-09-11 Microsoft Corporation Analyzing access control configurations
JP4951416B2 (ja) * 2007-06-01 2012-06-13 株式会社 日立システムアンドサービス プログラム検証方法、プログラム検証装置
US20090327943A1 (en) 2008-06-26 2009-12-31 Microsoft Corporation Identifying application program threats through structural analysis

Also Published As

Publication number Publication date
JP5852676B2 (ja) 2016-02-03
GB2499353B (en) 2013-10-16
GB2499353A (en) 2013-08-14
WO2012103646A1 (en) 2012-08-09
US8914890B2 (en) 2014-12-16
US20120272322A1 (en) 2012-10-25
US8910293B2 (en) 2014-12-09
CN103339635B (zh) 2016-08-10
GB201310455D0 (en) 2013-07-24
CN103339635A (zh) 2013-10-02
US20120198557A1 (en) 2012-08-02
JP2014507718A (ja) 2014-03-27

Similar Documents

Publication Publication Date Title
DE112012000279T5 (de) Ermitteln der Anfälligkeit von Computer-Software-Anwendungen gegenüber Rechteausweitungsangriffen
DE112012002718B4 (de) Erkennen von Sicherheitsschwachstellen in Web-Anwendungen
DE202014011086U1 (de) System zur Bestimmung einer Vertrauenswürdigkeitskategorie von Anwendungen, die eine Schnittstellenüberlagerung durchführen
DE202011111121U1 (de) System zum Erfassen komplexer Schadsoftware
DE112017003335T5 (de) Maschinelles lernen in gegnerischen umgebungen
US10430594B2 (en) Extraction of policies from static permissions and access events for physical access control
DE112010003979T5 (de) System und Verfahren für das statische Erkennen und Kategorisieren von Informationsfluss-Herabstufungseinrichtungen
DE102012216841A1 (de) Verfahren und Vorrichtung zur Durchführung von Sicherheitstests hinsichtlich von Protokollimplementierungen
DE112013000485T5 (de) Automatische Synthese von Einheitentests für Sicherheitstests
DE112012005016T5 (de) Zielgerichtete Sicherheitsprüfung
DE112012003527T5 (de) Automatische Erkennung von Fehlern und Inkompatibilitätsproblemen in lnformationsfluss-Herabstufungseinrichtungen
DE102012218704A1 (de) Erkennung von schwachstellen für dom-basiertes cross-site-scripting
DE202014010889U1 (de) Vorrangige statische gehostete Webanwendungen
DE112010004526T5 (de) System, Verfahren und Vorrichtung für eine Gleichzeitige Festlegung und Durchsetzung von Richtlinien zur Zugriffskontrolle und Integrität
DE102012209006A1 (de) Testen von Web-Anwendungen auf Sicherheitslücken beim Heraufladen von Dateien
DE102012216597A1 (de) Wirksames Testen einer Berechtigungslogik von WEB-Komponenten, die eine Berechtigung auf der Grundlage von Ansprüchen einsetzen
DE202013102179U1 (de) System zu detektieren von durch eine virtuelle Maschine ausgeführtem Schadcode
DE112011101831T5 (de) Schutz vor websiteübergreifenden Scripting-Attacken
DE102016102945A1 (de) Code-Analyse zum Bereitstellen von Datenschutz in ETL-Systemen
DE102016204698A1 (de) Verbessern des Erkennens von Steganographie am Perimeter
DE112018004408B4 (de) Identifikation von angriffsströmen in einer mehrschichtigen netzwerktopologie
DE112017000937T5 (de) Persistente Datenflusserkennungen, die verteilte Anwendungen ermöglichen
DE112021001639T5 (de) Schutz von computeranlagen vor bösartigen angriffen
DE112021004808T5 (de) Erkennen von malware durch analyse verteilter telemetriedaten
DE112018004284T5 (de) Dynamisches neuzusammenstellen von patch-gruppen unter verwendung von stream-clustering

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R083 Amendment of/additions to inventor(s)
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final