Ir para conteúdo

Cuidados ao analisar um malware em uma VM


gzn

Posts Recomendados

Bom, é comum a gente analisar código que nós não sabemos a procedência em uma máquina virtual certo? E  a segurança? Será que esses códigos dentro de um guest não tem acesso à outras máquinas ou mesmo o host?

Gostaria de saber daqueles que trabalham com a área de segurança se as falhas meltdown e spectre podem fazer com que máquinas virtuais por virtualização (instruções são executadas diretamente na CPU, diferentes das por emulação onde uma CPU é criada via software) se tornem perigosas para análise de malware.

Pelo pouco que entendi essas duas falhas permitem fazer um dump da memória de forma nada convencional e de maneira bem discreta (não ficaria registrado em logs comuns de auditoria).

Devido a isso galera, sendo possível ou não, surgiu uma preocupação com os binários que são/serão divulgados aqui no fórum. Sugiro que todo crackme ou programa de exemplo que for divulgado aqui no ´fórum seja open source. O ideal seria, por exemplo, o autor dar o código para alguém experiente na área (como o Mercês ou outra pessoa aqui do fórum) e ele mesmo compilar e divulgar os dois ao mesmo tempo (eu sei que pode perder a graça, mas olha a fonte quem quer). Essa é uma medida de segurança que pode ajudar porque, infelizmente, tem muito br ladrão (não chamo de hacker, chamo de ladrão mesmo) que pode se cadastrar no fórum só para prejudicar os mais novatos. Creio que isso ainda não aconteceu mas, pode acontecer.

Obrigado =)

 

Link para o comentário
Compartilhar em outros sites

Tenho pouca experiencia em analise de malware, mas eu sei que Muitos Malwares ja detectam se estao sendo rodados em maquinas virtuais como a Virtual Box(Pelo fato dela ser livre).
Sobre ter acesso à outras maquinas eles podem sim se caso for um Worm que se espalha pela rede,eu uso sempre o FakeNet pra evitar isso. Hoje analisei um trojan que assim que eu executei para fazer a analise dinamica ele ja tentou se conectar ao DDNS do cara lá, use sempre as maquinas em Host-Only e com uma ferramente tipo o FakeNet que faz qualquer DNS ser redirecionado para 127.0.0.1 (Local Host). 
Agora sobre ir do Guest para a maquina Host não faço ideia, já ouvi falar sim que é possível na VBox devido alguma falha do Guest Additions mas nunca procurei saber se é verdade.
 

Link para o comentário
Compartilhar em outros sites

Citar

Tenho pouca experiencia em analise de malware, mas eu sei que Muitos Malwares ja detectam se estao sendo rodados em maquinas virtuais como a Virtual Box(Pelo fato dela ser livre).

Pois é, uma coisa que eu percebo que não muda muito é os dispositivos em uma VM (seja vbox, seja vmware). Se enumerarmos os dispositivos podemos dizer com pouca margem de erro se trata-se de uma vm ou não.

Citar

Sobre ter acesso à outras maquinas eles podem sim se caso for um Worm que se espalha pela rede,eu uso sempre o FakeNet pra evitar isso. Hoje analisei um trojan que assim que eu executei para fazer a analise dinamica ele ja tentou se conectar ao DDNS do cara lá, use sempre as maquinas em Host-Only e com uma ferramente tipo o FakeNet que faz qualquer DNS ser redirecionado para 127.0.0.1 (Local Host). 

É, essa dica de deixar as máquinas em host-only aprendi já quando encontrei o FLARE VM no blog da FireEye. Lá eles diziam claramente para deixar a máquina isolada para caso o malware fosse um worm e tentar se conectar com outras e espalhar o malware.

Citar

Agora sobre ir do Guest para a maquina Host não faço ideia, já ouvi falar sim que é possível na VBox devido alguma falha do Guest Additions mas nunca procurei saber se é verdade.

Parece que muitas correções em relação ao meltdown e spectre foram adiadas por causa de lentidão e reinicializações inesperadas, ou seja, ainda tem muita máquina vulnerável e o pessoal já explicou como a falha funciona (tem repositório no github com código prontinho para usar em malware). Como na virtualização a CPU fica exposta, acho que é possível (acho) sim sair da VM e acessar áreas da memória pertencentes ao host, só preciso ter certeza (espero que alguém responda).

Obrigado pelo comentário Sr. @Vernieri.

 

