25.3 C
Lisboa
Domingo, Agosto 14, 2022

Uma técnica de segurança para enganar possíveis invasores cibernéticos – ScienceDaily

Must read


Vários programas executados no mesmo computador podem não conseguir acessar diretamente as informações ocultas uns dos outros, mas, como compartilham o mesmo hardware de memória, seus segredos podem ser roubados por um programa malicioso por meio de um “ataque de canal lateral de tempo de memória”.

Esse programa malicioso percebe atrasos quando tenta acessar a memória de um computador, porque o hardware é compartilhado entre todos os programas que usam a máquina. Ele pode então interpretar esses atrasos para obter os segredos de outro programa, como uma senha ou chave criptográfica.

Uma maneira de evitar esses tipos de ataques é permitir que apenas um programa use o controlador de memória por vez, mas isso diminui drasticamente a computação. Em vez disso, uma equipe de pesquisadores do MIT desenvolveu uma nova abordagem que permite que o compartilhamento de memória continue enquanto fornece uma forte segurança contra esse tipo de ataque de canal lateral. Seu método é capaz de acelerar os programas em 12% quando comparado aos esquemas de segurança de última geração.

Além de fornecer melhor segurança e permitir computação mais rápida, a técnica pode ser aplicada a uma variedade de ataques de canal lateral diferentes que visam recursos de computação compartilhados, dizem os pesquisadores.

“Hoje em dia, é muito comum compartilhar um computador com outras pessoas, principalmente se você estiver fazendo computação na nuvem ou até mesmo em seu próprio dispositivo móvel. Muito desse compartilhamento de recursos está acontecendo. Por meio desses recursos compartilhados, um invasor pode buscar até mesmo informações muito refinadas”, diz o autor sênior Mengjia Yan, Professor Assistente de Desenvolvimento de Carreira Homer A. Burnell de Engenharia Elétrica e Ciência da Computação (EECS) e membro do Laboratório de Ciência da Computação e Inteligência Artificial (CSAIL).

Os autores co-líderes são os estudantes de pós-graduação da CSAIL Peter Deutsch e Yuheng Yang. Co-autores adicionais incluem Joel Emer, professor da prática em EECS, e estudantes de pós-graduação CSAIL Thomas Bourgeat e Jules Drean. A pesquisa será apresentada na Conferência Internacional sobre Suporte Arquitetônico para Linguagens de Programação e Sistemas Operacionais.

Comprometido com a memória

Pode-se pensar na memória de um computador como uma biblioteca e no controlador de memória como a porta da biblioteca. Um programa precisa ir à biblioteca para recuperar algumas informações armazenadas, de modo que o programa abra a porta da biblioteca muito brevemente para entrar.

Existem várias maneiras pelas quais um programa malicioso pode explorar a memória compartilhada para acessar informações secretas. Este trabalho se concentra em um ataque de contenção, no qual um invasor precisa determinar o instante exato em que o programa vítima está passando pela porta da biblioteca. O atacante faz isso tentando usar a porta ao mesmo tempo.

“O invasor está cutucando o controlador de memória, a porta da biblioteca, para dizer ‘está ocupado agora?’ Se eles forem bloqueados porque a porta da biblioteca já está se abrindo – porque o programa vítima já está usando o controlador de memória – eles ficarão atrasados. Perceber que o atraso é a informação que está vazando”, diz Emer.

Para evitar ataques de contenção, os pesquisadores desenvolveram um esquema que “molda” as solicitações de memória de um programa em um padrão predefinido que é independente de quando o programa realmente precisa usar o controlador de memória. Antes que um programa possa acessar o controlador de memória, e antes que ele possa interferir na solicitação de memória de outro programa, ele deve passar por um “request shaper” que usa uma estrutura de gráfico para processar solicitações e enviá-las ao controlador de memória em uma programação fixa. Esse tipo de gráfico é conhecido como gráfico acíclico direcionado (DAG), e o esquema de segurança da equipe é chamado DAGguise.

Enganando um atacante

Usando essa programação rígida, algumas vezes o DAGguise atrasará a solicitação de um programa até a próxima vez que for permitido acessar a memória (de acordo com a programação fixa), ou algumas vezes enviará uma solicitação falsa se o programa não precisar acessar a memória na próxima intervalo de agendamento.

“Às vezes, o programa terá que esperar um dia a mais para ir à biblioteca e, às vezes, ele irá quando realmente não precisava. Mas ao fazer esse padrão muito estruturado, você pode ocultar do invasor o que você realmente Esses atrasos e esses pedidos falsos são o que garante a segurança”, diz Deutsch.

DAGguise representa as solicitações de acesso à memória de um programa como um gráfico, onde cada solicitação é armazenada em um “nó” e as “bordas” que conectam os nós são dependências de tempo entre as solicitações. (A solicitação A deve ser concluída antes da solicitação B.) As bordas entre os nós – o tempo entre cada solicitação – são fixas.

Um programa pode enviar uma solicitação de memória ao DAGguise sempre que precisar, e o DAGguise ajustará o tempo dessa solicitação para sempre garantir a segurança. Não importa quanto tempo leve para processar uma solicitação de memória, o invasor só pode ver quando a solicitação é realmente enviada ao controlador, o que acontece em um cronograma fixo.

Essa estrutura gráfica permite que o controlador de memória seja compartilhado dinamicamente. O DAGguise pode se adaptar se houver muitos programas tentando usar a memória ao mesmo tempo e ajustar a programação fixa de acordo, o que permite um uso mais eficiente do hardware de memória compartilhada, mantendo a segurança.

Um aumento de desempenho

Os pesquisadores testaram o DAGguise simulando como ele funcionaria em uma implementação real. Eles constantemente enviavam sinais para o controlador de memória, que é como um invasor tentaria determinar os padrões de acesso à memória de outro programa. Eles verificaram formalmente que, em qualquer tentativa possível, nenhum dado privado foi vazado.

Em seguida, eles usaram um computador simulado para ver como seu sistema poderia melhorar o desempenho, em comparação com outras abordagens de segurança.

“Ao adicionar esses recursos de segurança, você ficará mais lento em comparação com uma execução normal. Você pagará por isso em desempenho”, explica Deutsch.

Embora seu método fosse mais lento do que uma implementação insegura de linha de base, quando comparado a outros esquemas de segurança, o DAGguise levou a um aumento de 12% no desempenho.

Com esses resultados encorajadores em mãos, os pesquisadores querem aplicar sua abordagem a outras estruturas computacionais compartilhadas entre programas, como redes on-chip. Eles também estão interessados ​​em usar o DAGguise para quantificar o quão ameaçador certos tipos de ataques de canal lateral podem ser, em um esforço para entender melhor as compensações de desempenho e segurança, diz Deutsch.

Este trabalho foi financiado, em parte, pela National Science Foundation e pelo Air Force Office of Scientific Research.



Fonte original deste artigo

- Advertisement -spot_img

More articles

DEIXE UMA RESPOSTA

Please enter your comment!
Please enter your name here

- Advertisement -spot_img

Latest article