EP3830687A1 - Verfahren zum analysieren von quelltexten - Google Patents

Verfahren zum analysieren von quelltexten

Info

Publication number
EP3830687A1
EP3830687A1 EP19746460.5A EP19746460A EP3830687A1 EP 3830687 A1 EP3830687 A1 EP 3830687A1 EP 19746460 A EP19746460 A EP 19746460A EP 3830687 A1 EP3830687 A1 EP 3830687A1
Authority
EP
European Patent Office
Prior art keywords
source code
source
identified
vulnerability
text
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
EP19746460.5A
Other languages
English (en)
French (fr)
Inventor
Marc Sebastian Patric STÖTTINGER
René PALIGE
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.)
Continental Teves AG and Co OHG
Original Assignee
Continental Teves AG and Co OHG
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 Continental Teves AG and Co OHG filed Critical Continental Teves AG and Co OHG
Publication of EP3830687A1 publication Critical patent/EP3830687A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity

Definitions

  • the invention relates to a method for analyzing source texts, comprising the step of: identifying source text weak points which are susceptible to attacks on implementation.
  • the invention relates to a device for data processing, a computer program product and a computer-readable data carrier.
  • source code developers are regularly supported in source code generation so that the source code development is accelerated and the susceptibility to errors of the later software is reduced.
  • a developer support known in the prior art is syntax highlighting, in which the source text is subjected to a syntax check during the active source code development, so that code errors can be identified during the active source code development.
  • the source code developer is made aware of these during the active source code development by optically highlighting the identified source code passages.
  • the syntax highlighting reduces errors occurring in the compilation phase, so that software development is accelerated.
  • real-time source code checks which examine the source code for unsafe standard functions such as strcpy or printf during active source code development.
  • the source text can be compared, for example, with a kind of dictionary of previously defined insecure standard functions.
  • This is a purely static check, by which no source text vulnerabilities can be identified, which are susceptible to implementation attacks.
  • Source code vulnerabilities that are susceptible to implementation attacks have so far only been identified during the runtime of a program, i.e. after programming and implementation have been completed.
  • software emulation or the analysis of a test system is necessary, for example.
  • Program compilation or the binary file is therefore necessary to identify corresponding source text vulnerabilities. If the corresponding source code vulnerabilities are identified, it is therefore necessary to turn to source code development again, which means that time-consuming and therefore costly development loops are necessary to remedy the identified vulnerabilities.
  • Source code developer for corresponding vulnerability patterns For corresponding vulnerability patterns.
  • the known methods do not lead to learning progress among the source code developers.
  • the object on which the invention is based is therefore to accelerate and / or simplify the development of source texts which are not susceptible to implementation attacks.
  • the object is achieved by a method of the type mentioned at the outset, in which the source code vulnerabilities are identified during active source code development without the need for program compilation.
  • the invention takes advantage of the knowledge that by identifying source code vulnerabilities, which are susceptible to implementation attacks, during active source code development, time-consuming and costly development loops, which require software emulation or analysis of a test system, can be avoided. Furthermore, the identification of corresponding source code vulnerabilities during active source code development allows direct feedback to the source code developer, which source code developer for corresponding source code vulnerabilities can be achieved.
  • the source code analysis therefore extends to the dynamic implementation behavior of the source code and not only to unsafe standard functions such as strcpy or printf.
  • the term implementation attack does not include any attacks that occur exclusively at the software level.
  • the method is preferably carried out partially or completely in an integrated development environment. In particular, it is not necessary to generate a binary file to identify corresponding source code vulnerabilities. Overall, the development process is significantly accelerated and the source code is significantly less susceptible to implementation attacks.
  • identifying the source code vulnerabilities which are susceptible to implementation attacks comprises identifying source code vulnerabilities which are susceptible to side channel attacks and / or identifying source code vulnerabilities which are susceptible to error injection attacks.
  • Side channel attacks and error injection attacks are sub-types of implementation attacks.
  • Side channel attacks can also be referred to as side channel attacks (SCA).
  • SCA side channel attacks
  • Side-channel attacks exploit the physical implementation of a cryptosystem in a device or in software. A device is observed when cryptographic algorithms are executed and a correlation between the observed information and a key used is examined. Corresponding side-channel attacks can be based, for example, on the analysis of the running time of an algorithm, the energy consumption during calculation processes or the electromagnetic radiation.
  • Fault injection attacks can also be referred to as fault injection attacks (FIA). With error injection, for example, glitches can be introduced into the supply voltage of a device become. Another error injection involves inserting noise into a device's clock signal. In addition, fault injection attacks are known in which the attacked device is exposed to radiation.
  • the method according to the invention is further advantageously developed by optically highlighting the identified source code vulnerabilities, with the identified highlighting of the identified source code vulnerabilities occurring during active source text development without the need for program compilation.
  • the optical highlighting can be done, for example, by a colored background, the setting of a changed text color and / or the setting of a changed font or a changed font style.
  • a pop-up window can be displayed, which informs the source developer of the identified source code vulnerability.
  • Source code vulnerabilities and / or visual highlighting of the identified source code vulnerabilities in real time during active source code development are corresponding source code vulnerabilities during programming
  • the method according to the invention is further advantageously developed in that a stored explanation of the identified source code vulnerability is loaded automatically. Alternatively or additionally, an explanation of the identified source code vulnerability generated automatically. Depending on the complexity of the identified source code vulnerability, it may be sufficient to make the source code developer aware of the source code vulnerability with a stored explanation and / or to provide the source code developer with additional information on the identified source code vulnerability by means of a stored explanation. In other cases, the identified source text vulnerability can be used to generate a corresponding explanation, so that the generated description includes source-specific elements that relate to the source text actually formulated by the source developer. Alternatively or additionally, the method can include automatically displaying the loaded or generated explanation of the identified source code vulnerability.
  • an alternative source text to the identified source text vulnerability is generated automatically and / or the generated alternative source text to the identified source text vulnerability is displayed automatically.
  • the source code preferably does not include any source code vulnerabilities that are susceptible to implementation attacks.
  • the alternative source text can have a new source text structure.
  • a method according to the invention is preferred in which the identified source code weak point is automatically replaced by the generated alternative source text on the basis of a correction command entered by a source text developer. In this way, the time-consuming manual adjustment of the source code to eliminate the identified source code vulnerability is eliminated. This will further accelerate source code development.
  • the method according to the invention can be used to analyze
  • Source texts are used, which are used in vehicles, especially in automobiles.
  • the Source texts for in-vehicle control devices are used.
  • Other areas of application are the development of
  • Smartcard software developments relating to the Internet of Things, Industry 4.0 and other developments for areas in which devices interact with one another and a high degree of security is necessary.
  • the object on which the invention is based is also achieved by a device for data processing, which comprises a processor which is configured in such a way that it executes the method for analyzing source texts according to one of the embodiments described above.
  • a device for data processing which comprises a processor which is configured in such a way that it executes the method for analyzing source texts according to one of the embodiments described above.
  • the object on which the invention is based is also achieved by a computer program product which comprises commands which, when the program is executed by a computer, cause the computer to carry out the method for analyzing source texts according to one of the embodiments described above.
  • a computer program product which comprises commands which, when the program is executed by a computer, cause the computer to carry out the method for analyzing source texts according to one of the embodiments described above.
  • the object on which the invention is based is also achieved by a computer-readable data carrier on which the computer program product described above is stored.
  • Fig. 1 parts of a device according to the invention for
  • FIG. 1 schematically shows an exemplary embodiment of the method according to the invention for analyzing source texts 10.
  • the method is carried out by means of a device for data processing, the device comprising a processor which is configured such that it can carry out the method described below.
  • the method is based on a computer program product which comprises instructions which, when the program is executed by a computer, cause the computer to execute the method accordingly.
  • source code weak points 14 are identified within a source code 10 entered by a source code developer.
  • the source text developer enters the source text 10 into an editor 12 via an input device designed as a keyboard. Identifying the source text 10 into an editor 12 via an input device designed as a keyboard. Identifying the source text 10 into an editor 12 via an input device designed as a keyboard.
  • Code vulnerabilities 14 occur in real time during active code development and without the need for program compilation.
  • source code vulnerabilities 14 are identified that are susceptible to implementation attacks, such as side channel attacks or error injection attacks.
  • the source code analysis does not extend to insecure standard functions, such as strcpy or printf, but rather to the implementation behavior of the source text 10.
  • source code vulnerabilities 14 are identified that are susceptible to implementation attacks, the identified source code vulnerabilities 14 are highlighted so that the source code developer is made aware of the source code vulnerabilities 14 during the active source code development.
  • the optical highlighting of the identified source code weak points 14 thus also takes place on-the-fly, that is to say during active source code development without the need for program compilation.
  • the source text 10 contains a for statement and an if statement. Both instructions were identified as vulnerable to implementation attacks and highlighted visually.
  • the if statement was identified as source text vulnerability 14 in the process, which is susceptible to side channel attacks.
  • a window 16a was opened for the if statement, which includes the segments 18a, 18b.
  • a stored explanation of the identified source code weak point 14 is displayed to the source text developer, namely that the if statement is not balanced and thus an abuse of time behavior can occur.
  • the source code developer is shown a correction suggestion for eliminating the source code vulnerability 14, namely that the if statement is to be combined with an else statement.
  • the for statement was identified as source text vulnerability 14 in the process, which is susceptible to error injection attacks.
  • a window 16b was opened for the for statement, which includes the segments 20a, 20b.
  • the segment 20a a stored explanation of the identified source code vulnerability 14 is displayed to the source code developer, namely that no end is defined for the for loop and therefore an abuse of control flow manipulation is possible.
  • the source code developer is shown a correction proposal for eliminating the source code vulnerability 14, namely the insertion of a second count value, which checks whether all iterations of the for loop have been carried out. Furthermore, it is proposed to insert an else statement in segment 20b to eliminate the source code vulnerability 14.
  • the displayed alternative source texts can thus have modified and / or supplemented source text structures.
  • the source text developer can replace the identified source code by entering an appropriate correction command. Initiate text weak point 14 by the displayed alternative source text.

