Escrito por Claiton Luis Padilha,

4 minutos de leitura

GitHub Advanced Security: segurança e qualidade do código

A maior plataforma de desenvolvimento colaborativo e versionamento de software facilita a rotina de padronização e de aprovação do código.

Compartilhe este post:

Você sabia que, segundo o Veracode report – State of software Security, 83% das aplicações têm pelo menos uma vulnerabilidade de segurança?

O mesmo relatório indica que equipes que analisam seu código menos de 10 vezes por semana levam, em média, 70 dias para resolver falhas de segurança e desempenho. Isso simplesmente pode acabar com um projeto.

As linhas de código aumentam quase na mesma velocidade em que a equipe cresce. Somado à falta de padrões e análise de segurança, a médio prazo, esse crescimento pode provocar sérios danos no seu produto. Problemas com desempenho e segurança podem permanecer ocultos por muito tempo. Podem, aliás, ser descobertos somente em um momento crítico, com o software em produção, por exemplo.

Imagine o tempo e esforço que precisaria ser dedicado para revisar um software com muitos anos de desenvolvimento e milhares – ou milhões – de linhas escritas? Isso sem falar no alto risco de alterar muitas vezes o coração do sistema.

Líderes de empresas que trabalham com desenvolvimento de software e que têm em um produto digital o core de seu negócio sabem que as equipes obrigatoriamente precisam manter a qualidade e a segurança dos códigos. E, apesar disso, em ambientes com um número cada vez maior de aplicações, mantê-las seguras e otimizadas não é uma tarefa das mais simples.

Alguns processos, no entanto, colaboram de forma ativa para a segurança do código. Um deles é seguir um padrão de escrita e semântica.

 

Como garantir um código menos vulnerável

Imagine que um grupo de pessoas está escrevendo um livro de forma colaborativa. Nesse caso, se todos os autores seguirem as mesmas regras gramaticais e o mesmo estilo de redação, o resultado é um material de fácil entendimento e, por consequência, com menos trabalho para o revisor.

O desenvolvimento de software passa por um desafio semelhante, pois existem muitas maneiras de escrever o mesmo código. Diferentes definições, como nome de variáveis, nomes de funções, indentação do código, quais laços de repetição usar, influenciam o entendimento e a otimização da aplicação.

Um laço ou um “if” fora do padrão pode acabar usando muito mais memória do que o necessário ou gerar um comportamento inesperado da tecnologia.

Junto a essa dificuldade, surgem outros fatores que devem ser considerados, como:

  • Qual o padrão de escrita de funções, nomes de variáveis e laços mais adequado para este projeto?
  • Como fazer todo o time ter acesso e conhecimento sobre o padrão adotado?
  • Como garantir que todos estarão seguindo o mesmo padrão sem atrasar o processo?
  • E como analisar milhares de linhas de código de maneira eficiente?

 

Para solucionar o problema de qual padrão usar, é possível adotar padrões já criados e utilizados por outras empresas reconhecidas no mercado, como Google e Facebook. Ou mesmo consultar a documentação da tecnologia que está sendo usada. Esse passo também soluciona a questão de todos do time terem acesso a informações sobre o padrão de código a seguir.

Já para garantir que o time esteja usando o padrão correto, a empresa pode adotar o sistema de code review. Ou seja, para cada alteração no código, um tech lead deve analisar e aprovar o que foi feito.

Porém, nem sempre é simples analisar milhares de linhas de códigos. E, de fato, não existe uma maneira fácil de fazer isso. Talvez você precise montar uma equipe somente para essa tarefa.

Neste cenário, também temos que levar em conta o erro humano, que pode acontecer frequentemente em um ambiente com muitas alterações e linhas escritas por dia.

 

Leia também: Como uma parte integral de seu DevOps, a GitHub ajuda o Nubank a proteger seu código

 

Uma plataforma para manter a segurança

Uma alternativa para contornar os desafios indicados é o GitHub Advanced Security. O objetivo da licença é facilitar a rotina de padronização de código e de aprovação das novas linhas criadas, o que é feito através de algumas ferramentas.

Code Scanning

A cada push na branch, é realizada uma pesquisa de possíveis vulnerabilidades de segurança e erros de codificação. Também é analisado se o código escrito está dentro dos melhores padrões de segurança do mercado.

Isso previne possíveis bugs e memory leaks, contribuindo para o amadurecimento do código.

Secret scanning

De tempos em tempos, é realizada uma varredura nos códigos, para tentar localizar segredos como tokens e chaves de acesso. Isso evita que dados sensíveis sejam expostos de maneira equivocada.

Dependency Review

Gerenciar as dependências de vários projetos é uma tarefa complicada, mas fundamental para a segurança da aplicação. O dependency review mostra detalhes de qualquer versão vulnerável antes de realizar o merge de um pull request.

Essa funcionalidade permite que sua equipe tenha mais tempo e confiança para investir em melhorias.

 

Interessado em conhecer mais sobre GitHub Enterprise? Veja como a plataforma de desenvolvimento está revolucionando companhias como Nubank, QuintoAndar e PayGo.

Ou entre em contato conosco e entenda como GitHub Enterprise pode colaborar para o sucesso de seu produto digital. 

Compartilhe este post: