1. Introdução
Quando alguém se propõe a aprender sobre invasão de computadores, fazendo um curso
de hacker ético, precisa levar em consideração que a prática da invasão pode resultar em
danos a sistemas de terceiros. Mesmo que na maioria das vezes isto não represente um
problema legal, não é o tipo de atitude esperada de quem pretende aprender invasão para
fins de segurança. Seja com o propósito de autodefesa, tornar-se um Hacker Ético ou
trabalhar como profissional de segurança, como Security Officer.
É impossível aprender invasão de computadores sem praticar a invasão. Mas como invadir
sem prejudicar as pessoas ou correr riscos desnecessários com crimes pela Internet? A
solução encontrada é utilizar sistemas virtuais, criando laboratórios para as mais diversas
práticas hacker, incluindo invasão e estudo de códigos maliciosos, sem comprometer as
redes e computadores de terceiros e sem por em risco o próprio computador.
É sobre este assunto que vamos tratar neste Módulo do Curso de Hacker para Usuários.
O que é máquina virtual
Máquina virtual é um programa de computador que reproduz, em memória, o hardware de
um computador real. Este hardware virtual inclui um ou mais processadores, memória
RAM, placa de vídeo, uma ou mais interfaces de rede, um ou mais discos rígidos virtuais,
drive de disquete, porta USB. Praticamente tudo o que você encontra em um computador
real, você encontra também na máquina virtual. O hardware que ainda não está disponível
é o modem para conexão discada e a placa de rede sem fio. Mas até a aceleração 2D e
3D das placas de vídeo já existe nas máquinas virtuais.
A criação de máquinas virtuais faz uso de tecnologias de virtualização, com cada fabricante
implementando a tecnologia de um jeito diferente. Na prática isto quer dizer que a máquina
virtual criada no software de um fabricante não vai funcionar no software de virtualização
de outro fabricante. O que é possível fazer é converter alguns formatos de máquinas
http://www.escoladehackers.net/ead/mod/resource/view.php?inpopup=...
1 de 5 09/08/2012 12:55
2. virtuais ou importá-las, mas isto não funciona com todos os programas de virtualização.
Emulação x Virtualização
Os emuladores são velhos conhecidos dos aficionados por videogames. Usando
programas conhecidos por emuladores é preciso reviver praticamente todos os
videogames antigos, como por exemplo, Atari, Nintendo, Super Nintendo, Megadrive e até
o Playstation. Emuladores servem para outros propósitos além de reviver videogames. Os
emuladores também podem ser usados para reviver computadores antigos, incluindo o
Altair 8800, que de certa forma foi quem deu início a Microsoft e tornou Bill Gates quem ele
é. O próprio Bill Gates, junto com Paul Allen, programou o Altair usando um emulador, pois
não tinha acesso ao Altair original.
Emuladores são usados para as mais diversas finalidades, incluindo:
emulação de arquitetura
emulação de sistemas operacionais
emulação de drivers de dispositivo
emulação de linguagens de programação
emulador de circuitos eletrônicos
emulador de hardware
A primeira vista parece que emulação é o mesmo que virtualização, mas não é bem o que
acontece. Ambos procuram reproduzir um sistema real. Mas enquanto no emulador todos
os recursos do sistema são processados nele, a máquina virtual faz uma ponte entre o
sistema nativo e as chamadas do sistema operacional.
Usos para máquinas virtuais
A máquina virtual reproduz um sistema real, então podemos dizer que qualquer uso
possível para a máquina real é também um possível uso para a máquina virtual. Por outro
lado, pode parecer estranho usar a máquina virtual para as mesmas funções da máquina
real. Seria algo parecido com assistir TV virtual dentro da TV real. Na prática quem se
propõe a instalar máquinas virtuais possui um propósito bem específico, entre os quais
podemos citar:
Usuário cobaia para prática de invasão
Servidor de testes para prática de invasão
Ativação, desenvolvimento, análise e testes de vírus e outros códigos maliciosos
Desenvolvimento Web multiplataforma
Detecção de Intrusão em Máquinas Virtuais: honeypot e honeynet
Práticas com arquivos de log: monitoração, leitura e remoção de evidências
Práticas de rede
Práticas de roteamento
Desenvolvimento de aplicações com linguagens antigas
Desenvolvimento de aplicações isoladas da máquina real
http://www.escoladehackers.net/ead/mod/resource/view.php?inpopup=...
2 de 5 09/08/2012 12:55
3. Testes de softwares suspeitos, patchs, cracks e keygens
Servidor dedicado sem investimento em hardware
Prática de RAID
Prática de comandos destrutivos com Shell Script e Batch File
Rodar games e softwares antigos: abandonware e emuladores
Captura de telas de instalação e CMOS/Setup
Desktop remoto para suporte e EAD
Ambientes de desenvolvimento, onde é necessário testar uma aplicação em várias
plataformas: Muitas empresas têm produtos multiplataforma, que precisam ser
testados em Windows e em diversas distribuições do Linux.
Ambientes de suporte, onde é necessário dar suporte a diversas aplicações e
sistemas operacionais. Um técnico de suporte pode rapidamente usar uma máquina
virtual para abrir um ambiente Linux ou Windows.
Migração e consolidação de servidores antigos: é muito comum vermos redes com
diversos servidores antigos, que resultam em um custo de manutenção maior. Com a
virtualização podemos concentrá-los em uma máquina só.
Manutenção de aplicações antigas e teste de sistemas novos: o uso da virtualização
para testar sistemas operacionais é um dos usos mais comuns do produto. Por
exemplo, é possível usá-lo para executar o Windows dentro do Linux ou o oposto.
Manter a compatibilidade de hardware. Alguns hardwares não têm drivers para o
Linux ou para versões mais recentes do Windows. Neste caso, é possível usar
hardwares com uma máquina virtual.
Simulação de instalações complexas de rede.
Apresentação de demonstrações de sistemas completos prontos a usar, tipicamente
referidas como appliances.
Num ambiente protegido é típico usar balanceador de carga, vários firewall e
servidores físicos para alojar com segurança um único site que use servidor Web e
base de dados. Com máquinas virtuais é possível criar redundância contra falhas e
segurança adicional contra intrusão sem recorrer a tantas máquinas físicas,
distribuindo e aproveitando melhor os recursos das máquinas hospedeiras.
Requisitos do sistema
Apesar de todas as vantagens da virtualização, não existem milagres em tecnologia. Isto
quer dizer que o sistema real e o virtual sofrerão as conseqüências deste duplo
processamento. Quando você cria máquinas virtuais os recursos totais do computador real
são afetados, proporcionalmente a configuração do hardware virtual.
Vamos supor que a sua máquina real tenha 1GB de memória RAM e 30GB de espaço livre
no disco rígido. Vamos supor também que você crie uma máquina virtual com 512MB de
memória RAM e um disco rígido virtual de 10GB. Estes recursos têm que sair de algum
lugar e vão sair exatamente da máquina real, que passará a ter 512MB de RAM e 20GB de
espaço livre no HD. Se você quiser criar outras máquinas virtuais, poderá fazê-lo. Mas se
pretende colocá-las para funcionar ao mesmo tempo, pode ser que os recursos da
http://www.escoladehackers.net/ead/mod/resource/view.php?inpopup=...
3 de 5 09/08/2012 12:55
4. máquina real não sejam suficientes.
O que é preciso considerar quando se trabalha com máquinas virtuais é:
1) Quais são as necessidades de hardware para rodar o software de virtualização?
2) Quais são as necessidades de hardware do sistema operacional instalado na máquina
real (hospedeira)? Se a máquina real já está com o hardware mínimo para o sistema
operacional instalado, não será capaz de ceder recursos para a máquina virtual.
3) Quais são as necessidades de hardware para o sistema a ser instalado na máquina
virtual (hospede)? O hardware da máquina real deve ser capaz de atender as
necessidades de hardware do sistema operacional instalado na máquina real e o hardware
do sistema virtual.
Hardware Real x Hardware Virtual
Outra informação importante para quem está começando a trabalhar com máquinas
virtuais é relacionada ao hardware. O hardware virtual não corresponde ao hardware da
máquina real. Vamos supor que a sua placa de vídeo real seja uma NVidia com 512MB de
RAM de vídeo. Na máquina virtual a placa de vídeo pode aparecer como placa de vídeo
genérica, com míseros 16MB de RAM de vídeo. O mesmo acontece com a placa de som,
HD, placa de rede, que não correspondem ao que existe na máquina virtual. Alguns
programas de virtualização até permitem configurar a máquina virtual para usar o hardware
real, mas é preciso ver se esta configuração existe e se deve ser considerada.
Programas de Virtualização
O que chamamos de máquina virtual é um software de virtualização. Um programa de
computador que permite a criação de máquinas virtuais. Virtualização virou um negócio
altamente rentável. As empresas de infra-estrutura estão trocando investimento em
hardware por sistemas virtualizados. No lugar de um rack repleto de servidores físicos
estão instalando um número menor de servidores, porém com um número maior de
sistemas operacionais instalados (virtualizados).
O usuário comum pode tirar vantagem da virtualização para rodar jogos e programas
antigos, fazer navegação segura, estudar redes, sistemas operacionais, programação de
vírus e testar a segurança de sistemas com diferentes configurações.
Na Escola de Hackers usamos as máquinas virtuais com pelo menos três objetivos:
estudar redes, programação e diferentes sistemas operacionais
testar técnicas de invasão em diferentes sistemas e configurações
fazer navegação segura
Existem vários programas de virtualização no mercado, oferecendo mais ou menos
http://www.escoladehackers.net/ead/mod/resource/view.php?inpopup=...
4 de 5 09/08/2012 12:55
5. recursos, alguns mais indicados para uso pessoal ou corporativo. Entre as opções
disponíveis destacamos o Oracle VM VirtualBox, recentemente adquirido pela Oracle ao
incorporar a Sun Microsystems. A decisão pelo Virtual Box é por que:
é gratuito para uso pessoal e avaliação (licença GLP)
interface em português
está pronto para instalar sistemas recentes, como o Windows 7 e Windows Server
2008
Existem outros fabricantes de softwares para virtualização. Caso queira conhecê-los, visite
os links abaixo:
Oracle VM VirtualBox - http://www.virtualbox.org/
Bosch - http://bochs.sourceforge.net/
QEMU - http://fabrice.bellard.free.fr/qemu/
Xen - http://www.xensource.com/
Mac-on-Linux - http://www.maconlinux.org/
Plex86 - http://www.plex86.org/
Parallels Workstation - http://www.parallels.com/en/products/workstation/
Virtual PC - http://www.microsoft.com/windows/virtual-pc/
VMWare - http://www.vmware.com/br/
* Usaremos apenas o Oracle VM VirtualBox.
www.escoladehackers.com.br
http://www.escoladehackers.net/ead/mod/resource/view.php?inpopup=...
5 de 5 09/08/2012 12:55