Link para o comentário
Compartilhar em outros sites

Acho que exagerei ao dizer que os bugs como meltdown, spectre, etc. poderiam ter a possibilidade de acessar a memória do host. Parece não haver nenhum modo de sair do isolamento de memória do guest (não até o momento!) e ir para o host.

Mas... mesmo assim se eu fosse analista e profissional nessa área eu teria um PCzinho isolado em uma sala só para análise de malware (e arrancaria a placa de rede desse pczinho kkkk). Acho que não é ideal fazer análise de malware em VM sendo executadas em um host que você acessa sites de banco, etc. Se a Intel que tem ótimos profissionais foi pega de surpresa com essa falha grotesca (digo, não só ela como outras fabricantes), imagina noix. :D

Lembre-se: todo cuidado é pouco.

Link para o comentário
Compartilhar em outros sites

45 minutos atrás, gzn disse:

Acho que exagerei ao dizer que os bugs como meltdown, spectre, etc. poderiam ter a possibilidade de acessar a memória do host. Parece não haver nenhum modo de sair do isolamento de memória do guest (não até o momento!) e ir para o host.

Mas... mesmo assim se eu fosse analista e profissional nessa área eu teria um PCzinho isolado em uma sala só para análise de malware (e arrancaria a placa de rede desse pczinho kkkk). Acho que não é ideal fazer análise de malware em VM sendo executadas em um host que você acessa sites de banco, etc. Se a Intel que tem ótimos profissionais foi pega de surpresa com essa falha grotesca (digo, não só ela como outras fabricantes), imagina noix. :D

Lembre-se: todo cuidado é pouco.

Na sua linha de pensamento praticamente não há como fazer uma análise, concorda? Em um pc sem placa não há nem como ter um malware para analisar (se você falar que pega de um pendrive etc já estará abrindo um vetor de ataque fácil fácil). Acho que no geral todo cuidado é sim pouco, mas não há como fugir, saca?

Link para o comentário
Compartilhar em outros sites

Citar

Na sua linha de pensamento praticamente não há como fazer uma análise, concorda?

Sr. @Leandro Fróes obrigado pelo comentário. Eu estava meio que brincando quando falei em arrancar a placa de rede hehe (veja os kkkk lá). Mas falando serio, eu estudaria o malware em um PC só para isso e criaria uma rede isolada (tipo virtual) quando o malware não tem documentação ou não foi estudado mais a fundo pela comunidade. Só deixaria ele comunicar com a rede mundial se eu souber por outros especialistas (pois eu não sou) que ele é inofensivo, mas por quê?

Porque podem haver casos em que isolar um malware seja o melhor? Bom, no meu caso em específico eu já sei que não sei de nada (sou uma materialização desse resumo sobre a opinião de Sócrates sobre o conhecimento e os sábios).

Eu imagino o seguinte @Leandro Fróes, pensa num malware desconhecido (não estudado pela comunidade), um "especialista em segurança" vai e coloca ele numa máquina e executa ele para fins de estudo, belezaaaaa! O malware tem um código de mutação muito complexo mas graça aos esforços do "especialista" ele resolve se propagar pela rede. Esse malware entra em hospitais públicos e muda dados de prontuários e outras coisas para prejudicar, roubar e criptografar os dados afim de exigir dinheiro em troca da liberação deles. O IP parte da casa do "especialista", e aí? E aí?! Será que ele teria como explicar para PF e assumir a responsabilidade das consequências de ter "manipulado" o malware e isso ter acontecido? hmmm, ele vai se borrar todo e vai dizer: "Ahhh! Mas eu só estava estudando ele, não sou quem fez e eu não queria fazer nada com ele. Só estudo...". Como esse programa é de autoria desconhecida quem na justiça vai cair como um dos primeiros suspeitos? Oras, não tem como provar que é o "especialista", certo, mas não tem como provar que é outro! Não até as investigações terminarem!

Agora, para esses malwares que a comunidade faz artigos tudo e mais (os mais conhecidos), eu não vejo tanto problema em criar uma VM na sua máquina de uso do dia a dia. Claro, desde que o "especialista" saiba o que está fazendo e tem a mínima noção de como o malware funciona. Mas o ideal é não lidar com worms se o "especialista" pretende dar livre acesso a rede, porque mesmo assim a pessoa pode se encrencar com a justiça e prejudicar outros (independente da nossa intenção o que importa para a justiça são os fatos).

