DE102021204707A1 - Procedure for testing a facility - Google Patents

Procedure for testing a facility Download PDF

Info

Publication number
DE102021204707A1
DE102021204707A1 DE102021204707.6A DE102021204707A DE102021204707A1 DE 102021204707 A1 DE102021204707 A1 DE 102021204707A1 DE 102021204707 A DE102021204707 A DE 102021204707A DE 102021204707 A1 DE102021204707 A1 DE 102021204707A1
Authority
DE
Germany
Prior art keywords
test data
procedure
testing
until
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021204707.6A
Other languages
German (de)
Inventor
Daniel Lakatos
Istvan Farkas
Akos Csilling
Mera Abbassi
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102021204707.6A priority Critical patent/DE102021204707A1/en
Publication of DE102021204707A1 publication Critical patent/DE102021204707A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

Verfahren zum Testen einer Einrichtung (108), bei dem in die Einrichtung (108) Testdaten eingegeben werden und anschließend der Zustand der Einrichtung (108) überwacht wird, um mindestens eine Schwachstelle in der Einrichtung (108) zu erkennen, wobei bei der Auswahl der Testdaten Seitenkanal-Informationen (112) berücksichtigt werden.Method for testing a device (108), in which test data are entered into the device (108) and the state of the device (108) is then monitored in order to identify at least one weak point in the device (108), wherein when selecting the Test data side channel information (112) are taken into account.

Description

Die Erfindung betrifft ein Verfahren zum Testen einer insbesondere technischen Einrichtung, eine Anordnung zum Durchführen des Verfahrens sowie ein Computerprogramm und ein maschinenlesbares Speichermedium.The invention relates to a method for testing a device, in particular a technical one, an arrangement for carrying out the method, and a computer program and a machine-readable storage medium.

Stand der TechnikState of the art

Zum Testen von Software und von Produkten bzw. Einrichtungen, in denen Software eine wichtige Rolle spielt, sind unterschiedliche Verfahren bzw. Techniken bekannt. Eine verbreitete Technik zum automatisierten Testen von Software wird als Fuzzing Testing bzw. Fuzzing-Testen bezeichnet. Bei dieser Technik wird das zu testende Programm an einer oder mehreren Eingabeschnittstellen immer wieder mit Daten beschickt. Es handelt sich hierbei um fehlerhafte bzw. falsch gebildete, unerwartete oder zufällige Daten, um Schwachstellen in der Software zu finden. Die Ausgabe wird im Allgemeinen nicht überprüft bzw. verifiziert, lediglich der allgemeine Zustand des Ziels. Ein Einfrieren oder ein Absturz der Software wird als ein Hinweis auf das Vorliegen einer Schwachstelle betrachtet.Various methods and techniques are known for testing software and products or devices in which software plays an important role. A common technique for automated testing of software is referred to as fuzzing testing. With this technique, the program to be tested is repeatedly fed with data at one or more input interfaces. This is incorrect or incorrectly formed, unexpected or random data in order to find weaknesses in the software. The output is generally not checked or verified, only the general state of the target. A software freeze or crash is considered an indication of the presence of a vulnerability.

Dem liegt die Überlegung zugrunde, dass mit derartigen Daten Situationen im Betrieb der Software bzw. des Programms erzeugt werden, die mit anderen Testverfahren nicht erreicht werden können. So können Programme bei nicht plausiblen Daten ungewollt abstürzen. Auf diese Weise können Sicherheitslücken im Programm, die ansonsten verborgen bleiben, erkannt werden.This is based on the consideration that such data creates situations in the operation of the software or program that cannot be achieved with other test methods. This means that programs can crash unintentionally if the data is implausible. In this way, security gaps in the program that would otherwise remain hidden can be detected.

Bei einem sogenannten white box Ansatz stehen interne Informationen, wie bspw. der Quellcoce oder ein Testzugriff, typischerweise ein Diagnose- bzw. Testzugriff zur Fehlererkennung und Fehlerbeseitigung, zur Verfügung, während bei einem black box Ansatz keine internen Informationen bereitgestellt sind.In a so-called white box approach, internal information such as the source code or test access, typically diagnostic or test access for error detection and error elimination, is available, while no internal information is provided in a black box approach.

Es stehen verschiedene Werkzeuge für ein white box Quellcode-Fuzzing zur Verfügung, die ein Diagnoseprogramm bzw. einem Debugger verwenden, um eine Code-Ausführung während des Fuzzing-Prozesses zu überwachen. Eine Rückmeldung von dem Debugger wird verwendet, um die erzeugte Eingabe zu den unerschlossenen Kernbereichen zu führen, was die Codeabdeckung optimiert. Diese Techniken stehen jedoch ohne Zugriff auf den Quellcode nicht zur Verfügung.Various tools are available for white box source code fuzzing that use a debugger to monitor code execution during the fuzzing process. Feedback from the debugger is used to direct the generated input to the untapped core areas, optimizing code coverage. However, these techniques are not available without access to the source code.

