Read, hack, repeat

Exclusivo | Inep deixa vazar dados de mais de 5 milhões de brasileiros e estrangeiros

Ramon de Souza

A The Hack descobriu, com exclusividade, que mais de 5 milhões de estudantes brasileiros tiveram seus dados expostos indevidamente na web por conta de uma série de falhas de configuração nos sistemas do Instituto Nacional de Estudos e Pesquisas Educacionais Anísio Teixeira (Inep), autarquia federal vinculada ao Ministério da Educação (MEC). A falha foi identificada e reportada por uma fonte anônima, que resolveu entrar em contato com a nossa equipe jornalística após encontrar a brecha no dia 28 de agosto.

O problema em questão residia no sistema do Exame Nacional de Desempenho dos Estudantes (Enade) — que, por sua vez, possui ligações diretas com o banco de dados do Exame Nacional do Ensino Médio (Enem), de forma que se tornou possível consultar informações de participantes de ambas as avaliações que se cadastraram a partir de aproximadamente 1995. Programado na plataforma Angular, o sistema em questão envia ao cliente todo o diretório de rotas de suas APIs em um arquivo app.js quando este faz uma requisição.

Qualquer indivíduo com conhecimentos básicos de programação web conseguiria encontrar as falhas

Isso significa que, a grosso modo, qualquer estudante legalmente cadastrado no Enade poderia, com conhecimentos básicos de programação web, obter dados de outros alunos e realizar operações privilegiadas na aplicação ao simplesmente alterar alguns parâmetros sem a necessidade de alterar o seu JSON Web Token (JWT). Desta forma, podemos enquadrar a brecha como um problema de Controle de Acesso Quebrado (Broken Access Control), a quinta vulnerabilidade web na lista OWASP Top Ten 2017.

“Quando se modifica a variável de CPF para um outro número de CPF válido, sem realizar qualquer mudança no JWT, os dados dos outros usuários são retornados. Como recentemente houve a disponibilidade daquela base de 270 milhões de CPFs, dá para você fazer consultas de basicamente qualquer pessoa que você souber pelo menos o nome e o dia do aniversário (informações que você tem olhando o feed do Instagram ou do Twitter de alguém)”, explica nossa fonte.

Exemplo de exploração de rotas não-protegidas

O que foi exposto?

Uma das dezenas de rotas vulneráveis encontradas no app.js é uma simples URL que poderia ser acessada pelo navegador e retornava dados de um total de 5.283.901 cidadãos, como demonstrado na imagem capturada a seguir — para conseguir visualizar tudo, bastava editar os parâmetros “page=” e “itemperpage=”. Sem mexer no atributo de paginação, conseguimos, em um rápido teste, extrair um total de 9 mil cadastros com nome, email, senha em hash, gênero, nome da mãe e data de ingresso no sistema.

Como é possível perceber, muitos registros são de estrangeiros inscritos para o teste de recebimento do Certificado de Proficiência em Língua Portuguesa para Estrangeiros (Celpe-Bras), cuja aplicação também é de responsabilidade do Inep.

Indo além, quem estava de fato inscrito para o Enade também teve endereço, contatos, nome do pai, foto e curso de inscrição vazados. Outros endpoints e rotas também desprotegidas por falta de autenticação possivelmente poderiam revelar mais dados sensíveis (como boletins de desempenho, local da prova e até opção de tratamento social), mas nem a The Hack e nem os pesquisadores anônimos tiveram tempo de testar todos os caminhos possíveis.

Registros de mais de 5 milhões de cidadãos inclui dados de estrangeiros tentando obter o Celpe-Bras (Captura de Tela/The Hack)

“Acreditamos que existe a possibilidade de se conseguir informações de laudos médicos e tratamento social de pessoas que solicitaram este tipo de operação. Porém, não conseguimos comprovar a eficiência desta teoria por não termos conhecimento de CPFs de pessoas que se enquadram nestes casos. Um ator mal-intencionado certamente poderia realizar este tipo de indexação, já que todos os CPFs estão disponíveis através do próprio sistema”, explicam, em exemplo.

Inep e ANPD se omitem

A The Hack entrou em contato com as assessorias de comunicação do Inep e do MEC na última terça-feira (31 de agosto) e o instituto foi ágil em corrigir parcialmente as falhas. Várias das rotas — incluindo a URL aberta que nos permitiu extrair informações de 9 mil estudantes — foram protegidas contra acessos não-autorizados; porém, outras continuam vulneráveis para internautas que possuem cadastro ativo no sistema do Enade, conforme validado pelos pesquisadores.

“Há alguns painéis administrativos no sistema do Enade (que não estão conectados na plataforma, mas estão listados no app.js) também acessíveis a qualquer usuário autenticado, que permitem fazer consultas incorporando diversas roles diferentes do sistema. Apenas como um esclarecimento: nós somos estudantes e fomos cadastrados no sistema do Enade apenas como estudantes. Portanto, não deveríamos ter acesso aos painéis relatados”, apontam.

Estudante realizando operações de administrador em rota que ainda não foi corrigida

O Inep afirmou que não emitirá um posicionamento oficial sobre o caso, visto que não há provas de que as falhas foram usadas de forma maliciosa — uma conclusão bastante perigosa, visto que não é possível deduzir por quanto tempo o sistema permaneceu inseguro e quantas pessoas possivelmente abusaram da vulnerabilidade antes que a The Hack realizasse a notificação. Afinal, trata-se de uma exploração que possivelmente deixaria uma quantidade muito baixa (ou até mesmo nula) de logs para uma investigação.

Procurada pela The Hack, a Agência Nacional de Proteção de Dados (ANPD) também não respondeu aos nossos contatos e pedidos de um posicionamento sobre o incidente. Vale lembrar que, em uma interpretação mais branda, a Lei Geral de Proteção de Dados (Lei nº 13.709 ou LGPD) “pega leve” com órgãos públicos; ainda assim, no caso de infração, “a autoridade nacional poderá solicitar a agentes do Poder Público a publicação de relatórios de impacto à proteção de dados pessoais”.


Compartilhar twitter/ facebook/ Copiar link
Your link has expired
Success! Check your email for magic link to sign-in.