Segurança Digital

12 Passos para um melhor código

Quais são as melhores práticas para desenvolver um código de qualidade?

Existem diversas metodologias disponíveis para tratar desses assuntos, como o guia de desenvolvimento da OWASP e o modelo de maturidade de software  OpenSAMM do Pravir Chandra, livros como o Software Security: Building Security In do Gary McGraw, entre diversas outras referências, modelos de SDLC de fabricantes, etc.

Apesar de ser extensa e efetiva, essas referências trazem muitos conceitos de segurança e, com isso, a curva de aprendizado é longa, bem como a implementação de todo SDLC. Por isso, para ao menos verificar se sua equipe está trabalhando com o mínimo de qualidade no processo de desenvolvimento, Joel Spolsky postou em seu blog um teste que em suas palavras é  “irresponsável e pouco rigoroso”, porém interessante, com as seguintes perguntas:

  1. Você usa controle de versão dos fontes?
  2. Você pode fazer uma build em um passo?
  3. Você faz builds diariamente?
  4. Você tem uma base de bug e falhas?
  5. Você conserta os bug e falhas antes de escrever novo código?
  6. Você tem um cronograma atualizado?
  7. Você tem uma especificação?
  8. Os programadores tem condições de trabalho em silêncio?
  9. Você tem as melhores ferramentas que o dinheiro pode comprar?
  10. Você tem equipe de testes?
  11. Os novos candidatos escrevem códigos durante suas entrevistas?
  12. Você adota o ” teste de usabilidade corredor”? * Chamar pessoas que estão passando para testar a usabilidade do seu novo código

Se você responder “sim” para mais de 10 questões, pode-se considerar que você adota boas práticas mínimas para manter a qualidade do software, qualquer valor de 10 para baixo indica problemas com o processo. A Microsoft responde “sim” para as 12 questões e mesmo assim temos o semanal Patch Tuesday!!!

O problema é que muitas fábricas de software e equipes de desenvolvimento respondam “sim” para 2 ou 3 questões. E olha que não estamos falando de segurança no código, proteção de validação de dados contra ataques de SQL Injection e XSS, autenticação e outros controles que devem ser previstos em aplicações de forma geral.

Se precisar de ajuda para reduzir riscos em seu ambiente, entre com contato para ajudarmos a mensurar o conhecimento de sua equipe e adotar um processo de desenvolvimento seguro para sua empresa.

–Leo Cavallari

Building Secure Software

Leave a comment