DSpace/Manakin Repository

Uma técnica para detectar fraquezas de código em programas C.

Mostrar registro simples

dc.creator.ID MUNIZ, R. C. pt_BR
dc.creator.Lattes http://lattes.cnpq.br/1454914002384966 pt_BR
dc.contributor.advisor1 ANDRADE, Wilkerson de Lucena.
dc.contributor.advisor1ID ANDRADE, W. L. pt_BR
dc.contributor.advisor1ID Andrade, Wilkerson L. pt_BR
dc.contributor.advisor1ID ANDRADE, WILKERSON. pt_BR
dc.contributor.advisor1Lattes http://lattes.cnpq.br/3697205933296303 pt_BR
dc.contributor.advisor2 MACHADO, Patricia Duarte de Lima.
dc.contributor.advisor2ID MACHADO, P. D. L. pt_BR
dc.contributor.advisor2ID Machado, Patrícia D. L. pt_BR
dc.contributor.advisor2ID MACHADO, PATRICIA D. L. pt_BR
dc.contributor.advisor2Lattes http://lattes.cnpq.br/2495918356675019 pt_BR
dc.contributor.referee1 GOMES, Reinaldo Cézar de Morais.
dc.contributor.referee1ID GOMES, Reinaldo Cézar de Morais. pt_BR
dc.contributor.referee1ID Cezar de Morais Gomes, Reinaldo. pt_BR
dc.contributor.referee1ID GOMES, R. pt_BR
dc.contributor.referee1Lattes http://lattes.cnpq.br/8132074356628564 pt_BR
dc.contributor.referee2 SOUTO, Sabrina de Figueiredo.
dc.contributor.referee2ID SOUTO, S. F. pt_BR
dc.contributor.referee2ID Sabrina Souto. pt_BR
dc.contributor.referee2ID SOUTO, SABRINA. pt_BR
dc.contributor.referee2Lattes http://lattes.cnpq.br/0595422027989879 pt_BR
dc.contributor.referee3 ZORZO, Avelino Francisco.
dc.contributor.referee3ID ZORZO, A. F. pt_BR
dc.contributor.referee3ID ZORZO, A pt_BR
dc.contributor.referee3ID Zorzo, A.F. pt_BR
dc.contributor.referee3Lattes http://lattes.cnpq.br/4315350764773182 pt_BR
dc.description.resumo O 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.country Brasil pt_BR
dc.publisher.department Centro de Engenharia Elétrica e Informática - CEEI pt_BR
dc.publisher.program PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO pt_BR
dc.publisher.initials UFCG pt_BR
dc.subject.cnpq Ciência da Computação pt_BR
dc.title Uma técnica para detectar fraquezas de código em programas C. pt_BR
dc.date.issued 2022-03-04
dc.description.abstract Companies’ 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.uri http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/27229
dc.date.accessioned 2022-09-15T17:40:10Z
dc.date.available 2022-09-15
dc.date.available 2022-09-15T17:40:10Z
dc.type Tese pt_BR
dc.subject Engenharia de Software pt_BR
dc.subject Teste de Software pt_BR
dc.subject Programas C pt_BR
dc.subject Fraqueza pt_BR
dc.subject Segurança – Sistemas de Software pt_BR
dc.subject Software Engineering pt_BR
dc.subject Software Testing pt_BR
dc.subject C programs pt_BR
dc.subject Weakness pt_BR
dc.subject Security – Software Systems pt_BR
dc.rights Acesso Aberto pt_BR
dc.creator MUNIZ, Raphael de Carvalho.
dc.publisher Universidade Federal de Campina Grande pt_BR
dc.language por pt_BR
dc.title.alternative A technique for detecting code weaknesses in C programs. pt_BR
dc.identifier.citation MUNIZ, 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/27229 pt_BR


Arquivos deste item

Este item aparece na(s) seguinte(s) coleção(s)

Mostrar registro simples

Buscar DSpace


Busca avançada

Navegar

Minha conta