Landscapes

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

Abstract

Die Erfindung betrifft ein Verfahren zum Analysieren von Quelltexten (10), mit dem Schritt: Identifizieren von Quelltextschwachstellen (14), welche anfällig für Implementierungsangriffe sind, wobei das Identifizieren der Quelltextschwachstellen (14) während der aktiven Quelltextentwicklung ohne die Notwendigkeit einer Programmkompilierung erfolgt.

Description

Verfahren zum Analysieren von Quelltexten
Die Erfindung betrifft ein Verfahren zum Analysieren von Quelltexten, mit dem Schritt: Identifizieren von Quell textschwachstellen, welche anfällig für Implementierungsan griffe sind.
Ferner betrifft die Erfindung eine Vorrichtung zur Datenver arbeitung, ein Computerprogrammprodukt und einen computer lesbaren Datenträger.
Bei der Entwicklung von Quelltexten, beispielsweise unter Verwendung einer integrierten Entwicklungsumgebung, werden Quelltextentwickler regelmäßig bei der Quelltextgenerierung unterstützt, damit die Quelltextentwicklung beschleunigt und die Fehleranfälligkeit der späteren Software verringert wird. Eine im Stand der Technik bekannte Entwicklerunterstützung ist die Syntaxhervorhebung, bei welcher der Quelltext während der aktiven Quelltextentwicklung einer Syntaxprüfung unterzogen wird, sodass Quelltextfehler während der aktiven Quelltext entwicklung identifiziert werden können. Der Quelltextent- wickler wird während der aktiven Quelltextentwicklung durch ein optisches Hervorheben der identifizierten Quelltextpassagen auf diese aufmerksam gemacht. Durch die Syntaxhervorhebung werden in der Kompilierungsphase auftretende Fehler verringert, sodass die Softwareentwicklung beschleunigt wird.
Neben der Syntaxhervorhebung sind Quelltext-Echtzeitprüfungen bekannt, welche den Quelltext während der aktiven Quelltext entwicklung auf unsichere Standardfunktionen, wie strcpy oder printf untersuchen. Hierbei kann der Quelltext beispielsweise mit einer Art Wörterbuch zuvor definierter unsicherer Stan dardfunktionen abgeglichen werden. Es handelt sich hierbei um eine lediglich statische Prüfung, durch welche keine Quell textschwachstellen identifiziert werden können, welche anfällig für Implementierungsangriffe sind. Für Implementierungsangriffe anfällige Quelltextschwachstellen können bisher lediglich während der Laufzeit eines Programms, also nach Abschluss der Programmierung und Implementierung, identifiziert werden. Hierzu ist beispielsweise eine Soft wareemulation oder die Analyse eines Testsystems notwendig. Mithin ist somit zum Identifizieren entsprechender Quell textschwachstellen die Programmkompilierung oder die Binärdatei notwendig. Wenn entsprechende Quelltextschwachstellen iden tifiziert werden, ist es somit erforderlich, sich erneut der Quelltextentwicklung zuzuwenden, wodurch zeit- und somit kostenaufwendige Entwicklungsschleifen zum Beheben der iden tifizierten Schwachstellen notwendig sind.
Ferner kommt es bei den bekannten Verfahren zum Analysieren von Binärdateien häufig nicht zu einer Sensibilisierung der
Quelltextentwickler für entsprechende Schwachstellenmuster. Somit führen die bekannten Verfahren auch nicht zu einem Lernfortschritt bei den Quelltextentwicklern .
Die der Erfindung zugrundeliegende Aufgabe besteht somit darin, die Entwicklung von Quelltexten, welche unanfällig gegen Im plementierungsangriffe sind, zu beschleunigen und/oder zu vereinfachen .
Die Aufgabe wird gelöst durch ein Verfahren der eingangs ge nannten Art, wobei das Identifizieren der Quelltextschwach- stellen während der aktiven Quelltextentwicklung ohne die Notwendigkeit einer Programmkompilierung erfolgt.
Die Erfindung macht sich die Erkenntnis zunutze, dass durch das Identifizieren von Quelltextschwachstellen, welche anfällig für Implementierungsangriffe sind, während der aktiven Quelltex tentwicklung zeit- und kostenaufwendige Entwicklungsschleifen, welche eine Emulation von Software oder die Analyse eines Testsystems bedingen, vermieden werden können. Ferner erlaubt das Identifizieren von entsprechenden Quelltextschwachstellen während der aktiven Quelltextentwicklung eine direkte Rück meldung an den Quelltextentwickler, wodurch eine Sensibili- sierung des Quelltextentwicklers für entsprechende Quell textschwachstellen erreicht werden kann.
Die Quelltextanalyse erstreckt sich somit auf das dynamische Implementierungsverhalten des Quelltextes und nicht lediglich auf unsichere Standardfunktionen, wie strcpy oder printf. Im Sinne der Erfindung fallen unter den Ausdruck Implementie rungsangriff also keine Angriffe, welche ausschließlich auf der Softwareebene erfolgen.
Das Verfahren wird vorzugsweise teilweise oder vollständig in einer integrierten Entwicklungsumgebung ausgeführt. Insbe sondere ist keine Erzeugung einer Binärdatei zum Identifizieren entsprechender Quelltextschwachstellen notwendig. Insgesamt kommt es zu einer erheblichen Beschleunigung des Entwick lungsprozesses und zu einer erheblich verringerten Anfälligkeit des Quelltextes für Implementierungsangriffe.
In einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens umfasst das Identifizieren der Quelltextschwach- stellen, welche anfällig für Implementierungsangriffe sind, das Identifizieren von Quelltextschwachstellen, welche anfällig für Seitenkanalangriffe sind und/oder das Identifizieren von Quelltextschwachstellen, welche anfällig für Fehlerinjekti onsangriffe sind. Seitenkanalangriffe und Fehlerinjektions angriffe stellen Unterarten von Implementierungsangriffen dar. Seitenkanalangriffe können auch als Side Channel Attacks (SCA) bezeichnet werden. Seitenkanalangriffe nutzen die physische Implementierung eines Kryptosystems in einem Gerät oder in einer Software aus. Dabei wird ein Gerät bei der Ausführung von kryptografischen Algorithmen beobachtet und eine Korrelation zwischen den beobachteten Informationen und einem verwendeten Schlüssel untersucht. Entsprechende Seitenkanalangriffe können beispielsweise auf der Analyse der Laufzeit eines Algorithmus, des Energieverbrauchs während Berechnungsvorgängen oder der elektromagnetischen Strahlung beruhen. Fehlerinjektionsan griffe können auch als Fault Injection Attacks (FIA) bezeichnet werden. Bei der Fehlerinjektion können beispielsweise Störungen (Glitches) in die Versorgungsspannung eines Geräts eingebracht werden. Eine andere Fehlerinjektion betrifft das Einfügen von Störungen in das Taktsignal eines Geräts. Darüber hinaus sind Fehlerinjektionsangriffe bekannt, bei welchen das angegriffene Gerät einer Strahlung ausgesetzt wird.
Das erfindungsgemäße Verfahren wird ferner dadurch vorteilhaft weitergebildet, dass die identifizierten Quelltextschwach- stellen optisch hervorgehoben werden, wobei das optische Hervorheben der identifizierten Quelltextschwachstellen während der aktiven Quelltextentwicklung ohne die Notwendigkeit einer Programmkompilierung erfolgt. Das optische Hervorheben kann beispielsweise durch ein farbliches Hinterlegen, das Einstellen einer geänderten Textfarbe und/oder das Einstellen einer ge änderten Schriftart oder eines geänderten Schriftstils erfolgen. Alternativ oder zusätzlich kann beim Identifizieren von ent sprechenden Quelltextschwachstellen ein Pop-up-Fenster ein geblendet werden, welches den Quelltextentwickler auf die identifizierte Quelltextschwachstelle hinweist. Durch das optische Hervorheben bzw. das Hinweisen auf die identifizierte Quelltextschwachstelle wird ein Lerneffekt für den Quelltex tentwickler umgesetzt. Es erfolgt eine Sensibilisierung des Quelltextentwicklers für Quelltextschwachstellen, welche an fällig für Implementierungsangriffe sind.
In einer weiteren bevorzugten Ausführungsform des erfin dungsgemäßen Verfahrens erfolgt das Identifizieren der
Quelltextschwachstellen und/oder das optische Hervorheben der identifizierten Quelltextschwachstellen in Echtzeit während der aktiven Quelltextentwicklung . Auf diese Weise können ent sprechende Quelltextschwachstellen beim Programmieren
on-the-fly durch den Quelltextentwickler direkt modifiziert oder ersetzt werden. Der gesamte Entwicklungsprozess wird auf diese Weise erheblich beschleunigt.
Das erfindungsgemäße Verfahren wird ferner dadurch vorteilhaft weitergebildet, dass eine hinterlegte Erläuterung zu der identifizierten Quelltextschwachstelle selbsttätig geladen wird. Alternativ oder zusätzlich wird eine Erläuterung zu der identifizierten Quelltextschwachstelle selbsttätig erzeugt. Abhängig von der Komplexität der identifizierten Quell textschwachstelle kann es ausreichen, den Quelltextentwickler mit einer hinterlegten Erläuterung auf die Quelltextschwach- stelle aufmerksam zu machen und/oder dem Quelltextentwickler durch eine hinterlegte Erläuterung ergänzende Informationen zu der identifizierten Quelltextschwachstelle zur Verfügung zu stellen. In anderen Fällen kann die identifizierte Quell textschwachstelle zur Erzeugung einer entsprechenden Erläu terung verwendet werden, sodass die erzeugte Erläuterung quelltextspezifische Elemente umfasst, welche sich auf den tatsächlich vom Quelltextentwickler formulierten Quelltext beziehen. Alternativ oder zusätzlich kann das Verfahren das selbsttätige Anzeigen der geladenen oder erzeugten Erläuterung zu der identifizierten Quelltextschwachstelle umfassen.
In einer vorteilhaften Ausführungsform des erfindungsgemäßen Verfahrens wird ein Alternativquelltext zu der identifizierten Quelltextschwachstelle selbsttätig erzeugt und/oder der er zeugte Alternativquelltext zu der identifizierten Quell textschwachstelle selbsttätig angezeigt. Der Alterna
tivquelltext umfasst vorzugsweise keine Quelltextschwachstelle, welche anfällig für Implementierungsangriffe ist. Insbesondere kann der Alternativquelltext eine neue Quelltextstruktur aufweisen .
Ferner ist ein erfindungsgemäßes Verfahren bevorzugt, bei welchem die identifizierte Quelltextschwachstelle durch den erzeugten Alternativquelltext auf Grundlage eines von einem Quelltextentwickler eingegebenen Korrekturbefehls selbsttätig ersetzt wird. Auf diese Weise entfällt das aufwendige manuelle Anpassen des Quelltextes zur Eliminierung der identifizierten Quelltextschwachstelle . Die Quelltextentwicklung wird auf diese Weise weiter beschleunigt.
Das erfindungsgemäße Verfahren kann zum Analysieren von
Quelltexten genutzt werden, welche in Fahrzeugen, insbesondere in Automobilen, eingesetzt werden. Insbesondere werden die Quelltexte für fahrzeuginterne Steuerungseinrichtungen ver wendet. Weitere Einsatzgebiete sind die Entwicklung von
Smartcard-Software, Entwicklungen betreffend das Internet der Dinge, Industrie 4.0 und andere Entwicklungen für Bereiche, in welchen Geräte miteinander interagieren und ein hohes Maß an Sicherheit notwendig ist.
Die der Erfindung zugrundeliegende Aufgabe wird ferner durch eine Vorrichtung zur Datenverarbeitung gelöst, welche einen Prozessor umfasst, der so konfiguriert ist, dass er das Verfahren zum Analysieren von Quelltexten nach einer der vorstehend be schriebenen Ausführungsformen ausführt. Hinsichtlich der Vorteile und Modifikationen der erfindungsgemäßen Vorrichtung wird auf die Vorteile und Modifikationen des erfindungsgemäßen Verfahrens verwiesen.
Die der Erfindung zugrundeliegende Aufgabe wird ferner durch ein Computerprogrammprodukt gelöst, welches Befehle umfasst, die bei der Ausführung des Programms durch einen Computer diesen veranlassen, das Verfahren zum Analysieren von Quelltexten nach einer der vorstehend beschriebenen Ausführungsformen auszu führen. Hinsichtlich der Vorteile und Modifikationen des er findungsgemäßen Computerprogrammprodukts wird auf die Vorteile und Modifikationen des erfindungsgemäßen Verfahrens verwiesen.
Die der Erfindung zugrundeliegende Aufgabe wird ferner durch einen computerlesbaren Datenträger gelöst, auf welchem das zuvor beschriebene Computerprogrammprodukt gespeichert ist.
Nachfolgend wird eine bevorzugte Ausführungsform der Erfindung unter Bezugnahme auf die beiliegende Zeichnung näher erläutert und beschrieben. Dabei zeigt:
Fig. 1 Teile einer über eine erfindungsgemäße Vorrichtung zur
Datenverarbeitung abrufbare integrierte Entwick lungsumgebung . Die in der Fig. 1 dargestellte integrierte Entwicklungsumgebung zeigt schematisch ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens zum Analysieren von Quelltexten 10.
Das Verfahren wird mittels einer Vorrichtung zur Datenverar beitung ausgeführt, wobei die Vorrichtung einen Prozessor umfasst, der so konfiguriert ist, dass er das nachfolgend beschriebene Verfahren ausführen kann. Das Verfahren basiert auf einem Computerprogrammprodukt, welches Befehle umfasst, die bei der Ausführung des Programms durch einen Computer diesen veranlassen, das Verfahren entsprechend auszuführen.
Während des Verfahrens werden Quelltextschwachstellen 14 in nerhalb eines von einem Quelltextentwickler eingegebenen Quelltextes 10 identifiziert. Der Quelltextentwickler gibt den Quelltext 10 über eine als Tastatur ausgebildete Eingabeein richtung in einen Editor 12 ein. Das Identifizieren der
Quelltextschwachstellen 14 erfolgt in Echtzeit während der aktiven Quelltextentwicklung und ohne die Notwendigkeit einer Programmkompilierung .
Im Rahmen des Verfahrens werden Quelltextschwachstellen 14 identifiziert, welche anfällig für Implementierungsangriffe, wie etwa Seitenkanalangriffe oder Fehlerinjektionsangriffe, sind. Somit erstreckt sich die Quelltextanalyse nicht auf unsichere Standardfunktionen, wie strcpy oder printf, sondern vielmehr auf das Implementierungsverhalten des Quelltextes 10.
Wenn Quelltextschwachstellen 14 identifiziert werden, welche anfällig für Implementierungsangriffe sind, werden die iden tifizierten Quelltextschwachstellen 14 optisch hervorgehoben, damit der Quelltextentwickler während der aktiven Quelltext entwicklung auf die Quelltextschwachstellen 14 aufmerksam gemacht wird. Das optische Hervorheben der identifizierten Quelltextschwachstellen 14 erfolgt somit ebenfalls on-the-fly, also während der aktiven Quelltextentwicklung ohne die Not wendigkeit einer Programmkompilierung. Vorliegend beinhaltet der Quelltext 10 eine for-Anweisung und eine if-Anweisung . Beide Anweisungen wurden als anfällig für Implementierungsangriffe identifiziert und optisch hervorge hoben .
Die if-Anweisung wurde im Rahmen des Verfahrens als Quell textschwachstelle 14 identifiziert, welche anfällig für Sei tenkanalangriffe ist. Zu der if-Anweisung wurde ein Fenster 16a geöffnet, welches die Segmente 18a, 18b umfasst. In dem Segment 18a wird dem Quelltextentwickler eine hinterlegte Erläuterung zu der identifizierten Quelltextschwachstelle 14 angezeigt, nämlich, dass die if-Anweisung nicht ausgeglichen ist und somit ein missbrauchbares Zeitverhalten auftreten kann. In dem Segment 18b wird dem Quelltextentwickler ein Korrekturvorschlag zum Eliminieren der Quelltextschwachstelle 14 angezeigt, nämlich, dass die if-Anweisung mit einer else-Anweisung kombiniert werden soll .
Die for-Anweisung wurde im Rahmen des Verfahrens als Quell textschwachstelle 14 identifiziert, welche anfällig für Feh lerinjektionsangriffe ist. Zu der for-Anweisung wurde ein Fenster 16b geöffnet, welches die Segmente 20a, 20b umfasst. In dem Segment 20a wird dem Quelltextentwickler eine hinterlegte Erläuterung zu der identifizierten Quelltextschwachstelle 14 angezeigt, nämlich, dass für die for-Schleife kein Ende definiert ist und somit eine missbrauchbare Kontrollflussmanipulation möglich ist. In dem Segment 20b wird dem Quelltextentwickler ein Korrekturvorschlag zum Eliminieren der Quelltextschwachstelle 14 angezeigt, nämlich das Einfügen eines zweiten Zählwertes, welcher prüft, ob alle Iterationen der for-Schleife durchgeführt wurden. Ferner wird in dem Segment 20b das Einfügen einer else-Anweisung zur Eliminierung der Quelltextschwachstelle 14 vorgeschlagen .
Die angezeigten Alternativquelltexte können somit modifizierte und/oder ergänzte Quelltextstrukturen aufweisen. Der Quell textentwickler kann durch die Eingabe eines entsprechenden Korrekturbefehls das Ersetzen der identifizierten Quell- textschwachstelle 14 durch den angezeigten Alternativquelltext veranlassen .
Bezugszeichenliste
10 Quelltext
12 Editor
14 Quelltextschwachstelle
16a, 16b Fenster
18a, 18b Segmente
20a, 20b Segmente

