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 PDFInfo
- 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
Links
- 230000003068 static effect Effects 0.000 claims abstract description 16
- 238000012360 testing method Methods 0.000 claims description 75
- 238000000034 method Methods 0.000 claims description 25
- 238000013479 data entry Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 22
- 230000003993 interaction Effects 0.000 claims description 16
- 238000013475 authorization Methods 0.000 claims description 10
- 230000001419 dependent effect Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 7
- 238000007796 conventional method Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 235000000332 black box Nutrition 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability 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 von1 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 von1 wird ein Befehlsklassifizierungsprogramm100 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 Befehlsklassifizierungsprogramm100 eingibt, woraufhin das Befehlsklassifizierungsprogramm100 die möglichen Positionen bevorzugt in einem Datenspeicher möglicher Positionen102 speichert. - Zusätzlich oder alternativ wird das Befehlsklassifizierungsprogramm
100 so konfiguriert, dass es eine Black-Box-Testeinheit104 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-Testeinheit104 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-Testeinheit104 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 Befehlsklassifizierungsprogramm100 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 Befehlsklassifizierungsprogramm100 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 Befehlsklassifizierungsprogramm100 als mögliche zugriffsbeschränkte Bereiche gekennzeichnet werden, die bevorzugt an möglichen Positionen102 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 Befehlsklassifizierungsprogramm100 als mögliche zugriffsbeschränkte Bereiche gekennzeichnet, die bevorzugt an möglichen Positionen102 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 Analyseprogramm106 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 Analyseprogramm106 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 Analyseprogramm106 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 Befehlsklassifizierungsprogramm100 für jede dieser Dateneingabe-Schnittstellen die Block-Box-Testeinheit104 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 Befehlsklassifizierungsprogramm100 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 Befehlsklassifizierungsprogramm100 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 Computer108 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 von1 erfasst oder erzeugt werden, können einem Benutzer gemäß herkömmlicher Techniken über eine computergesteuerte Ausgabeeinheit wie zum Beispiel einen durch den Computer108 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 von1 gemäß einer Ausführungsform der vorliegenden Erfindung handelt. Bei dem Verfahren von2 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 auf1 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 auf2 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 von2 können im Zusammenhang mit3 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 in3 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 Blockschaubild400 eine beispielhafte Hardware-Ausführung eines Datenverarbeitungssystems veranschaulicht, gemäß der eine oder mehrere Komponenten/Methoden der vorliegenden Erfindung (z. B. im Zusammenhang mit1 bis3 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 Speicher412 , E/A-Einheiten414 und einer Netzwerk-Schnittstelle416 , die über einen Computer-Bus418 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)
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
2011
- 2011-01-31 US US13/018,342 patent/US8914890B2/en not_active Expired - Fee Related
-
2012
- 2012-01-30 WO PCT/CA2012/050052 patent/WO2012103646A1/en active Application Filing
- 2012-01-30 CN CN201280006387.0A patent/CN103339635B/zh not_active Expired - Fee Related
- 2012-01-30 JP JP2013550717A patent/JP5852676B2/ja not_active Expired - Fee Related
- 2012-01-30 GB GB1310455.9A patent/GB2499353B/en not_active Expired - Fee Related
- 2012-01-30 DE DE112012000279T patent/DE112012000279T5/de not_active Ceased
- 2012-07-05 US US13/542,214 patent/US8910293B2/en not_active Expired - Fee Related
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 |