Appilicability da ciência teórica da computação na pesquisa de malware

8

Eu gostaria de saber a importância do TCS na pesquisa de malware. Devido ao grande volume de novas variantes de malware recebidas por dia (~ 50.000 amostras / dia, de acordo com a McAfee), os pesquisadores de malware dependem fortemente da análise dinâmica (por exemplo, executando as amostras em uma sandbox e monitorando seu comportamento) e se afastando da análise estática e Engenharia reversa, pois essas abordagens consomem muito tempo e às vezes se tornam muito desafiadoras devido à ofuscação / criptografia.

Eu encontrei uma palestra muito útil (BlackHat 2010), de Greg Hoglund, sobre Malware attributiononde o palestrante fala sobre a importância de trazer os autores de malware e suas redes para o cenário, o que fornece informações valiosas do que apenas analisar o próprio binário.

Eu tenho duas perguntas:

  1. Se os pesquisadores de malware passarem a analisar o comportamento dos autores de malware e sua rede, no futuro o TCS terá alguma importância na pesquisa de malware.
  2. Como não sou forte no TCS, gostaria de saber onde exatamente o TCS se encaixa na pesquisa de malware.

Obrigado.

Maggie
fonte
muitos algoritmos de malware são baseados em bancos de dados de códigos de hash de programas "prejudiciais". então a teoria do código de hash é relevante. outra área de pesquisa ativa é criar à prova de balas "caixas de areia" ... vou citar alguns refs neste caso a questão fica upvoted
vzn
Procure abordagens baseadas em semântica para detecção de malware para abordagens com mais teoria.
Vijay D
Existe um livro chamado "Criptografia Mal-Intencionada", com idéias sobre como o TCS pode ser usado em malware.
Sdcvvc

Respostas:

1

Fred Cohen é uma autoridade e pesquisador inicial da teoria dos vírus de computador. consulte a página da Wikipédia para obter referências. seu artigo de 1987 é creditado como talvez a primeira analogia do problema de verificação de vírus ao problema de parada.

a idéia básica é criar um programa X que chame uma sub-rotina de verificação de vírus com um código de programa como parâmetro. se a sub-rotina retornar "é um vírus", saia. se retornar "não é um vírus", infectar o sistema. esse programa não pode existir por diagonalização / contradição, passando seu próprio código como parâmetro. portanto, não existe um antivírus perfeito.

mas poderia parecer um contra-argumento fácil para essa afirmação: o programa X contém uma seção prejudicial do código e é irrelevante se ele é chamado ou não - o programa é potencialmente prejudicial se contiver alguma "seção prejudicial do código".

pelo que me lembro, esse resultado foi publicado separadamente em um diário de matemática, mas não consigo encontrar a referência no momento.

um tópico mais recente / avançado é detectar vírus polimórficos que alteram seu código de maneiras equivalentes, mas aleatórias.

Outra abordagem promissora que parece evitar a questão do problema de parada (de uma maneira que demonstre "teoremas de proibição" teóricos abstratos pode ser enganosa ou até inaplicável na prática) é criar uma "caixa de areia" segura na qual um programa possa ser executado, mas não pode faça qualquer coisa prejudicial.

o navegador da web moderno pode ser visto como uma tentativa de construir um sistema desse tipo. a complexidade de protegê-lo surge principalmente com Javascript.

O Google está construindo a estrutura NaCL [3] que se originou parcialmente na academia e é o atual candidato a um sistema de sandbox altamente funcional integrado ao navegador moderno que ainda permite o código da máquina. um verificador de software comprovadamente seguro valida os programas candidatos. há recentes melhorias dramáticas anunciadas [4].

uma nova idéia recente é usar a análise baseada em gráficos dos traços de execução [5].

um tópico mais recente da virtualização tem várias implicações / aplicações de segurança, como você observa, por exemplo, fornecedores de vírus que constroem sistemas de virtualização para localizar / detectar vírus etc. [6]

a sofisticação do vírus stuxnet recente , aparentemente o primeiro vírus do mundo desenvolvido pela agência militar, patrocinado pelo governo, para fins de cyber / espionagem / sabotagem, levou a estudos acadêmicos sérios / pesados; veja as extensas referências na wikipedia. foi descoberta uma variante recente / nova que visa o setor financeiro chamado chama .

[1] Um vírus de computador indetectável David M. Chess e Steve R. White

[2] Tendências na pesquisa de vírus de computador Cohen, 1991

[3] Cliente nativo: uma caixa de areia para código nativo x86 portátil e não confiável de Yee et al 2009

[4] NaCl para dar lugar ao RockSalt: cientistas da computação desenvolvem uma ferramenta para melhorar o isolamento de falhas de software 2012

[5] Detecção de malware baseada em gráficos usando análise dinâmica de Anderson et al.

[6] Detecção de malware metamórfico e baseado em virtualização usando especificação algébrica por Webster, Malcolm.

vzn
fonte
adendo, aqui está outra referência interessante de 2003 no IEEE sobre o vírus slammer de moore et al , possivelmente o vírus que se espalhou mais rapidamente na história de todos os malwares. alguns outros estudos / trabalhos científicos sobre ele também.
vzn