Nenhum sistema está seguro...

O objetivo deste site é o de gerar conhecimento na área Forense, Jurídica e tecnologica.

quarta-feira, 16 de junho de 2021

ATAQUE DE CANAL LATERAL - NEW HAMMERING

 

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

https://www.exploit-db.com/exploits/36311

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.

Análise da Vulnerabilidade CVE-2024-23113 no FortiGate

  Relatório Técnico: Análise da Vulnerabilidade CVE-2024-23113 no FortiGate e Medidas de Mitigação Introdução Nos últimos anos, as vulnerabi...