Cyber Security Brasilby Igor Deungaro

O issue do repositório como vetor de ataque

O issue do repositório como vetor de ataque

Vale examinar um caso concreto em detalhe, porque ele mostra melhor que qualquer teoria por que os controles habituais não pegam esse tipo de ataque.

O caso

Um pesquisador da Invariant Labs mostrou que uma conta gratuita do GitHub e uma única issue maliciosa num repositório público bastavam para exfiltrar conteúdo de repositórios privados, dados pessoais e informação de salário de um desenvolvedor que usava um assistente com o servidor MCP do GitHub.

O que o desenvolvedor fez: pediu para revisar as issues abertas. Nada mais. O payload escondido na issue redirecionou o agente para acessar repositórios privados e publicar o conteúdo.

Privado não significa protegido quando um agente com acesso lê conteúdo externo não confiável.

Por que nenhum controle tradicional pega

  • Autenticação estava correta. O agente usou credencial legítima do usuário legítimo.
  • Autorização estava correta. O usuário realmente tinha acesso aos repositórios privados.
  • Não houve malware. Nenhum binário, nenhum processo estranho, nada para EDR detectar.
  • O tráfego era normal. Chamadas à API do GitHub a partir de uma máquina que sempre chama a API do GitHub.
  • O prompt era inocente. Log de conversa não mostra nada suspeito.

Todo o stack de segurança tradicional está funcionando perfeitamente enquanto os dados saem.

Onde este caso quebra

Três controles, em ordem de eficácia:

  • Separação de escopo. O agente que lê issues públicas não deveria carregar credencial com acesso a repositório privado. Uma identidade por finalidade resolve o caso inteiro.
  • Contaminação de contexto. Depois de ler conteúdo público, negar escrita externa e leitura de recurso privado na mesma tarefa.
  • Aprovação em publicação. Publicar é um dos quatro verbos irreversíveis; exibir o conteúdo literal antes de postar teria dado ao desenvolvedor a chance de ver o que estava saindo.

A generalização

Troque “issue de repositório” por qualquer entrada de terceiro que o seu agente leia: ticket de suporte, e-mail, comentário em documento, página web, nome de arquivo em bucket compartilhado. O padrão é idêntico e a lista de superfícies é bem maior do que a maioria dos times mapeou.

Este blog publica em português e inglês. / This blog publishes in Portuguese and English. EN · PT

Denunciar abuso

As inseguranças do sucesso da segurança cibernética

As inseguranças do sucesso da segurança cibernética. Tornar-se um grande profissional não precisa custar sua felicidade, mas a cultura da moagem torna isso provável. Nos últimos anos, a questão da saúde mental no setor de segurança cibernética ganhou destaque. Uma  pesquisa de 2019  revelou que 1 em cada 6 CISOs admitiu se  automedicar  para lidar com o estresse de seu trabalho. A tensão passa pelo escritório do CISO e permeia todo o setor. Um perfil que está crescendo  mais rápido que o orçamento  e uma sofisticação cada vez maior e  o impacto financeiro  dos ataques se combinam para transformar o que antes era um canto do departamento de TI em uma panela de pressão. John Hammond  , pesquisador de segurança cibernética da Huntress, falou sobre “ Hard Truths and Unexpected Realities: Lamentations in Producing Cybersecurity Content ” na  Intigriti 1337UP Live  , uma conferência online sobre bugs, em março de 2022. Seus...

DICA: comandos para pentest e segurança ofensiva

Fala galera, blz ? Segue uma lista de comandos maravilhosa, voltada para teste de vulnerabilidades. Observação Pertinente: Os TIPOS de COMANDOS e as INSTRUÇÕES estão em INGLÊS! NÂO ME RESPONSABILIZO POR USO INDEVIDO. Pré-requisitos: ✔️  Python 3.5 ✔️  OS que suporte Python (eu utilizei Kali) Reconnaissance / Enumeration Extracting Live IPs from Nmap Scan nmap 10.1.1.1 --open -oG scan-results; cat scan-results | grep "/open" | cut -d " " -f 2 > exposed-services-ips Simple Port Knocking for x in 7000 8000 9000; do nmap -Pn –host_timeout 201 –max-retries 0 -p $x 1.1.1.1; done DNS lookups, Zone Transfers & Brute-Force whois domain.com dig {a|txt|ns|mx} domain.com dig {a|txt|ns|mx} domain.com @ns1.domain.com host -t {a|txt|ns|mx} megacorpone.com host -a megacorpone.com host -l megacorpone.com ns1.megacorpone.com dnsrecon -d megacorpone.com -t axfr @ns2.megacorpone.com dnsenum domain.com nslookup -> set type=any -> ls -d domain.com for ...

Atacantes precisam de menos de 10 horas para encontrar fraquezas

Atacantes precisam de menos de 10 horas para encontrar fraquezas. Configurações vulneráveis, falhas de software e serviços da Web expostos permitem que hackers encontrem pontos fracos exploráveis ​​nos perímetros das empresas em apenas algumas horas, não em dias. O hacker ético médio pode encontrar uma vulnerabilidade que permite a violação do perímetro da rede e, em seguida, explorar o ambiente em menos de 10 horas, com testadores de penetração focados na segurança da nuvem obtendo acesso mais rapidamente aos ativos direcionados. Além disso, uma vez que uma vulnerabilidade ou fraqueza é encontrada, cerca de 58% dos hackers éticos podem invadir um ambiente em menos de cinco horas. Isso está de acordo com uma pesquisa com 300 especialistas do SANS Institute e patrocinada pela empresa de serviços de segurança cibernética Bishop Fox, que também descobriu que as fraquezas mais comuns exploradas pelos hackers incluem configurações vulneráveis, falhas de software e serviços da Web expost...

Quem sou eu

Minha foto
Igor Deungaro
Bem Vindo ao Cyber Security Brasil, espero que goste !!!
Ver meu perfil completo

Cyber Security

The Repository Issue as an Attack Vector

It is worth examining one concrete case in detail, because it shows better than any theory why the usual controls do not catch this class of attack. The case A researcher at Invariant Labs showed that a free GitHub account and a single malicious issue in a public repository were enough to exfiltrate private repository contents, personal data and salary information from a developer using an assistant with the GitHub MCP server. What the developer did: asked for a review of the open issues. Nothing else. The payload hidden in the issue redirected the agent into accessing private repositories and publishing their contents. Private does not mean protected when an agent with access reads untrusted external content. Why no traditional control catches it Authentication was correct. The agent used the legitimate user's legitimate credential. Authorisation was correct. The user genuinely had access to those private repositories. There was no malware. No binary, no strange pro...

Marcadores