Beim black box Fuzzing-Testen, bei dem der Quellcode nicht verfügbar ist, gibt es typischerweise keine Rückmeldung, um anzuzeigen, ob eine gegebene Eingabe tiefere Teile der Software ausführt oder diese zu einem frühen Zeitpunkt in der Verarbeitung verworfen wurde. Nur wenn ein Fehler erfasst wird, ist bekannt, dass ein Problem angestoßen bzw. ausgelöst wurde.In black box fuzzing testing, where the source code is not available, there is typically no feedback to indicate whether a given input executes deeper parts of the software or whether it was discarded early in processing. It is only when an error is detected that a problem is known to have been triggered.

Black box Tests werden eingesetzt, um Fehler hinsichtlich der Spezifikation zu erkennen. Um Fehler in bestimmten Komponenten oder gar in fehlerauslösenden Komponenten selbst zu erkennen, werden jedoch white box Tests eingesetzt.Black box tests are used to detect errors in the specification. However, white box tests are used to detect faults in certain components or even in fault-triggering components themselves.

Black box Tests sind im Vergleich zu white box Tests regelmäßig aufwändiger in der Durchführung, ermöglichen aber typischerweise eine bessere Verifikation des Gesamtsystems.Black box tests are regularly more complex to carry out than white box tests, but typically enable better verification of the overall system.

Der vornehmliche Nachteil des black box Fuzzing-Testens besteht darin, dass es ohne Zugriff auf den internen Zustand des Geräts bzw. der Software nicht möglich ist, die Abdeckung und den Fortgang des Testprozesses im Allgemeinen und im Besonderen eine konkrete Eingabe geeignet zu testen. Es ist nur eine binäre Rückgabe verfügbar, die lediglich bestimmt, ob die Zielanwendung abgestürzt ist oder nicht. Es werden keine zusätzlichen Informationen bereitgestellt.The main disadvantage of black box fuzzing testing is that without access to the internal state of the device or software, it is not possible to properly test the coverage and progress of the testing process in general and a concrete input in particular. Only binary return is available, which only determines whether the target application crashed or not. No additional information is provided.

Selbst wenn diese Daten nach der Ausführung des Testfalls verfügbar sind, ist diese Rückgabe nicht ausreichend, um die Wirksamkeit einer Eingabe zu erkennen und geeignete Modifikationen während des Tests an dieser vorzunehmen. Daher wird bei diesem Ansatz die Eingabe zufällig manipuliert, ohne irgendeine Intelligenz und ohne irgendeine Rückmeldung zu dem Fortgang des Testens bezüglich der Teile der getesteten Anwendung.Even if this data is available after running the test case, this return is not sufficient to recognize the effectiveness of an input and to make appropriate modifications to it during the test. Therefore, in this approach, the input is manipulated randomly, without any intelligence and without any feedback on the testing progress on the parts of the tested application.

White box basierte Softwareansätze überwachen den internen Zustand der Zielanwendung während des Tests und sammeln nützliche Daten, wie bspw. eine Codeabdeckung, um die Testfälle zu evaluieren. Diese Information wird dann berücksichtigt, wenn zusätzliche Eingaben erzeugt werden, so dass ein umfangreicherer Code abgedeckt wird oder spezifische Funktionen öfter getroffen werden. Der Nachteil dieses Ansatzes besteht darin, dass die Software in einer sterilen, simulierten Umgebung und nicht auf der tatsächlichen Hardwareumgebung ausgeführt wird.White box based software approaches monitor the internal state of the target application during testing and collect useful data such as code coverage to evaluate the test cases. This information is then considered when additional inputs are generated, so that more extensive code is covered or specific functions are hit more often. The disadvantage of this approach is that the software runs in a sterile, simulated environment rather than on the actual hardware environment.

Wenn wenige Probleme erfasst werden, ist es nicht möglich, die Eingabeerzeugung für eine verbesserte Effizienz zu optimieren, da keine Rückmeldung von dem Fuzzing-Prozess vorliegt.If few problems are detected, it is not possible to optimize input generation for improved efficiency since there is no feedback from the fuzzing process.

