Visão geral
A segurança da cadeia de suprimentos de software combina práticas recomendadas de gerenciamento de riscos e cibersegurança para a proteção contra possíveis vulnerabilidades. A cadeia de suprimentos de software é composta de tudo e todos que acessam seu código no ciclo de vida de desenvolvimento de software (SDLC), do desenvolvimento de aplicações até o pipeline e implantação de CI/CD.
A cadeia de suprimentos inclui redes de informações sobre o software, como os componentes (por exemplo, infraestrutura, hardware, sistemas operacionais (OS), serviços de computação em nuvem etc.), as pessoas que escreveram os códigos e as fontes deles, como registros, repositórios GitHub, bases de código ou outros projetos open source. Ela também inclui vulnerabilidades que possam afetar negativamente a segurança do software, e é aí que entra a segurança da cadeia de suprimentos de software.
Por que a segurança da cadeia de suprimentos de software é essencial?
A maioria dos softwares não é escrito do zero. Geralmente, é uma combinação de artefatos de software que contêm software open source. No entanto, esses artefatos de software estão sujeitos a vulnerabilidades, e os desenvolvedores têm menos controle sobre o código-fonte de terceiros ou às alterações feitas no artefato ao longo do tempo. É importante observar que software sem a aplicação de patches é mais suscetível a problemas de segurança. Como o software é fundamental para executar as operações de negócios diárias, a segurança da cadeia de suprimentos é uma responsabilidade essencial de todas as organizações e equipes de segurança.
A empresa de software SolarWinds teve uma violação em 2020, e os agressores iniciaram código mal-intencionado pelo software de monitoramento e gerenciamento de TI Orion, uma plataforma usada por grandes empresas e agências do governo. Ao atacar a cadeia de suprimentos, os hackers se infiltraram não apenas na SolarWinds, mas também nos clientes dela. O Log4j é um software open source muito usado, porém, amplamente explorado, que deixou inúmeros usuários e organizações suscetíveis a ataques e violações de dados. Em 2021, o presidente dos Estados Unidos destacou a importância da segurança e das cadeias de suprimentos de software com duas ordens executivas da Casa Branca: cadeias de suprimentos e cibersegurança.
Quais são os riscos de segurança à cadeia de suprimentos de software?
Riscos a qualquer componente da cadeia de suprimentos de software representam um possível risco a todos os artefatos de software que dependem do componente específico da cadeia de suprimentos. Isso dá aos hackers a oportunidade de inserir malware, um backdoor ou outro código mal-intencionado que comprometa componentes e respectivas cadeias de suprimentos associadas. Os ataques a cadeias de suprimentos de software, normalmente realizados por agentes que buscam ameaçar lucros e nações, estão aumentando e podem ter efeitos drásticos tanto no mundo digital quanto no físico. Geralmente, eles podem ser classificados em um destes quatro tipos de risco:
- Vulnerabilidades: são falhas no código do software que podem ser exploradas e levar a uma violação. Aplique patches e atualize seus artefatos de software para minimizar o risco.
- Licenciamento: é um risco legal que pode obrigar você a transformar artefatos de software resultantes em open source e anular direitos de patente. Consulte especialistas legais nessa área.
- Dependências de terceiros: são dependências de organizações externas como parte da cadeia de suprimentos de software e são difíceis de detectar. Analise todos os códigos de terceiros e converse com seus fornecedores sobre como eles protegem você.
- Processos e políticas: são um problema se você não os tiver. Crie políticas para seus desenvolvedores e processos (ou playbooks) para quando precisar reagir a uma vulnerabilidade.
Os vetores comuns de ataque incluem sequestro de atualizações, prejudicar a assinatura de códigos e comprometer código open source.
DevSecOps e segurança de software
O DevSecOps é uma abordagem relacionada a cultura, automação e design de software que integra a segurança como uma responsabilidade compartilhada em todo o ciclo de vida de TI. DevSecOps significa pensar na segurança da aplicação e da infraestrutura desde o início. Também significa automatizar algumas barreiras de segurança para evitar que os fluxos de trabalho de DevOps fiquem lentos. Selecionar as ferramentas corretas para integrar a segurança continuamente – como concordar em implementar um ambiente de desenvolvimento integrado (IDE) com funcionalidades de segurança – é um meio de atingir essas metas.
O Red Hat Advanced Cluster Security for Kubernetes integra verificações de segurança na cadeia de fornecimento do software e fluxos de trabalho do desenvolvedor para detectar e ajudar a solucionar problemas de segurança de alto risco. Ele também automatiza segurança no DevOps oferecendo aos desenvolvedores contexto de segurança nos fluxos de trabalhos existentes.
Segurança da cadeia de suprimentos de software vs segurança das aplicações
A cadeia de suprimentos de software é composta de tudo e todos que acessam seu código. Já a segurança das aplicações protege o próprio código contra ataques e vulnerabilidades. Assim como a segurança da cadeia de suprimentos, a segurança das aplicações deve ser aplicada em todas as etapas do desenvolvimento.
A segurança das aplicações começa no ciclo de vida de desenvolvimento do software e se estende pelo ciclo de vida da aplicação, com as metas de evitar acesso não autorizado ao seu sistema e proteger dados proprietários. O fortalecimento da integridade da sua cadeia de suprimentos pode aumentar a segurança das aplicações. Fortalecer configurações, minimizar superfícies de ataque, restringir permissões, assinar softwares e distribuir compilações em diferentes partes do seu sistema são maneiras de impedir que os agressores comprometam suas aplicações.
Redução das ameaças à cadeia de suprimentos de software
A segurança da cadeia de suprimentos de software é importante para a empresa, os clientes e qualquer um que aproveite as contribuições open source. Assim como nenhuma empresa quer sofrer violações, a maioria também teme ser responsável pela ocorrência de eventos semelhantes com outras entidades. Por isso, é fundamental implementar proteções na cadeia de suprimentos de software.
Veja a seguir algumas práticas recomendadas que as equipes de segurança devem considerar:
- Oferecer o mínimo de privilégios de acesso em toda a cadeia de suprimentos (por exemplo, ferramentas para desenvolvedores, repositórios de código-fonte e outros sistemas de software), habilitar a autenticação multifatores e usar senhas fortes.
- Realizar treinamentos de segurança frequentes para os funcionários.
- Fortalecer a segurança de todos os dispositivos conectados e de dados confidenciais.
- Conhecer seus fornecedores e as pessoas com quem faz negócios, começando com seus fornecedores diretos. Conduzir avaliações de risco para analisar a postura de cibersegurança de cada fornecedor e as políticas públicas sobre vulnerabilidades.
- Verificar e aplicar patches com regularidade em sistemas vulneráveis.
Os desenvolvedores também devem considerar práticas seguras de codificação, usando bloqueio de arquivos e outras iniciativas com foco em segurança:
- Validação de somas de verificação.
- Inclusão de dependências de fornecedor no controle da fonte.
- Publicação e consumo de lista de materiais de software (SBOM).
- Adoção de níveis de cadeia de suprimento para artefatos de software (SLSA), incluindo:
- A capacidade de assinar digitalmente seus artefatos de software para autenticar a procedência.
- Aproveitamento da automação para seus processos e políticas.
- Verificação do seu software com ferramentas automatizadas de teste de segurança, como análise de composição de software (SCA), testes de segurança de aplicações estáticas (SAST) e testes de segurança de aplicações dinâmicas (DAST).
Por que escolher a Red Hat?
A Red Hat sabe que é necessário proteger os componentes e as dependências do software no início do ciclo de vida de desenvolvimento, por isso, ela usa práticas de DevSecOps para automatizar a integração de segurança em todas as etapas. A Red Hat trabalha para entender a cadeia de suprimentos upstream para que você e sua empresa tenham uma solução confiável o tempo todo. Junto a seus parceiros, ela oferece competência e um ecossistema DevSecOps abrangente, além de ajudar as organizações a implementar a segurança da cadeira de suprimentos de software em todo o ciclo de vida de desenvolvimento.