Details

Robust Graph-Based Static Code Analysis


Robust Graph-Based Static Code Analysis


1. Auflage

von: Samuel Hopstock

CHF 19.00

Verlag: Grin Verlag
Format: PDF
Veröffentl.: 14.11.2019
ISBN/EAN: 9783346063663
Sprache: englisch
Anzahl Seiten: 59

Dieses eBook erhalten Sie ohne Kopierschutz.

Beschreibungen

Bachelor Thesis from the year 2019 in the subject Computer Science - IT-Security, grade: 1,0, Technical University of Munich (Fakultät für Informatik), language: English, abstract: The topic of this thesis is to develop a graph-based static analysis framework for Java code that tolerates incomplete or non-compiling source code. For this purpose, the concept of Code Property Graphs (CPGs) is to be researched and extended, in order to provide information about more complex erroneous patterns in Java source code. Additionally, an evaluation of the resulting graph model is to be performed, by searching for cryptographic vulnerabilities in publicly available Java projects. This evaluation needs to show, whether this graph-based analysis approach is capable of finding security issues in Java code, and how feasible the analysis is from a performance point of view.

Automatic code analysis is a widely used technique to find and eliminate errors in software projects. Instead of executing the program and verify that its behavior is correct, as dynamic analysis does it, static analysis is applied on its source code. Here, we search for suspicious patterns that are likely to indicate erroneous behavior. A special type of software bugs are those errors, that lead to security vulnerabilities. In this case, attackers may be able to undermine fundamental security aspects, by exfiltrating sensitive user data from server applications or assume control over the machine running the program in question.

Security vulnerabilities in the code can have drastic consequences, which is why it is important to identify them as fast as possible and fix them immediately afterwards. This thesis extends the concept of Code Property Graphs (CPGs), which has been proposed for static analysis of C/C++ code, to be applied on programs and incomplete code snippets written in Java. Unifying Abstract Syntax Trees (ASTs), Control Flow Graphs (CFGs) and Data Flow Graphs (DFGs) in a single datastructure, this approach enables searching for vulnerabilities whose code patterns are spread out across the boundaries of single methods and classes. These patterns are identified using the graph query language cypher, which is provided by the graph database Neo4j. In an evaluation run on 100 public repositories on GitHub using cryptography, 135 findings of cryptographic API misuse have been identified using this technique. These include the use of insecure algorithms, like the Data Encryption Standard (DES) or Electronic Code Book mode (ECB), and hardcoded passwords that are used for encryption purposes.

This thesis has been created in cooperation with Fraunhofer AISEC

Diese Produkte könnten Sie auch interessieren:

From Grids To Service and Pervasive Computing
From Grids To Service and Pervasive Computing
von: Thierry Priol, Marco Vanneschi
PDF ebook
CHF 118.00
Grid Computing
Grid Computing
von: Sergei Gorlatch, Paraskevi Fragopoulou, Thierry Priol
PDF ebook
CHF 177.00
Autonomic Communication
Autonomic Communication
von: Athanasios V. Vasilakos, Manish Parashar, Stamatis Karnouskos, Witold Pedrycz
PDF ebook
CHF 177.00