<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Vitor Daniel</title>
    <description>The latest articles on DEV Community by Vitor Daniel (@vadolasi).</description>
    <link>https://dev.to/vadolasi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F398642%2F7b49ba1e-1d11-46ac-a27e-411f8b92e1ce.png</url>
      <title>DEV Community: Vitor Daniel</title>
      <link>https://dev.to/vadolasi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vadolasi"/>
    <language>en</language>
    <item>
      <title>Hackeei minha universidade e obtive acesso aos dados de todos os alunos</title>
      <dc:creator>Vitor Daniel</dc:creator>
      <pubDate>Thu, 05 Feb 2026 19:38:56 +0000</pubDate>
      <link>https://dev.to/vadolasi/hackeei-minha-universidade-e-obtive-acesso-aos-dados-de-todos-os-alunos-5ai9</link>
      <guid>https://dev.to/vadolasi/hackeei-minha-universidade-e-obtive-acesso-aos-dados-de-todos-os-alunos-5ai9</guid>
      <description>&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;No momento em que escrevo esta publicação, estou indo para o 3º período do Bacharelado em Tecnologia da Informação na Universidade Federal do Rio Grande do Norte (UFRN). E sim, é isso mesmo que você leu no título. Mas calma, não se preocupe: os dados de todo mundo estão protegidos e nada foi vazado. Deixe-me contar melhor como tudo isso aconteceu.&lt;/p&gt;

&lt;p&gt;O sistema de gestão acadêmica utilizado pela UFRN é o &lt;strong&gt;SIGAA&lt;/strong&gt; (Sistema Integrado de Gestão de Atividades Acadêmicas), desenvolvido aqui pela Superintendência de Tecnologia da Informação (STI) da universidade. Ele é amplamente utilizado por dezenas de instituições em todo o Brasil, incluindo outras universidades federais (UnB, UFC, UFPB, UFPI), universidades estaduais e institutos federais. Não tenho números exatos, mas o total de usuários, somando todas as instituições, pode ultrapassar 1 milhão.&lt;/p&gt;

&lt;p&gt;A STI/UFRN mantém uma API que permite interagir com dados do SIGAA e de outros sistemas. Essa API é de uso restrito e, normalmente, é necessário um processo formal para obter credenciais. Um dos clientes dessa API é o &lt;strong&gt;SIGAA Mobile&lt;/strong&gt;, um app nativo com interface simples que permite aos alunos acessarem notas, horários e notícias.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Curiosidade Matou o Gato? (Quase)
&lt;/h2&gt;

&lt;p&gt;Como estudante de TI, sou naturalmente curioso sobre o funcionamento das coisas e gosto de criar ferramentas que facilitem a vida. No ensino médio (IFRN), ajudei a criar um aplicativo (&lt;a href="https://www.instagram.com/app.save/" rel="noopener noreferrer"&gt;App Save&lt;/a&gt;) que resolvia a falta de uma interface mobile decente para o sistema de lá.&lt;/p&gt;

&lt;p&gt;Eu tinha planos de fazer algo parecido para a UFRN, talvez um chatbot com IA para consultar notas e outras informações. Como eu não sabia da existência da API naquele momento (e mesmo se soubesse não teria as credenciais), resolvi fazer engenharia reversa para entender como o &lt;strong&gt;SIGAA Mobile&lt;/strong&gt; funcionava. Instalei o app no emulador Android &lt;a href="https://www.genymotion.com" rel="noopener noreferrer"&gt;Genymotion&lt;/a&gt; e utilizei o &lt;a href="https://httptoolkit.com" rel="noopener noreferrer"&gt;HTTP Toolkit&lt;/a&gt; para inspecionar as requisições (man-in-the-middle) e entender o tráfego de dados. Tudo isso em um ambiente controlado, usando apenas minha própria conta.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fvitordaniel.is-a.dev%2F_app%2Fimmutable%2Fassets%2Fhttptoolkit.CHCxCDf7.avif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fvitordaniel.is-a.dev%2F_app%2Fimmutable%2Fassets%2Fhttptoolkit.CHCxCDf7.avif" alt="Print do HTTP Toolkit interceptando requisições" width="1920" height="1080"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ao inspecionar o tráfego, descobri os a existência da API, e consegui encontrar a documentação. A partir daí, comecei a estudar como ela se comportava: testei extensivamente vários endpoints para ver quais dados retornavam e quais eram os limites de validação (também testei inputs como &lt;code&gt;9999999999&lt;/code&gt;, &lt;code&gt;0&lt;/code&gt; e &lt;code&gt;-1&lt;/code&gt; só para ver se o que acontecia 🙃).&lt;/p&gt;

