As organizações aplicam diversas metodologias para identificar vulnerabilidades potencialmente exploráveis em seu software. Por exemplo, a análise estática de código é uma forma de teste de caixa branca que pode ajudar a identificar problemas de segurança no código-fonte. Por outro lado, a análise dinâmica de código é uma forma de verificação de vulnerabilidade de caixa preta que permite que as equipes de software verifiquem aplicativos em execução e identifiquem vulnerabilidades.
Quando implementada corretamente, a análise dinâmica de código pode reduzir o tempo médio de identificação (MTTI) para incidentes de produção, melhorar a visibilidade de problemas de aplicativos e aumentar a postura geral de segurança de um projeto. Aqui, examinaremos mais de perto a análise dinâmica de código.
A análise dinâmica de código – também chamada de Dynamic Application Security Testing (DAST) – é projetada para testar um aplicativo em execução quanto a vulnerabilidades potencialmente exploráveis. Ferramentas DAST para identificar vulnerabilidades em tempo de compilação e tempo de execução, como erros de configuração que só aparecem em um ambiente de execução realista.
Uma ferramenta DAST usa um dicionário de vulnerabilidades conhecidas e entradas maliciosas para “difundir” um aplicativo. Exemplos dessas entradas potencialmente maliciosas incluem:
À medida que o aplicativo é executado, ele é bombardeado por essas entradas potencialmente maliciosas, e a ferramenta DAST analisa as respostas do aplicativo. Se o aplicativo tiver uma resposta negativa a uma entrada (como travamento, retorno de uma resposta inválida etc.), a ferramenta DAST registra a vulnerabilidade identificada.
Como as ferramentas DAST são executadas em um aplicativo em execução, elas podem detectar uma ampla gama de vulnerabilidades potenciais. Isso inclui vulnerabilidades difíceis ou impossíveis de detectar no código-fonte, como problemas de alocação de memória.
O Ciclo de Vida de Desenvolvimento de Software (SDLC) mapeia os estágios do processo de desenvolvimento de software. Isso inclui tudo, desde o planejamento inicial e a identificação dos requisitos de um aplicativo até a manutenção de longo prazo e seu eventual fim de vida útil.
O DAST geralmente entra em ação na fase de testes do SDLC. Isso ocorre porque o DAST requer a capacidade de executar o aplicativo e testá-lo usando entrada maliciosa simulada. Como resultado, quando o código do aplicativo for capaz de ser compilado e implementado em um ambiente de teste ou de preparo, você poderá usar o DAST. Com fluxos de trabalho de integração contínua/entrega contínua (CI/CD), isso pode significar que as varreduras DAST são executadas várias vezes ao dia à medida que ocorrem compilações iterativas.
Em muitos programas de segurança de software empresarial, o DAST ocorre após testes de penetração que não exigem experiência em segurança interna. Por exemplo, após um pen test para atender aos requisitos do PCI DSS (Payment Card Industry Data Security Standard), uma equipe de segurança pode usar uma ferramenta DAST para executar verificações de segurança automatizadas.
A análise de código estática e dinâmica são duas das formas mais comuns de teste de segurança de aplicativos. Eles adotam abordagens diferentes para identificar a vulnerabilidade e muitas vezes são complementares.
Ao contrário da análise dinâmica de código, a análise estática de código – também chamada de Static aplicativo Security Testing (SAST) – não requer acesso a um executável completo. Em vez disso, ele adota uma abordagem de caixa branca e inspeciona o código-fonte do aplicativo em busca de vulnerabilidade. Ao construir um modelo do fluxo de execução do aplicativo e aplicar regras a esse modelo, o SAST pode detectar injeção, buffer overflows e vulnerabilidades semelhantes.
Como o DAST e o SAST aplicam diferentes métodos de teste e são aplicados a diferentes tipos de arquivos (executáveis compilados versus código-fonte), eles detectam diferentes tipos de vulnerabilidade e são aplicados em diferentes estágios do processo de desenvolvimento. O SAST pode ser aplicado mais cedo no SDLC (durante a fase de desenvolvimento) do que o DAST porque não exige que o aplicativo seja concluído para identificar a vulnerabilidade.
A análise dinâmica de código é aplicada quando um aplicativo está praticamente completo e capaz de ser executado. Ele usa entradas maliciosas para simular ataques realistas contra o aplicativo e observar suas respostas.
Uma das principais vantagens do teste DAST é que ele pode simular o comportamento de um aplicativo em um ambiente de implantação realista. Isso permite que o testador identifique problemas de configuração e outras vulnerabilidades que podem ser visíveis apenas quando o código está ativo. Além disso, o uso de ataques simulados do mundo real torna possível ver o impacto de uma potencial exploração no estado do aplicativo. A ferramenta DAST também pode detectar vulnerabilidades em dependências e bibliotecas de terceiros, que afetam a segurança do aplicativo, mas podem ser ignoradas pelo SAST e por ferramentas semelhantes focadas em código-fonte.
Check Point CloudGuard oferece verificação de vulnerabilidade para aplicativos baseados em nuvem, sem servidor e em contêineres. Isso inclui suporte para verificação de vulnerabilidade DAST e SAST para ajudar na identificação e correção de vulnerabilidade durante o processo de desenvolvimento. Para ver os recursos das soluções CloudGuard para aplicativos sem servidorem ação, agende uma demo. Você também pode solicitar uma avaliação gratuita para ver como ele pode ser integrado ao fluxo de trabalho de desenvolvimento da sua organização.