• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 3
  • Tagged with
  • 3
  • 3
  • 3
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
1

Identificação de Malware Metamórfico baseado em Grafos de Dependência

Martins, Gilbert Breves 16 January 2016 (has links)
Submitted by Divisão de Documentação/BC Biblioteca Central (ddbc@ufam.edu.br) on 2017-04-10T13:47:40Z No. of bitstreams: 2 Tese - Gilbert B. Martins.pdf: 1525513 bytes, checksum: 4848ae0e2aed1f5104a0ff25d41093e6 (MD5) license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5) / Approved for entry into archive by Divisão de Documentação/BC Biblioteca Central (ddbc@ufam.edu.br) on 2017-04-10T13:48:04Z (GMT) No. of bitstreams: 2 Tese - Gilbert B. Martins.pdf: 1525513 bytes, checksum: 4848ae0e2aed1f5104a0ff25d41093e6 (MD5) license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5) / Approved for entry into archive by Divisão de Documentação/BC Biblioteca Central (ddbc@ufam.edu.br) on 2017-04-10T14:15:03Z (GMT) No. of bitstreams: 2 Tese - Gilbert B. Martins.pdf: 1525513 bytes, checksum: 4848ae0e2aed1f5104a0ff25d41093e6 (MD5) license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5) / Made available in DSpace on 2017-04-10T14:15:03Z (GMT). No. of bitstreams: 2 Tese - Gilbert B. Martins.pdf: 1525513 bytes, checksum: 4848ae0e2aed1f5104a0ff25d41093e6 (MD5) license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5) Previous issue date: 2016-01-16 / The traditional way to identify malicious programs is to compare the code body with a set of previous stored code patterns, also known as signatures, extracted from already identified malware code. To nullify this identification process, the malware developers can insert in their creations the ability to modify the malware code when the next contamination process takes place, using obfuscation techniques. One way to deal with this metamorphic malware behavior is the use of dependency graphs, generated by surveying dependency relationships among code elements, creating a model that is resilient to code mutations. Analog to the signature model, a matching procedure that compares these graphs with a reference graph database is used to identify a malware code. Since graph matching is a NP-hard problem, it is necessary to find ways to optimize this process, so this identification technique can be applied. Using dependency graphs extracted from binary code, we present an approach to reduce the size of the reference dependency graphs stored on the graph database, by introducing a node differentiation based on its features. This way, in conjunction with the insertion of virtual paths, it is possible to build a virtual clique used to identify and dispose of less relevant elements of the original graph. The use of dependency graph reduction and the node differentiation also produces more accurate results for the matching process. To validate these statements, we present a methodology for generating these graphs from binary programs and the results achieved with the use of all the proposed features for the identification of some metamorphic malware samples. / Comparar um programa com um conjunto de partes de código, conhecido como assinaturas, previamente armazenadas e extraídas de programas maliciosos previamente identificados, é a forma tradicional de se identificar se este programa também se trata ou está contaminado por um código malicioso. Para tornar este processo de identificação ineficaz, os desenvolvedores de programas maliciosos podem inserir em suas criações a capacidade de alterar a forma com o seu código se apresenta, mudando o corpo do código à medida que o processo de contaminação ocorre e invalidando o processo de identificação tradicional. Uma das maneiras de lidar com esta capacidade de mutação, também conhecido como metamorfismo de código, é baseada na geração de grafos que modelem as relações de dependência existentes entre os elementos do código, uma vez que estas relações se persistem, mesmo diante da mutação do código. Estes grafos são também conhecidos como grafos de dependência. Similar ao tradicional modelo de assinaturas, a identificação dos códigos maliciosos baseadas em grafos de dependência, ocorre quando o grafo gerado a partir do programa sob investigação e comparado com um conjunto de grafos previamente armazenados em uma base de referência, construída a partir da extração dos grafos de dependência de instâncias de códigos maliciosos previamente identificados. Como o processo de comparação entre grafos pertence à classe de problemas NP-Difícil, é necessário encontrar alternativas viáveis para tratar este problema, tornando a comparação entre grafos uma alternativa viável para a identificação de códigos maliciosos metamórficos. Usando grafos de dependência extraídos a partir de códigos executáveis, esta tese apresenta uma abordagem para reduzir o tamanho dos grafos de dependência usados no processo de comparação, pela introdução da diferenciação entre os vértices, com base nas relações de dependência características de cada deles possui. Combinada com a inclusão de arestas virtuais, esta metodologia possibilita a construção de um clique virtual que é utilizado para identificar e descartar as porções menos relevantes do grafo de dependência original, diminuindo o tamanho do grafo que será inserido na base de referência. Os resultados apresentados nesta tese também demonstram que esta redução aprimora o processo de identificação, diminuindo o coeficiente de variação dos resultados e aumentando a taxa de identificações de códigos maliciosos metamórficos.
2