Ein white box Fuzzing-Testen mit einem instrumentierten Quellcode oder einem Debugger kann verwendet werden, um die Eingabe hinsichtlich des ausgeführten Codes zu evaluieren, um eine Eingabe zu finden, die eine größere Codeabdeckung bereitstellt. Ein instrumentierter Quellcode ist ein Quellcode, dem zusätzliche Befehle für Testzwecke hinzugefügt sind. Der Eingabe-Generator kann eine Eingabe bevorzugen, die mit einer höheren Wahrscheinlichkeit eine Schwachstelle aufdeckt, indem die Codeabdeckung erweitert wird oder komplexere Abläufe ausgelöst werden.White box fuzzing testing with instrumented source code or a debugger can be used to evaluate the input in terms of the executed code to find input that provides greater code coverage. An instrumented source code is a Source code with additional commands added for testing purposes. The input generator can favor an input that is more likely to uncover a vulnerability by extending code coverage or triggering more complex flows.

Offenbarung der ErfindungDisclosure of Invention

Vor diesem Hintergrund werden ein Verfahren mit den Merkmalen des Anspruchs 1, eine Anordnung gemäß Anspruch 10, ein Computerprogramm nach Anspruch 11 sowie ein maschinenlesbares Speichermedium gemäß Anspruch 12 vorgestellt. Ausführungsformen ergeben sich aus den abhängigen Ansprüchen und aus der Beschreibung.Against this background, a method having the features of claim 1, an arrangement according to claim 10, a computer program according to claim 11 and a machine-readable storage medium according to claim 12 are presented. Embodiments emerge from the dependent claims and from the description.

Das vorgestellte Verfahren dient zum Testen einer Einrichtung, insbesondere einer technischen Einrichtung. Diese Einrichtung kann sowohl Software als auch Hardware umfassen. In einer Ausgestaltung ist die Einrichtung durch eine Software gegeben. In diesem Fall dient das vorgestellte Verfahren zum Testen einer Software.The method presented is used to test a device, in particular a technical device. This facility may include both software and hardware. In one embodiment, the device is provided by software. In this case, the method presented is used to test software.

Es ist vorgesehen, dass in die Einrichtung Testdaten eingegeben werden und anschließend der Zustand der Einrichtung überwacht wird, um mindestens eine Schwachstelle bzw. ein Fehler in der Einrichtung zu erkennen, wobei bei der Auswahl der Testdaten Seitenkanal-Informationen berücksichtigt werden. Seitenkanal-Informationen sind Informationen, die bei einer sogenannten Seitenkanal-Attacke bzw. einem Seitenkanal-Angriff gewonnen werden. Damit sind insbesondere Informationen gemeint, die nicht direkt durch die Anwemdung an ihren Ausgängen, sondern indirekt durch den Betrieb der Einrichtung als ein Nebeneffekt gewonnen werden. Bspw. ist der Energieverbrauch oder die Reaktions- bzw. Antwortzeit der Einrichtung eine Seitenkanal-Information. Hierauf wird nachstehend noch eingegangen.It is provided that test data is entered into the device and the condition of the device is then monitored in order to detect at least one weak point or error in the device, with side channel information being taken into account when selecting the test data. Side channel information is information that is obtained in a so-called side channel attack or a side channel attack. This means in particular information that is not obtained directly through the application at its outputs, but indirectly through the operation of the device as a side effect. For example, the energy consumption or the reaction or response time of the device is side channel information. This is discussed further below.

In einer Ausführung wird die Einrichtung im Rahmen eines black box Fuzzing-Testens getestet. Mit black box Fuzzing-Testen wird eine Methode zum Testen einer Software bezeichnet, bei der Tests anhand der Spezfikation bzw. Anforderung entwickelt werden. Die Tests werden somit ohne Kentnisse über die innere Funktionsweise bzw. Implementierung des zu testenden Systems entwickelt. Black box Tests werden eingesetzt, um Fehler hinsichtlich der Spezifikation zu erkennen. Um Fehler in bestimmten Komponenten oder gar in fehlerauslösenden Komponenten selbst zu erkennen, werden bevorzugt white box Tests eingesetzt.In one embodiment, the device is tested using black box fuzzing testing. Black box fuzzing testing is a method for testing software, in which tests are developed based on the specification or requirement. The tests are thus developed without knowledge of the inner workings or implementation of the system to be tested. Black box tests are used to detect errors in the specification. White box tests are preferably used to detect errors in certain components or even in error-triggering components themselves.

Black box Tests sind im Vergleich zu white box Tests regelmäßig aufwändiger in der Durchführung, ermöglichen aber typischerweise eine bessere Verifikation des Gesamtsystems.Black box tests are regularly more complex to carry out than white box tests, but typically enable better verification of the overall system.

Im Bereich des black box Fuzzing-Testens, bei dem keine expliziten internen Informationen vorliegen, können Seitenkanal-Informationen als ein Hinweis der Menge an internen Verarbeitungen verwendet werden, die durch die Eingabe ausgelöst sind.In the realm of black box fuzzing testing, where there is no explicit internal information, side channel information can be used as an indication of the amount of internal processing induced by the input.

