Spectre o que é e por que não é resolvido através de software

Espectro: Pesquisadores do Google, que est√£o investigando a extens√£o e o impacto dos ataques do Spectre, lan√ßaram um documento (PDF) confirmando que as vulnerabilidades do Specter continuar√£o existindo nos computadores e que as t√©cnicas de uso do software ser√£o muito econ√īmicas.

Independentemente do custo, de acordo com a pesquisa, o software ser√° inadequado, porque algumas das defici√™ncias do Spectre n√£o s√£o reparadas com essas altera√ß√Ķes.

A descoberta e a evolu√ß√£o dos ataques Meltdown e Spectre foram sem d√ļvida uma das maiores da hist√≥ria da seguran√ßa de computadores. Foi revelado pela primeira vez em janeiro passado e, desde ent√£o, novas varia√ß√Ķes come√ßaram a aparecer ao longo do ano.espectro

Nota:

A seguir, tentaremos, da maneira mais simples possível, explicar as vulnerabilidades, mas também por que as mudanças no software não podem ajudar. Se você não entender algo, não fique desapontado, explicamos abaixo.

Ambos os ataques são baseados nas diferenças entre o comportamento teórico de um processador e o comportamento documentado que depende dos desenvolvedores e como eles escrevem seus programas para determinar o comportamento real dos aplicativos.

Em particular, todos os processadores modernos realizam o que chamamos de execução teórica (de execução especulativa).

O que isto significa; Eles fazem suposi√ß√Ķes.

Por exemplo, considere um valor lido da mem√≥ria com suposi√ß√Ķes. Se o caso √© verdadeiro ou falso, permite ou n√£o a execu√ß√£o de uma ordem. Se as premissas estiverem corretas, os resultados te√≥ricos s√£o mantidos. Caso contr√°rio, os resultados te√≥ricos s√£o rejeitados e o processador repete o c√°lculo.

A execu√ß√£o te√≥rica n√£o √© um recurso arquitetural do processador. √Č um recurso de implementa√ß√Ķes e, portanto, deve ser completamente invis√≠vel nos aplicativos em execu√ß√£o no seu computador. Quando o processador rejeita um caso errado, deve ser como se nunca tivesse acontecido.

O que os pesquisadores das vulnerabilidades de Meltdown e Spectre descobriram √© que a execu√ß√£o te√≥rica n√£o √© completamente invis√≠vel e que, quando o processador rejeita os resultados, alguns elementos das suposi√ß√Ķes err√īneas ficam para tr√°s.

Por exemplo, a especula√ß√£o pode alterar os dados armazenados no cache do processador. Portanto, existem aplicativos que podem detectar essas altera√ß√Ķes medindo o tempo necess√°rio para ler valores da mem√≥ria.

Espectro: ataque e contramedidas

Assim, o invasor pode fazer o processador adivinhar os pre√ßos errados e usar as altera√ß√Ķes de cache para revelar o valor real. Isso se torna particularmente amea√ßador em aplicativos como navegadores da Web: um JavaScript mal-intencionado pode usar esses dados para aprender sobre mem√≥ria, executar processos e, em seguida, usar essas informa√ß√Ķes para explorar outras imperfei√ß√Ķes e executar c√≥digo arbitr√°rio.

Os desenvolvedores de navegadores assumem que podem criar caixas de prote√ß√£o seguras para executar os processos de um navegador. Dessa forma, scripts maliciosos de dom√≠nios maliciosos n√£o poder√£o aprender sobre o layout da mem√≥ria e os processos em execu√ß√£o. Arquitetonicamente, essas suposi√ß√Ķes est√£o corretas. Mas a realidade de Spectre chegou e se foi.

Fus√£o e Espectro: Diversidade

O ataque Meltdown, que teve como alvo chips da Intel, Apple e outros fabricantes, foi uma variante particularmente desagrad√°vel do acima. A vulnerabilidade permite que um programa malicioso extraia dados do n√ļcleo do sistema operacional. Imediatamente ap√≥s a descoberta do Meltdown, foram feitas altera√ß√Ķes nos sistemas operacionais para que eles pudessem ocultar seus dados de tais programas maliciosos.

Mas a vulnerabilidade Specter tem tantas varia√ß√Ķes diferentes at√© o momento (e continua a ser descoberta) que a tornam muito mais insidiosa. Portanto, os desenvolvedores est√£o tentando, com v√°rias t√©cnicas de desenvolvimento de software, impedir o vazamento de dados no processador ou simplesmente limitar as informa√ß√Ķes que podem ser reveladas atrav√©s da execu√ß√£o te√≥rica do processador.

A pesquisa do Google mostrou que essas medidas, por meio de software, são essencialmente semi-medidas. Alguns deles, como bloquear todos os casos após carregar valores da memória, protegem contra muitos ataques, mas são muito debilitantes no sistema para serem utilizados na prática.

Os pesquisadores experimentaram vers√Ķes modificadas do JavaScript V8 no Chrome, e o uso dessa t√©cnica rendeu entre um ter√ßo e um quinto.

Aqui mencionamos que, não importa quantas medidas sejam tomadas, eles não descobrem nada que proteja completamente. Segundo os pesquisadores, uma combinação de técnicas deve ser usada e isso terá um efeito cumulativo no desempenho.

E agora;

Portanto, a empresa chegou √† conclus√£o de que n√£o podemos proteger a vulnerabilidade do Spectre apenas com reparos de software. Medidas apropriadas tamb√©m devem ser tomadas no hardware, mas esse pensamento √© assustador porque requer atualiza√ß√Ķes para milh√Ķes de sistemas.

Atualmente, os aplicativos est√£o tentando criar ambientes seguros com base em garantias baseadas em hardware para proteger entre processos.

Por exemplo, o Chrome alterou o código para impedir que vários domínios executem o mesmo processo. Isso ainda não protege o sandbox do Chrome de um ataque com scripts, mas garante que um script não possa ser atacado por vários domínios. O que quer que façamos, é um tipo de proteção.

No geral, as pesquisas mostram que o Spectre manterá os desenvolvedores de software, fabricantes de hardware e usuários finais ocupados nos próximos anos.

Seja forte…