Técnicas de contração de domínio de variáveis em verificação formal e detecção de vulnerabilidades de software usando programação por restrições e aritmética intervala
| Ano de defesa: | 2024 |
|---|---|
| Autor(a) principal: | |
| Outros Autores: | |
| Orientador(a): | |
| Banca de defesa: | |
| Tipo de documento: | Dissertação |
| Tipo de acesso: | Acesso aberto |
| Idioma: | por |
| Instituição de defesa: |
Universidade Federal do Amazonas
Instituto de Computação Brasil UFAM Programa de Pós-graduação em Informática |
| Programa de Pós-Graduação: |
Não Informado pela instituição
|
| Departamento: |
Não Informado pela instituição
|
| País: |
Não Informado pela instituição
|
| Palavras-chave em Português: | |
| Link de acesso: | https://tede.ufam.edu.br/handle/tede/10636 |
Resumo: | Nesta pesquisa são investigadas técnicas para resolução de problemas formulados para satisfazer um conjunto de restrições (Constraint Satisfaction Problems - CSP), modelados como expressões lógicas booleanas e cujas variáveis podem assumir valores reais, representando intervalos sobre os quais se aplica operações de aritmética intervalar e técnicas de programação por restrições (Constraint Programming - CP), para interseção, composição e contração de intervalos. Especificamente, o contexto de verificação formal de software é utilizado para a aplicação de redução do domínio de variáveis no pré-processamento de programas que usam verificação formal para provar por meio das teorias de módulo da satisfatibilidade (Satisfiability Modulo Theories - SMT) a satisfabilidade ou não da fórmula booleana que representa todos os estados do programa. Foi utilizado, portanto, o método formal de verificação de modelo limitado (Bounded Model Checking - BMC), que verifica em k passos se determinada propriedade é satisfatível ou, caso contrário, provê um contra-exemplo. Uma estratégia de pré-processamento BMC usando os programas modelados por CSP/CP e com soluções estimadas por uma técnica algorítmica de contração de intervalos é apresentada. Experimentos computacionais foram realizados usando benchmarks de programas em linguagem de programação C, Java e Kotlin, e utilizando o verificador ESBMC (e ESBMC-Jimple, desenvolvido no Projeto de PD&I SWPERFI UFAM-MOTOROLA, do qual esta pesquisa também faz parte) e outros. Os resultados indicam que, em muitos casos, há redução significativa do domínio das variáveis, influenciando na redução do espaço de busca exponencial da verificação de estados que, consequentemente, promove a diminuição do tempo de verificação dos programas, mostrando a adequabilidade da estratégia proposta. Além disso, o método também foi empregado na detecção de vulnerabilidades de softwares, especificamente naquelas que podem envolver operações com intervalos aritméticos, alcançando resultados satisfatórios para a maioria das categorias de vulnerabilidades utilizadas. |
| id |
UFAM_0805eaffc09c2d55c192da5a8b1c7a6f |
|---|---|
| oai_identifier_str |
oai:https://tede.ufam.edu.br/handle/:tede/10636 |
| network_acronym_str |
UFAM |
| network_name_str |
Biblioteca Digital de Teses e Dissertações da UFAM |
| repository_id_str |
|
| spelling |
Técnicas de contração de domínio de variáveis em verificação formal e detecção de vulnerabilidades de software usando programação por restrições e aritmética intervalaCIENCIAS EXATAS E DA TERRA: CIENCIA DA COMPUTACAOAritmética IntervalarESBMC-JimpleProgramação por RestriçõesVerificação Formal de SoftwareVerificação de Modelo LimitadoVulnerabilidadesNesta pesquisa são investigadas técnicas para resolução de problemas formulados para satisfazer um conjunto de restrições (Constraint Satisfaction Problems - CSP), modelados como expressões lógicas booleanas e cujas variáveis podem assumir valores reais, representando intervalos sobre os quais se aplica operações de aritmética intervalar e técnicas de programação por restrições (Constraint Programming - CP), para interseção, composição e contração de intervalos. Especificamente, o contexto de verificação formal de software é utilizado para a aplicação de redução do domínio de variáveis no pré-processamento de programas que usam verificação formal para provar por meio das teorias de módulo da satisfatibilidade (Satisfiability Modulo Theories - SMT) a satisfabilidade ou não da fórmula booleana que representa todos os estados do programa. Foi utilizado, portanto, o método formal de verificação de modelo limitado (Bounded Model Checking - BMC), que verifica em k passos se determinada propriedade é satisfatível ou, caso contrário, provê um contra-exemplo. Uma estratégia de pré-processamento BMC usando os programas modelados por CSP/CP e com soluções estimadas por uma técnica algorítmica de contração de intervalos é apresentada. Experimentos computacionais foram realizados usando benchmarks de programas em linguagem de programação C, Java e Kotlin, e utilizando o verificador ESBMC (e ESBMC-Jimple, desenvolvido no Projeto de PD&I SWPERFI UFAM-MOTOROLA, do qual esta pesquisa também faz parte) e outros. Os resultados indicam que, em muitos casos, há redução significativa do domínio das variáveis, influenciando na redução do espaço de busca exponencial da verificação de estados que, consequentemente, promove a diminuição do tempo de verificação dos programas, mostrando a adequabilidade da estratégia proposta. Além disso, o método também foi empregado na detecção de vulnerabilidades de softwares, especificamente naquelas que podem envolver operações com intervalos aritméticos, alcançando resultados satisfatórios para a maioria das categorias de vulnerabilidades utilizadas.This research investigates techniques for solving problems formulated to satisfy a set of constraints (Constraint Satisfaction Problems - CSP), modeled as Boolean logical expressions and whose variables can assume real values, representing intervals over which interval arithmetic operations and techniques of constraint programming (Constraint Programming - CP) are applied , for intersection, composition and contraction of intervals. Specifically, the context of formal software verification is used to get variable domain reduction in the preprocessing of programs by formal verification to prove, through Satisfiability Modulo Theories (SMT), the satisfiability or not from the Boolean formula that represents all states of the program. Therefore, it was used. the formal method of bounded model checking (Bounded Model Checking - BMC), which checks in k steps whether a given property is satisfiable or, if not, provides a counterexample. A BMC preprocessing strategy, using programs modeled by CSP/CP and with solutions estimated by an interval contraction algorithmic technique, is presented. Computational experiments were carried out using program benchmarks in C, Java and Kotlin programming languages, and using the ESBMC solver (and ESBMC-Jimple, developed in the SWPERFI UFAM-MOTOROLA PD\&I Project, of which this research is also part) and others. The results indicate that, in many cases, there is a significant reduction in the domain of variables, influencing the reduction of the exponential search space for state verification which, consequently, promotes a reduction in program verification time, showing the suitability of the proposed strategy. Furthermore, the method was also used to detect software vulnerabilities, specifically those that may involve operations with arithmetic intervals, achieving satisfactory results for most of the vulnerability categories used.FAPEAM - Fundação de Amparo à Pesquisa do Estado do AmazonasUniversidade Federal do AmazonasInstituto de ComputaçãoBrasilUFAMPrograma de Pós-graduação em InformáticaRodrigues, Rosiane de Freitashttp://lattes.cnpq.br/8358219976594707Mota, Edjard de SouzaMassera, José Miguel ArozteguiLima Filho, Eddie Batista deDeveza, Jessé de Souzahttp://lattes.cnpq.br/06106455824465972025-01-29T15:28:17Z2024-03-27info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfDEVEZA, Jessé de Souza. Técnicas de contração de domínio de variáveis em verificação formal e detecção de vulnerabilidades de software usando programação por restrições e aritmética intervala. 2024. 62 f. Dissertação (Mestrado em Informática) - Universidade Federal do Amazonas, Manaus (AM), 2024.https://tede.ufam.edu.br/handle/tede/10636porhttps://creativecommons.org/licenses/by-nc-nd/4.0/info:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFAMinstname:Universidade Federal do Amazonas (UFAM)instacron:UFAM2025-01-30T05:05:53Zoai:https://tede.ufam.edu.br/handle/:tede/10636Biblioteca Digital de Teses e Dissertaçõeshttp://200.129.163.131:8080/PUBhttp://200.129.163.131:8080/oai/requestddbc@ufam.edu.br||ddbc@ufam.edu.bropendoar:65922025-01-30T05:05:53Biblioteca Digital de Teses e Dissertações da UFAM - Universidade Federal do Amazonas (UFAM)false |
| dc.title.none.fl_str_mv |
Técnicas de contração de domínio de variáveis em verificação formal e detecção de vulnerabilidades de software usando programação por restrições e aritmética intervala |
| title |
Técnicas de contração de domínio de variáveis em verificação formal e detecção de vulnerabilidades de software usando programação por restrições e aritmética intervala |
| spellingShingle |
Técnicas de contração de domínio de variáveis em verificação formal e detecção de vulnerabilidades de software usando programação por restrições e aritmética intervala Deveza, Jessé de Souza CIENCIAS EXATAS E DA TERRA: CIENCIA DA COMPUTACAO Aritmética Intervalar ESBMC-Jimple Programação por Restrições Verificação Formal de Software Verificação de Modelo Limitado Vulnerabilidades |
| title_short |
Técnicas de contração de domínio de variáveis em verificação formal e detecção de vulnerabilidades de software usando programação por restrições e aritmética intervala |
| title_full |
Técnicas de contração de domínio de variáveis em verificação formal e detecção de vulnerabilidades de software usando programação por restrições e aritmética intervala |
| title_fullStr |
Técnicas de contração de domínio de variáveis em verificação formal e detecção de vulnerabilidades de software usando programação por restrições e aritmética intervala |
| title_full_unstemmed |
Técnicas de contração de domínio de variáveis em verificação formal e detecção de vulnerabilidades de software usando programação por restrições e aritmética intervala |
| title_sort |
Técnicas de contração de domínio de variáveis em verificação formal e detecção de vulnerabilidades de software usando programação por restrições e aritmética intervala |
| author |
Deveza, Jessé de Souza |
| author_facet |
Deveza, Jessé de Souza http://lattes.cnpq.br/0610645582446597 |
| author_role |
author |
| author2 |
http://lattes.cnpq.br/0610645582446597 |
| author2_role |
author |
| dc.contributor.none.fl_str_mv |
Rodrigues, Rosiane de Freitas http://lattes.cnpq.br/8358219976594707 Mota, Edjard de Souza Massera, José Miguel Aroztegui Lima Filho, Eddie Batista de |
| dc.contributor.author.fl_str_mv |
Deveza, Jessé de Souza http://lattes.cnpq.br/0610645582446597 |
| dc.subject.por.fl_str_mv |
CIENCIAS EXATAS E DA TERRA: CIENCIA DA COMPUTACAO Aritmética Intervalar ESBMC-Jimple Programação por Restrições Verificação Formal de Software Verificação de Modelo Limitado Vulnerabilidades |
| topic |
CIENCIAS EXATAS E DA TERRA: CIENCIA DA COMPUTACAO Aritmética Intervalar ESBMC-Jimple Programação por Restrições Verificação Formal de Software Verificação de Modelo Limitado Vulnerabilidades |
| description |
Nesta pesquisa são investigadas técnicas para resolução de problemas formulados para satisfazer um conjunto de restrições (Constraint Satisfaction Problems - CSP), modelados como expressões lógicas booleanas e cujas variáveis podem assumir valores reais, representando intervalos sobre os quais se aplica operações de aritmética intervalar e técnicas de programação por restrições (Constraint Programming - CP), para interseção, composição e contração de intervalos. Especificamente, o contexto de verificação formal de software é utilizado para a aplicação de redução do domínio de variáveis no pré-processamento de programas que usam verificação formal para provar por meio das teorias de módulo da satisfatibilidade (Satisfiability Modulo Theories - SMT) a satisfabilidade ou não da fórmula booleana que representa todos os estados do programa. Foi utilizado, portanto, o método formal de verificação de modelo limitado (Bounded Model Checking - BMC), que verifica em k passos se determinada propriedade é satisfatível ou, caso contrário, provê um contra-exemplo. Uma estratégia de pré-processamento BMC usando os programas modelados por CSP/CP e com soluções estimadas por uma técnica algorítmica de contração de intervalos é apresentada. Experimentos computacionais foram realizados usando benchmarks de programas em linguagem de programação C, Java e Kotlin, e utilizando o verificador ESBMC (e ESBMC-Jimple, desenvolvido no Projeto de PD&I SWPERFI UFAM-MOTOROLA, do qual esta pesquisa também faz parte) e outros. Os resultados indicam que, em muitos casos, há redução significativa do domínio das variáveis, influenciando na redução do espaço de busca exponencial da verificação de estados que, consequentemente, promove a diminuição do tempo de verificação dos programas, mostrando a adequabilidade da estratégia proposta. Além disso, o método também foi empregado na detecção de vulnerabilidades de softwares, especificamente naquelas que podem envolver operações com intervalos aritméticos, alcançando resultados satisfatórios para a maioria das categorias de vulnerabilidades utilizadas. |
| publishDate |
2024 |
| dc.date.none.fl_str_mv |
2024-03-27 2025-01-29T15:28:17Z |
| dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
| dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
| format |
masterThesis |
| status_str |
publishedVersion |
| dc.identifier.uri.fl_str_mv |
DEVEZA, Jessé de Souza. Técnicas de contração de domínio de variáveis em verificação formal e detecção de vulnerabilidades de software usando programação por restrições e aritmética intervala. 2024. 62 f. Dissertação (Mestrado em Informática) - Universidade Federal do Amazonas, Manaus (AM), 2024. https://tede.ufam.edu.br/handle/tede/10636 |
| identifier_str_mv |
DEVEZA, Jessé de Souza. Técnicas de contração de domínio de variáveis em verificação formal e detecção de vulnerabilidades de software usando programação por restrições e aritmética intervala. 2024. 62 f. Dissertação (Mestrado em Informática) - Universidade Federal do Amazonas, Manaus (AM), 2024. |
| url |
https://tede.ufam.edu.br/handle/tede/10636 |
| dc.language.iso.fl_str_mv |
por |
| language |
por |
| dc.rights.driver.fl_str_mv |
https://creativecommons.org/licenses/by-nc-nd/4.0/ info:eu-repo/semantics/openAccess |
| rights_invalid_str_mv |
https://creativecommons.org/licenses/by-nc-nd/4.0/ |
| eu_rights_str_mv |
openAccess |
| dc.format.none.fl_str_mv |
application/pdf |
| dc.publisher.none.fl_str_mv |
Universidade Federal do Amazonas Instituto de Computação Brasil UFAM Programa de Pós-graduação em Informática |
| publisher.none.fl_str_mv |
Universidade Federal do Amazonas Instituto de Computação Brasil UFAM Programa de Pós-graduação em Informática |
| dc.source.none.fl_str_mv |
reponame:Biblioteca Digital de Teses e Dissertações da UFAM instname:Universidade Federal do Amazonas (UFAM) instacron:UFAM |
| instname_str |
Universidade Federal do Amazonas (UFAM) |
| instacron_str |
UFAM |
| institution |
UFAM |
| reponame_str |
Biblioteca Digital de Teses e Dissertações da UFAM |
| collection |
Biblioteca Digital de Teses e Dissertações da UFAM |
| repository.name.fl_str_mv |
Biblioteca Digital de Teses e Dissertações da UFAM - Universidade Federal do Amazonas (UFAM) |
| repository.mail.fl_str_mv |
ddbc@ufam.edu.br||ddbc@ufam.edu.br |
| _version_ |
1851781319125630976 |