Auditoria de código-fonte: garantia de segurança e confiabilidade de software

No mundo virtual, muita gente ainda se guia por métricas de vaidade, como apenas avaliar o número de downloads de aplicativos. Uma tarefa importante, mas geralmente negligenciada no pipeline de desenvolvimento, é a auditoria de código-fonte. Esse tipo de análise não só ajuda a identificar anomalias no código, como também deixa o software em conformidade com os requisitos do usuário, proporcionando uma melhor experiência, e também com as normas do mercado.

Há muitos problemas no desenvolvimento do software que só são descobertos depois do lançamento. É o usuário, no dia a dia, que se frustra com bugs, performance ruim e até com questões relacionadas à falta de segurança dos seus dados pessoais. Projetos assim custam caro e demandam tempo das equipes de tecnologia. A auditoria de código-fonte evita que grande parte das vulnerabilidades sejam conhecidas apenas depois do lançamento. O TOP 10: 2021 da OWASP (Open Web Application Security Project) lista os principais problemas que impedem que aplicações e APIs sejam desenvolvidas e mantidas de forma confiável. Grande parte dessas vulnerabilidades listadas abaixo poderia ser evitada com uma análise minuciosa do código.

· Quebra no controle de acesso

· Falhas de criptografia

· Injeção de comandos maliciosos

· Design inseguro

· Configuração incorreta de segurança

· Componentes vulneráveis e desatualizados

· Identificação e falhas de autenticação

· Falhas de software e integridade dos dados

· Registro de segurança e falhas de monitoramento

· Falsificação de solicitação do lado do servidor

A revisão de código ou code review ajuda a melhorar a qualidade do software. Nesses casos, uma revisão por pares é comum e eficaz. Quando um profissional de desenvolvimento de software examina o código de um colega, a busca é por defeitos, mas também por oportunidades de melhorar a qualidade da aplicação.

Há outras formas de revisão de código, como:

· Estática x dinâmica

A auditoria estática é realizada enquanto o programa não está rodando. Já a revisão dinâmica é feita como a aplicação em execução. Nesta última são checadas informações como tempo de resposta e funcionalidades. Pode também encontrar vários tipos de vulnerabilidades não programadas inicialmente pelos auditores.

· Revisão automática x manual

A revisão automática do código faz uma busca rápida por vulnerabilidades mais comuns, enquanto a revisão manual procura realizar auditorias mais detalhadas no código. A análise manual requer conhecimento aprofundado da arquitetura do código, é mais lenta e depende em parte de comentários deixados pelo desenvolvedor. A revisão por pares é bastante usada na auditoria manual.

· Caixa preta x caixa branca

A inspeção black box (caixa preta) é realizada às cegas, sem acesso autorizado ao código, a exemplo do teste de penetração e engenharia reversa. Ao contrário, com white box (caixa branca) o profissional tem total acesso ao código-fonte da aplicação.

· Interna x externa

Enquanto a primeira análise é realizada por membros da equipe que desenvolveu a aplicação, a análise externa é feita por profissionais terceirizados.

A auditoria de código-fonte precisa fazer parte das etapas de desenvolvimento de software como todas as outras, a exemplo da análise de requisitos, implementação e testes. Uma revisão sistemática do código da aplicação pode detectar problemas de configuração, sistemas mal projetados, erros de configuração e muito mais. Essa pode ser a garantia de segurança e confiabilidade do software para quem não admite correr riscos desnecessários.

Newsletter

Assine nossa newsletter e seja avisado sobre novos artigos, cases, eventos e muito mais.

E-books e Relatórios

Conheça nossa base de ebooks, artigos, relatórios e cases. Aprenda sobre as boas práticas de testes, qualidade de software e muito mais.

Tudo disponível para download gratuitamente.