Claims

Patentansprüche
1. Verfahren zum Analysieren von Quelltexten (10), mit dem Schritt :
Identifizieren von Quelltextschwachstellen (14), welche anfällig für Implementierungsangriffe sind; dadurch gekennzeichnet, dass das Identifizieren der Quelltextschwachstellen (14) während der aktiven Quell textentwicklung ohne die Notwendigkeit einer Programm kompilierung erfolgt.
2. Verfahren nach Anspruch 1,
dadurch gekennzeichnet, dass das Identifizieren der Quelltextschwachstellen (14), welche anfällig für Im plementierungsangriffe sind, zumindest einen der folgenden Schritte umfasst:
Identifizieren von Quelltextschwachstellen (14), welche anfällig für Seitenkanalangriffe sind;
Identifizieren von Quelltextschwachstellen (14), welche anfällig für Fehlerinjektionsangriffe sind.
3. Verfahren nach Anspruch 1 oder 2,
gekennzeichnet durch den Schritt:
optisches Hervorheben der identifizierten Quell textschwachstellen (14),
wobei das optische Hervorheben der identifizierten
Quelltextschwachstellen (14) während der aktiven Quell textentwicklung ohne die Notwendigkeit einer Programm kompilierung erfolgt.
4. Verfahren nach einem der vorstehenden Ansprüche,
dadurch gekennzeichnet, dass das Identifizieren der Quelltextschwachstellen (14) und/oder das optische Her vorheben der identifizierten Quelltextschwachstellen (14) in Echtzeit während der aktiven Quelltextentwicklung erfolgt .
5. Verfahren nach einem der vorstehenden Ansprüche, gekennzeichnet durch zumindest einen der folgenden
Schritte :
selbsttätiges Laden einer hinterlegten Erläuterung zu einer identifizierten Quelltextschwachstelle (14); selbsttätiges Erzeugen einer Erläuterung zu einer identifizierten Quelltextschwachstelle (14);
selbsttätiges Anzeigen der geladenen oder erzeugten Erläuterung zu der identifizierten Quell textschwachstelle (14).
6. Verfahren nach einem der vorstehenden Ansprüche,
gekennzeichnet durch zumindest einen der folgenden
Schritte :
selbsttätiges Erzeugen eines Alternativquelltextes zu einer identifizierten Quelltextschwachstelle (14); selbsttätiges Anzeigen des erzeugten Alterna tivquelltextes zu der identifizierten Quell textschwachstelle (14).
7. Verfahren nach Anspruch 6,
gekennzeichnet durch den Schritt:
selbsttätiges Ersetzen der identifizierten Quell textschwachstelle (14) durch den erzeugten Alter nativquelltext auf Grundlage eines von einem
Quelltextentwickler eingegebenen Korrekturbefehls.
8. Vorrichtung zur Datenverarbeitung, umfassend einen Pro zessor, der so konfiguriert ist, dass er das Verfahren nach einem der vorstehenden Ansprüche ausführt.
9. Computerprogrammprodukt umfassend Befehle, die bei der Ausführung des Programms durch einen Computer diesen veranlassen, das Verfahren nach einem der Ansprüche 1 bis 8 auszuführen.
10. Computerlesbarer Datenträger, auf dem das Computerpro grammprodukt nach Anspruch 9 gespeichert ist.
EP19746460.5A 2018-08-03 2019-07-25 Verfahren zum analysieren von quelltexten Ceased EP3830687A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102018213053.1A DE102018213053A1 (de) 2018-08-03 2018-08-03 Verfahren zum Analysieren von Quelltexten
PCT/EP2019/070138 WO2020025463A1 (de) 2018-08-03 2019-07-25 Verfahren zum analysieren von quelltexten