Unter Seitenkanal-Attacken (engl.: side-channel attack), die auch als Seitenkanal-Angriffe bezeichnet werden, sind kryptoanalytische Methoden zu verstehen, die die physische Implementierung eines Systems, bspw. eines Kryptosystems, in einem Gerät oder einer Software ausnutzen. Dabei wird typischerweise nicht das kryptographische Verfahren selbst, sondern nur eine bestimmte Implementierung angegriffen.Side-channel attacks, also known as side-channel attacks, are cryptanalytic methods that exploit the physical implementation of a system, e.g. a cryptosystem, in a device or software. Typically, it is not the cryptographic method itself that is attacked, but only a specific implementation.

Bei sogenannten Seitenkanal-Angriffen werden nicht funktionelle Informationen, wie bspw. ein Timing, ein Energieverbrauch oder eine elektromagnetische Strahlung, verwendet, um indirekte Informationen über die interne Verarbeitung zu erlangen. Bspw. wird bei sogenannten Timing-Angriffen die Antwortzeit verwendet, um eine gültige Eingabe zu identifizieren, typischerweise eine existierende Nutzerkennung auf einer Anmeldeseite, basierend auf der Reaktions- bzw. Antwortzeit. Eine ungültige Nutzerkennung kann ohne Überprüfung des Passworts schneller verworfen werden als eine existierende Nutzerkennung mit ungültigem Passwort, wobei die Überprüfung des Passworts zusätzliche Zeit in Anspruch nimmt.In so-called side-channel attacks, non-functional information such as timing, energy consumption or electromagnetic radiation is used to obtain indirect information about internal processing. For example, so-called timing attacks use the response time to identify a valid input, typically an existing user ID on a login page, based on the response time. An invalid user ID can be discarded faster without checking the password than an existing user ID with an invalid password, with the verification of the password taking additional time.

Das Prinzip einer Seitenkanal-Attacke beruht darauf, das angegriffene Gerät oder die angegriffene Software bei Ausführung von Vorgängen bzw. Algorithmen zu beobachten und Korrelationen zwischen den beobachteten Daten und einem verwendeten Schlüssel zu finden. Diese charakteristische Information betreffend die Korrelation kann durch die Analyse der Laufzeit des Algorithmus, des Energieverbrauchs oder der elektromagnetischen Strahlung gewonnen werden.The principle of a side-channel attack is based on observing the attacked device or the attacked software when executing processes or algorithms and finding correlations between the observed data and a key used. This characteristic information regarding the correlation can be obtained by analyzing the running time of the algorithm, the energy consumption or the electromagnetic radiation.

Es wird bspw. beim Fuzzing-Testen mit einer Eingabe, bei der eine Antwort erwartet wird, durch das Timing dieser Antwort oder den Energieverbrauch des Geräts eine indirekte Informationen zu der Menge an Verarbeitungen, die das Zielsystem ausführt, bereitgestellt.For example, in fuzz testing with an input where a response is expected, the timing of that response or the power consumption of the device provides indirect information about the amount of processing the target system is performing.

Das Maß bzw. die Menge an Verarbeitung(en) wiederum kann als ein Hinweis darauf verwendet werden, zu welchem Anteil der Quellcode bei der Verarbeitung beteiligt ist. Dieses Maß ist ein Hinweis darauf, wie nützlich die Eingabe bei der Erfassung von potenziellen Fehlern ist.The level or amount of processing(s), in turn, can be used as an indication of how much source code is involved in the processing. This measure is an indication of how useful the input is in capturing potential errors.

Bspw. würde eine Eingabe, die bei der Eingangsvalidierungsstufe verworfen wird, eine weitaus geringe Verarbeitung benötigen und ist entsprechend weniger nützlich bei dem Auffinden von Anfälligkeiten als eine Eingabe, die die Eingangsvalidierungsstufe passiert und in den funktionalen Verarbeitungsteil der Software eintritt.For example, input that is discarded at the entry validation stage would require far less processing and is correspondingly less useful in finding vulnerabilities than input that passes the entry validation stage and enters the functional processing portion of the software.

Basierend auf der Nützlichkeit jeder einzelnen Eingabe ist es möglich, die Eingabeerzeugungslogik zu optimieren, um im selben Zeitraum mehr Schwachstellen zu finden.Based on the usefulness of each input, it is possible to tune the input generation logic to find more vulnerabilities in the same amount of time.

Als Testdaten können zufällige Daten, unerwartete Daten und/oder fehlerhaft gebildete Daten eingegeben werden.Random data, unexpected data and/or incorrectly formed data can be entered as test data.

