Please use this identifier to cite or link to this item: http://repositorio.unicamp.br/jspui/handle/REPOSIP/332193
Full metadata record
DC FieldValueLanguage
dc.contributor.CRUESPUNIVERSIDADE ESTADUAL DE CAMPINASpt_BR
dc.descriptionOrientador: Paulo Lício de Geuspt_BR
dc.descriptionDissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computaçãopt_BR
dc.format.extent1 recurso online (93 p.) : il., digital, arquivo PDF.pt_BR
dc.format.mimetypeapplication/pdfpt_BR
dc.languagePortuguêspt_BR
dc.relation.requiresRequisitos do sistema: Software para leitura de arquivo em PDFpt_BR
dc.typeDISSERTAÇÃO DIGITALpt_BR
dc.titleRobustness testing of CoAP implementations and applications through : Teste de robustez de implementações e aplicações utilizando CoAP por meio de técnicas de fuzzingpt_BR
dc.title.alternativeTeste de robustez de implementações e aplicações utilizando CoAP por meio de técnicas de fuzzingpt_BR
dc.contributor.authorMelo, Bruno da Silva, 1990-pt_BR
dc.contributor.advisorGeus, Paulo Lício de, 1956-pt_BR
dc.contributor.institutionUniversidade Estadual de Campinas. Instituto de Computaçãopt_BR
dc.contributor.nameofprogramPrograma de Pós-Graduação em Ciência da Computaçãopt_BR
dc.subjectSoftware - Testespt_BR
dc.subjectSoftware - Segurançapt_BR
dc.subjectEngenharia de software - Injeção de falhaspt_BR
dc.subjectInternet das coisaspt_BR
dc.subjectFuzzing - Técnicapt_BR
dc.subject.otherlanguageFuzzing - Techniqueen
dc.subject.otherlanguageComputer software - Testingen
dc.subject.otherlanguageComputer software - Securityen
dc.subject.otherlanguageSoftware engineering - Fault injectionen
dc.subject.otherlanguageInternet of thingsen
dc.description.abstractResumo: Constrained Application Protocol (CoAP) é um protocolo da camada de aplicação padronizado pelo IETF em 2014. Segue o estilo arquitetural RESTful e tem como objetivos simplicidade e baixa sobrecarga, para ser utilizado como facilitador da Internet das Coisas (IoT). Portanto, apesar de compartilhar características em comum com o HTTP, o protocolo possui codificação binária, roda sobre UDP etc. Com o objetivo de estudar e aperfeiçoar na prática a segurança de software para IoT, nesta dissertação nós projetamos e implementamos uma ferramenta chamada FuzzCoAP. Este sistema consiste em um ambiente completo para o teste de aspectos de robustez e segurança de aplicações e implementações lado servidor do CoAP. Cinco técnicas de fuzzing caixa-preta foram implementadas: Aleatória, Aleatória Informada, Mutacional, Mutacional Inteligente e Geracional. Nós utilizamos essa ferramenta para testar um conjunto de amostras selecionadas ¿ aplicações CoAP rodando diferentes implementações do protocolo. Para selecionar essas amostras, nós conduzimos buscas online procurando implementações CoAP disponíveis e detalhes a elas relacionados, como estado de maturidade e popularidade. Nós selecionamos 25 amostras (aplicações), cobrindo 25 bibliotecas (implementações) diferentes de CoAP distribuídas em 8 linguagens de programação, incluindo amostras dos sistemas operacionais específicos para IoT RIOT OS e Contiki-NG. FuzzCoAP foi capaz de detectar um total de 100 falhas em 14 das 25 amostras testadas. Resultados experimentais mostram uma média de 31,3% na taxa de falsos positivos e 87% em reprodutibilidade das falhas (considerando uma "contagem conservadora de falhas") e uma média de 1,9% na taxa de falsos positivos com 100% em reprodutibilidade de falhas considerando uma contagem "otimista". Campanhas de fuzzing são executadas na ordem de minutos para a maioria das técnicas (com uma média de 45 minutos por campanha). A exceção é o fuzzer geracional, que atinge uma média de 12 horas por campanha, dado que este utiliza uma quantidade consideravelmente maior de casos de teste que as outras técnicas. Nós fornecemos uma discussão sobre a comparação dessas cinco técnicas de fuzzing no nosso cenário, e sobre o quão robustas (e seguras) as implementações de CoAP testadas são. Nossos dados indicam que as técnicas são complementares entre si, corroborando com outros estudos que sugerem a combinação de várias técnicas para atingir maior cobertura e encontrar mais vulnerabilidades. Finalmente, toda a pesquisa foi conduzida com um esforço para ser tão aberta e reproduzível quanto poderíamos torná-la. Portanto, tanto o código-fonte do FuzzCoAP como a coleção de amostras estão livremente acessíveis para o público. Também, para maximizar o impacto real na segurança de IoT, todas as falhas foram reportadas aos mantenedores das bibliotecas. Algumas já foram corrigidas, enquanto outras estão sendo manejadas no presente momentopt
dc.description.abstractAbstract: The Constrained Application Protocol (CoAP) is an application-layer protocol standardized by the IETF in 2014. It follows the RESTful architectural style and aims for simplicity and low overhead, in order to be used as an enabler of the Internet of Things (IoT). Thus, even though it has features in common with HTTP, it is binary-encoded, runs over UDP etc. With the goal of studying and improving practical IoT software security, in this dissertation we design and implement a tool called FuzzCoAP. It is a system comprising a complete environment for testing robustness and security aspects of CoAP server-side implementations and applications. Five black-box fuzzing techniques were implemented in FuzzCoAP: Random, Informed Random, Mutational, Smart Mutational and Generational fuzzers. We use this tool to test a set of selected samples¿CoAP applications running different implementations of the protocol. To select these samples, we conducted online searches looking for available CoAP implementations and related details, such as maturity status and popularity. We selected 25 samples (applications), covering 25 different CoAP libraries (implementations) distributed across 8 programming languages, including samples from IoT-specific operating systems RIOT OS and Contiki-NG. FuzzCoAP was able to detect a total of 100 failures in 14 out of the 25 tested samples. Experimental results show an average of 31.3% false positive rate and 87% failure reproducibility when considering a "conservative failure counting" and 1.9% false positive rate with 100% failure reproducibility for an "optimistic" one. Fuzzing campaigns are executed in the order of minutes for most techniques (with an average of 45 minutes per campaign). The exception is the generational fuzzer, which attains an average of 12 hours per campaign, given it uses a considerably larger amount of test cases than the other techniques. We provide a discussion on how those five fuzzing techniques compare to each other in our scenario, and how robust (and secure) the CoAP implementations targeted are. Our data indicates the techniques are complementary to each other, corroborating with other studies suggesting that several techniques should be combined to achieve greater coverage and find more vulnerabilities. Finally, the entire research was conducted with an effort to be as open and reproducible as we could make it. Thus, both FuzzCoAP's source-code as well as the collection of samples are freely available to the public. Likewise, to maximize the real-world impact on IoT security, all failures were reported to library maintainers. Some have already been fixed, while others are currently being handled, as of this text was writtenen
dc.publisher[s.n.]pt_BR
dc.date.issued2018pt_BR
dc.identifier.citationMELO, Bruno da Silva. Robustness testing of CoAP implementations and applications through: Teste de robustez de implementações e aplicações utilizando CoAP por meio de técnicas de fuzzing. 2018. 1 recurso online (93 p.). Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação, Campinas, SP. Disponível em: <http://www.repositorio.unicamp.br/handle/REPOSIP/332193>. Acesso em: 6 set. 2018.pt_BR
dc.description.degreelevelMestradopt_BR
dc.description.degreedisciplineCiência da Computaçãopt_BR
dc.description.degreenameMestre em Ciência da Computaçãopt_BR
dc.contributor.committeepersonalnameGrégio, André Ricardo Abedpt_BR
dc.contributor.committeepersonalnameMontecchi, Leonardopt_BR
dc.date.defense2018-06-25T00:00:00Zpt_BR
dc.description.sponsordocumentnumber132826/2015-1pt_BR
dc.date.available2018-09-06T13:08:12Z-
dc.date.accessioned2018-09-06T13:08:12Z-
dc.description.provenanceMade available in DSpace on 2018-09-06T13:08:12Z (GMT). No. of bitstreams: 1 Melo_BrunoDaSilva _M.pdf: 2887916 bytes, checksum: a0a0c57216afaef8732ab6c9f2eca493 (MD5) Previous issue date: 2018en
dc.identifier.urihttp://repositorio.unicamp.br/jspui/handle/REPOSIP/332193-
dc.description.sponsorCNPQpt_BR
Appears in Collections:IC - Tese e Dissertação

Files in This Item:
File SizeFormat 
Melo_BrunoDaSilva _M.pdf2.82 MBAdobe PDFView/Open


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