Reducing Software Vulnerability with the Goblint Static Analyzer
With Kalmer Apinis, Varmo Vene, Helmut Seidl
There are many topics possible within our Goblint analyzer project. This is a great topic if you are interested in functional programming. We are looking to shift our focus towards security analysis with a strong focus on usability.
AI for Code: Automated Test Generation.
With Tambet Matiisen, Kristjan Sägi, Triin Kask
I am currently very interested in applications of AI to software development; in particular, techniques that combine machine reasoning (automated theorem proving) and machine learning, such as Microsoft's DeepCoder. We are currently launching a project with industrial partners to automatically generate tests to increase code coverage.
Simulating Software Behaviour from Source Code
With Fredrik Milani
Currently when a developer has finished writing his/her code, the program is deployed in a test environment and examined against predefined test cases. When existing software programs are being enhanced, the desired changes are confirmed to ensure that they are functioning correctly and according to the requirements. The undesired changes are detected if the behaviour is in conflict with the requirements. As such, undesired changes are oftentimes not detected prior to the deployment in the live environment. In light of this context, this thesis topic aims at developing an automated method to elicit the behaviour of a software from its source code.
Software Logs on the Blockchain
With Fredrik Milani
Software systems are constantly being attacked and hacked. The damage and cost of handling the consequences are staggering. A way to minimize the extent of the damage done by hackers is to set up a SOA with highly autonomous components, possibly even a microservice architecture. Still, one might argue that it will never be possible to completely stop systems from being hacked but if they are hacked, the clean-up will be easier if one knows exactly what was done in the system. As such, the log becomes key. However, the logs can be manipulated by the hackers. This thesis topic is about creating a logging system that applies the principles of blockchain technology (in particular DLT) to a SOA for the purpose of creating a log that cannot be tampered or deleted.