Isolação


  Share  
|


Processos do isolate dos sistemas em duas maneiras. No primeiro, o processo é apresentado com um ambiente que pareça ser um computador que funciona somente que processo ou aqueles processos a ser isolados. No segundo, um ambiente está fornecido em que as ações process estão analisadas para determinar se escaparem a informação. O primeiro tipo de ambiente impedem que o processo alcance o sistema computatorizado subjacente e todos os processos ou os recursos que não são parte desse ambiente. O segundo tipo de ambiente não emula um computador. Altera meramente a relação entre o computador existente e o process(es).

Máquinas Virtuais

O primeiro tipo de ambiente é chamado uma máquina virtual.

Uma máquina virtual é um programa que simule a ferragem do sistema computatorizado de a (possivelmente abstrato).

Uma máquina virtual usa um sistema operando-se especial chamado um monitor virtual da máquina fornecer uma máquina virtual em que os sistemas se operando convencionais podem funcionar

A vantagem preliminar de uma máquina virtual é aquela sistemas operando-se existentes não necessita ser modificada. Funcionam no monitor virtual da máquina. O monitor virtual da máquina reforça a política desejada da segurança. Isto é transparente ao usuário. O monitor virtual da máquina funciona como uma semente da segurança.

Nos termos da política, o monitor virtual da máquina trata dos assuntos (assuntos que são as máquinas virtuais). Mesmo se uma máquina virtual está funcionando centenas dos processos, o monitor virtual da máquina sabe somente sobre a máquina virtual. Assim, pode aplicar verificações da segurança a seus assuntos, e aqueles controles aplicam-se aos processos que aqueles assuntos estão funcionando. Isto satisf à régua do confinamento transitive.

EXEMPLO: O KVM/370 era uma versão segurança-realçada do monitor virtual da máquina da IBM VM/370. Este sistema forneceu máquinas virtuais para seus usuários, e um de seus objetivos era impedir comunicações entre máquinas virtuais de classes diferentes da segurança, assim que os usuários em classes diferentes da segurança poderiam usar o sistema ao mesmo tempo. Como VM/370, forneceu máquinas virtuais com os minidisks e permitiu que os sistemas compartilhassem de algumas áreas de disco. Ao contrário de VM/370, usou uma política da segurança mediar o acesso às áreas compartilhadas do disco para limitar comunicações entre sistemas.


EXEMPLO: Karger e os colegas na Digital Equipment Corporation Desenvolveram um monitor virtual da máquina (VMM) para o DEC VAX. O monitor é uma semente da segurança e pode funcionar o VMS ou o sistema operando-se de Ultrix. Os funcionamentos VMM na ferragem nativa de VAX e são invocados sempre que a máquina virtual executa uma instrução privilegiada. Sua estrutura é típica das máquinas virtuais projetadas fornecer a segurança.

O VAX tem quatro níveis do privilégio: usuário, supervisor, executivo, e modalidades da semente. A fim fornecer uma máquina virtual compatível, as máquinas virtuais devem também ter quatro níveis do privilégio. Entretanto, a modalidade da semente permite que um processo alcance instruções privilegiadas na ferragem de VAX diretamente. O somente o VMM são permitidos fazer este. As máquinas virtuais não podem alcançar a modalidade da semente. A solução deve fornecer modalidades virtuais. Estas modalidades são usuário do VM (que correspondem à modalidade do usuário), de supervisor do VM modalidade, e executivo do VM e de semente do VM as modalidades (ambas a modalidade realmente executiva).

Os assuntos VMM são usuários e máquinas virtuais. VMM têm um sistema de lima básica, lisa para seu próprio uso e divisórias o espaço de disco restante entre as máquinas virtuais. Aquelas máquinas podem usar toda a estrutura que de lima desejarem, e cada máquina virtual tem seu próprio jogo de sistemas de lima. Cada assunto e objeto mandam uma etiqueta multilevel da segurança e da integridade, e os níveis da segurança e da integridade dar forma a uma classe do acesso. Duas entidades têm a mesma classe do acesso se e somente se sua segurança e etiquetas da integridade for a mesma, e uma entidade dominar outra se e somente se as classes da segurança e da integridade dominarem.

Um componente integral do VMM é um mecanismo examinando. Este mecanismo grava ações para uma análise mais atrasada.


Porque as máquinas virtuais fornecem a mesma relação para uma comunicação com outras máquinas virtuais que os computadores fornecem, aquelas canaletas de uma comunicação podem ser controladas ou severed. Como mencionado mais cedo, se um único anfitrião funcionar máquinas virtuais múltiplas, aquelas máquinas virtuais compartilham dos recursos físicos do anfitrião em que funcionam. (podem também compartilhar de recursos lógicos, dependendo de como a semente virtualizing é executada.) Isto fornece uma terra fértil para as canaletas secretas.

Sandboxes

Um sandbox do playground fornece um ambiente seguro para crianças para permanecer dentro. Se as crianças deixarem o sandbox sem supervisão, podem fazer coisas que não são supostas fazer. O sandbox do computador é similar. Fornece um ambiente seguro para programas para executar dentro. Se os programas "sairem" do sandbox, podem fazer as coisas que não são supostos para fazer. Ambos os tipos de sandboxes restringem as ações de seus occupants.

Um sandbox é um ambiente em que as ações de um processo são concordar restrito a uma política da segurança.

