Por Rodolfo Castanheira, de São Paulo
É provável que você tenha visto nos últimos dias notícias sobre Meltdown e Spectre, duas falhas de segurança que afetam quase todos os processadores existentes – de computadores de mesa a celulares.
O Spectre permite que um atacante leia os dados que quiser de outros processos. Uma página qualquer da internet, em teoria, pode usá-lo para ler todas as senhas armazenadas em seu navegador.
O Meltdown é ainda pior. É mais sério e mais fácil de usar. Através dele é possível derrubar todas as barreiras de segurança de um computador. Com ele, qualquer programa pode tomar controle completo da máquina em que está rodando. Isso afeta praticamente todos os processadores fabricados pela Intel nos últimos 20 anos.
Felizmente, já há proteções contra esses ataques. Pra garantir sua segurança basta manter seus computadores e outros equipamentos atualizados. Mas essa proteção terá um custo: a única forma efetiva de impedir o Meltdown é, na prática, desabilitar os caches[1] do processador. Isso deve diminuir sua performance em até 30%, a depender do perfil de uso. Esse deve ser o bug de maior impacto da história da computação. De um dia para outro, nossos computadores vão ficar até 30% mais lentos.
Tanto o Meltdown quanto o Spectre têm uma causa comum. Pra acelerar o processamento os computadores modernos usam uma técnica chamada execução especulativa[2]. Ela foi criada para mitigar um problema que surgiu há 20 anos: os processadores estavam se tornando, progressivamente, mais rápidos que a memória RAM. Assim, sempre que era necessário buscar alguma informação na memória, o processador ficava esperando, sem nada para fazer.
Com a execução especulativa o que o processador faz é tentar adivinhar a informação que vai chegar da memória e, com base nesse palpite, continua o processamento. Quando a informação chega, ele compara a que ele usou com a real. Se ele acertou, as coisas continuam normalmente. Se ele errou, todos os cálculos e instruções executados com esse palpite equivocado são desfeitos.
Contudo, descobriu-se que essas execuções especulativas desfeitas deixam rastros. No caso mais sério, do Meltdown, a Intel decidiu por não fazer importantes checagens de segurança, já que essas instruções seriam desfeitas de toda forma. O resultado é que os rastros dos processadores Intel podem conter informações bastante sigilosas, como senhas, chaves de criptografia etc. O nome Meltdown vem do fato de que esses rastros “derretem” todas as barreiras de segurança, já que com essas informações é muito fácil tomar o controle do computador.
Mas o mais interessante disso tudo é que essas falhas não surgiram ontem. Estavam aí há 20 anos, mas nós só soubemos delas agora. Durante essas duas décadas é provável que diferentes atores as tenham descoberto e mantido em segredo, pelo incrível poder que elas provém. Poder passar por cima de toda e qualquer barreira de segurança de um computador é o sonho de qualquer agência de segurança.
* * *
Então, o que isso nos diz sobre a segurança de nossos computadores? Que outras falhas catastróficas não existem por aí e nem suspeitamos?
Mesmo baseando-se apenas em informações públicas, é fácil chegar a conclusão de que o Meltdown e o Spectre não são mais do que a ponta de um iceberg. A coisa é muito, mas muito mais feia do que as pessoas imaginam.
Minha posição é que, por princípio, devemos assumir que todo computador é inseguro. Na prática, no mundo real, não é difícil invadir um computador. Para atores com muitos recursos, como agências estatais, isso é brincadeira de criança.
Mas será que estou exagerando? Vejamos.
Vamos pensar em um caso extremo, onde todas as medidas são válidas, independente do custo ou limitações que elas imponham: estamos lidando com informações bastante sensíveis e precisamos de uma segurança realmente confiável. Vidas estão em jogo. Essas informações não podem vazar de jeito nenhum. É possível ter um sistema seguro onde se possa armazenar e usar esses dados?
Bom, a primeira coisa a fazer seria desconectar esse computador da internet e de qualquer outra rede. Todos os processadores modernos da Intel vêm com um programa secreto chamado Management Engine (ME) embutido no chip. Ele responde a comandos recebidos via placa de rede, não pode ser desabilitado e funciona até mesmo quando seu computador está desligado (parece piada, mas é isso mesmo!).
De um artigo da ZDNET sobre ele:
“O [ME] também tem acesso às suas senhas. Ele pode modificar o seu firmware mesmo se o computador estiver desligado. Deixe-me repetir isso. Se seu computador estiver ‘desligado’, mas ligado na tomada, o [ME] pode ainda assim mudar configurações fundamentais de seu computador. (…) Você nao pode vê-lo. Você não pode controlá-lo. Ele está sempre rodando ali em baixo, controlando seu computador.” [3]
E como qualquer programa complexo, é claro que descobriram uma série de bugs nele. De um artigo do The Register:
“Intel admitiu hoje que seu Management Engine (ME) […] contém diversas falhas de segurança preocupantes […]. Os bugs permitem […] rodar código abaixo do sistema operacional para espionar ou modificar totalmente o computador, […] infectar remotamente máquinas com spyware e rootkits indetectáveis, […] extrair informação confidencial e protegida da memória, potencialmente fornecendo dados sensíveis a atacantes – como senhas ou chaves de criptografia […]” [4]
Enfim, se você quer ter certeza de que seus dados não serão roubados, nunca conecte o computador que os armazena a uma rede.
Mas isso não basta. É possível tomar o controle de um computador apenas conectando um dispositivo a ele. A CIA, por exemplo, invadiu os sistemas de controle das usinas de beneficiamento de urânio do Irã usando apenas dispositivos USB especialmente preparados. Bastava conectá-los a uma entrada USB e pronto! – em segundos aquele computador estava sob controle da CIA, como nos filmes. Ela usou esse controle para destruir boa parte dos equipamentos industriais dessas usinas, atrasando em anos o programa nuclear iraniano.[5]
As falhas de segurança utilizadas nesse ataque já foram corrigidas. Mas desde então, citando uma matéria da WIRED, pesquisadores descobriram que:
“Os problemas de segurança de dispositivos USB são mais profundos do que você pensa: […] eles proveem da essência de como eles funcionam. O malware que eles [os pesquidares] criaram, chamado BadUSB, pode ser usado em um dispositivo para tomar total controle de um computador, alterar invisivelmente arquivos de um pen drive, ou até mesmo redirecionar o tráfego de internet do computador. […] E os dois pesquisadores dizem que não há concerto fácil [para essas falhas]: Esse tipo de ataque que eles demonstraram é quase impossível de barrar sem proibir o uso de dispositivos USB ou preencher as portas USB com super-bonder.” [6]
Portando, se você quer segurança, inutilize todas as entradas desse computador imaginário. E não só USB. Diversas outras portas podem ser usadas para tomar o controle ou vazar informações: Firewire, HDMI, PCI, entrada de microfone ou fone de ouvido, câmera etc. O mais seguro é colocar cola em tudo.
Mas até em câmeras e microfones? Isso não é um exagero?
Bom, considerando que Mark Zuckerberg[7] e o ex-diretor do FBI[8] fazem isso, talvez não seja tanto exagero assim.
Então, as informações desse computador, que está fora de qualquer rede e com todas as portas fisicamente destruídas, estão seguras? Afinal, não é possível que, nessas condições, algum atacante consiga roubar qualquer dado, não é? Por incrível que pareça, sim, é possível. E de várias maneiras.
Uma delas envolve apenas “ouvir” as microvibrações de ar geradas pelo computador enquanto ele realiza seus cálculos. Elas são inaudíveis para humanos, mas podem ser captadas por microfones de celulares. Citando um artigo de pesquisadores da Universidade de Tel Aviv:
“Muitos computadores emitem um ruído de alta frequência durante sua operação devido à vibrações em alguns de seus componentes. […] Esse ataque pode extrair chaves completas de criptografia RSA de 4096 bits de laptops (de vários fabricantes) […]. Nós demonstramos experimentalmente que esses ataques podem ser feitos usando tanto um celular qualquer colocado próximo ao computador, quanto um microfone mais sensível a até 4 metros de distância.” [9]
Nesse caso, é só colocar o computador em uma sala isolada e não deixar ninguém entrar com o celular? Isso ajuda, mas não é suficiente. Do mesmo artigo:
“Além de acústica, nós demonstramos que um ataque similar, de baixa largura de banda, pode ser feito medindo o potencial elétrico do chassi do computador. Um atacante com o equipamento correto precisaria apenas tocar o computador com sua mão nua.” [9]
Ou seja, é possível roubar chaves de criptografia apenas encostando em um computador; ou na tela, já que o cabo de vídeo vai acabar transmitindo essas oscilações de potencial elétrico para ela; ou em uma pessoa que está em contato com o computador, já que o corpo humano também transmite esse tipo de oscilação. Em certas condições é possível roubar a chave de criptografia com apenas alguns segundos de contato [10].
Portando, muito cuidado com qualquer mão em seu ombro enquanto estiver operando esse computador. Ela pode estar roubando suas chaves de criptografia.
Resumindo, todo e qualquer contato físico ou proximidade com o computador, seus acessórios ou pessoas operando ele, pode ser usado para roubar informações. Não basta isolar a sala e barrar celulares. É preciso fazer uma revista completa das pessoas que entrarem nessa sala e proibir qualquer coisa que possa conter ou parecer um equipamento eletrônico.
Mas isso não é tudo.
Não podemos esquecer que esse computador ainda está conectado a uma rede, a rede de energia elétrica. É possível usar as variações de consumo de energia de um equipamento para inferir bastante informação sobre o que ele está processando, incluindo suas chaves de criptografia [11]. Uma pessoa que tenha acesso aos fios de energia que vão até o seu computador, mesmo do outro lado do prédio, pode roubar informações de forma indetectável.
Enfim, para garantir a segurança de que precisamos nesse caso hipotético, seria necessário colocar esse computador em uma sala isolada, com suprimento de energia desacoplado da rede elétrica, sem acesso a nenhuma rede, com todas as portas inutilizadas, dentro de uma caixa isolante de forma que ninguém possa tocar nele ou em qualquer parte condutiva de seus periféricos e fazer uma minuciosa revista em toda e qualquer pessoa que entrasse na sala.
Mesmo fazendo tudo isso estaríamos protegidos apenas dos ataques amplamente conhecidos e fáceis de implementar. Proteger-se de ataques hipotéticos ou que por ventura utilizem técnicas desconhecidas é toda uma outra história, bem mais complicada.
Como eu disse lá em cima, na questão da segurança as coisas estão muito, mas muito mais feias do que as pessoas imaginam.
Existe uma lenda urbana de que a NASA gastou milhões de dólares para desenvolver a caneta esferográfica, porque canetas normais não funcionam no espaço. Os russos resolveram o problema de forma muito mais simples: compraram alguns lápis [13]. Talvez a melhor solução para o nosso problema hipotético, de garantir a segurança de dados extremamente sensíveis, seja justamente se inspirar nessa fábula, deixar o computador de lado e tirar a poeira da boa e velha máquina de escrever. Coisa que os próprios russos, aliás, já estão fazendo[14].
[1] https://www.tecmundo.com.br/
[2] https://en.wikipedia.org/wiki/
[3] http://www.zdnet.com/article/
[4] https://www.theregister.co.uk/
[5] https://en.wikipedia.org/wiki/
[6] https://www.wired.com/2014/07/
[7] http://www.telegraph.co.uk/
[8] https://www.npr.org/sections/
[9] http://www.cs.tau.ac.il/~
[10] http://www.cs.tau.ac.il/~
[11] https://people.rit.edu/
[13] https://pt.wikipedia.org/wiki/
[14] http://www.telegraph.co.uk/
Comentários