Weiterhin können Seitenkanal-Informationen genutzt werden, die ausgewählt sind aus einer Menge, die umfasst: Energieverbrauch, elektromagnetische Strahlung, Timing-Informationen.Furthermore, side channel information selected from a set comprising: energy consumption, electromagnetic radiation, timing information can be used.

Bei einer Ausführungsform des Verfahrens werden wiederholt in mehreren Durchgängen in einem ersten Schritt Testdaten erzeugt, in einem zweiten Schritt die Testdaten in die Einrichtung eingegeben werden und anschließend sowohl der Zustand der Einrichtung überwacht als auch Seitenkanal-Informationen verwendet, um eine Auswirkung der ersten Testdaten auf die Einrichtung zu ermitteln, wobei die ermittelte Auswirkung bei der Erzeugung der Testdaten im nächsten Durchgang berücksichtigt wird.In one embodiment of the method, test data are repeatedly generated in several passes in a first step, in a second step the test data are entered into the device and then both the state of the device is monitored and side-channel information is used to determine an effect of the first test data to determine the facility, with the effect determined being taken into account when generating the test data in the next pass.

Der Ablauf des Verfahrens bei der wiederholten Durchführung in Durchgängen kann abgebrochen werden, sobald die Überwachung des Zustands der Einrichtung einen Hinweis auf eine Schwachstelle in der Einrichtung gibt.The course of the procedure in the case of repeated execution in rounds can be interrupted as soon as the monitoring of the condition of the facility indicates a weak point in the facility.

Es kann bzw. können bspw. ein maschinelles Lernen oder andere Techniken im Bereich der künstlichen Intelligenz verwendet werden, um eine Eingabe zu bevorzugen, von der erwartet wird, mehr Treffer zu erzeugen.For example, machine learning or other artificial intelligence techniques may be used to favor an input that is expected to generate more hits.

Zu beachten ist, dass bei der Entwicklung von Software ebenso das white box Fuzzing-Testen insbesondere während der aktiven Softwareentwicklungsphase eingesetzt werden. Das black box Fuzzing-Testen wird typischerweise während der finalen Verifikationsphase, sowohl für Hardware und Software, verwendet, sobald die Hardware und/oder Software in dem endgültigen Produkt integriert ist und ein Debugger-Zugriff erschwert ist. Mit dem vorgestellten Verfahren kann insbesondere die Wirksamkeit der finalen Verifikation hinsichtlich der Sicherheit und Robustheit verbessert werden.It should be noted that when developing software, white box fuzzing testing is also used, especially during the active software development phase. Black box fuzzing testing is typically used during the final verification phase, both for hardware and software, once the hardware and/or software is integrated into the final product and debugger access is difficult. With the method presented, the effectiveness of the final verification in terms of security and robustness can be improved in particular.

Die vorgestellte Anordnung ist zum Durchführen des hierin vorgestellten Verfahrens eingerichtet und kann in einer Hardware und/oder Software implementiert sein. Ein entsprechendes Computerprogramm, das ebenfalls Gegenstand der Anmeldung ist, dient zum Durchführen des Verfahrens und kann auf einem maschinenlesbaren Speichermedium abgelegt sein.The arrangement presented is set up to carry out the method presented here and can be implemented in hardware and/or software. A corresponding computer program, which is also the subject of the application, is used to carry out the method and can be stored on a machine-readable storage medium.

Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und den beiliegenden Zeichnungen.Further advantages and refinements of the invention result from the description and the accompanying drawings.

Es versteht sich, dass die voranstehend genannten und die nachstehend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.It goes without saying that the features mentioned above and those still to be explained below can be used not only in the combination specified in each case, but also in other combinations or on their own, without departing from the scope of the present invention.

Figurenlistecharacter list

  • 1 zeigt in einem Flussdiagramm einen Ablauf eines bekannten Verfahrens. 1 shows a sequence of a known method in a flow chart.
  • 2 zeigt in einem Flussdiagramm einen Ablauf eines weiteren bekannten Verfahrens. 2 shows a sequence of a further known method in a flow chart.
  • 3 zeigt in einem Diagramm eine Ausführungsform des vorgestellten Verfahrens. 3 shows an embodiment of the presented method in a diagram.
  • 4 zeigt in einer schematischen Darstellung eine Anordnung zum Durchführen des Verfahrens. 4 shows a schematic representation of an arrangement for carrying out the method.

Ausführungsformen der ErfindungEmbodiments of the invention

Die Erfindung ist anhand von Ausführungsformen in den Zeichnungen schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnungen ausführlich beschrieben.The invention is shown schematically on the basis of embodiments in the drawings and is described in detail below with reference to the drawings.

