Crédito CC0:domínio público
Em janeiro, o mundo da tecnologia foi abalado pela descoberta de Meltdown e Spectre, duas grandes vulnerabilidades de segurança nos processadores que podem ser encontradas em praticamente todos os computadores do planeta.
Talvez o mais alarmante sobre essas vulnerabilidades seja que elas não resultam de bugs de software normais ou problemas físicos de CPU. Em vez de, eles surgiram da arquitetura dos próprios processadores, isto é, os milhões de transistores que trabalham juntos para executar operações.
"Esses ataques mudaram fundamentalmente nossa compreensão do que é confiável em um sistema, e nos forçar a reexaminar onde dedicamos recursos de segurança, "diz Ilia Lebedev, um Ph.D. aluno do Laboratório de Ciência da Computação e Inteligência Artificial do MIT (CSAIL). "Eles mostraram que precisamos prestar muito mais atenção à microarquitetura dos sistemas."
Lebedev e seus colegas acreditam que fizeram uma descoberta importante neste campo, com uma abordagem que torna muito mais difícil para os hackers lucrarem com essas vulnerabilidades. Seu método pode ter aplicações imediatas em computação em nuvem, especialmente para áreas como medicina e finanças que atualmente limitam seus recursos baseados em nuvem devido a questões de segurança.
Com Meltdown e Spectre, os hackers exploraram o fato de que todas as operações levam tempos ligeiramente diferentes para serem executados. Para usar um exemplo simplificado, alguém que está adivinhando um PIN pode primeiro tentar as combinações de "1111" a "9111". Se as primeiras oito tentativas levarem o mesmo tempo, e "9111" leva um nanossegundo a mais, então aquele provavelmente tem pelo menos o "9" certo, e o invasor pode então começar a adivinhar de "9111" a "9911", e assim por diante.
Uma operação que é especialmente vulnerável a esses chamados "ataques de temporização" é o acesso à memória. Se os sistemas sempre tiveram que esperar pela memória antes de realizar a próxima etapa de uma ação, eles passavam muito tempo sentados ociosos.
Para manter o desempenho alto, os engenheiros empregam um truque:eles dão ao processador o poder de executar várias instruções enquanto espera pela memória - e então, uma vez que a memória está pronta, descarta aqueles que não eram necessários. Isso é chamado de "execução especulativa".
Embora valha a pena em velocidade de desempenho, também cria novos problemas de segurança. Especificamente, o invasor pode fazer o processador executar especulativamente algum código para ler uma parte da memória que não deveria. Mesmo se o código falhar, ele ainda pode vazar dados que o invasor pode acessar.
Uma maneira comum de tentar evitar esses ataques é dividir a memória para que não fique toda armazenada em uma área. Imagine uma cozinha industrial compartilhada por chefs que desejam manter suas receitas em segredo. Uma abordagem seria fazer com que os chefs configurassem seu trabalho em lados diferentes - isso é essencialmente o que acontece com a "Tecnologia de alocação de cache" (CAT) que a Intel começou a usar em 2016. Mas tal sistema ainda é bastante inseguro, já que um chef pode ter uma boa ideia das receitas dos outros vendo quais potes e panelas eles levam da área comum.
Em contraste, a abordagem da equipe do MIT CSAIL é o equivalente a construir paredes para dividir a cozinha em espaços separados, e garantindo que todos conheçam apenas seus próprios ingredientes e eletrodomésticos. (Esta abordagem é uma forma de "partição segura"; os "chefs", no caso de memória cache, são chamados de "domínios de proteção").
Como um contraponto divertido ao sistema CAT da Intel, os pesquisadores apelidaram seu método de "DAWG", que significa "Proteção de caminho alocada dinamicamente". (A parte "dinâmica" significa que o DAWG pode dividir o cache em vários depósitos, cujo tamanho pode variar com o tempo.)
Lebedev co-escreveu um novo artigo sobre o projeto com o autor principal Vladimir Kiriansky e os professores do MIT Saman Amarasinghe, Srini Devadas e Joel Emer. Eles apresentarão suas descobertas na próxima semana no Simpósio Internacional IEEE / ACM sobre Microarquitetura (MICRO) na cidade de Fukuoka, Japão.
"Este artigo investiga como isolar totalmente os efeitos colaterais de um programa, evitando que sejam filtrados para outro programa por meio do cache, "diz Mohit Tiwari, um professor assistente da Universidade do Texas em Austin que não estava envolvido no projeto. "Este trabalho protege um canal que é um dos mais populares para ataques."
Em testes, a equipe também descobriu que o desempenho do sistema era comparável ao CAT. Eles dizem que o DAWG requer modificações mínimas nos sistemas operacionais modernos.
"Achamos que este é um passo importante para dar aos arquitetos de computador, provedores de nuvem e outros profissionais de TI uma maneira melhor de alocar recursos de forma eficiente e dinâmica, "diz Kiriansky, um Ph.D. estudante do CSAIL. "Ele estabelece limites claros para onde o compartilhamento deve e não deve acontecer, para que programas com informações confidenciais possam manter esses dados razoavelmente seguros. "
A equipe é rápida em advertir que o DAWG ainda não pode se defender contra todos os ataques especulativos. Contudo, eles demonstraram experimentalmente que é uma solução infalível para uma ampla gama de ataques não especulativos contra software criptográfico.
Lebedev diz que a crescente prevalência desses tipos de ataques demonstra que, ao contrário da sabedoria popular do CEO de tecnologia, mais compartilhamento de informações nem sempre é uma coisa boa.
"Há uma tensão entre desempenho e segurança que vem à tona para uma comunidade de designers de arquitetura que sempre tentou compartilhar o máximo possível em tantos lugares quanto possível, "ele diz." Por outro lado, se a segurança fosse a única prioridade, teríamos computadores separados para cada programa que quisermos executar, para que nenhuma informação vaze, o que obviamente não é prático. DAWG é parte de um crescente corpo de trabalho que tenta reconciliar essas duas forças opostas. "
Vale a pena reconhecer que a atenção repentina aos ataques temporizados reflete o fato paradoxal de que a segurança do computador na verdade melhorou muito nos últimos 20 anos.
"Uma década atrás, o software não era escrito tão bem como hoje, o que significa que outros ataques eram muito mais fáceis de realizar, "diz Kiriansky." Como outros aspectos da segurança se tornaram mais difíceis de realizar, esses ataques de microarquitetura se tornaram mais atraentes, embora eles ainda sejam, felizmente, apenas uma pequena peça em um arsenal de ações que um invasor teria que realizar para realmente causar danos. "
A equipe agora está trabalhando para melhorar o DAWG para que possa interromper todos os ataques de execução especulativa atualmente conhecidos. Enquanto isso, eles têm esperança de que empresas como a Intel estejam interessadas em adotar sua ideia - ou outras semelhantes - para minimizar a chance de futuras violações de dados.
"Esses tipos de ataques se tornaram muito mais fáceis graças a essas vulnerabilidades, "diz Kiriansky." Com todas as relações públicas negativas que surgiram, empresas como a Intel têm incentivos para fazer isso da maneira certa. As estrelas estão alinhadas para fazer uma abordagem como essa acontecer. "