Please use this identifier to cite or link to this item: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/27229
Full metadata record
DC FieldValueLanguage
dc.creator.IDMUNIZ, R. C.pt_BR
dc.creator.Latteshttp://lattes.cnpq.br/1454914002384966pt_BR
dc.contributor.advisor1ANDRADE, Wilkerson de Lucena.-
dc.contributor.advisor1IDANDRADE, W. L.pt_BR
dc.contributor.advisor1IDAndrade, Wilkerson L.pt_BR
dc.contributor.advisor1IDANDRADE, WILKERSON.pt_BR
dc.contributor.advisor1Latteshttp://lattes.cnpq.br/3697205933296303pt_BR
dc.contributor.advisor2MACHADO, Patricia Duarte de Lima.-
dc.contributor.advisor2IDMACHADO, P. D. L.pt_BR
dc.contributor.advisor2IDMachado, Patrícia D. L.pt_BR
dc.contributor.advisor2IDMACHADO, PATRICIA D. L.pt_BR
dc.contributor.advisor2Latteshttp://lattes.cnpq.br/2495918356675019pt_BR
dc.contributor.referee1GOMES, Reinaldo Cézar de Morais.-
dc.contributor.referee1IDGOMES, Reinaldo Cézar de Morais.pt_BR
dc.contributor.referee1IDCezar de Morais Gomes, Reinaldo.pt_BR
dc.contributor.referee1IDGOMES, R.pt_BR
dc.contributor.referee1Latteshttp://lattes.cnpq.br/8132074356628564pt_BR
dc.contributor.referee2SOUTO, Sabrina de Figueiredo.-
dc.contributor.referee2IDSOUTO, S. F.pt_BR
dc.contributor.referee2IDSabrina Souto.pt_BR
dc.contributor.referee2IDSOUTO, SABRINA.pt_BR
dc.contributor.referee2Latteshttp://lattes.cnpq.br/0595422027989879pt_BR
dc.contributor.referee3ZORZO, Avelino Francisco.-
dc.contributor.referee3IDZORZO, A. F.pt_BR
dc.contributor.referee3IDZORZO, Apt_BR
dc.contributor.referee3IDZorzo, A.F.pt_BR
dc.contributor.referee3Latteshttp://lattes.cnpq.br/4315350764773182pt_BR
dc.description.resumoO investimento de empresas na implementação de meios para garantir a segurança em sistemas de software nos faz perceber tamanha importância deste tema. Todavia, garantir esta característica não é uma atividade trivial. Vários sistemas, como o Linux e OpenSSL, são implementados utilizando a linguagem C, e uma vulnerabilidade nesses sistemas pode impactar muitos usuários. No entanto, apesar dos esforços em aplicar técnicas e ferramentas com o objetivo de tornar sistemas de software mais seguros, esses sistemas ainda apresentam fraquezas de código, levando a códigos vulneráveis. O número de vulnerabilidades repor- tadas aumentou nos últimos anos, onde mais de 18 mil vulnerabilidades foram reportadas ao National Vulnerability Database (NVD) em 2020. Ferramentas de análise estática, como Flawfinder e Cppcheck, podem ajudar neste problema, dando indícios de alguns tipos de fraquezas. No entanto, este tipo de ferramenta apresenta uma alta taxa de falsos positivos, ou seja, um problema relatado em um programa quando nenhum problema realmente existe. Em síntese, neste trabalho apresentamos uma técnica que combina análise estática com teste de software para detectar fraquezas introduzidas no código-fonte durante os estágios iniciais de desenvolvimento de programas C. Consideramos que identificar problemas antecipadamente reduz o custo de correção. Nós implementamos esta técnica em um framework chamado Weaknesses Testing ou WTT. Por fim, nós realizamos dois estudos para avaliar a aplicação prática da técnica proposta. O primeiro estudo avaliou a técnica proposta com programas reais de código aberto, com o objetivo de detectar novas fraquezas. Nós avaliamos 103 warnings de 6 projetos diferentes e detectamos 22 fraquezas de três tipos: Buffer Overflow, Format String e Integer Overflow. Por sua vez, no segundo estudo avaliamos a técnica com um conjunto de exemplos de vulnerabilidades conhecidas. Nós avaliamos um total de 2.834 funções do conjunto de dados Juliet Test Suite com fraquezas CWE-190: Integer Overflow or Wraparound, CWE-191: Integer Underflow (Wrap or Wraparound) e CWE-369: Divide By Zero. Os resultados mostram evidências de que nossa técnica pode ajudar os desen- volvedores a antecipar a detecção de fraquezas em programas C, reduzindo a ocorrência de vulnerabilidade em versões operacionais.pt_BR
dc.publisher.countryBrasilpt_BR
dc.publisher.departmentCentro de Engenharia Elétrica e Informática - CEEIpt_BR
dc.publisher.programPÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃOpt_BR
dc.publisher.initialsUFCGpt_BR
dc.subject.cnpqCiência da Computaçãopt_BR
dc.titleUma técnica para detectar fraquezas de código em programas C.pt_BR
dc.date.issued2022-03-04-
dc.description.abstractCompanies’ investment in implementing means to ensure security in software systems makes us realize the importance of this topic. However, ensuring this feature is not a trivial activity. Several critical systems, such as Linux and OpenSSL, are implemented using the C language, and a vulnerability in these systems may impact many users. However, despite the efforts to apply techniques and tools to make software systems more secure, these systems still have code weaknesses, leading to vulnerable code. The number of reported vulnera- bilities has increased in the last years, where more than 18 thousand vulnerabilities were reported to the National Vulnerability Database (NVD) in 2020. Static analysis tools, such as Flawfinder and Cppcheck, may help in this problem, reporting some kinds of weaknesses. However, this kind of tool presents a high rate of false positives, i.e., an issue reported in a program when no problem actually exists. In summary, in this work we present a technique that combines static analysis with software testing to detect weaknesses introduced in the code during earlier development stages of C programs. We believe the earlier the weakness is detected, the lower is the cost to fix it. We implemented this technique in a framework named Weaknesses Testing or WTT. Finally, we carried out two studies to evaluate the prac- tical application of the proposed technique. The first study evaluated the proposed technique with real open-source programs to detect new weaknesses. We evaluated 103 warnings from 6 different projects and detected 22 weaknesses of three kinds: Buffer Overflow, Format String, and Integer Overflow. On the other hand, in the second study, we evaluated the technique with a set of examples of known vulnerabilities. We evaluated a total of 2,834 functions from the Juliet Test Suite dataset with weaknesses CWE-190: Integer Overflow or Wraparound, CWE-191: Integer Underflow (Wrap or Wraparound), and CWE-369: Divide By Zero. The results show evidence that our technique can help developers anticipate the detection of weaknesses in C programs, reducing vulnerability in operational versions.pt_BR
dc.identifier.urihttp://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/27229-
dc.date.accessioned2022-09-15T17:40:10Z-
dc.date.available2022-09-15-
dc.date.available2022-09-15T17:40:10Z-
dc.typeTesept_BR
dc.subjectEngenharia de Softwarept_BR
dc.subjectTeste de Softwarept_BR
dc.subjectProgramas Cpt_BR
dc.subjectFraquezapt_BR
dc.subjectSegurança – Sistemas de Softwarept_BR
dc.subjectSoftware Engineeringpt_BR
dc.subjectSoftware Testingpt_BR
dc.subjectC programspt_BR
dc.subjectWeaknesspt_BR
dc.subjectSecurity – Software Systemspt_BR
dc.rightsAcesso Abertopt_BR
dc.creatorMUNIZ, Raphael de Carvalho.-
dc.publisherUniversidade Federal de Campina Grandept_BR
dc.languageporpt_BR
dc.title.alternativeA technique for detecting code weaknesses in C programs.pt_BR
dc.identifier.citationMUNIZ, Raphael de Carvalho. Uma técnica para detectar fraquezas de código em programas C. 2022. 148 fl. Tese (Doutorado em Ciência da Computação), Programa de Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Campina Grande, Paraíba, Brasil, 2022. Disponível em: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/27229pt_BR
Appears in Collections:Doutorado em Ciência da Computação.

Files in This Item:
File Description SizeFormat 
RAPHAEL DE CARVALHO MUNIZ – TESE PPGCC 2022.pdfRaphael de Carvalho Muniz - Tese PPGCC 20224.53 MBAdobe PDFView/Open


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