In 1 ist in einem Flussdiagramm ein Verfahren nach dem Stand der Technik dargestellt. Das Verfahren ist in diesem Fall ein white box Fuzzing Testen mit einer Rückmeldung von einem Debugger.In 1 a method according to the prior art is shown in a flow chart. In this case, the procedure is white box fuzzing testing with feedback from a debugger.

Das Verfahren beginnt mit einem ersten Schritt 10, mit einem zweiten Schritt 12 wird die zu testende Software initialisiert. Es werden dann in einem weiteren Schritt 14 intelligente Testszenarien entwickelt. Anschließend werden in einem Schritt 16 falsch gebildete Daten bzw. Nachrichten zu der zu testenden Einrichtung 18 (DUT: device under test), die in diesem Fall eine zu testende Software 20 umfasst, gesendet. Es können dabei ergänzend oder alternativ zufällige Daten bzw. Nachrichten gesendet werden. Die Software sendet Daten bzw. Informationen an einen Debugger 22. In einem nächsten Schritt 24 wird überwacht, ob die Software abstürzt oder einfriert. Abschließend wird in einem Schritt 26 überprüft, ob ein Fehler gefunden wurde. Ist dies der Fall, so endet die Ausführung. Ist dies nicht der Fall (Pfeil 28), so erfolgt ein Rücksprung zu Schritt 12.The method starts with a first step 10, with a second step 12 the software to be tested is initialized. In a further step 14 intelligent test scenarios are then developed. In a step 16, incorrectly formed data or messages are then sent to the device 18 to be tested (DUT: device under test), which in this case includes software 20 to be tested. In addition or as an alternative, random data or messages can be sent. The software sends data or information to a debugger 22. In a next step 24, it is monitored whether the software crashes or freezes. Finally, in a step 26, it is checked whether an error was found. If so, execution ends. If this is not the case (arrow 28), the system jumps back to step 12.

In 2 ist in einem Flussdiagramm ein Ablauf eines black box Fuzzing-Testens ohne Rückmeldung dargestellt. In einem ersten Schritt 50 startet das Testverfahren. In einem nächsten Schritt 52 erfolgt eine Initialisierung. Es wird dann in einem Schritt 54 ein zufälliges Testszenario erzeugt. Darauf werden in einem Schritt 56 falsch gebildete Nachrichten bzw. Daten zu einem DUT 58 mit einer zu testenden Software 60 gesendet. Die Darstellung verdeutlicht durch die gestrichelten Linien, dass hier im Vergleich zu 1 kein Debugger vorhanden ist.In 2 is shown in a flowchart a sequence of black box fuzzing testing without feedback. The test method starts in a first step 50 . In a next step 52, an initialization takes place. A random test scenario is then generated in a step 54 . In a step 56, incorrectly formed messages or data are then sent to a DUT 58 with software 60 to be tested. The representation uses the dashed lines to make it clear that here in comparison to 1 there is no debugger.

In einem nächsten Schritt 64 wird überwacht, ob die Software abstürzt oder einfriert. Abschließend wird in einem Schritt 66 überprüft, ob ein Fehler gefunden wurde. Ist dies der Fall, so endet die Ausführung. Ist dies nicht der Fall (Pfeil 68), so erfolgt ein Rücksprung zu Schritt 52.In a next step 64 it is monitored whether the software crashes or freezes. Finally, in a step 66, it is checked whether an error was found. If so, execution ends. If this is not the case (arrow 68), there is a return to step 52.

In 3 ist in einem Flussdiagramm ein möglicher Ablauf des vorgestellten Verfahrens, nämlich ein black box Fuzzing-Testens mit Rückmeldung von einem Seitenkanal-Angriff, dargestellt.In 3 a possible sequence of the method presented, namely black box fuzzing testing with feedback from a side-channel attack, is shown in a flow chart.

In einem ersten Schritt 100 startet das Testverfahren. In einem nächsten Schritt 102 erfolgt eine Initialisierung. Es wird dann in einem Schritt 104 ein zufälliges Testszenario erzeugt. Darauf werden in einem Schritt 106 falsch gebildete Nachrichten bzw. Daten zu einer zu testenden Einrichtung 108 mit einer zu testenden Software 110 gesendet. Die Software 110 sendet Daten von einem Seitenkanal-Angriff, die sogenannten Seitenkanal-Informationen 112, zu Schritt 104, die hierbei beachtet werden. Somit ist eine Rückmeldung gegeben.In a first step 100, the test method starts. In a next step 102, an initialization takes place. A random test scenario is then generated in a step 104 . In a step 106, incorrectly formed messages or data are then sent to a device 108 to be tested with software 110 to be tested. The software 110 sends data from a side channel attack, the so-called side channel information 112, to step 104, which is considered here. Thus, a feedback is given.