Publications (1)

Publication Number Publication Date
EP3830687A1 true EP3830687A1 (de) 2021-06-09

Family

ID=67482938

Family Applications (1)

Application Number Title Priority Date Filing Date
EP19746460.5A Ceased EP3830687A1 (de) 2018-08-03 2019-07-25 Verfahren zum analysieren von quelltexten

Country Status (7)

Country Link
US (1) US20210157929A1 (de)
EP (1) EP3830687A1 (de)
JP (1) JP2021533476A (de)
KR (1) KR20210024161A (de)
CN (1) CN112534400A (de)
DE (1) DE102018213053A1 (de)
WO (1) WO2020025463A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11513833B1 (en) 2020-09-29 2022-11-29 Amazon Technologies, Inc. Event listener interface for container-based execution of serverless functions
US11494184B1 (en) 2020-09-29 2022-11-08 Amazon Technologies, Inc. Creation of transportability container files for serverless applications
US11531526B1 (en) * 2020-09-29 2022-12-20 Amazon Technologies, Inc. Creating portable serverless applications

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6986122B2 (en) * 2001-06-07 2006-01-10 International Business Machines Corporation IF statement having an expression setup clause to be utilized in structured assembly language programming
US20050273859A1 (en) * 2004-06-04 2005-12-08 Brian Chess Apparatus and method for testing secure software
US8051408B1 (en) * 2004-09-13 2011-11-01 The Mathworks, Inc. Method of providing interactive usage descriptions based on source code analysis
US8800042B2 (en) * 2005-05-16 2014-08-05 Hewlett-Packard Development Company, L.P. Secure web application development and execution environment
KR100653122B1 (ko) * 2005-08-31 2006-12-01 학교법인 대전기독학원 한남대학교 안전한 소프트웨어 개발을 위한 룰 기반의 실시간 탐지시스템 및 방법
JP2008059279A (ja) * 2006-08-31 2008-03-13 Internatl Business Mach Corp <Ibm> 文字列出力処理を最適化する技術
JP4680876B2 (ja) * 2006-12-11 2011-05-11 ルネサスエレクトロニクス株式会社 情報処理装置及び命令フェッチ制御方法
US8341600B2 (en) * 2008-02-15 2012-12-25 Microsoft Corporation Tagging and logical grouping of items in source code change lists
CN102141956B (zh) * 2010-01-29 2015-02-11 国际商业机器公司 用于开发中的安全漏洞响应管理的方法和***
US9152795B2 (en) * 2011-09-30 2015-10-06 Tata Consultancy Services Limited Security vulnerability correction
JP5845888B2 (ja) * 2011-12-26 2016-01-20 日本電気株式会社 ソフトウェア修正装置、ソフトウェア修正システム、ソフトウェア修正方法、及び、ソフトウェア修正プログラム
US9170782B2 (en) * 2012-03-27 2015-10-27 Microsoft Technology Licensing, Llc Extensible mechanism for providing suggestions in a source code editor
FR2995429B1 (fr) * 2012-09-10 2015-04-10 Oberthur Technologies Procede de test de la securite d'un dispositif electronique vis-a-vis d'une attaque, et dispositif electronique mettant en oeuvre des contre-mesures
US9632771B2 (en) * 2012-12-13 2017-04-25 Microsoft Technology Licensing, Llc Association of metadata with source code and applications and services premised thereon
JP6016613B2 (ja) * 2012-12-21 2016-10-26 三菱電機株式会社 ソフトウェア信頼性評価装置、ソフトウェア信頼性評価方法、及びプログラム
US9128723B2 (en) * 2013-05-28 2015-09-08 Adobe Systems Incorporated Method and apparatus for dynamic document object model (DOM) aware code editing
JP2015225513A (ja) * 2014-05-28 2015-12-14 株式会社日立製作所 情報表示装置、および情報表示方法
JP2017520842A (ja) * 2014-06-13 2017-07-27 ザ・チャールズ・スターク・ドレイパー・ラボラトリー・インコーポレイテッド ソフトウェア分析のためのシステムおよび方法
US9798875B2 (en) * 2015-02-03 2017-10-24 Easy Solutions Enterprises Corp. Systems and methods for detecting and addressing HTML-modifying malware
US9792443B1 (en) * 2015-03-12 2017-10-17 Whitehat Security, Inc. Position analysis of source code vulnerabilities
US9965633B2 (en) * 2015-12-29 2018-05-08 Sap Se Using code similarities for improving auditing and fixing of SAST-discovered code vulnerabilities
CN110383238B (zh) * 2016-05-15 2024-01-05 新思科技有限公司 用于基于模型的软件分析的***和方法
US10275601B2 (en) * 2016-06-08 2019-04-30 Veracode, Inc. Flaw attribution and correlation
JP6769265B2 (ja) * 2016-11-29 2020-10-14 大日本印刷株式会社 電子情報記憶媒体、icカード、データ異常確認方法、及びデータ異常確認プログラム
US10503910B2 (en) * 2017-06-06 2019-12-10 Sap Se Security testing framework including virtualized server-side platform
US10628129B2 (en) * 2017-08-08 2020-04-21 Accenture Global Solutions Limited Intellectual automated security, performance and code generation framework

