Chaves de apps do GitHub nunca expiram (péssimo)
Autoria: Better Stack · Assistir no YouTube
Vídeo de autoria do canal indicado, não da IANIA; todos os direitos pertencem ao criador. Transcrição, resumo e tradução gerados automaticamente; o conteúdo no idioma original é preservado na versão em idioma original.
Idioma original: inglês
Vídeo original: GitHub App Keys Never Expire (Bad) · Canal: Better Stack · 01:01 · Assistir no YouTube
Tópicos: Cibersegurança e segurança de software, Open source e ecossistemas de software
Chaves privadas de apps do GitHub não expiram e podem ser usadas para gerar tokens de acesso às organizações em que os apps estão instalados. Pesquisadores da GitGuardian testaram milhares de chaves vazadas: 474 ainda autenticavam, e 44 davam acesso de administrador à organização. Uma chave exposta em um repo ligado ao CDC dos EUA permitiu gravar em código privado por 17 meses. Para reduzir o risco, proprietários de apps devem rotacionar as chaves, e organizações devem remover apps sem responsáveis.
Pontos-chave
Seção intitulada “Pontos-chave”- Chaves privadas de apps do GitHub não expiram.
- Uma chave privada pode assinar um JWT de curta duração, válido por 10 minutos, que é trocado por um token de acesso válido por uma hora.
- O token pode ter permissões completas em todas as organizações onde o app está instalado.
- A GitGuardian encontrou 474 chaves vazadas que ainda autenticavam; 44 apps tinham direitos de administrador da organização.
- Uma chave vazada em um repo ligado ao CDC dos EUA manteve acesso de gravação a código privado por 17 meses.
- É possível manter até 25 chaves privadas de um app ao mesmo tempo, permitindo rotacioná-las sem interrupção.
- Organizações devem remover apps que não têm mais responsáveis para limitar a exposição.
Capítulos
Seção intitulada “Capítulos”| Início | Capítulo | Resumo |
|---|---|---|
| 00:00 | O risco das chaves de apps do GitHub | Chaves privadas que não expiram podem conceder acesso às organizações e gerar tokens de curta duração. |
| 00:30 | Chaves vazadas ainda ativas | A GitGuardian encontrou centenas de chaves funcionais, incluindo apps com privilégios de administrador. |
| 01:01 | Como reduzir a exposição | O vídeo recomenda rotacionar chaves privadas e remover apps sem responsáveis. |
Citações
Seção intitulada “Citações”Uma chave estava em um repo público desde 2020 e ainda funcionava. — 00:00
474 ainda autenticavam, e 44 desses apps tinham direitos de administrador da organização. — 00:30
Gere uma nova e depois exclua a antiga sem nenhuma interrupção. — 01:01
Conceitos e entidades
Seção intitulada “Conceitos e entidades”- GitHub App (ferramenta): App instalado no GitHub que usa uma chave privada para gerar credenciais de acesso.
- private key (conceito): Chave usada por um GitHub App para assinar JWTs e obter tokens de acesso.
- JWT (conceito): Token assinado pela chave privada que, segundo o vídeo, pode ser trocado por um token de acesso.
- access token (conceito): Credencial de acesso com validade de uma hora e permissões nas organizações onde o app está instalado.
- GitGuardian (empresa): Empresa de pesquisa de segurança que testou milhares de chaves vazadas do GitHub.
- US CDC (empresa): Órgão ligado a um repo onde, segundo o vídeo, uma chave vazada deu acesso de gravação a código privado.
Tradução completa (pt-BR)
Seção intitulada “Tradução completa (pt-BR)”00:00 Pesquisadores de segurança encontraram chaves do GitHub vazadas que nunca expiram, dando acesso total de administrador da organização a qualquer pessoa que as encontrasse. Uma chave estava até em um repo público desde 2020 e ainda funcionava. Deixe-me explicar. Os apps que você instala no GitHub são alimentados por uma chave privada que você gera. Essa chave nunca expira e pode gerar tokens de curta duração para acessar os dados da sua organização. A cadeia funciona assim: a chave privada assina um JWT de curta duração, válido por 10 minutos, que pode então ser trocado por um token de acesso de 1 hora
00:30 com permissão total em todas as organizações em que o app está instalado. Então, uma empresa de pesquisa de segurança chamada GitGuardian pegou milhares de chaves vazadas e testou cada uma delas. 474 ainda se autenticaram, e 44 desses apps tinham direitos totais de administrador da organização. Uma chave chegou a vazar em um repo vinculado ao CDC dos EUA e teve acesso de gravação a código privado por 17 meses. Você poderia argumentar que é assim que pares de chaves funcionam. Suas chaves SSH também não expiram, o que é justo. Mas o GitHub tem proteções para todos os tokens que emite
01:01 exceto aquele que os distribui em primeiro lugar. Então, se você tem um app do GitHub, troque sua chave privada. Você pode manter até 25 ao mesmo tempo, então gere uma nova e depois exclua a antiga sem qualquer interrupção. E, se você administra uma organização, remova os apps que já não têm ninguém responsável por eles. Essa é a maneira mais fácil de limitar a exposição. Se quiser ficar por dentro de notícias para desenvolvedores como esta, inscreva-se no Better Stack.
Transcrição original
[00:00] Security researchers found leaked GitHub keys that never expire giving full org admin access to anyone that found them. One key had even been in a public repo since 2020 and still worked. Let me explain. The apps you install on GitHub are powered by a private key that you generate. That key never expires and it can mint short-lived tokens to access your organizations data. The chain works like this. The private key signs a short-lived JWT that lasts 10 minutes, which can then be exchanged for a 1-hour
[00:30] access token that has full permission on every org it’s installed on. So, a security research company called GitGuardian took thousands of leaked keys and tested every single one. 474 still authenticated and 44 of those apps had full org admin rights. One key even leaked in a repo linked to the US CDC and had write access to private code for 17 months. You could argue that this is just how key pairs work. Your SSH keys don’t expire either, which is fair. But, GitHub has guards for every token issues
[01:01] except the one that dishes them out in the first place. So, if you own a GitHub app, rotate your private key. You can hold up to 25 at once, so generate a new one and later delete the old one without any downtime. And if you run an organization yourself, remove any apps nobody owns anymore. This is the easiest way to limit exposure. If you want to stay up-to-date with developer news like this, then subscribe to Better Stack.