In einem nächsten Schritt 114 wird überwacht, ob die Software 110 abstürzt oder einfriert. Abschließend wird in einem Schritt 116 überprüft, ob ein Fehler gefunden wurde. Ist dies der Fall, so endet die Ausführung. Ist dies nicht der Fall (Pfeil 118), so erfolgt ein Rücksprung zu Schritt 102.In a next step 114 it is monitored whether the software 110 crashes or freezes. Finally, in a step 116, it is checked whether an error was found. If so, execution ends. If this is not the case (arrow 118), the system jumps back to step 102.

4 zeigt in einer schematischen Darstellung eine Anordnung zum Durchführen des Verfahrens, die insgesamt mit der Bezugsziffer 150 bezeichnet ist. Mit dieser Anordnung 150 wird eine Einrichtung 152 überprüft, wozu von der Anordnung Testdaten 154 erzeugt werden, mit denen die Einrichtung 152 beschickt wird. Anschließend überwacht die Anordnung 150 den Zustand der Einrichtung 152, um mögliche Schwachstellen oder Fehler zu erkennen. Bei der Erzeugung der Testdaten 154 werden zudem Seitenkanal-Informationen 156 berücksichtigt, die ebenfalls von der Anordnung 150 gewonnen werden. Grundsätzlich kann auch eine weitere Anordnung zum Durchführen von Seitenkanal-Angriffen und zum Gewinnen der Seitenkanal-Informationen vorgesehen sein. 4 shows a schematic representation of an arrangement for carrying out the method, which is denoted overall by the reference numeral 150. A device 152 is checked with this arrangement 150, for which purpose test data 154 are generated by the arrangement, with which the device 152 is fed. The arrangement 150 then monitors the condition of the device 152 in order to identify possible weak points or faults. When generating the test data 154, side channel information 156, which is also obtained by the arrangement 150, is also taken into account. In principle, a further arrangement for carrying out side-channel attacks and for obtaining the side-channel information can also be provided.

Claims (12)

Verfahren zum Testen einer Einrichtung (108, 152), bei dem in die Einrichtung (108, 152) Testdaten (154) eingegeben werden und anschließend der Zustand der Einrichtung (108, 152) überwacht wird, um mindestens eine Schwachstelle in der Einrichtung (108, 152) zu erkennen, wobei bei der Auswahl der Testdaten (154) Seitenkanal-Informationen (112, 156) berücksichtigt werden.Method for testing a device (108, 152), in which test data (154) are entered into the device (108, 152) and the state of the device (108, 152) is then monitored in order to identify at least one weak point in the device (108 , 152), side channel information (112, 156) being taken into account when selecting the test data (154). Verfahren nach Anspruch 1, bei dem die Einrichtung (108, 152) im Rahmen eines black box Fuzzing-Testens getestet wird.procedure after claim 1 , in which the device (108, 152) is tested as part of black box fuzzing testing. Verfahren nach Anspruch 1 oder 2, bei dem als Testdaten (154) zufällige Daten, unerwartete Daten und/oder fehlerhaft gebildete Daten eingegeben werden.procedure after claim 1 or 2 , in which random data, unexpected data and/or incorrectly formed data are entered as test data (154). Verfahren nach einem der Ansprüche 1 bis 3, bei dem die Einrichtung (108, 152) eine Software (110) umfasst.Procedure according to one of Claims 1 until 3 , wherein the device (108, 152) comprises software (110). Verfahren nach einem der Ansprüche 1 bis 4, bei dem Seitenkanal-Informationen (112, 156) genutzt werden, die ausgewählt sind aus einer Menge, die umfasst: Energieverbrauch, elektromagnetische Strahlung, Timing-Informationen.Procedure according to one of Claims 1 until 4 using side channel information (112, 156) selected from a set comprising: energy consumption, electromagnetic radiation, timing information. Verfahren nach einem der Ansprüche 1 bis 5, bei dem wiederholt in mehreren Durchgängen - in einem ersten Schritt Testdaten (154) erzeugt werden, - in einem zweiten Schritt die Testdaten (154) in die Einrichtung (108, 152) eingegeben werden und anschließend sowohl der Zustand der Einrichtung (108, 152) überwacht als auch Seitenkanal-Informationen (112, 156) verwendet werden, um eine Auswirkung der ersten Testdaten (154) auf die Einrichtung (108, 152) zu ermitteln, wobei die ermittelte Auswirkung bei der Erzeugung der Testdaten (154) im nächsten Durchgang berücksichtigt wird.Procedure according to one of Claims 1 until 5 , in which repeatedly in several passes - in a first step test data (154) are generated, - in a second step the test data (154) are entered into the device (108, 152) and then both the state of the device (108, 152 ) monitored as well as side channel information (112, 156) are used to determine an effect of the first test data (154) on the device (108, 152), the determined effect in the generation of the test data (154) in the next pass is taken into account. Verfahren nach Anspruch 6, bei dem der Ablauf abgebrochen wird, sobald die Überwachung des Zustands der Einrichtung (108, 152) einen Hinweis auf eine Schwachstelle in der Einrichtung (108, 152) gibt.procedure after claim 6 , in which the process is aborted as soon as monitoring the state of the device (108, 152) indicates a vulnerability in the device (108, 152). Verfahren nach einem der Ansprüche 1 bis 7, bei dem Techniken der künstlichen Intelligenz verwendet werden.Procedure according to one of Claims 1 until 7 , which uses artificial intelligence techniques. Verfahren nach Anspruch 8, bei dem ein maschinelles Lernen eingesetzt wird.procedure after claim 8 , which uses machine learning. Anordnung zum Testen eines Steuergeräts, die zum Durchführen eines Verfahrens nach einem der Ansprüche 1 bis 9 eingerichtet ist.Arrangement for testing a control unit for performing a method according to one of Claims 1 until 9 is set up. Computerprogramm mit Programmcodemitteln, das dazu eingerichtet ist, ein Verfahren nach einem der Ansprüche 1 bis 9 auszuführen, wenn das Computerprogramm auf einer Recheneinheit, insbesondere einer Recheneinheit in einer Anordnung (150) gemäß Anspruch 10, ausgeführt wird.Computer program with program code means that is set up to implement a method according to one of Claims 1 until 9 execute if the computer program on a computing unit, in particular a computing unit in an arrangement (150) according to claim 10 , is performed. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 11.Machine-readable storage medium with a computer program stored on it claim 11 .
DE102021204707.6A 2021-05-10 2021-05-10 Procedure for testing a facility Pending DE102021204707A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102021204707.6A DE102021204707A1 (en) 2021-05-10 2021-05-10 Procedure for testing a facility

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021204707.6A DE102021204707A1 (en) 2021-05-10 2021-05-10 Procedure for testing a facility

