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 attribution
onde 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:
- 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.
- Como não sou forte no TCS, gostaria de saber onde exatamente o TCS se encaixa na pesquisa de malware.
Obrigado.
fonte
Respostas:
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.
fonte