Also Published As

Publication number Publication date
US20210157929A1 (en) 2021-05-27
WO2020025463A1 (de) 2020-02-06
DE102018213053A1 (de) 2020-02-06
KR20210024161A (ko) 2021-03-04
CN112534400A (zh) 2021-03-19
JP2021533476A (ja) 2021-12-02

Similar Documents

Publication Publication Date Title
WO2020025463A1 (de) Verfahren zum analysieren von quelltexten
Gerevini et al. Inferring state constraints for domain-independent planning
DE60313652T2 (de) Verfahren und gerät zur kontrolle der umwandlung von programm-kodes
DE102005042126A1 (de) Verfahren und Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes
EP3864547B1 (de) Verfahren zur detektion sicherheitsrelevanter datenflüsse
EP3306295B1 (de) Verfahren und vorrichtung zum testen elektronischer steuerungen, insbesondere zum testen von automobilsteuerungen
DE10038499A1 (de) Verfahren und System für die verbesserte Entwicklungsprüfung mittels angepasster Ablaufverfolgung
DE112019002778T5 (de) Simulationsvorrichtung, simulationsverfahren und elektronische steuereinheitsvorrichtung
DE102011006000B4 (de) Signaturaktualisierung durch Codetransformation
DE102009050161A1 (de) Verfahren und Vorrichtung zum Testen eines Systems mit zumindest einer Mehrzahl von parallel ausführbaren Softwareeinheiten
DE102021207872A1 (de) Kompositionelle verifikation von eingebetteten softwaresystemen
AT514731A2 (de) Verfahren zur Verifizierung generierter Software sowie Verifizierungseinrichtung zum Durchführen eines solchen Verfahrens
EP3173928B1 (de) Verfahren und vorrichtung zum überprüfen eines komponentenfehlerbaums
DE102005048029B4 (de) Compiliervorrichtung und Verfahren zum Compilieren
DE10325513B4 (de) Verfahren und Vorrichtung zum Erstellen eines Verhaltensaspekts einer Schaltung zur formalen Verifikation
DE102021132302A1 (de) Compilervalidierung
DE102010014720A1 (de) Verfahren zum Verifizieren eines aus einem Quellmodell generierten Zielprogramms
DE102009033211A1 (de) Chipkarte mit Überwachung der Integrität auf Softwarebasis
DE102021207871A1 (de) Automatisierte erzeugung von vorbedingungen für einen programmiercode
DE10110050A1 (de) Verfahren zur Absicherung sicherheitskritischer Programmteile vor versehentlicher Ausführung und eine Speichereinrichtung zur Durchführung dieses Verfahrens
DE102011077177A1 (de) Verfahren zur rechnergestützten Analyse von fehlerhaftem Quellcode in einer Hardware-Beschreibungssprache
DE102022201857A1 (de) Verfahren zum Steuern einer Robotervorrichtung
DE10300541A1 (de) Erzeugen einer ausführbaren Datei
DE102005006832A1 (de) Schaltungsanordnung und Verfahren zur gesicherten Datenverarbeitung und deren Verwendung
DE102005063499B4 (de) Compiliervorrichtung und Verfahren zum Compilieren

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20210303

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20220310

REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20220423