Context-Sensitive Analysis of x86 Obfuscated Executables

Detalhes bibliográficos
Autor(a) principal: Boccardo, Davidson Rodrigo
Data de Publicação: 2009
Tipo de documento: Tese
Idioma: por
Título da fonte: Repositório Institucional do INMETRO
Texto Completo: http://hdl.handle.net/10926/1069
Resumo: Ofuscação de código tem por finalidade dificultar a detecção de propriedades intrínsecas de um algoritmo através de alterações em sua sintaxe, entretanto preservando sua semântica. Desenvolvedores de software usam ofuscação de código para defender seus programas contra ataques de propriedade intelectual e para aumentar a segurança do código. Por outro lado, programadores maliciosos geralmente ofuscam seus códigos para esconder comportamento malicioso e para evitar detecção pelos anti-vírus. Nesta tese, é introduzido um método para realizar an alise com sensitividade ao contexto em binários com ofuscamento de chamada e retorno de procedimento. Para obter semântica equivalente, estes binários utilizam operações diretamente na pilha ao invés de instruções convencionais de chamada e retorno de procedimento. No estado da arte atual, a definição de sensitividade ao contexto está associada com operações de chamada e retorno de procedimento, assim, análises interprocedurais clássicas não são confiáveis para analisar binários cujas operações não podem ser determinadas. Uma nova definição de sensitividade ao contexto é introduzida, baseada no estado da pilha em qualquer instrução. Enquanto mudanças em contextos á chamada de procedimento são intrinsicamente relacionadas com transferência de controle, assim, podendo ser obtidas em termos de caminhos em um grafo de controle de fluxo interprocedural, o mesmo não é aplicável para mudanças em contextos à pilha. Um framework baseado em interpretação abstrata é desenvolvido para avaliar contexto baseado no estado da pilha e para derivar métodos baseado em contextos à chamada de procedimento para uso com contextos baseado no estado da pilha. O método proposto não requer o uso explícito de instruções de chamada e retorno de procedimento, porém depende do conhecimento de como o ponteiro da pilha é representado e manipulado. O método apresentado é utilizado para criar uma versão com sensitividade ao contexto de um algoritmo para detecção de ofuscamento de chamadas de Venable et al.. Resultados experimentais mostram que a versão com sensitividade ao contexto do algoritmo gera resultados mais precisos, como também, é computacionalmente mais eficiente do que a versão sem sensitividade ao contexto. ____________________________________________________________________________________.
id INMT_c944ccfc5bf4c9dd4537e45682ac1eda
oai_identifier_str oai:xrepo01s.inmetro.gov.br:10926/1069
network_acronym_str INMT
network_name_str Repositório Institucional do INMETRO
repository_id_str
spelling info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisContext-Sensitive Analysis of x86 Obfuscated ExecutablesManacero Júnior, AleardoBoccardo, Davidson Rodrigo20092011-05-24T13:08:41Z2011-05-24T13:08:41ZOfuscação de código tem por finalidade dificultar a detecção de propriedades intrínsecas de um algoritmo através de alterações em sua sintaxe, entretanto preservando sua semântica. Desenvolvedores de software usam ofuscação de código para defender seus programas contra ataques de propriedade intelectual e para aumentar a segurança do código. Por outro lado, programadores maliciosos geralmente ofuscam seus códigos para esconder comportamento malicioso e para evitar detecção pelos anti-vírus. Nesta tese, é introduzido um método para realizar an alise com sensitividade ao contexto em binários com ofuscamento de chamada e retorno de procedimento. Para obter semântica equivalente, estes binários utilizam operações diretamente na pilha ao invés de instruções convencionais de chamada e retorno de procedimento. No estado da arte atual, a definição de sensitividade ao contexto está associada com operações de chamada e retorno de procedimento, assim, análises interprocedurais clássicas não são confiáveis para analisar binários cujas operações não podem ser determinadas. Uma nova definição de sensitividade ao contexto é introduzida, baseada no estado da pilha em qualquer instrução. Enquanto mudanças em contextos á chamada de procedimento são intrinsicamente relacionadas com transferência de controle, assim, podendo ser obtidas em termos de caminhos em um grafo de controle de fluxo interprocedural, o mesmo não é aplicável para mudanças em contextos à pilha. Um framework baseado em interpretação abstrata é desenvolvido para avaliar contexto baseado no estado da pilha e para derivar métodos baseado em contextos à chamada de procedimento para uso com contextos baseado no estado da pilha. O método proposto não requer o uso explícito de instruções de chamada e retorno de procedimento, porém depende do conhecimento de como o ponteiro da pilha é representado e manipulado. O método apresentado é utilizado para criar uma versão com sensitividade ao contexto de um algoritmo para detecção de ofuscamento de chamadas de Venable et al.. Resultados experimentais mostram que a versão com sensitividade ao contexto do algoritmo gera resultados mais precisos, como também, é computacionalmente mais eficiente do que a versão sem sensitividade ao contexto. ____________________________________________________________________________________.ABSTRACT: A code obfuscation intends to confuse a program in order to make it more dificult to understand while preserving its functionality. Programs may be obfuscated to protect intellectual property and to increase security of code. Programs may also be obfuscated to hide malicious behavior and to evade detection by anti-virus scanners. We introduce a method for context-sensitive analysis of binaries that may have obfuscated procedure call and return operations. These binaries may use direct stack operators instead of the native call and ret instructions to achieve equivalent behavior. Since definition of context-sensitivity and algorithms for context-sensitive analysis has thus far been based on the specific semantics associated to procedure call and return operations, classic interprocedural analyses cannot be used reliably for analyzing programs in which these operations cannot be discerned. A new notion of context-sensitivity is introduced that is based on the state of the stack at any instruction. While changes in calling-context are associated with transfer of control, and hence can be reasoned in terms of paths in an interprocedural control ow graph (ICFG), the same is not true for changes in stackcontext. An abstract interpretation based framework is developed to reason about stackcontext and to derive analogues of call-strings based methods for the context-sensitive analysis using stack-context. This analysis requires the knowledge of how the stack, rather the stack pointer, is represented and on the knowledge of operators that manipulate the stack pointer. The method presented is used to create a context-sensitive version of Venable et al.'s algorithm for detecting obfuscated calls. Experimental results show that the contextsensitive version of the algorithm generates more precise results and is also computationally more eficient than its context-insensitive counterpart.104 f. :il., tab.Submitted by Ester Silva (ebsilva@inmetro.gov.br) on 2011-05-11T18:38:51Z No. of bitstreams: 2 2009_davidson.pdf: 1581522 bytes, checksum: 87986a2e7f9797bfd6e13151811a38ae (MD5) 2009_davidson.pdf: 1581522 bytes, checksum: 87986a2e7f9797bfd6e13151811a38ae (MD5)Rejected by Catarina Soares(cfsoares@inmetro.gov.br), reason: on 2011-05-11T18:58:51Z (GMT)Submitted by Ester Silva (ebsilva@inmetro.gov.br) on 2011-05-13T12:47:51Z No. of bitstreams: 2 2009_davidson.pdf: 1581522 bytes, checksum: 87986a2e7f9797bfd6e13151811a38ae (MD5) 2009_davidson.pdf: 1581522 bytes, checksum: 87986a2e7f9797bfd6e13151811a38ae (MD5)Approved for entry into archive by Catarina Soares(cfsoares@inmetro.gov.br) on 2011-05-24T13:08:41Z (GMT) No. of bitstreams: 2 2009_davidson.pdf: 1581522 bytes, checksum: 87986a2e7f9797bfd6e13151811a38ae (MD5) 2009_davidson.pdf: 1581522 bytes, checksum: 87986a2e7f9797bfd6e13151811a38ae (MD5)Made available in DSpace on 2011-05-24T13:08:41Z (GMT). No. of bitstreams: 2 2009_davidson.pdf: 1581522 bytes, checksum: 87986a2e7f9797bfd6e13151811a38ae (MD5) 2009_davidson.pdf: 1581522 bytes, checksum: 87986a2e7f9797bfd6e13151811a38ae (MD5) Previous issue date: 2009porhttp://hdl.handle.net/10926/1069DMD_hdl_10926/1069BOCCARDO, Davidson Rodrigo. Context-Sensitive Analysis of x86 Obfuscated Executables. 2009, Tese (Doutorado em Engenharia Elétrica)-Universidade Estadual Paulista, Ilha Solteira, 2009.info:eu-repo/semantics/openAccessreponame:Repositório Institucional do INMETROinstname:Instituto Nacional de Metrologia, Qualidade e Tecnologia (INMETRO)instacron:INMETROBoccardo_2009.pdfhttp://xrepo01s.inmetro.gov.br/bitstream/10926/1069/2/Boccardo_2009.pdfapplication/pdf1581522http://xrepo01s.inmetro.gov.br/bitstream/10926/1069/2/Boccardo_2009.pdf87986a2e7f9797bfd6e13151811a38aeMD510926_1069_22009_davidson.pdf.txthttp://xrepo01s.inmetro.gov.br/bitstream/10926/1069/25/2009_davidson.pdf.txttext/plain191586http://xrepo01s.inmetro.gov.br/bitstream/10926/1069/25/2009_davidson.pdf.txt6fcc6621d0cd443cde26c897d464a25fMD510926_1069_25Boccardo_2009.pdf.txthttp://xrepo01s.inmetro.gov.br/bitstream/10926/1069/26/Boccardo_2009.pdf.txttext/plain191586http://xrepo01s.inmetro.gov.br/bitstream/10926/1069/26/Boccardo_2009.pdf.txt6fcc6621d0cd443cde26c897d464a25fMD510926_1069_262024-06-10T15:24:34Zoai:xrepo01s.inmetro.gov.br:10926/1069Repositório de Publicaçõeshttp://repositorios.inmetro.gov.br/oai/requestopendoar:2012-10-08T16:20:20Repositório Institucional do INMETRO - Instituto Nacional de Metrologia, Qualidade e Tecnologia (INMETRO)false
dc.title.none.fl_str_mv Context-Sensitive Analysis of x86 Obfuscated Executables
title Context-Sensitive Analysis of x86 Obfuscated Executables
spellingShingle Context-Sensitive Analysis of x86 Obfuscated Executables
Boccardo, Davidson Rodrigo
title_short Context-Sensitive Analysis of x86 Obfuscated Executables
title_full Context-Sensitive Analysis of x86 Obfuscated Executables
title_fullStr Context-Sensitive Analysis of x86 Obfuscated Executables
title_full_unstemmed Context-Sensitive Analysis of x86 Obfuscated Executables
title_sort Context-Sensitive Analysis of x86 Obfuscated Executables
author Boccardo, Davidson Rodrigo
author_facet Boccardo, Davidson Rodrigo
author_role author
dc.contributor.advisor1.fl_str_mv Manacero Júnior, Aleardo
dc.contributor.author.fl_str_mv Boccardo, Davidson Rodrigo
contributor_str_mv Manacero Júnior, Aleardo
description Ofuscação de código tem por finalidade dificultar a detecção de propriedades intrínsecas de um algoritmo através de alterações em sua sintaxe, entretanto preservando sua semântica. Desenvolvedores de software usam ofuscação de código para defender seus programas contra ataques de propriedade intelectual e para aumentar a segurança do código. Por outro lado, programadores maliciosos geralmente ofuscam seus códigos para esconder comportamento malicioso e para evitar detecção pelos anti-vírus. Nesta tese, é introduzido um método para realizar an alise com sensitividade ao contexto em binários com ofuscamento de chamada e retorno de procedimento. Para obter semântica equivalente, estes binários utilizam operações diretamente na pilha ao invés de instruções convencionais de chamada e retorno de procedimento. No estado da arte atual, a definição de sensitividade ao contexto está associada com operações de chamada e retorno de procedimento, assim, análises interprocedurais clássicas não são confiáveis para analisar binários cujas operações não podem ser determinadas. Uma nova definição de sensitividade ao contexto é introduzida, baseada no estado da pilha em qualquer instrução. Enquanto mudanças em contextos á chamada de procedimento são intrinsicamente relacionadas com transferência de controle, assim, podendo ser obtidas em termos de caminhos em um grafo de controle de fluxo interprocedural, o mesmo não é aplicável para mudanças em contextos à pilha. Um framework baseado em interpretação abstrata é desenvolvido para avaliar contexto baseado no estado da pilha e para derivar métodos baseado em contextos à chamada de procedimento para uso com contextos baseado no estado da pilha. O método proposto não requer o uso explícito de instruções de chamada e retorno de procedimento, porém depende do conhecimento de como o ponteiro da pilha é representado e manipulado. O método apresentado é utilizado para criar uma versão com sensitividade ao contexto de um algoritmo para detecção de ofuscamento de chamadas de Venable et al.. Resultados experimentais mostram que a versão com sensitividade ao contexto do algoritmo gera resultados mais precisos, como também, é computacionalmente mais eficiente do que a versão sem sensitividade ao contexto. ____________________________________________________________________________________.
publishDate 2009
dc.date.issued.fl_str_mv 2009
dc.date.available.fl_str_mv 2011-05-24T13:08:41Z
dc.date.accessioned.fl_str_mv 2011-05-24T13:08:41Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10926/1069
DMD_hdl_10926/1069
dc.identifier.citation.fl_str_mv BOCCARDO, Davidson Rodrigo. Context-Sensitive Analysis of x86 Obfuscated Executables. 2009, Tese (Doutorado em Engenharia Elétrica)-Universidade Estadual Paulista, Ilha Solteira, 2009.
url http://hdl.handle.net/10926/1069
identifier_str_mv DMD_hdl_10926/1069
BOCCARDO, Davidson Rodrigo. Context-Sensitive Analysis of x86 Obfuscated Executables. 2009, Tese (Doutorado em Engenharia Elétrica)-Universidade Estadual Paulista, Ilha Solteira, 2009.
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.bitstream.fl_str_mv application/pdf
text/plain
text/plain
dc.source.none.fl_str_mv reponame:Repositório Institucional do INMETRO
instname:Instituto Nacional de Metrologia, Qualidade e Tecnologia (INMETRO)
instacron:INMETRO
instname_str Instituto Nacional de Metrologia, Qualidade e Tecnologia (INMETRO)
instacron_str INMETRO
institution INMETRO
reponame_str Repositório Institucional do INMETRO
collection Repositório Institucional do INMETRO
repository.name.fl_str_mv Repositório Institucional do INMETRO - Instituto Nacional de Metrologia, Qualidade e Tecnologia (INMETRO)
repository.mail.fl_str_mv
_version_ 1801499965520871424