Citar

Se você falar que pega de um pendrive etc já estará abrindo um vetor de ataque fácil fácil

Acho que você quer dizer, resumindo, que todos os meios de comunicação com a máquina infectada podem ter consequências negativas, não é? Sim, isso é verdade.

Eu tipo assim, vamos dizer que eu luto kung fu muito mal (vamos pegar analogia com Neo do Matrix e seu kung fu. Ele é um super hacker que owna até a "realidade" kkk). Bom, se eu sei lutar muito mal, por que eu pegaria um lutador que está muito acima do meu conhecimento/habilidades?

Quando eu disse "todo cuidado é pouco" é uma maneira de dizer para os novatos (eu sou um deles!) terem cuidado. A paranoia de cada um é de cada um, varia conforme as experiências da vida. Veja o Edward Snowden, será que ele é paranoico ou age apropriadamente conforme as circunstâncias? Cada um pode ter uma opinião diferente, uns podem dizer: ah, todo governo já sabe de tudo, não vou botar senha em nada e não vou nem trancar a porta de casa. Já outro pode dizer, vou fazer isso, isso e mais aquilo. No fim todos podem se ferrar independente das suas habilidades ou precauções. Se for como eu a sua confiança vai contar única e exclusivamente com Deus.

Desculpe, acho que escrevi demais. :D

Link para o comentário
Compartilhar em outros sites

16 horas atrás, gzn disse:

Sr. @Leandro Fróes obrigado pelo comentário. Eu estava meio que brincando quando falei em arrancar a placa de rede hehe (veja os kkkk lá). Mas falando serio, eu estudaria o malware em um PC só para isso e criaria uma rede isolada (tipo virtual) quando o malware não tem documentação ou não foi estudado mais a fundo pela comunidade. Só deixaria ele comunicar com a rede mundial se eu souber por outros especialistas (pois eu não sou) que ele é inofensivo, mas por quê?

Porque podem haver casos em que isolar um malware seja o melhor? Bom, no meu caso em específico eu já sei que não sei de nada (sou uma materialização desse resumo sobre a opinião de Sócrates sobre o conhecimento e os sábios).

Eu imagino o seguinte @Leandro Fróes, pensa num malware desconhecido (não estudado pela comunidade), um "especialista em segurança" vai e coloca ele numa máquina e executa ele para fins de estudo, belezaaaaa! O malware tem um código de mutação muito complexo mas graça aos esforços do "especialista" ele resolve se propagar pela rede. Esse malware entra em hospitais públicos e muda dados de prontuários e outras coisas para prejudicar, roubar e criptografar os dados afim de exigir dinheiro em troca da liberação deles. O IP parte da casa do "especialista", e aí? E aí?! Será que ele teria como explicar para PF e assumir a responsabilidade das consequências de ter "manipulado" o malware e isso ter acontecido? hmmm, ele vai se borrar todo e vai dizer: "Ahhh! Mas eu só estava estudando ele, não sou quem fez e eu não queria fazer nada com ele. Só estudo...". Como esse programa é de autoria desconhecida quem na justiça vai cair como um dos primeiros suspeitos? Oras, não tem como provar que é o "especialista", certo, mas não tem como provar que é outro! Não até as investigações terminarem!

Agora, para esses malwares que a comunidade faz artigos tudo e mais (os mais conhecidos), eu não vejo tanto problema em criar uma VM na sua máquina de uso do dia a dia. Claro, desde que o "especialista" saiba o que está fazendo e tem a mínima noção de como o malware funciona. Mas o ideal é não lidar com worms se o "especialista" pretende dar livre acesso a rede, porque mesmo assim a pessoa pode se encrencar com a justiça e prejudicar outros (independente da nossa intenção o que importa para a justiça são os fatos).

Acho que você quer dizer, resumindo, que todos os meios de comunicação com a máquina infectada podem ter consequências negativas, não é? Sim, isso é verdade.

Eu tipo assim, vamos dizer que eu luto kung fu muito mal (vamos pegar analogia com Neo do Matrix e seu kung fu. Ele é um super hacker que owna até a "realidade" kkk). Bom, se eu sei lutar muito mal, por que eu pegaria um lutador que está muito acima do meu conhecimento/habilidades?

