Windows Vista - Arthur Duarte Rosa - Henrique Bueno
Virtualização a Nível de Sistema Operacional e sua Proposta de Segurança
1. 1
Virtualização a nível de Sistema Operacional e sua proposta de segurança
Por
Augusto Juvenal F. G. Costa
Fabrizio Batista Pereira
Resumo
A virtualização de sistemas operacionais é uma tecnologia cuja principal proposta é
particionar os recursos do hardware, reduzindo a frequente ociosidade desses recursos
em momentos do dia e do mês. Este trabalho tem como objetivo em dissertar sobre a
segurança na evolução de virtualizações voltada na melhoria da segurança do ambiente
virtualizado.
Introdução
Foi previsto pela Gartner1
, empresa de consultoria em TI, que em 2012, 50% dos
projetos empresariais e pessoais iriam rodar em máquinas virtuais. O que muitas
organizações falham, de acordo com Amir Ben-Efraim, CEO da segurança em
virtualização provida pela Altor Networks, é a quebra de firewalls, entre outras
proteções existentes, devido a segmentação dos servidores em várias máquinas virtuais.
As medidas de segurança física tornam-se "cegas" para o tráfego entre VMs,
uma vez que não há firewall na conexão VM-VM, como comentado pelo analista da
Gartner Neil MacDonald que “a maioria das máquinas virtuais implementadas estão
menos seguras que os sistemas físicos que foram substituídos” e “a virtualização irá
modificar radicalmente a forma como você proteger e gerenciar estes ambientes”.
Virtualização
A Ideia de virtualização é permite agrupar diversos servidores de baixa demanda
em uma única máquina, reduzindo os custos. Com a virtualização podemos executar
diferentes sistemas operacionais em um mesmo hardware simultaneamente; Executar
um sistema operacional (e suas aplicações) como um processo de outro SO; Utilizar
sistemas operacionais e aplicações escritas para uma plataforma em outra plataforma,
entre outras utilidades. A partir destas premissas da virtualização podemos definir dois
tipos que virtualização: na camada de software e na camada de hardware.
1
http://www.gartner.com/technology/about.jsp
2. 2
Virtualização a nível de Sistema Operacional
No que diz respeito a virtualização no nível de sistema operacional (na camada
de software), pode-se dizer que sua arquitetura possui um baixo overhead (quase que
insignificante), maximizando a utilização de recursos de um servidor. Este desempenho
é dado pelo fato da virtualização envolver apenas um kernel, não permitindo a execução
de diferentes sistemas operacionais, quebrando uma das premissas citadas
anteriormente, mesmo assim, não exclui este tipo de implementação do conceito de
virtualização.
Ao seu favor, é possível realizar centenas de virtualizações enquanto uma
virtualização que permite vários kernels permite apenas 2 ou 3 máquinas sem a perda de
desempenho. Comparada a virtualização de hardware e software a virtualização a nível
de sistema operacional leva vantagem em poder ser executada em hardware de baixo
custo.
LXC
Uma, entre algumas aplicações de containers, é a virtualização a nível de sistema
operacional Linux ou Linux Containers (LXC2
). Originalmente, o LXC não era tão
seguro quanto outros métodos de virtualização (em Linux kernels antes de 3.8). Estes
tipos de containers são muitas vezes considerados como algo no meio, entre um chroot
em esteroides e uma máquina virtual de pleno direito. O objetivo da LXC é criar um
ambiente tão próximo quanto possível, como um padrão de instalação Linux, mas sem a
necessidade de um núcleo separado, por razões já citadas anteriormente.
LXC é um software livre e a maior parte do código é liberado sob os termos da
licença GNU LGPLv2.1+. Alguns bits de compatibilidade Android são liberados sob
uma licença BSD 2 cláusula padrão e alguns binários e modelos são enviados sob a
licença GNU GPLv2.
Segurança
Ameaças à segurança são uma das mais imprevisíveis e desafiadoras causas de
quedas de serviço em sistemas, o que pode ser extremamente custoso para a instituição.
A virtualização é uma poderosa ferramenta na prevenção contra ameaças de segurança,
na medida em que evita custos com interrupção de serviço e perda de dados.
2
https://linuxcontainers.org/
3. 3
Um dos maiores benefícios da virtualização é o isolamento de processos em máquinas
virtuais e containers. Com a virtualização, podemos isolar aplicações de alto risco de
aplicações potencialmente vulneráveis. O isolamento eleva a proteção contra aplicações
maliciosas, aumentando a dificuldade das mesmas acessarem dados, ou afetar processos
que estejam executando em outros containers.
Além disso, isolando falhas, prevenimos que uma aplicação em mau
funcionamento comprometa todo o sistema. Além do mais, podemos definir um
container com privilégios para acesso a dados e serviços vitais. Ainda neste contexto,
um container pode ser usada para dar privilégios limitados a usuários ou aplicações
convidados em um ambiente que pode ser seguramente “deletado” quando o serviço for
concluído. Se alguns destes containers estiverem comprometidos, somente seria
necessário descartar aqueles corrompidos e iniciar novos containers, ou recuperar cópias
de seguranças (backup). A virtualização permite que uma aplicação em mau
funcionamento executando em sua máquina virtual possa ser reiniciada rapidamente e
de um modo seguro, sem afetar outras aplicações que estejam executando no mesmo
sistema anfitrião. Ela permite também que administradores possam suspender, reiniciar
e migrar containers, ajudando a suavizar efeitos de ataques e falhas em aplicações, ou
até mesmo falhas em hardware, quando acontecerem.
Em caso de falha, as máquinas virtuais podem simplesmente ser reiniciadas de
um ponto de restauração, uma cópia de segurança, ou outro mecanismo de recuperação
que possa trazer o sistema a um estado saudável. Se a camada física do sistema falha, os
containers podem ser migrados e restaurados em outras máquinas físicas. Esta
habilidade para recriar um serviço sem ter que “iniciar do zero” é especialmente útil
para serviços de missão crítica e de execução prolongada, porque provê uma rápida
recuperação de desastres. Uma boa ideia é armazenar pontos de restauração em locais
remotos para posteriormente serem recuperados em caso de falha.
Conclusão
A segurança é um tema muito amplo e inacabável, pode-se dizer que sempre
haverá um problema a ser corrigido a cada otimização em busca de um novo produto
capaz de um maior isolamento, uma maior tolerância a falha e principalmente maior
capacidade de suportar (ou até mesmo ser uma ferramenta para desenvolvimento de)
sistemas cada vez mais complexos e modernos. A virtualização de sistemas é um
ambiente muito novo e que tem grandes soluções a serem desenvolvidas.
4. 4
Referências
[1]- AJAY Tirumala, FENG Qin, Jon Dugan, JIM Ferguson, and Kevin Gibbs. Iperf
version 1.7.1.
[2]- SILVA, Rodrigo Ferreira da. Virtualização de Sistemas Operacionais. 2007.
[3]- SOLTESZ, Stephen; PÖTZL, Herbert; FIUCZYNSKI, Marc E. et al. Container-
based Operating System Virtualization: A Scalable, High-performance Alternative to
Hypervisors. 2007.