&lt;p&gt;A API é complexa — possui centenas de endpoints. O fluxo de dados é fragmentado: para começar, eu precisava primeiro pegar meu &lt;code&gt;id_usuario&lt;/code&gt;, depois listar meus &lt;code&gt;vinculos&lt;/code&gt; (graduação, mestrado, etc.), selecionar o vínculo ativo e só então chamar os enpoints que eu queria (notas, turmas, etc).&lt;/p&gt;

&lt;p&gt;Muitos endpoints retornavam acesso negado, outros traziam apenas dados públicos. Mas eu continuei "cutucando".&lt;/p&gt;

&lt;h2&gt;
  
  
  O Momento "Eita..."
&lt;/h2&gt;

&lt;p&gt;Em certo momento, me deparei com um endpoint relacionado a busca de "usuários". Resolvi testar, esperando receber um erro de permissão.&lt;/p&gt;

&lt;p&gt;Quando executei a requisição, veio a surpresa: a API retornou o objeto JSON completo contendo &lt;strong&gt;nome, CPF e e-mail pessoal&lt;/strong&gt; de usuários cadastrados no sistema. Isso incluía não apenas alunos, mas provavelmente professores e servidores.&lt;/p&gt;

&lt;p&gt;Fiquei em choque. Cheguei a cogitar se aqueles dados seriam públicos por alguma lei de transparência, mas pesquisei e vi que, à luz da &lt;strong&gt;LGPD&lt;/strong&gt;, aquilo era uma exposição crítica. Essa falha figura no topo da lista de problemas de segurança mais comuns da &lt;a href="https://owasp.org/Top10/2021/A01_2021-Broken_Access_Control/" rel="noopener noreferrer"&gt;OWASP Top 10 de 2025&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Não explorei a fundo para não coletar dados indevidos, mas o potencial de extração era massivo, abrangendo registros de décadas.&lt;/p&gt;

&lt;p&gt;Naquele momento, o medo bateu. "Será que serei processado?", "Será se foi errado eu ter explorado o sistema dessa maneira?". Mas a ética falou mais alto: eu precisava reportar aquilo antes que alguém mal-intencionado descobrisse.&lt;/p&gt;

&lt;h2&gt;
  
  
  Responsible Disclosure (Divulgação Responsável)
&lt;/h2&gt;

&lt;p&gt;Imediatamente interrompi os testes e redigi um relatório técnico. Enviei um e-mail para a STI detalhando a vulnerabilidade, o passo a passo para reprodução e o impacto (exposição de CPF/E-mails), deixando claro que &lt;strong&gt;não realizei extração de dados de terceiros&lt;/strong&gt;, apenas a validação da falha.&lt;/p&gt;

&lt;p&gt;A resposta foi exemplar.&lt;/p&gt;

&lt;p&gt;A equipe da STI entrou em contato comigo no mesmo dia. Tive uma reunião com a diretoria, onde expliquei o ocorrido. Recebi agradecimentos pela postura ética e profissional. Fui convidado a participar de processos seletivos para bolsas para me juntar à equipe e mantivemos o acordo de que eu só falaria publicamente sobre isso após a correção.&lt;/p&gt;

&lt;p&gt;O &lt;em&gt;patch&lt;/em&gt; de segurança foi aplicado poucos dias depois, corrigindo as permissões de acesso nos endpoints afetados.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Fiquei muito feliz com o desfecho. A STI demonstrou ser uma equipe madura e profissional, e fico honrado em ter contribuído — mesmo que acidentalmente — para a segurança dos dados de toda a comunidade acadêmica da UFRN.&lt;/p&gt;

&lt;p&gt;Essa experiência reforçou para mim que, agir com ética e responsabilidade, mesmo em situações delicadas, é sempre o melhor caminho.&lt;/p&gt;

</description>
      <category>segurança</category>
      <category>universidade</category>
      <category>lgpd</category>
    </item>
  </channel>
</rss>
