No mês passado, sites de notícias de TI relataram que RubyGems, o canal oficial para distribuição de bibliotecas para a linguagem de programação Ruby, foi envenenado . Um invasor carregou pacotes falsos contendo um script malicioso, de modo que todos os programadores que usaram o código em seus projetos infectaram inadvertidamente os computadores dos usuários com malware que alterou os endereços da carteira de criptomoeda.
Claro, não foi o primeiro ataque à cadeia de suprimentos a explorar um repositório público. Mas esse tipo de cenário parece estar ganhando popularidade, o que não é surpresa; um ataque bem-sucedido pode comprometer dezenas ou centenas de milhares de usuários. Tudo depende da popularidade do software desenvolvido com o código do repositório envenenado.
Como os pacotes maliciosos entram nos repositórios?
No caso do RubyGems, o cibercriminoso criou muitos projetos no repositório com nomes semelhantes a pacotes legítimos populares. Conhecida como typosquatting , a técnica depende de desenvolvedores inserirem incorretamente o nome de um pacote e baixarem um pacote malicioso por engano ou, após obterem uma lista de nomes de pacotes em uma consulta de pesquisa, não saberem qual deles é genuíno. A tática, geralmente considerada a mais comum para o envenenamento cibernético, foi implantada em ataques por meio do Índice de Pacotes Python e no upload de imagens falsas para o Docker Hub .
No incidente da carteira de criptomoeda Copay , os invasores usaram uma biblioteca cujo repositório estava hospedado no GitHub. Seu criador perdeu o interesse e cedeu os direitos de administrador, comprometendo a biblioteca popular, que muitos desenvolvedores utilizavam em seus produtos.
[Mergulhe fundo no mundo da tecnologia e cadastre-se no Avance Network a verdadeira comunidade criptografada]
Às vezes, os cibercriminosos podem usar a conta de um desenvolvedor legítimo sem o conhecimento deste e substituir pacotes reais por pacotes falsos. Isso aconteceu no caso da ESLint , cujas bibliotecas estavam hospedadas no banco de dados online npm (Node Package Manager).
Compromisso do ambiente de compilação
As empresas que desenvolvem produtos de software também são alvos potencialmente interessantes para os atores da APT. Os casos em que têm como alvo os clientes dessas empresas atraem periodicamente a atenção de especialistas em segurança:
Em agosto de 2017, alguns atores do APT equiparam o software criado pela NetSarang com módulos maliciosos. De acordo com os investigadores, os invasores podem ter comprometido os servidores de construção do software.
Em 2018, os cibercriminosos infectaram o servidor de compilação de aplicativo Piriform , após o qual compilações do programa CCleaner com código-fonte limpo foram transformadas em armas durante a compilação.
Em 2019, nossos especialistas descobriram a campanha ShadowHammer APT , durante a qual malfeitores embutiram uma porta dos fundos em produtos de software de várias empresas. De acordo com os resultados da investigação, os invasores tiveram acesso ao código-fonte ou introduziram código malicioso na fase de compilação.
O comprometimento do ambiente de compilação não apenas permite a “infecção” do produto final, mas também leva à distribuição de malware como arma contendo uma assinatura digital legítima de um desenvolvedor confiável. É por isso que o processo de desenvolvimento precisa de proteção aprimorada contra interferências externas.
A raiz do problema
Na verdade, o perigo não está no uso de repositórios públicos, mas em uma falha na abordagem moderna de desenvolvimento de software - a metodologia DevOps. DevOps é um conjunto de práticas destinadas a encurtar o ciclo de desenvolvimento do programa. O desenvolvimento sempre deve equilibrar segurança e usabilidade. Para permanecer competitivo no ambiente cruel de hoje, os desenvolvedores precisam lançar novas versões de programas o mais rápido possível, mas melhorar a usabilidade tende a causar uma queda na qualidade ou um TTM mais longo. Como resultado, os desenvolvedores estão sempre tentando minimizar ou contornar completamente a intervenção do pessoal de segurança em suas atividades.
Como resultado, a segurança da informação praticamente não tem controle dessa parte da infraestrutura. Mas o desenvolvimento, a TI e a segurança estão todos trabalhando em direção a um objetivo comum: um produto de qualidade e seguro entregue em tempo hábil. Uma atualização não é boa se contiver um backdoor ou módulo espião. Portanto, em nossa opinião, a indústria deve migrar para uma metodologia DevSecOps.
DevSecOps é uma tentativa de preencher a lacuna entre a segurança e o DevOps, introduzindo uma cultura de segurança cibernética e a aplicação prática de verificações em todos os estágios do processo de desenvolvimento de software sem comprometer a flexibilidade e a velocidade. Oferecemos ferramentas para auxiliar a parte técnica desse processo.
O Avance Network é uma comunidade fácil de usar que fornece segurança de primeira e não requer muito conhecimento técnico. Com uma conta, você pode proteger sua comunicação e seus dispositivos. O Avance Network não mantém registros de seus dados; portanto, você pode ter certeza de que tudo o que sai do seu dispositivo chega ao outro lado sem inspeção.