Como prevenir um ataque à cadeia de suprimentos em um ambiente Linux
O que é um ataque à cadeia de suprimentos?
Este é um tipo de ataque cibernético que visa prejudicar uma organização atacando elementos mais fracos da cadeia de abastecimento. Um ataque à cadeia de suprimentos pode acontecer em qualquer setor.
Os ataques à cadeia de fornecimento de software ocorrem quando os invasores inserem código malicioso em uma parte mal protegida da cadeia de fornecimento de software. Isso causa um efeito cascata, no qual muitos consumidores do software são impactados pelo ataque.
Tipos de ataques à cadeia de abastecimento:
Os ataques à cadeia de suprimentos podem ser muito versáteis. Na maioria das vezes, esses ataques envolvem atualizações falsas. Os cibercriminosos comprometem o equipamento de um funcionário, acessando a rede interna através das credenciais do funcionário. Uma vez lá dentro, os invasores espalham o código infectado pela rede.
Outro método envolve interceptar o download de um arquivo, adicionar código malicioso a ele e enviá-lo ao computador de destino. As organizações que não usam protocolos criptografados geralmente correm risco com esse tipo de ataque.
Em outros casos, os criminosos podem acessar bibliotecas, estruturas e kits de desenvolvimento de terceiros. Se os invasores os comprometerem, o problema poderá se espalhar para todos os aplicativos que os utilizam.
Por que as práticas regulares de segurança não funcionam para ataques à cadeia de abastecimento?
Ataques recentes como SolarWinds e Capital One mostram como eles podem se espalhar rápida e perigosamente em softwares amplamente utilizados.
O problema com os ataques à cadeia de abastecimento é que muitas práticas convencionais de segurança não são eficazes contra eles:
- Mito: instale apenas versões assinadas. Essa recomendação não funciona quando o software é assinado, como acontece com a maioria dos ataques à cadeia de suprimentos.
- Mito: atualize seu software. Isso não ajuda quando o software infectado é a atualização.
- Mito: monitore o comportamento do software. É verdade que se você monitorar continuamente o comportamento, poderá eventualmente detectar o problema, mas até que isso aconteça, o invasor pode já ter causado muitos danos.
- Mito: revise o código-fonte. Os invasores escrevem as alterações para que se pareçam com o código-fonte da própria organização, por isso é difícil identificá-lo.
O Linux está mais seguro contra ataques à cadeia de suprimentos?
É um equívoco comum pensar que o Linux é invulnerável a problemas de segurança cibernética. Contudo, os ataques dos últimos anos mostraram que não é bem assim.
Um desses casos envolveu vulnerabilidades descobertas no Linux Pling. Pesquisadores de segurança cibernética descobriram uma falha não corrigida nos mercados de software de código aberto Pling. Esta vulnerabilidade significa que todos os mercados baseados em Pling têm uma falha XSS que pode ser usada por invasores para modificar ou adicionar listagens à loja Pling.
O Linux ainda pode apresentar riscos. Embora os usuários do Linux sejam muito ativos e corrijam as vulnerabilidades assim que detectadas, pode valer a pena entender que tipo de medidas o Linux está tomando para evitar explorações de segurança.
Repositórios de software de código aberto: Você pode instalar dois tipos de software no Linux, código aberto ou proprietário. O código fica visível para qualquer usuário que queira revisá-lo. A utilização do sistema de repositório oferece melhor proteção, pois seu conteúdo é verificado antes de permitir o download.
Política de segurança: Algumas distribuições Linux como Debian e Ubuntu tomam medidas extras para revisar a integridade de cada pacote adicionado à plataforma. Eles também controlam o número de pessoas que podem postar atualizações.
De qualquer forma, nenhum sistema operacional é 100% seguro contra negligências e erros do usuário. Quando os usuários instalam programas de fontes desconhecidas ou habilitam configurações incorretas de permissões, o Linux pode causar os mesmos problemas que outros sistemas operacionais.
4 etapas para proteger sua cadeia de suprimentos de software
Nem tudo está perdido com os ataques à cadeia de fornecimento de software. Esses ataques complexos podem ser mitigados. Abaixo estão algumas maneiras de se proteger:
Classificar confusão de dependência
Os invasores podem injetar pacotes maliciosos por meio de fontes públicas na cadeia de fornecimento de software, causando ataques de confusão de dependências. O também chamado ataque de ocupação de nome de pacote consiste em algumas etapas cuidadosamente planejadas:
O invasor identifica os nomes dos pacotes internos privados usados nas compilações de software. Em seguida, eles carregam pacotes maliciosos com o mesmo nome desses pacotes internos privados. Quando um desenvolvedor tenta extrair o pacote interno privado, ele extrai o modificado junto com os pacotes públicos. Em seguida, o pacote malicioso é retirado do upstream público.
Como você pode se proteger contra esse tipo de ataque? Aqui estão algumas dicas:
- Usar pacotes com escopo definido: este método bloqueia o namespace do pacote e o vincula a um usuário ou organização específica. Isso reduz as chances de um invasor substituir o pacote subjacente.
- Use configuração específica do repositório: ao usar um repositório de pacotes interno, certifique-se de não fazer proxy de solicitações de pacotes privados para registros públicos. Este artigo da Microsoft explica maneiras de mitigar riscos ao usar feeds de pacotes privados.
Não permitir comandos de instalação em pacotes de código aberto
Alguns gerenciadores de pacotes, por padrão, permitirão que qualquer pacote instalado execute comandos arbitrários. Os invasores podem implantar um backdoor permitindo a injeção de código. Ao adicionar um erro de digitação aparentemente indetectável, ele pode enganar os desenvolvedores que instalam por engano um pacote malicioso.
Você pode se proteger evitando instalar pacotes às cegas ou copiar e colar sem primeiro confirmar o pacote. Você também pode adicionar uma linha de comando ignore-scripts ao comando npm install. Isso o ajudará a evitar que pacotes executem comandos arbitrários automaticamente.
Controle informações confidenciais
Permitir medidas de segurança de controle de acesso mais rígidas, como autenticação multifatorial, para evitar a exposição de informações confidenciais. Além disso, não armazene informações confidenciais em um repositório e evite publicar pacotes com informações confidenciais
Pensamentos finais
A fundação Linux recomenda que as organizações “fortaleçam seus ambientes de construção contra ataques”. Isso envolve primeiro a implementação de algumas das práticas de segurança descritas neste artigo. A higiene de segurança adequada e o bom senso básico podem ajudar muito, minimizando assim as vulnerabilidades que os invasores podem explorar.