Canaletas Secretas
O uso das canaletas secretas compartilhou de recursos como trajetos de uma comunicação. Isto requer compartilhar do espaço ou compartilhar do tempo.
Uma canaleta secreta do sincronismo é definida geralmente nos termos de um pulso de disparo real-time ou de um temporizador, mas os relacionamentos temporal não usam às vezes nenhuns. Requisitar dos eventos implica um relacionamento tempo-baseado que envolva nem um pulso de disparo real-time nem um temporizador. Uma segunda propriedade distingue entre uma canaleta secreta a que somente o remetente e o receptor tenham o acesso e uma canaleta secreta que outra tenha o acesso a também.
A diferença entre estes dois tipos de canaletas encontra-se na necessidade filtrar para fora a informação estranha. Toda a informação que o receptor obtiver de uma canaleta silenciosa vem do remetente. Entretanto, em uma canaleta ruidosa, a informação do remetente é misturada com a informação sem sentido, ou o ruído, de outras entidades usando o recurso. Uma canaleta secreta ruidosa requer um protocolo minimizar esta interferência. As propriedades chaves das canaletas secretas são existência e largura de faixa. A existência diz-nos que há uma canaleta ao longo de que a informação pode ser transmitida. A largura de faixa diz-nos como ràpidamente a informação pode ser emitida. A análise da canaleta secreta estabelece ambas as propriedades. Então as canaletas podem ser eliminadas ou suas larguras de faixa podem ser reduzidas. Deteção das canaletas secretasAs canaletas secretas requerem compartilhar. A maneira em que o recurso é compartilhado controla que os assuntos podem emitir e receber a informação usando esse recurso compartilhado. Os métodos de deteção começam com esta observação. Porras e Kemmerer planejaram uma aproximação a representar as violações da segurança que saltam da aplicação de árvores de falha. Modelam o fluxo da informação através dos recursos compartilhados com uma árvore. Os trajetos do fluxo são identificados nesta estrutura. O analista determina se cada fluxo é legitimate ou secreto. Uma árvore secreta do fluxo é uma respresentação tree-structured da seqüência das operações que movem a informação de um processo para outro. Consiste em cinco tipos de nós.
Construir a árvore é um processo three-step. Para fazer as etapas concreto, nós apresentamos um jogo simples das operações e perguntamos então se puderem criar uma canaleta secreta. EXEMPLO: Considere um sistema de lima em que cada lima tem três atributos. Os atributos booleanos travaram e isopen são verdadeiros quando a lima é locked ou aberta, respectivamente, e é falsa de outra maneira. O terceiro atributo, inuse, é um jogo que contenha o processo ID de cada processo que tem a lima aberta. O read_access(p da função, f) é verdadeiro se o processo p ler direitas sobre a lima f, e o empty(s) é verdadeiro se o jogo s não tiver nenhum membro. Os retornos aleatórios um da função de seus argumentos escolhidos em aleatório. As seguintes operações são definidas. (* trave a lima se não for locked e não aberta *) (* indique de outra maneira que está travada retornando falso *) procedimento Lockfile(f: lima): booleano; comece if.not f.locked e empty(f.inuse) então f.locked: = rectifique; extremidade; (* destrave a lima *) procedimento Unlockfile(f: lima); comece se f.locked então f.locked: = falso; extremidade; (* diga se a lima é locked *) função Filelocked(f: lima): booleano; comece Filelocked: = f.locked; extremidade; (* abra a lima se não for locked e *) (* o processo tem a direita ler a lima *) procedimento Openfile(f: lima); comece if.not f.locked e read_access(process_id, f) então (* adicione o processo ID ao inuse ajustado *) f.inuse = f.inuse + process_id; extremidade; (* se o processo puder ler a lima, a palavra se *) (* a lima está aberta, se não retorna um valor em aleatório *) função Fileopened(f: lima): booleano; comece if.not o read_access(process_id, f) então Fileopened: = random(true, falsos); Fileopened outro: = não isempty(f.inuse); extremidade Supondo que os processos não estão permitidos se comunicar com o um outro, o leitor é convidado tentar encontrar uma canaleta secreta do armazenamento. A primeira etapa em construir uma árvore secreta do fluxo é determinar o que atribua (se algum) a referência primitiva das operações, modifica, e retorna. EXEMPLO: As funções no exemplo precedente afetam atributos da lima em maneiras diferentes, como segue.
O Ø do símbolo significa que nenhum atributo está afetado na maneira especificada. A segunda etapa começa com o objetivo de posicionar uma canaleta secreta do armazenamento que use algum atributo. O analista constrói a árvore secreta do fluxo. O tipo de objetivo controla a construção, como segue.
A construção da árvore termina quando todos os trajetos através da árvore terminam em um símbolo da operação ou em um símbolo da falha. Porque a construção é recursive, o analista pode encontrar um laço na construção da árvore. Se isto acontecer, um parâmetro chamado repeat define o número das épocas que o trajeto pode ser atravessado. Isto coloca um limite superior no tamanho da árvore. O modelo compartilhado da matriz do recurso e as árvores secretas do fluxo saltam da idéia de examinar recursos compartilhados para a modificação e as operações de referência, e ambos podem ser usados em algum ponto dentro do ciclo de vida do desenvolvimento do software. Uma vantagem de árvores secretas do fluxo sobre o modelo de SRM é que o anterior identifica seqüências explícitas das operações que fazem com que a informação flua de um processo a outro. O último identifica as canaletas melhor que as seqüências das operações. Nas comparações que envolvem operações do acesso do sistema de lima e o alvo seguro do Ada, o método secreto da árvore do fluxo identificou seqüências das operações que correspondem às canaletas secretas do armazenamento encontradas pelo método de SRM e pelo método do noninterference, assim como um não encontrado pelos outros dois. Mitigation das canaletas secretasAs canaletas secretas fazem saber à informação variando o uso de recursos compartilhados. Uma maneira óbvia eliminar todas as canaletas secretas deve reque processos indicar que recursos necessitem antes que execução e forneçam estes recursos em tal maneira que somente o processo pode os alcançar. Isto inclui o runtime, e quando o runtime indicado é alcançado, o processo é terminado e os recursos são liberados. Os recursos remanescem alocados para o runtime cheio mesmo se o processo termina mais cedo. Se não, um segundo processo poderia infer a informação do sincronismo da liberação dos recursos (acesso including ao processador central). Esta estratégia executa eficazmente a idéia de Lampson da isolação total, mas é geralmente unworkable na prática. Uma aproximação alternativa deve obscurecer a quantidade de recursos que um processo usa. Um processo de recepção não pode determinar que quantidade de uso do recurso é attributable ao remetente e que quantidade é attributable ao obfuscation. Isto pode ser feito em duas maneiras. Primeiramente, os recursos devotados a cada processo podem ser feitos uniformes. Este é um variant da isolação, porque cada processo começa a mesma quantidade de recursos e não pode dizer se um segundo processo está alcançando o recurso medindo o sincronismo ou a quantidade de recursos disponíveis. Essencialmente, o sistema elimina irregularidades significativas no alocamento e no uso de recurso. Em segundo, um sistema pode injetar o randomness no alocamento e no uso dos recursos. O objetivo é fazer à canaleta secreta ruidoso e mandar o ruído dominar a canaleta. Isto não fecha a canaleta secreta (porque existe ainda) mas rende-a inútil. Ambas estas técnicas afetam a eficiência. Atribuindo alocamentos fixos e confinando o uso recursos waste. Reparar as fatias do tempo no sistema de KVM significa que o processador central será não utilizado (ou executará um processo inativo) quando uma outra máquina virtual poderia funcionar um processo non-inativo. Aumentar a probabilidade dos abortos no sistema seguro multilevel da base de dados abortará algumas transações que cometeriam normalmente, aumentando o número previsto das tentativas ao update a base de dados. Se o fechamento da canaleta secreta ou limitar da largura de faixa compensam adequadamente para a perda na eficiência é uma decisão de política. Um dispositivo sabido como uma bomba é a base de diversas técnicas para derrotar as canaletas secretas. este é um artigo adicionado por Fred Promover
|
|||||||||||||||||||||||||||
|