INTRODUCING
HALF-DOUBLE: NEW HAMMERING TECHNIQUE FOR DRAM ROWHAMMER BUG
Por Thiago
Alvarenga | JUN 2021
“A segurança da informação e a proteção de dados pessoais figuram no
palco de muitas notícias nos últimos anos, principalmente por estar relacionada
ao vazamento de dados pessoais, consoante a constante evolução das tecnologias
que por alguma falha de projeto, gestão de política ou falta de conhecimento do
usuário, condicionam o surgimento destas novas falhas que afetam o cotidiano
das empresas e pessoas”.
O presente artigo foi escrito tendo o cuidado de não deixar o texto
muito técnico, visto que este tipo de vulnerabilidade é altamente técnica e
complexa para algumas pessoas que não estão familiarizadas com a ciência da
computação.
Objetivo do artigo: Conscientizar sobre os cuidados do uso da internet
sem um filtro de conteúdo para controle de páginas que podem ser acessadas
dentro de uma empresa. Exemplo: proteções de EndPoint via Secure Web Gateway. Saiba mais.”
Os ataques de canal lateral (SCAs)
visam extrair segredos de um chip ou sistema por meio de erros de desing de
frabricação, criptoanalise e bugs de softwares a nível de hardware. Dentro
deste rol, o Row Hammer classifica-se como um Fault attacks. Row Hammer ou
comumente conhecido como Rowhammer, é
um exploit de segurança que tira proveito de um efeito colateral não desejado
na memória dinâmica de acesso aleatório (DRAM) em que as células da memória
interagem eletricamente entre si, vazando suas cargas. O resultado da evasão do
isolamento entre as células da memória resulta em um acesso aleatório por padrões
de acesso a memória.
Para melhor entendimento, vajamos
esta imagem para ilustrar os métodos de acesso à memória:
Figura 1 - Ilustração dinâmica básica de funcionamento dos métidos de acesso à memória. |
Os métodos de acesso aos dados
podem ser distribuídos da seguinte forma: acesso direto, acesso aleatório e
associativo. Entre estes, um destaca-se o acesso aleatório, ou melhor,
descrevendo-o: Memória de acesso randômico, comumente conhecido como memória
RAM (Principal) n° 2 da figura 1. A sua
principal característica é a volatilidade dos dados que ao desligar o
computador as informações são apagadas. É nesta linha de frente que os
invasores atuam, para dificultar cada vez mais que os antivírus os detectem (ofuscação
de malware em memória) e em técnicas para dificultar uma perícia computacional,
vez que a informação volátil neste nível dificilmente recuperada. Veja
mais.
Desta forma, é possível entender
melhor a forma de atuação do o exploit
Rowhammer, o seu modo de atuação
é em nível de hardware, funciona induzindo uma mudança de bit produzindo
instruções que não passariam pelo validador x86-64 do NaCI que por conseguinte
resulta em uma escalação de privilégios a nível de kernel.
Os ataques deste tipo iniciaram em
2014, na época os pesquisadores mostraram como eles podiam abusar da técnica (row
hammering) manipulando os campos eletromagnéticos destes chips executando operações
rápidas de leitura e gravação. A princípio o Rowhammer tinha como alvos os
cartões de memória RAM DD3, contudo, já é possível aplicar a técnica em
memórias RAM do tipo DDR4 e um detalhe, este novo método atinge mais células de
memória do que a técnica de 2014, visto que a distância entre as linhas da
memória se tornaram menores entre um chip e outro.
Usando o JavaScript, o ataque
aconteceria da seguinte forma:
Uma falha em nível de hardware
deste estado, ou seja, que é altamente difícil de ser corrigida, em muitos
casos só podem ocorrer com a troca do próprio hardware após a correção em novos
padrões de fabricação. Esta vulnerabilidade tem o poder de afetar milhões de usuários,
o Rowhammer.js é independente do conjunto de instruções da CPU e trata-se de um
ataque remoto de falha de hardware introduzindo via software com o uso do
JavaScript que hoje é utilizado em larga escala por todas as versões recentes
do Firefox, Google Chrome e outros. Este tipo de vulnerabilidade já foi comprovado
e foi feita uma prova de conceito para atestar o seu grau de impacto.
Segundo
Daniel Gruss da Universidade de Tecnologia da Austria, um ataque Rowhammer em JavaScript, é realizado as
seguintes etapas:
1.
Encontre 2 endereços em linhas diferentes
2.
Expulsar e recarregar os 2 endereços em alta frequência
3.
Procure um bit flip explorável
4.
Explorar a inversão de bits (por exemplo, manipular tabelas de páginas,
execução remota de código).
A abordagem deste método pode ser
interpretada da seguinte forma: “a cadeia
de exploração pode ser iniciada quando uma vítima visita um site
mal-intencionado sob o controle do Hacker ou até um site legítimo que tenha um
anúncio malicioso. Desta forma os bits de flips do Rowhammer são acionados de
dentro da sandbox do JavaScript para obter o controle do navegador da vítima. O
exploit se baseia especificamente em corromper os ponteiros no navegador para
quebrar o ASLR e girar para o objeto falsificado. Em outras palavras, proteger
a integridade de ponteiros em software ou hardware usando um PAC
poderia parar o exploit SMASH atual”.
Em resumo, a conjectura fundamental
na segurança de um software é que um local de memória só possa ser modificado
por processos legítimos, que podem gravar neste local de memória, entretanto,
os efeitos eletromagnéticos na DRAM podem alterar o conteúdo de uma célula da
memória sem acessá-la ao leva-la para fora de seus limites ao condicioná-la a
mudar o seu estado lógico eletromagnético de 0 para 1 causando um Soft Error na
memória DRAM.
Por último, o acesso à memória fora
dos limites resultará na corrupção da memória relevante e talvez nas instruções
lavando-a ao travamento ou o invasor pode sobrescrever dados específicos de
aplicativos críticos, um sinalizado que indica se o usuário é administrador,
por exemplo. Recomenda-se como contramedida para este tipo de ataque, o uso de
controle de conteúdo dentro de uma empresa, campanhas de treinamento de
segurança da informação e uma boa política de uso da internet.
Bibliografia:
https://pure.tugraz.at/ws/portalfiles/portal/17611517/rowhammerjs.pdf
https://wiki.sj.ifsc.edu.br/index.php/MI1022806_2020_1_AULA08
https://security.googleblog.com/2021/05/introducing-half-double-new-hammering.html?m=1
http://www.ic.uff.br/~boeres/slides_FAC/FAC-aula2.pdf
https://media.digikey.com/pdf/Data%20Sheets/Micron%20Technology%20Inc%20PDFs/MT16JTFxxx64AY.pdf
https://www.hardware.com.br/dicas/entendendo-cache.html
https://canaltech.com.br/produtos/O-que-e-FSB/
https://slideplayer.com.br/slide/353970/
https://www.psafe.com/blog/pesquisadores-identificam-vulnerabilidade-na-memoria-ram-ddr3/
https://pt.wikipedia.org/wiki/DDR3_SDRAM
http://www.univasf.edu.br/~romulo.camara/novo/wp-content/uploads/2013/07/Familias_Logicas1.pdf
https://www.securitee.org/files/bitsquatting_www2013.pdf
http://cwe.mitre.org/data/definitions/119.html
https://nvd.nist.gov/vuln/detail/CVE-2021-23017
https://www.cs.umd.edu/class/fall2018/cmsc818O/papers/rowhammer-kernel.pdf
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.