Por Marcelo Tavares de Santana [1]

Neste artigo falaremos de um exemplo prático sobre a importância de termos códigos públicos auditáveis, e como isso recai sobre a escolha de sistema operacional (SO). Por volta de 2007, a polícia italiana espionou milhares de contas de e-mail por meses até serem descobertos. Eles usaram um código malicioso no núcleo (kernel) do SO, que era Linux, que só foi possível devido à colaboração forçada da hospedagem onde ficava o serviço de e-mail.

Antes de mais detalhes sobre o caso vamos abordar como um keylogger funciona para ajudar no conhecimento sobre códigos maliciosos. Normalmente conectamos teclados externos direto no computador, de modo que dados sobre as teclas digitadas sejam enviados via cabo sem que sejam interceptados. No entanto, podemos comprar um dispositivo keylogger que copiará tudo o que acontecer no teclado, inclusive senhas de banco, e que é conectado entre teclado e computador como o esquema da Figura 1(A) — esses dispositivos são ferramentas utilizadas em computação forense, teste de equipamentos, são vendidos no mercado, podem ter uso absolutamente legítimo, assim como usados para crimes. Pesquisem por ‘keylogger usb’ na Web e encontrarão até alguns que mandam dados por conexão sem fio.

A Figura 1(B) mostra um esquema de como um programa keylogger pode estar instalado num computador, ou seja, junto ao SO, tecnicamente conhecido como kernel. Popularmente, não existe a ambiguidade entre ambiente de trabalho e SO no universo do Linux, como acontece no Microsoft Windows. A instalação que fazemos para usar os aplicativos de usuários, módulos ou drivers de dispositivos como impressora, placa de vídeo, etc., é chamada de distribuição. Por exemplo, o Ubuntu Linux é uma distribuição que inclui o SO Linux; analogamente, apesar de pouco conhecido, um Windows 10 é uma distribuição que vem com o SO Windows NT kernel.

Voltando ao caso italiano, um grupo ativista que fazia hospedagem de contas de e-mail seguro teve seu equipamento desligado por algumas horas, por uma suposta falta de energia elétrica, e como era criptografado tinham que ir no equipamento colocar a senha pessoalmente para iniciar o computador. No entanto, descobriram após meses que a falta de energia nunca aconteceu e que a empresa de hospedagem foi obrigada a dizer isso enquanto era instalado no computador um SO Linux com um código malicioso que enviou a senha da criptografia via Internet para a polícia e assim conseguiram acesso aos certificados criptográficos de comunicação, violando diversas contas de e-mail de ativistas; acreditam que tal código era um tipo de keylogger.

Tal ataque só foi possível de ser descoberto pois o código do kernel Linux é conhecido e possibilita comparação entre o que é público e aquilo que está instalado, apesar de também ser verdade que um código público ajuda na instalação de códigos indesejados. Da mesma forma que o keylogger USB pode ter usos legítimos, um código de keylogger pode ser usado para fins de testes e acadêmicos; que não foi o caso na Itália. Depois do ocorrido a comunidade ativista internacional aprendeu a fazer instalações sem inicialização do computador, onde é preciso trazer um pendrive USB com a inicialização do sistema para ligar o computador criptografado e assim impedir que alguém troque o SO por algum com código não autorizado.

Figura 1: esquemas de uso de keylogger por hardware (A) e por software (B)

Muito antes das discussões e leis de proteção de dados pessoais, do vigilantismo das redes sociais e de governos, tivemos casos de empresas que coletavam dados de usuários sem autorização. Isso pode voltar a acontecer e a única proteção que a sociedade tem é o conhecimento do código do software que permita a auditoria e a comparação das instalações pela própria sociedade. Existe também toda uma outra discussão sobre hardwares que dependem de programas/drivers proprietários, como placas de vídeo para o público gamer, mas os fabricantes sabem que um SO livre facilita a auditoria desses códigos proprietários, de modo que não precisamos entrar em paranoia por usarmos computadores, notebooks ou celulares de mercado no nosso dia a dia.

Sem entrar em detalhes sobre as distribuições por ser um assunto extenso, só de usar um SO livre dá-se um passo na segurança pessoal. Se criptografar com uma senha forte, melhor ainda. Não depender de drivers proprietários é desejável. De modo geral, costumo recomendar para desktops e notebooks o Debian Live com firmwares non-free [2]; que só é considerado não oficial por conter firmwares proprietários de dispositivos que facilitam instalação e funcionamento para leigos. Se for para servidores, deve-se optar por alguma distribuição sem código proprietário sempre que possível; o ideal é comprar equipamentos que não dependerão desse tipo de código.

Quem usa celular com o ambiente de trabalho conhecido como Android, que usa o SO Linux, pode ter acesso ao código de todo ambiente pelo Android Open Source Project [3]. Infelizmente as fabricantes mudam em maior ou menor grau o código original para seus dispositivos, instalando programas não solicitados, mas podemos trocar por soluções como o LineageOS [4]; particularmente, depois de usar esse último, as versões de fábrica passaram a me deixar irritado e agora foco em dispositivos em que consiga no futuro trocar por versões livres de SO, esperando somente o tempo de garantia para fazer a troca.

Desta vez não temos uma alteração no nosso Mapa de Segurança Digital. Mesmo necessário mais artigos sobre esse assunto, no próximo trataremos de boas práticas de autenticação para dificultar diversos golpes que têm prejudicado muitas pessoas. Fica de proposta para as próximas semanas pesquisa e estudos a seguir:

Notas

[1] Professor de Ensino Básico, Técnico e Tecnológico do Instituto Federal de São Paulo.
[2] https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/current-live/amd64/iso-hybrid/
[3] https://source.android.com/
[4] https://lineageos.org/

DEIXE UMA RESPOSTA

Please enter your comment!
Please enter your name here