RAM scraping – Técnica de cifra de dados burlada pelos hackers
A segurança informática é um requisito essencial para o bom e credível funcionamento de todos os sistemas de informação. Nos últimos tempos têm sido muitas as ameaças divulgadas, que têm como objectivo a exploração das mais diversas vulnerabilidades dos sistemas informáticos. A “inteligência” associada às técnicas de ataque têm evoluído significativamente e nesse sentido a segurança informática deve ser pensada e aplicada ao pormenor.
Depois dos nossas artigos sobre Ransomware (ver aqui) e Rogue APs Wifi (ver aqui), malware DNSChanger hoje vamos conhecer o que é o RAM scraping.
De modo a garantir confidencialidade e integridade de dados , as comunicações de dados recorrem normalmente a técnica de cifra (encriptação) de dados. A encriptação é o processo de transformação de uma informação original, numa informação ilegível, para terceiros. Este mecanismo tem como objectivo o envio de informação de forma segura, sendo apenas possível a sua descodificação por pessoas/máquinas autorizadas (que possuam a chave de “desencriptação”).
Num forum realizado em Singapura, Mark Goudie da operadora Verizon referiu que os mecanismos de cifra de dados, usados actualmente em trânsito nas comunicações, fazem um excelente trabalho mas alertou…a informação continua vulnerável na fase de transformação (de legível para ilegível), isto porque tem de ser carregada em memória RAM.
Em poucas palavras, Goudie recorda que para cifrarmos uma determinada informação, inicialmente precisamos dela legível.
"It's hard to process encrypted data. If you want to process the data, you need it unencrypted. We all know that, [but] so do the bad guys.
Esta nova forma de “atacar” os servidores, à qual Goudie chamou de RAM scraping (“raspagem” da RAM) consiste basicamente em conseguir extrair a informação carregada dos servidores, enquanto esta está no estado de pré-processamento e carregada na RAM.
Godie acredita que esta técnica tem vindo a ser usada desde 2008 e que muitas organizações/Administradores de Sistemas desconhecem-na, considerando que usando protocolos, como por exemplo SSL, a informação está salvaguardada.
This is what I hear all the time: 'We could not have possibly been hacked, because we don't store any sensitive data, we just send it off to somebody else
Goudie demonstrou tal técnica aos jornalistas, recorrendo a um um site de comércio electrónico fictício que nunca guarda informações sobre os cartões de crédito.
No entanto, como o servidor Web necessita de processar a informação passada, é aqui que entra o RAM scraping para capturar os dados passados.
"I grabbed the processes, I found where the memory locations were, I got the memory locations, and I looked through it."
,
Goudie referiu que esta é apenas um dos inúmeros cenários onde a técnica de RAM scraping pode ser aplicada e alerta os programadaores para uma "boa" programação das suas aplicações. ZDNet
Consideram que está técnica pode colocar em causa os inúmeros serviços disponibilizados na Internet?
Este artigo tem mais de um ano
só o simples facto de terem acesso aos servidores já é um sinal de alarme por isso se atravez deste mecanismo conseguirem ter acesso as informações é muito mau e penso que seja bastante dificil de combater esta tecnica
Se este senhor fosse levar no … fazia melhor figura. Simplesmente ele não é nem de perto o “criador” desta tecnica, ele simplesmente roubou a tecnica utilizada a muitos anos pelo mundo underground.
Dito isto, bom post. Pplware sempre a bombar
Tanto quanto sei o senhor não disse que era o criador desta técnica…
O homem apenas a demonstrou. Ele disse que a técnica já é usada desde 2008. Mas como sabemos, os Hackers não têm interesse em fazer demonstrações de como fazem as coisas, pelo que resolveu ser ele a demonstrar.
Já estou a imaginar os “bad guys” todos saberem isto… Ai ai…
Este é um conceito bastante velho e qualquer programador que se prese deve estar a par deste tipo de situações.
Este tipo de problemas é o que impede a proliferação de sites de streaming de audio e video, mediante pagamento por visualização, ou seja, o site pode encriptar por completo a transferência de informação entre o reprodutor de video e o servidor, no entanto, sem ser sequer necessário efectuar reverse engeneering ao player, basta colocar ou um intermediário (um simulador de video, listener de dados, gravador de video/audio, etc) ou listeners de memória. Como no meu exemplo estou a falar de um formato que já sei qual é e que será reproduzido num ambiente controlado (o meu PC) normalmente opta-se por um simples gravador. No entanto, neste tipo de exemplos onde queremos snifar qualquer tipo de informação, a opção mais viável é sniffing à RAM. Esta é uma das razões para que classes como o IPrincipal e semelhantes jamais contenham passwords em memória, mesmo que encriptadas.
Resumindo, se os dados têm de ser lidos de forma perceptível, isso significa que de alguma forma ficarão expostos e nada há a fazer para impedir que sejam lidos, podendo-se apenas tentar controlar o ambiente onde é efectuado o seu tratamento, como por exemplo, tentar impedir o envio de informação para fora da rede (a delegação deste tipo manipulação de informação para servidores internos e que apenas tenham acesso de output para os IPs dos prestadores de serviço de pagamentos é uma das opções, mas que ainda assim não impede reencaminhamentos internos pela rede até um servidor de acesso externo).
Enfim, segurança informática dá pano para mangas 😛
boas…
não percebi muito bem a coisa…
penso que isto so será possivel se alguém conseguir entrar no servidor e ter permissões para começar a “varrer” a RAM á procura de info…mas para isso tem que saber qual a zona de memoria que esta a ser utilizada como buffer antes da encriptação para enviu correcto?
então e se eu criar uma partição em RAM que apenas tem acesso de escrita para um user especifico…e não tem sequer acesso de leitura para os outros…e fizer dessa pastição o meu buffer…se apenas o root conseguir ler…quen não for root não acede!!!
Se o atacante ganhar acesso de root…para que quererá ele analisar a ram?!
copia a bd e pronto…
cmps
Para a informação segura o melhor local seria o cache do processador ou com um programa pode ler todos os níveis de cache? Não tenho muito conhecimento em segurança via hardware.
LMX,
nao estás muito longe da verdade, mas nao é forçosamente necessario alguem conseguir entrar no servidor, e nem é preciso ser um servidor.
O que o João Simões fala é muito semelhante ao que se fazia no CBM Amiga (ha uns 20 anos atras…) com os Rippers .
No caso do Amiga, mesmo depois de um reset à maquina, ficavam sempre dados gravados em memoria (na Chip RAM, para quem se recorda), e bastava um simples memory dump para apanhar os dados todos da RAM *MESMO DEPOIS DE UM RESTART OU RESET* . Era util para apanharmos e gravarmos MODs (quem não sabe o que são, google!), para gravarmos e posteriormente analisar partes de código e com isso criar cracks!
Resumindo, o que o João Simões sugere, e bem, é que quem tem um PC e conhecimentos suficientes pode muito bem pagar um serviço de Video-On-Demand (aka MEO Video Clube), ver o filme no PC, e enquanto o vê, desencriptá-lo e gravar os dados! Recordo que nao temos em solo nacional e na maioria dos paises europeus video clubes online por haver muitas duvidas sobre a segurança da transmissao do video, salva-guarda dos direitos de autor (e não só). E isto é apenas 1 exemplo.
Posso também referenciar que posso muito bem gravar uma chamada ou teleconferencia ou videoconferencia (SIP, H323, Skinny, SCCP, Skype, whatever) sem grandes chatices, mesmo que esta esteja encriptada. E ha muitos outros exemplos.
A titulo de exemplo, os telefonemas, que são hoje em dia *TODAS* as chamadas que fazemos (GSM, PSTN corre tudo sobre IP nem que seja entre as operadoras) só são seguras quando há processamento directo via DSPs nos servidores. Quanto menos o CPU de um servidor processar directamente a chamada, menos dados estão à descoberta na RAM (as placas com DSP têm tipicamente RAM especifica que trata disso). É também um dos motivos por as chamadas VOIP nao serem permitidas em vários paises do médio-oriente, oriente e africa sub-sahariana (ex. Moçambique, Indica, Cambodja, Vietname, etc…)
boas…
Obrigado Sergio, acho que ja entendi o problema 😉
cmps
Não sei se algum de vocês ouviu falar do “Cheat Engine”…
Basicamente faz o que está descrito acima, mas direccionado para jogos (embora funcione com qualquer aplicação).
Não sei se algum dos senhores já viu o filme TRON, de 1982, que começa com o Flynn à procura de provas da criação dos jogos, na memória do Master Computer…. Parece-me mais ou menos a mesma coisa… 🙂
Pelo que percebi a técnica só funciona depois de o servidor se encontrar comprometido.
Por outro lado, se as tarefas de encriptação forem delegadas num servidor menos exposto ao exterior, já deve resolver o problema.
Digo eu… Segurança não é o meu forte.