Побудова та збереження у графовій базі Neo4j абстрактного семантичного графа вихідних кодів PHP-додатків

Thumbnail Image
Бабич, Трохим
Гороховський, Семен
Journal Title
Journal ISSN
Volume Title
Здійснено реалізацію можливості багаторазового використання графів потоку керування для проведення над ними повторного статичного аналізу (можливість проведення пошуку недоброякісного коду як за стилістикою, так і щодо наявності вразливостей, що їх він створює у результаті). Проведено аналіз декількох граматик для підбору оптимальної, а також порівняння баз даних для конкретної цільової задачі (вибудови графа з великою кількістю точок).
Static code analysis is a very important stage in the development and implementation of software, and it needs to be used to obtain a better code. The most complicated in static analysis is the analysis of source code, and further analysis. Analysis of the source code can be done multiple times and expand the set of necessary grammar. The main goal was and remains to provide a solution to reduce the time needed for a global reassessment of static analysis at code level after a change. The main problem when using static code analysis is to build an abstract semantic graph, because each software solution is provided with a separate data warehouse. The proposed solution proposes to use as a database repository using graphs. Thus, the storage mechanisms of the created abstract semantic graph have been simplified, which in turn, in addition to increasing the clarity of the information we store, provides convenient ways to further work with the stored information. The developed solution can transform a rather large source repository into a graphic representation and maintain it later. It is found that the approach is suitable for carrying out code compliance checks and for performing static analysis tests on a graphic representation. This approach also uses advanced file-level detailing, accelerating static analysis. Based on my measurements, the frameworks are fast enough to help their users quickly change the repository of codes. This article confirms the thesis about the possibility of storing an abstract semantic graph in a graph database, and after refinement, if it contains sufficient transformations and requests for language processing, can become a complete transport for communication between various static analysis tools that usually perform one of two the functions of verification either for quality or for vulnerability, thereby making a unified creation of an abstract semantic graph. As an improvement it is necessary to consider the possibility of incremental analysis – the analysis of changes in the code, in order to minimize resource costs for a rather resource intensive operation of the structure of the abstract semantic graph.
графові бази даних, статичний аналіз коду, PHP, вразливості, інформаційна безпека, стаття, graph database, static code analysis, php, vulnerability, information security
Бабич Т. А. Побудова та збереження у графовій базі Neo4j абстрактного семантичного графа вихідних кодів PHP-додатків / Бабич Т. А., Гороховський С. С. // Наукові записки НаУКМА. Комп'ютерні науки. - 2020. - Т. 3. - С. 27-30.