Runtime Checking of Privacy and Security Contracts in Dynamic Architectures
Běhové ověřování kontraktů pro soukromí a bezpečnost v dynamických architekturách
diploma thesis (DEFENDED)

View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/101470Identifiers
Study Information System: 199787
Collections
- Kvalifikační práce [10527]
Author
Advisor
Referee
Hnětynka, Petr
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Software Systems
Department
Department of Distributed and Dependable Systems
Date of defense
10. 9. 2018
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Very good
Keywords (Czech)
jvmti, běhové monitorování, bytekódová instrumentace, dynamické architektury, GliniorKeywords (English)
jvmti, runtime monitoring, bytecode instrumentation, dynamic architectures, GliniorMezi důležité aspekty konceptu IoT patří zajisté soukromí a bezpečí. Jsou známy případy z minulosti, kde implementace bezpečnosti nebyla dostačující, což umožnilo hackerům získat nepovolený přístup k desítkám tisíc každo- denních zařízení připojených k internetu a zneužít tuto moc k ochromení komunikace na internetu. V této práci jsme navrhli a naimplementovali nástroj Glinior, který umožňuje definovat vzájemné kontrakty mezi ob- jekty nebo komponentami v aplikaci, a zajistit, že komunikace mezi těmito objekty nebo komponentami probíhá podle takto specifikovaných kontraktů. Nástroj Glinior pro ověřování kontraktů specifikované uživatelem používá techniky dynamické analýzy, pomocí frameworku JVMTI v kombinaci s kni- hovnou ASM pro manipulaci s byte-kódem.
Important aspects of the IoT concept include privacy and security. There are various examples from the past, where implementation of security was insuffi- cient, which allowed hackers to gain unauthorized access to tens of thousands of everyday objects connected to the Internet and abuse this power to par- alyze the communication over the Internet. In this thesis we designed and implemented the Glinior tool that allows to define the contracts between objects or components in the application, and ensures that the communi- cation between specified objects or components happens according to those contracts. The Glinior tool uses techniques of dynamic analysis to verify contracts defined by the user. This is done by using the JVMTI framework with combination of the ASM library for bytecode manipulation.