Quando eu disse "todo cuidado é pouco" é uma maneira de dizer para os novatos (eu sou um deles!) terem cuidado. A paranoia de cada um é de cada um, varia conforme as experiências da vida. Veja o Edward Snowden, será que ele é paranoico ou age apropriadamente conforme as circunstâncias? Cada um pode ter uma opinião diferente, uns podem dizer: ah, todo governo já sabe de tudo, não vou botar senha em nada e não vou nem trancar a porta de casa. Já outro pode dizer, vou fazer isso, isso e mais aquilo. No fim todos podem se ferrar independente das suas habilidades ou precauções. Se for como eu a sua confiança vai contar única e exclusivamente com Deus.

Desculpe, acho que escrevi demais. :D

Não entendi porque você falou todas essas situações pra dizer simplesmente que estava brincando hehe. Outra coisa também, se o cara SABE que o malware é desconhecido (um ransomware no caso ai) o mínimo é cortar o acesso com a internet completamente (qualquer ambiente virtual permite isso com sei lá, 3/4 clicks). Se ele não o fez ou mesmo assim foi comprometido, o descuidado foi ele e talvez não esteja preparado pra lidar com tal nível, não? Se for pra contar situações assim eu posso falar que um malware explora um módulo de kernel do linux eai? Se o cara não souber lidar ele senta e chora.

Enfim, espero que não tenha ficado nenhum mal entendido até porque ninguém aqui sabe nada ^_^

abs

Link para o comentário
Compartilhar em outros sites

Citar

Enfim, espero que não tenha ficado nenhum mal entendido até porque ninguém aqui sabe nada ^_^

 @Leandro Fróes, Sr. é muito humilde (igual o Mercês, ô cara humilde sô), sempre com muita modéstia. Tá tranquilo amigo. No que puder estarei atento ao que vocês escrevem sobre ER pois esse assunto me chama um pouco de atenção.

Happy sabbath! Vou dar um tempo desses assuntos agora, até mais jovem!

Link para o comentário
Compartilhar em outros sites

Fala galera, bele ?

Eu concordo com você em partes. No mundo da tecnologia se perguntarmos se algo é possível, provável que seja hahaha. É só questão de tempo e resiliência para alcançar.
Eu encorajo todo mundo que eu conheço que faça backups sempre e esteja sempre limpando as máquinas. Pelo menos 2 vezes no ano, depende da paranóia.

Crackers e Hackers é um jogo de pega-pega sem fim. Acha uma falha aqui, arruma, daqui a pouco já tem outra. Na minha opinião para analisar malware em VM e ficar mais safe possível é ter uma máquina em uma subnet diferente da principal (isolando o host principal). Formatar com periodicidade alta essa máquina para analisar malware e sempre deixar um snapshot zerado da máquina.


Abraço!

Link para o comentário
Compartilhar em outros sites

Olá pessoal. 

Sobre o Meltdown, até onde eu sei ele somente consegue ler a memória do host caso você esteja usando conteiners (docker), porque eles compartilham a memória do Kernel, o caso é diferente para uma VM.

Não tenho muita experiência analisando malwares, mas é possível que um malware faça algumas traquinagens com o host mesmo rodando em uma VM sim. 

Para que isso seja possível, o desenvolvedor do malware deve explorar vulnerabilidades no próprio virtualizador. (VirtualBox/VMWare/QEMU/etc..)

Isso possívelmente não é muito comum em malwares que se vê todo dia por aí, mas caso o atacante seja aquele cara bem manjão ele pode explorar esse tipo de vulnerabilidade (que geralmente é chamado de VMEscape) e atacar o Host. Isso possívelmente pode acontecer em situações aonde o cara realmente tem como objetivo sacanear quem vai analisar o malware dele na VM. 

Por isso, se for o caso de analisar malwares usando VM, além de isolar bem a rede dela, vale sempre deixar o seu virtualizador atualizado para que ele tenha as correções desse tipo de vulnerabilidade, mas isso não vai salvar a sua vida caso quem desenvolveu faça um malware MUITO parrudo usando algum 0day.

Useful links:

http://www.phrack.org/papers/vm-escape-qemu-case-study.html (paper muito bom sobre o assunto explorando o QEMU com referências para outros artigos e vulnerabilidades)

 https://www.vmware.com/security/advisories.html (CVE-2017-4902, CVE-2017-4903, CVE-2017-4904, CVE-2017-4905 poderiam vir a ser usadas para executar código no host)

Abraços!

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...