Detecção interprocedimental de clones semânticos / Interprocedural semantic clone detection

Felipe de Alencar Albuquerque 08 November 2013 (has links)
Fragmentos de código duplicado, ou clones, são inseridos em aplicativos por serem uma maneira simples de reúso, dentre outros motivos. Clones são, portanto, comuns em programas. No entanto, a atividade de manutenção pode ficar custosa se o código do programa analisado possuir muitos clones, principalmente os semânticos, os quais podem possuir códigos distintos, mas realizam tarefas similares. Nesse sentido, a utilização de ferramentas que automatizam a tarefa de detectar clones é desejável. Ferramentas atuais de detecção de clones semânticos são capazes de identificar esses clones com altas taxas de acerto. No entanto, elas não são capazes de identificar clones semânticos considerando também os fluxos dos procedimentos ou funções que são invocados dentro dos fragmentos de código comparados. Essa limitação pode levar as ferramentas a indicarem clones semânticos falso positivos. Este trabalho apresenta uma técnica de detecção de clones semânticos que considera as chamadas de procedimentos presentes nos programas. Essa técnica apresentou uma taxa de acertos 2,5% maior do que técnicas convencionais de acordo com um benchmark, também desenvolvido neste trabalho. Esse benchmark foi criado com base nas classificações de clones fornecidas por programadores da indústria e da academia. A técnica interprocedimental de detecção de clones semânticos pode ser utilizada para evolução, manutenção, refatoração e entendimento de programas. / Fragments of duplicated code, or clones, are embedded in applications as they are a simple way to reuse code, among other reasons. Clones are therefore common in programs. However, the maintenance activity may be costly if the program code has many clones to analyze, specially semantic clones, which are semantically similar but may have different syntax. In this regard, the use of tools that automate the task of detecting clones is desirable. Current tools for detecting semantic clones are able to identify those clones with high hit rates. However, they are not able to detect semantic clones also considering the flow of procedures or functions that are invoked within the compared code fragments. This limitation can lead the tools to indicate false positive semantic clones. This paper presents a technique that takes into account the procedure calls in programs to detect semantic clones. This technique showed a 2.5% higher hit rate than conventional techniques according to a benchmark also developed in this work. This benchmark was created based on evaluations provided by programmers from academic and industrial settings. The interprocedural semantic clone detection technique can be used for evolution, maintenance, refactoring and understanding of programs.
3

Detecção interprocedimental de clones semânticos / Interprocedural semantic clone detection

Albuquerque, Felipe de Alencar 08 November 2013 (has links)
Fragmentos de código duplicado, ou clones, são inseridos em aplicativos por serem uma maneira simples de reúso, dentre outros motivos. Clones são, portanto, comuns em programas. No entanto, a atividade de manutenção pode ficar custosa se o código do programa analisado possuir muitos clones, principalmente os semânticos, os quais podem possuir códigos distintos, mas realizam tarefas similares. Nesse sentido, a utilização de ferramentas que automatizam a tarefa de detectar clones é desejável. Ferramentas atuais de detecção de clones semânticos são capazes de identificar esses clones com altas taxas de acerto. No entanto, elas não são capazes de identificar clones semânticos considerando também os fluxos dos procedimentos ou funções que são invocados dentro dos fragmentos de código comparados. Essa limitação pode levar as ferramentas a indicarem clones semânticos falso positivos. Este trabalho apresenta uma técnica de detecção de clones semânticos que considera as chamadas de procedimentos presentes nos programas. Essa técnica apresentou uma taxa de acertos 2,5% maior do que técnicas convencionais de acordo com um benchmark, também desenvolvido neste trabalho. Esse benchmark foi criado com base nas classificações de clones fornecidas por programadores da indústria e da academia. A técnica interprocedimental de detecção de clones semânticos pode ser utilizada para evolução, manutenção, refatoração e entendimento de programas. / Fragments of duplicated code, or clones, are embedded in applications as they are a simple way to reuse code, among other reasons. Clones are therefore common in programs. However, the maintenance activity may be costly if the program code has many clones to analyze, specially semantic clones, which are semantically similar but may have different syntax. In this regard, the use of tools that automate the task of detecting clones is desirable. Current tools for detecting semantic clones are able to identify those clones with high hit rates. However, they are not able to detect semantic clones also considering the flow of procedures or functions that are invoked within the compared code fragments. This limitation can lead the tools to indicate false positive semantic clones. This paper presents a technique that takes into account the procedure calls in programs to detect semantic clones. This technique showed a 2.5% higher hit rate than conventional techniques according to a benchmark also developed in this work. This benchmark was created based on evaluations provided by programmers from academic and industrial settings. The interprocedural semantic clone detection technique can be used for evolution, maintenance, refactoring and understanding of programs.

Page generated in 0.0656 seconds