5 dicas práticas para criar códigos mais seguros

Automações permitem criar softwares mais seguros e de maneira simples, diz GitHub

Author Photo
2:00 pm - 27 de maio de 2022

Garantir que um código seja seguro pode ser um desafio não tão divertido para desenvolvedores como criar testes ou verificar se as dependências estão atualizadas. Entretanto, existem recursos capazes de ajudar na questão da segurança durante a criação de códigos, facilitando essa tarefa sem precisar desviar a atenção do desenvolvimento.

Brian Douglas, Diretor de Developer Advocacy no GitHub, destaca cinco dicas de segurança que pessoas desenvolvedoras podem usar em seu fluxo de trabalho. Confira abaixo.

1. Torne o CodeQL parte da sua rotina de trabalho

A verificação de código desenvolvida pelo CodeQL é uma das ferramentas mais populares no GitHub quando se trata de garantir que não haja falhas de segurança no código que está sendo enviado. O mecanismo de análise de código estático do GitHub trata o código como dados e o torna consultável. Em seguida, usando uma biblioteca crescente de consultas de open source correspondentes a padrões de vulnerabilidade de segurança conhecidos, o CodeQL escaneia seu código para identificar possíveis problemas.

Leia mais: Conheça as áreas da TI com mais chances de emprego até 2023

Segundo Douglas, é possível adaptar o fluxo de trabalho às suas necessidades para ser executado sempre que enviar um novo código ou confirmar alterações em sua ramificação principal (ou qualquer outro número de eventos de webhook no GitHub).

Uma vez que as consultas do CodeQL são open source, o que significa que esta biblioteca está em constante crescimento com as contribuições da comunidade para proteger um código contra novos padrões, sem nenhuma ação da parte do usuário.

2. Dependabot para manter todas as suas dependências atualizadas

O Dependabot é complementar ao CodeQL. Enquanto o CodeQL detecta problemas de segurança em seu próprio código, o Dependabot detecta vulnerabilidades originadas das dependências do seu projeto. Um exemplo recente foi o Log4j, que introduziu uma série de impactos upstream para registros e dependências de pacotes. Como o Log4j é amplamente usado em aplicativos e sites para ajudar a registrar atividades, esse incidente significou que muitas pessoas foram forçadas a atualizar rapidamente suas versões do Log4j para evitar possíveis problemas.

Douglas recomenda que qualquer dev no GitHub configure o Dependabot o quanto antes, já que ele verifica automaticamente as dependências, procura por versões vulneráveis conhecidas no Banco de Dados Consultivo do GitHub, e informa se você tem uma vulnerabilidade com alertas próprios.

3. Adicione branches protegidas ao seu repositório

Seja trabalhando sozinha, em um grande projeto de open source ou construindo algo no trabalho, as branches protegidas são um ótimo complemento para garantir que seu projeto seja mais seguro. Branches, ou ramificações, protegidas facilitam o teste de novos recursos em um ambiente de pré-produção antes de liberá-los e também permitem definir controles sobre quem pode enviar alterações de código para produção.

4. Defina como o GitHub Actions será usado no seu repositório

No mundo do open source, qualquer pessoa pode usar o GitHub Actions, não importa quem ou onde esteja, o que é uma grande vantagem, já que essa funcionalidade permite criar fluxos de trabalho que criam e testam cada pull request no seu repositório, ou implantar pull requests mescladas em produção. Entretanto, nem sempre é interessante abrir o acesso sem restrições já que existem pessoas mal intencionadas.

Para algumas comunidades de open source, o risco de um usuário mal intencionado usar o GitHub Actions em seus projetos torna importante limitar quem pode usar essa função e quais ações podem ser usadas em um determinado repositório. É possível desativar o GitHub Actions ou limitar seu uso a contribuidores iniciantes e outras pessoas, para que eles não prejudiquem um projeto.

5. Defina as permissões para GITHUB_TOKEN no GitHub Actions

GITHUB_TOKEN é um recurso no GitHub Actions que pode ser usado para trazer segurança adicional aos projetos em que alguém precise autenticar fluxos de trabalho. É um token de acesso especial que é gerado automaticamente para cada projeto que precisa de acesso à instalação. Depois que esse trabalho for concluído, o token expira automaticamente para reduzir qualquer possível exposição a riscos.

Segundo Douglas, do Github, é importante considerar o uso de um GITHUB_TOKEN mais seguro em vez de um Personal Access Token (PAT) menos seguro. Outro benefício é poder controlar as permissões de leitura e gravação para seguir o princípio do menor fluxo de trabalho e mitigar qualquer exposição a riscos.

Newsletter de tecnologia para você

Os melhores conteúdos do IT Forum na sua caixa de entrada.