Os sistemas podem reforçar limitações em duas maneiras. Primeiramente, o sandbox pode limitar o ambiente da execução como necessitado. Isto é feito geralmente adicionando mecanismos segurança-verificando do acréscimo às bibliotecas ou à semente. O programa próprio não é modificado. Para o exemplo, a semente VMM discutida mais cedo é um sandbox porque confina os acessos dos sistemas se operando (unmodified) que funcionam nela. A máquina virtual de Java é um sandbox porque seu gerente da segurança limita o acesso de programas downloaded aos recursos de sistema como ditados por uma política da segurança.

EXEMPLO: A semente operacional do guarda-fogo de Sidewinder usa o tipo enforcement confinar processos. Este é um exemplo de um sandbox construído em uma semente, e tem a propriedade que o sandbox está definido pelo vendedor. Não se pretende ser alterado no local. Tal projeto é típico para um sistema turnkey, que seja o uso pretendido para um guarda-fogo de Sidewinder.

A máquina virtual de Java, em que downloaded applet é executada, é um outro exemplo de um sandbox. O sandbox restringe o jogo das limas que o applet pode alcançar e dos anfitriões a que o applet pode conectar. Outros mecanismos da segurança realçam o sandbox.

O DTE, o tipo mecanismo de enforcement para DTEL, é um exemplo em que as modificações da semente permitem administradores de sistema de configurarar seus próprios sandboxes. A semente reforça os confinamentes.


O segundo método do enforcement deve modificar o programa (ou o processo) a ser executados. Os debuggers dinâmicos e alguns profilers usam esta técnica adicionando limites de faturamento ao código e, quando a armadilha ocorre, analisando o estado do processo running. Um variant, sabido como a isolação de falha do software, adiciona as instruções que executam verificações do acesso de memória ou outras verificam enquanto o programa funciona, assim que toda a tentativa de violate a política da segurança causa um erro.

EXEMPLO: Janus executa um sandbox. É um ambiente da execução em que as chamadas do sistema são prendidas e verificadas. Os usuários executam-no para restringir os objetos e as modalidades do acesso do untrusted o programa. Janus consiste em uma estrutura, que faça verificar runtime, e nos módulos, que determinam que acessos devem ser reservados.

Janus lê primeiramente uma lima da configuração. Esta lima instrui-o para carregar determinados módulos. Junto com o módulo a identificação é uma lista dos confinamentes. A seguinte lima da configuração do exemplo define o IFS da variável de ambiente para a criança e restringe o acesso da criança ao sistema de lima. A criança não pode alcançar nenhumas limas exceto aquelas que são nomeadas abaixo. A criança pode ler ou para escrever a toda a lima no sistema de lima de /usr à exceção daquelas no /usr/lib e os diretórios de /usr/local/lib (que são lidos somente) e em /usr/bin (lido e para executar). A criança pode ler toda a lima no diretório de /lib e pode ler e executar qualquer lima nos diretórios de /sbin e de /bin. Na lima da configuração abaixo, a primeira palavra em cada linha de instrução é o nome do módulo e as outras palavras são os argumentos passados aos módulos ("#" começa um comentário).

# módulo básico básico
# defina o putenv IFS="\t\n" 
PATH=/sbin:/bin:/usr/bin TZ=PST8PDT das variáveis de ambiente do 
subprocess
# negue o acesso a tudo a não ser que as limas 
sob o trajeto de /usr neguem lido, escrevem * o trajeto reserva lido, 
escreve /usr/* # permitem que o subprocess leia limas em diretórios 
de biblioteca # necessitado para o trajeto dinâmico do carregamento 
reservam lêem /lib/* /usr/lib/* /usr/local/lib/* # necessitado assim 
que a criança pode executar programas que o trajeto permite lido, 
exec /sbin/* /bin/* /usr/bin/*

Cada módulo confina chamadas do sistema. A estrutura usa os módulos construir uma lista ligada para cada chamada monitorada do sistema. A lista define ações permitidas e disallowed. Uma vez que esta lista foi construída, a estrutura de Janus invoca o programa de tal maneira que todas as chamadas monitoradas do sistema são prendidas.

Quando o programa executa uma chamada monitorada do sistema, as armadilhas do programa e a estrutura de Janus estão invocadas. Tem o acesso aos argumentos fornecidos à chamada do sysem. Valida que a chamada do sistema, com estes parâmetros específicos, está permitida. Se a chamada do sistema não for permitida, a estrutura ajusta o ambiente da criança de modo que a chamada do sistema pareça ter falhado. Se a chamada do sistema for permitida, a estrutura retorna o controle à criança, que passa por sua vez o controle à semente. No retorno, o controle vai à estrutura, que atualiza todo o estado interno e retorna os resultados à criança.

Um uso do exemplo estaria no correio do MIME da leitura. Um poderia ter ajustado o programa da leitura do correio para passar o controle a um motor da exposição do postscript. Alguns tais motores têm um mecanismo para executar os comandos system-level encaixados na lima do postscript. Daqui, um atacante podia pôr um comando do apagamento da lima na lima do postscript. O receptor funcionaria o motor da exposição para ler a lima, e alguma dela limas seria suprimida. Entretanto, o usuário (ou o administrador de sistema) podem ajustar acima a lima da configuração de Janus disallow a execução de todos os subprograms. Então o comando encaixado será detectado (na chamada do sistema para o executar) e rejeitado.


Como um monitor virtual da máquina, um sandbox dá forma à parte da base computando confiada. Se o sandbox falhar, fornece menos proteção do que se acredita para fornecer. Daqui, assegurar de que o sandbox execute corretamente uma política desejada da segurança é crítico à segurança do sistema.

este é um artigo adicionado por Fred Promover


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions