login
Mon 08 of Aug, 2022 (14:03 UTC)

[root@madeira.eng.br ~]#

Linux - It is now safe to turn on your computer

atualizar cache imprimir

VM Detection

Criada por: Frederico Madeira, última modificação em: Thu 15 of Feb, 2007 (04:21 UTC)
A técnica de detecção de Máquinas Virtuais é motivada pelos seguintes pontos:

  • VM Softwares não são focados em segurança e sim em compartilhamento de recursos
  • Pesquisadores de Códigos Maliciosos usam Máquinas virtuais para analisar amostras
  • Máquinas Virtuais são usadas para montar HoneyPots
  • Implementação de Firewalls
  • Implementação de vários níveis de Segurança nos hosts de um VM environment

Possui os seguintes objetivos:

  • Desabilitar ações que possam estar sendo monitoradas em ambientes VM
  • Confiaça nos padrões da Tecnologia de Virtualização: isolação, mostrar o contrário.
  • Precursor de outros tipos de ataques que comprometam a isolação:
  • Backdoor entre a comunicação de VM para VM
  • VM escape ( O Santo Gral de ataques a VM): Permite que o atacante obtenha acesso a outros guest O.S. e também ao Host O.S.

Técnicas usadas para deteccão de VM:

  • Checar se existem indícios de VM em processos, no sistema de arquivos ou no registro
  • Checar se existem indícios de VM na memória
  • Checar por hardwares específicos de VM
  • Checar por instruções/capacidades do processador especificas de VM

Exemplo de Código para saber se o ambiente é virtual ou não:

redpill.c

  1. include
int main () {
unsigned char m2+4, rpill[] = "\x0f\x01\x0d\x00\x00\x00\x00\xc3";
  • ((unsigned*)&rpill3) = (unsigned)m;
((void(*)())&rpill)();

printf ("idt base: %#x\n", *unsigned*)&m2;
if (m5>0xd0) printf ("Inside Matrix!\n", m5);
else printf ("Not in Matrix.\n");
return 0;
}


Lê o SIDTR (Store Interrupt Descriptor Table Register)
Em Vmware Guest o IDT tipicamente é localizado em 0xffXXXXXX
Em Virtual PC o IDT tipicamente é localizado em 0xe8XXXXXX
Em Host OS, é localizado tipicamente abaixo de: 0x80ffffff (Windows) e 0xc0ffffff (Linux)

Conclusões

A VM Detection é só o primeiro passo !
A isolação das VM's não é total pois existem comunicação entre VM através de um communication channel
Vários códigos e VM Detection disponíveis: scoopy_doo, jerry, VM Detection, etc..
Como a Virtualização é um processo que vem crescendo nos últimos anos, fiquemos atentos pois novas ameaças estão a caminho.

Trabalho apresentado durante a cadeira de Arquitetura, Tecnologia e Ferramentas e Segurança durante curso de Pós-Graduação em Segurança de Redes.
Link para a apresentação:
VM Detection.pdf

Link para o documento escrito:
VM Detection - Parte escrita.pdf


Links Recomendados

1. Excellent VM detection and breakout presentation
2. Seven shortcomings of virtual security
3. Thwarting Virtual Machine Detection Excelente artigo escrito pelo SANS Internet Storm Center

Frederico Madeira
fred@madeira.eng.br
02/12/2006

Comentários

Reply to this comment

Ótimo recurso de detecção

por Francis JS, Sun 07 of Jun, 2009 (01:46 UTC)
Parabéns pelo post!
Matéria muito bem abordada, foi-me muito útil!
Desejo felicidades e gostaria de ser notificado (se possível...) de novidades acerca do assunto.
Um abraço!
dr.microso@hotmail.com