Please use this identifier to cite or link to this item: http://hdl.handle.net/1843/ESBF-AAFJFQ
Type: Tese de Doutorado
Title: Securing networked embedded systems through distributed systems analysis
Authors: Fernando Augusto Teixeira
First Advisor: Jose Marcos Silva Nogueira
First Co-advisor: Leonardo Barbosa e Oliveira
First Referee: Eduardo Luzeiro Feitosa
Second Referee: Fernando Magno Quintao Pereira
Third Referee: Flavia Coimbra Delicato
metadata.dc.contributor.referee4: Mario Sergio Ferreira Alvim Junior
Abstract: Novas tecnologias, como a Internet das Coisas e Cloud Computing estão aumentando a importância de técnicas para analisar e entender sistemas distribuídos. A própria natureza de tais sistemas distribuídos torna um desafio sua programação e teste. Esta importância crescente exige ferramentas capazes de fornecer aos usuários sistemas corretos, confiáveis e seguros. Neste trabalho, nós defendemos que as abordagens tradicionais para analisar sistemas distribuídos não são expressivas o suficiente para enfrentar este desafio. Como solução para este problema, apresentamos um arcabouço para analisar sistemas em rede. Nossa ideia chave é olhar para um sistema distribuído como um todo, e não como programas separados que trocam mensagens. Ao fazer isso, nós podemos cruzar informações inferidas a partir de nós diferentes. Este cruzamento de dados aumenta a precisão das análises estáticas tradicionais. Para construir uma inter-programa de um sistema distribuído nós introduzimos um novo algoritmo que descobre ligações entre dois programas de forma eficiente. Essas ligações nos permitem construir uma visão das comunicações entre programas, um conhecimento que pode ser transmitido para uma ferramenta tradicional. Provamos que nosso algoritmo sempre termina e que modela corretamente a semântica do sistema distribuído. Para validar a nossa solução, nós implementamos nosso arcabouço como um extensão do compilador LLVM e criamos duas instâncias. A primeira instância foi usada para proteger seis aplicações do CointiOS contra ataques de estouro de buffer. Esta instância foi capaz de produzir código tão seguro quanto código garantido por análises tradicionais, no entanto, nossos binários são em média 18% mais eficientes em termos de energia. Desenvolvemos também um outra instância que usa os gráficos gerados pelo arcabouço para gerar uma visão do código (programming slices) que destaca a parte que possui dependência com a rede.
Abstract: New technologies such as the Internet of Things and Cloud Computing are increasing the importance of tools able to provide users with correct, reliable and secure systems. In this work, we claim that traditional static analysis tools are not expressive enough to address this challenge. As a solution, we present a framework to analyze networked systems. Our key insight is to look at a distributed system as a single body, and not as separate programs that exchange messages. By doing so, we can crosschecking information and then increase the precision of traditional static analysis tools. We introduce a novel algorithm that discovers inter-program links efficiently and prove that it always terminates and correctly models the semantics of a distributed system. We have implemented our framework on top of the LLVM compiler, and have used it to secure ContikiOS applications against buffer overflow attacks and to generate network programming slices.
Subject: Redes de computadores Medidas de segurança
Computação
Sistemas distribuidos
Sistemas distribuídos
Computadores Medidas de segurança
Sistemas embutidos de computador
language: Inglês
Publisher: Universidade Federal de Minas Gerais
Publisher Initials: UFMG
Rights: Acesso Aberto
URI: http://hdl.handle.net/1843/ESBF-AAFJFQ
Issue Date: 19-Nov-2015
Appears in Collections:Teses de Doutorado

Files in This Item:
File Description SizeFormat 
fernandoaugustoteixeira.pdf4.21 MBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.