Não há bala de prata
Embora seja tentador pensar que um scanner de segurança ou firewall de aplicativo fornecerá muitas defesas contra ataques ou identificará uma infinidade de problemas, na realidade não existe solução mágica para o problema do software inseguro. O software de avaliação de segurança de aplicativos, embora útil como um primeiro passo para encontrar frutas ao alcance da mão, é geralmente imaturo e ineficaz em avaliações aprofundadas ou em fornecer cobertura de teste adequada. Lembre-se de que segurança é um processo e não um produto.
Pense estrategicamente, não taticamente
O SDLC é Rei
O SDLC é um processo bem conhecido dos desenvolvedores. Ao integrar a segurança em cada fase do SDLC, permite uma abordagem holística à segurança do aplicativo que alavanca os procedimentos já implementados na organização. Esteja ciente de que, embora os nomes das várias fases possam mudar dependendo do modelo SDLC usado por uma organização, cada fase conceitual do arquétipo SDLC será usada para desenvolver o aplicativo (ou seja, definir, projetar, desenvolver, implantar, manter). Cada fase tem considerações de segurança que devem se tornar parte do processo existente, para garantir um programa de segurança abrangente e econômico.
Teste cedo e teste frequentemente
Entenda o escopo da segurança
Desenvolva a mentalidade certa
Entenda o assunto
Use as ferramentas certas
O diabo está nos detalhes
É fundamental não realizar uma análise superficial de segurança de um aplicativo e considerá-lo completo. Isso vai incutir uma falsa sensação de confiança que pode ser tão perigosa quanto não ter feito uma análise de segurança em primeiro lugar. É vital revisar cuidadosamente as descobertas e eliminar qualquer falso positivo que possa permanecer no relatório. Relatar uma descoberta de segurança incorreta pode frequentemente prejudicar a mensagem válida do restante de um relatório de segurança. Deve-se ter cuidado para verificar se todas as seções possíveis da lógica do aplicativo foram testadas e se todos os cenários de caso de uso foram explorados em busca de possíveis vulnerabilidades.
Use o código-fonte quando disponível
Desenvolver métricas
Documentar os resultados do teste