Publications (1)

Publication Number Publication Date
DE102021204707A1 true DE102021204707A1 (en) 2022-11-10

Family

ID=83692157

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021204707.6A Pending DE102021204707A1 (en) 2021-05-10 2021-05-10 Procedure for testing a facility

Country Status (1)

Country Link
DE (1) DE102021204707A1 (en)

Similar Documents

Publication Publication Date Title
Staats et al. Automated oracle creation support, or: How I learned to stop worrying about fault propagation and love mutation testing
Ciupa et al. Experimental assessment of random testing for object-oriented software
EP2940620A1 (en) Derivation of a device-specific value implying an unclonable function
EP3430558A1 (en) Detecting a deviation of a security state of a computing device from a desired security state
Segura et al. Functional testing of feature model analysis tools: a test suite
Bozic et al. Evaluation of the IPO-family algorithms for test case generation in web security testing
EP0304033A2 (en) Method for diagnosing a data-processing installation infected with computer viruses
Marre et al. An experimental evaluation of formal testing and statistical testing
DE102019210562A1 (en) Method and device for testing software
DE102021204707A1 (en) Procedure for testing a facility
EP3134842B1 (en) Computing device and method for detecting attacks on a technical system based on events of an event sequence
Gaudel Formal methods for software testing
EP3770766A1 (en) Method for testing a system
Vilkomir et al. Using mc/dc as a black-box testing technique
Parsai et al. Dynamic mutant subsumption analysis using LittleDarwin
DE102022109866A1 (en) SYSTEM FOR AN IMPROVED SECURITY AND PROTECTION TEST
DE102005020899A1 (en) Method for preparing test coverage analysis involves testing of a program with several threads of error, which results e.g. from lack of synchronization between the threads with an conflicting access on common resources
EP3798873B1 (en) Method for protecting a computer-implemented application from manipulation
Gaudel Formal methods and testing: Hypotheses, and correctness approximations
Alatawi et al. Generating source inputs for metamorphic testing using dynamic symbolic execution
EP3757698A1 (en) Method and device for evaluating and selecting signal comparison metrics
DE10307797B4 (en) Device and method for determining an irregularity in a sequence of a utility
Staats The influence of multiple artifacts on the effectiveness of software testing
Bhatia et al. Design of a fuzzy model to detect equivalent mutants for weak and strong mutation testing
Bozzano et al. A formal framework for the specification, verification and synthesis of diagnosers