Codecov hackeado! O que fazer agora se você usar Codecov

Codecov foi hackeado de uma forma que afeta todos os seus clientes. Milhares de empresas comerciais e projetos de código aberto são afetados. Aqui está o que você precisa fazer se for um deles.
O que é Codecov?
Se você não está envolvido com integração contínua e implantação / entrega contínua (CI / CD) ou outra automação de desenvolvimento de software, pode não estar familiarizado com o nome Codecov.
Codecov fornece um serviço hospedado que informa aos desenvolvedores quanto de seu código-fonte foi verificado pelos testes automatizados que fazem parte do processo de construção de software. É uma métrica chamada cobertura de código. Projetos de software complicados podem ter milhares de arquivos de código-fonte. Saber a cobertura do código mostra a eficácia do seu teste, porque o código não testado pode conter bugs.
Existem muitos caminhos possíveis de execução dentro do código não trivial. É difícil escrever testes que verifiquem todos os caminhos. Basicamente, você está escrevendo código para encontrar falhas em outro código. Mas se o seu código de teste não for projetado e escrito corretamente, ele não cobrirá todos os caminhos de execução possíveis. Isso significa que haverá falhas na cobertura do seu código.
Codecov lê a saída gerada por seu processo de construção e produz relatórios que mostram exatamente quais caminhos de execução seu código de teste perdeu. Você pode adicionar testes para cobrir essas regiões ou modificar a lógica dos testes existentes para fazê-los exercitar completamente a rotina que devem testar.
A cobertura de código é vital para a produção de software estável, especialmente com grandes equipes de desenvolvedores. Você pode ver a seriedade com que isso é levado observando alguns dos 29.000 clientes da Codecov. Organizações como Kubernetes, Mozilla, HashiCorp e Atlassian contam com Codecov para seus relatórios de cobertura de código. E como Codecov é gratuito para projetos de código aberto, existem milhares de projetos de código aberto usando Codecov também.
É por isso que é um bom alvo para os cibercriminosos.
Ataques à cadeia de suprimentos
Um ataque à cadeia de suprimentos compromete um fornecedor ou provedor de serviços a fim de comprometer os alvos reais — todos os seus clientes e usuários. Se você quer envenenar uma cidade inteira, não vai de casa em casa. Você vai envenenar a estação de tratamento de água e esperar.
Isso é o que aconteceu no recente ataque SolarWinds. A SolarWinds não era o alvo, eles eram apenas uma rota eficiente para os agentes da ameaça chegarem a todos os SolarWinds &’ clientes. E porque Solarwinds &’ a maioria dos clientes eram provedores de serviços gerenciados e organizações terceirizadas de suporte de TI, todos os seus clientes também estavam expostos ao risco.
RELACIONADO: SolarWinds Hack: o que aconteceu e como se proteger
O ataque Codecov
Em 15 de abril de 2021, Codecov divulgou publicamente que um script Bash usado para fazer upload de arquivos para seus servidores foi modificado por agentes de ameaças. Acredita-se que o comprometimento inicial na Codecov tenha ocorrido no final de janeiro de 2021. O script comprometido coletou informações confidenciais dos clientes &’ ambientes de integração contínua e carregou essas informações para o servidor do invasor. As credenciais de acesso, como tokens de ID e chaves de API, bem como qualquer coisa armazenada em variáveis de ambiente, foram coletadas pelo script modificado.
Foi um ataque clássico à cadeia de suprimentos. Ao injetar uma única linha de código no script de uploader Bash do Codecov, os agentes da ameaça tinham os meios para acessar os ambientes de integração contínua de todos os clientes que usaram o script. E como esse script é usado em três das rotinas de upload do Codecov — Codecov-actions, CircleCl Orb e Bitrise Step — muito poucos clientes Codecov não estariam expostos a esse risco.
Isso não significa que todos os clientes foram violados, apenas que foram expostos à ameaça de acesso não autorizado. HashiCorp é um cliente conhecido por ter sido comprometido, enquanto outros, como Atlassian e Hewlett Packard Enterprises, não descobriram nenhuma evidência de comprometimento.
Os atores da ameaça obtiveram acesso à infraestrutura Codecov por meio de um contêiner Docker mal configurado. Eles adicionaram uma linha ao script de upload do Bash na linha 525 do arquivo. Podemos isolar a nova linha usando o comando colordiff. O comando diff funcionaria tão bem, mas a saída do colordiff é um pouco mais fácil de ler, sendo codificada por cores. Ele está disponível em todos os repositórios de distribuição do Linux.
diff current. sh comprometido. sh

O endereço IP do servidor do invasor era 104.248.94.23, que é um servidor virtual hospedado pela Digital Ocean.

Não é preciso dizer que os cibercriminosos não usarão um endereço IP que aponte para eles mesmos.
Assim que Codecov descobriu o comprometimento, eles tomaram medidas para encerrar o acesso não autorizado, comunicar-se com seus clientes e investigar o incidente. Codecov tem:
- Colaborou com a Digital Ocean para que o servidor do ator da ameaça fosse retirado.
- Gerou novamente e atualizou todas as credenciais Codecov afetadas ou potencialmente afetadas e fechou o acesso não autorizado que permitia o uploader script a ser modificado.
- Verificados seus logs de infraestrutura para determinar como o acesso não autorizado era possível e qual chave de autenticação foi usada.
- Ferramentas de monitoramento e auditoria de rede aprimoradas ou implementadas em pontos-chave em sua infraestrutura para detectar e prevenir a recorrência deste tipo de ataque.
Afetado? O que você deve fazer agora
Codecov enviou um e-mail para todos os clientes que eles acreditam estarem em risco. Quer você tenha ouvido falar deles ou não, se sua organização for cliente da Codecov, você deve presumir que corre o risco de se comprometer.
Como as credenciais, chaves de conexão e outras informações confidenciais são passadas de etapa a etapa do processo de CI / CD, os atores da ameaça podem ter coletado esses detalhes. Eles podem ter sido capazes de coletar e recuperar:
- Quaisquer credenciais de autenticação ou privilégio, tokens ou chaves que estavam acessíveis ao script enquanto os processos de CI / CD do cliente estavam em execução.
- Qualquer serviço de terceiros, dados ou código-fonte que pode ser acessado pelos processos CI / Cd.
- Os detalhes do repositório remoto git.
Você pode verificar facilmente o que está nas variáveis de ambiente de seu ambiente de CI / CD usando o comando env e canalizando-o para menos para torná-lo mais gerenciável:
env | menos
- Revise a saída e se houver algo que seja confidencial ou permita qualquer tipo de acesso, altere as credenciais dessa conta, plataforma ou serviço.
- Se você estiver usando uma cópia local do script de upload do Bash é improvável que você tenha sido afetado, mas você ainda é encorajado a substituir esse script local pela versão mais recente.
- Audite seu sistema para tentativa de uso de credenciais e chaves invalidadas . Se forem detectadas tentativas, isso significa que os agentes da ameaça estão tentando usar as informações que exfiltraram de sua plataforma de CI / CD para entrar.
Aja defensivamente. Se houver qualquer suspeita ou possibilidade de comprometimento, gere novamente as credenciais e chaves relevantes imediatamente.
Nenhum comentário