Por que a próxima geração de segurança de aplicativos é necessária

13

Novos softwares e códigos estão no centro de tudo o que fazemos, mas quão bem todo esse novo código é testado? Felizmente, a segurança de aplicativos autônomos está aqui.

O software está revolucionando a forma como o mundo opera. De carros sem motorista a criptomoedas, o software reimagina possibilidades. Com o software no centro de tudo o que fazemos, nos encontramos empurrando o código mais rápido do que nunca. Estimativas atuais mostram que existem mais de 111 bilhões de linhas de novo código escritas por ano. E nossa fixação em desenvolver rapidamente a mais recente tecnologia posicionou a segurança do aplicativo para estar no caminho, e como vindo a um “custo”.

À medida que continuamos acumulando dívidas de segurança e lutando para resolver a escassez da força de trabalho de segurança cibernética, fica claro que estamos vivendo com o tempo de segurança emprestado.

A questão não é pensar em nossos déficits em segurança de software, mas destacar que temos que pensar maior se quisermos resolver esse problema crítico de cibersegurança. Eliminar manualmente 20, 50, 100 falsos positivos do backlog de 10.000 relatórios de bugs — relatórios que só estão aumentando por múltiplos diariamente — não vai mover a agulha. E é incrivelmente caro, com o engenheiro médio da AppSec ganhando mais de US$ 133.000 por ano e em falta. O tempo deles não deveria ser melhor gasto do que fazer falsos positivos?

O que é necessário é segurança de aplicativos autônomos. Precisamos de uma solução de teste de segurança de aplicativos capaz de identificar com precisão problemas de velocidade e escala.

Autônomo não é Automação

Quero enfatizar particularmente a necessidade urgente de que esta próxima geração seja autônoma. Isso não deve ser confundido com automação. Ao contrário da automação, os recursos autônomos abrangem mais do que fazer uma tarefa pré-programada na velocidade da máquina.

Testes autônomos de segurança de aplicativos são capazes de ajustar inteligentemente suas técnicas de teste às necessidades específicas de cada aplicativo — sem suítes de teste pré-reconstruídas e nenhuma abordagem de tamanho único. Ele puxa dados de resultados de testes passados, e aproveita-os fazendo ajustes para o próximo teste. Isso permite que as equipes de segurança de produtos eliminem os esforços manuais no processo de gerenciamento de segurança de aplicativos.

Publicações Relacionadas

Soluções atuais, como testes de segurança de análise de software (SAST) não são ágeis. Eles revisam a linha de código por linha. Também não possuem os meios necessários para a validação, o que abordaria a questão dos falsos positivos. Os engenheiros de software têm que aceitar a prática e construir no tempo necessário para investigar cada resultado.

Enquanto isso, o teste em fuzz é uma técnica dinâmica de teste de segurança de aplicativos (DAST) que envia entradas malformadas para alvos, com o objetivo de desencadear maus comportamentos no software em execução, como falhas, loops infinitos e/ou vazamentos de memória. Esses comportamentos anômalos são frequentemente um sinal de uma vulnerabilidade subjacente.

O teste em fuzz é um tipo de análise dinâmica baseada em comportamento. Inicialmente, a indústria tinha web-fuzzers DAST, onde as ferramentas não tinham conhecimento do código em si. Estes ficaram um pouco mais avançados com testes interativos de segurança de aplicativos (IAST), que forneceu um loop de feedback de código, mas não ajuda você a aumentar a cobertura, deixando-o em risco de código não testado. Código não testado é código arriscado.

O teste em fuzz, então, é a próxima geração, que automaticamente encontra bugs. O teste em fuzz também é a única solução de análise dinâmica que ajuda a reduzir a nuvem de incerteza desse código não testado porque expande continuamente a cobertura de código. A capacidade de aumentar sua suíte de teste ajuda você a obter correções em campo mais rápido e com mais certeza.

Testes de segurança de aplicativos autônomos baseados em testes em fuzz vão além de apenas apontar vulnerabilidades. Normalmente, a principal barreira para obter uma correção é se ele quebra os recursos existentes. O Google informa que 40% de seus bugs caem em falhas de regressão. Testando e retestando para confirmar que cada vulnerabilidade é real, os desenvolvedores podem zerar na linha específica de código que garante uma investigação mais aprofundada — economizando tempo e recursos.

Essa validação também é fundamental para os fluxos de trabalho de integração contínua e entrega (CI/CD), pois permite que os desenvolvedores bifurquem uma seção de código e tenham essa seção verificada automaticamente antes de se fundir com o mestre.

Além disso, os testes de segurança de aplicativos autônomos de última geração incluem execução simbólica, que é capaz de abstrair entradas e, portanto, mapear uma maior quantidade de código, aumentando a cobertura em seus casos de teste. Muitas vezes essas são áreas de código onde as vulnerabilidades de zero-day estão localizadas, e áreas onde os testes de segurança convencionais não sondam.

Segurança Autônoma Capta

Só no último ano, vimos mudanças que reconhecem ainda mais a necessidade de uma segurança de aplicativos mais autônoma:

  • O Gartner adicionou testes em fuzz, a tecnologia por trás de testes autônomos de segurança de aplicativos, aos seus Recursos Críticos AST. As Capacidades Críticas do Gartner descrevem os critérios para a qualificação em seus Quadrantes Mágicos.
  • A ascensão do chefe de segurança de produtos. Semelhante ao aumento do papel do CISO e à disciplina de segurança da informação, estamos vendo as organizações implementarem uma disciplina de segurança de produtos e darem aos CPSOs um assento na mesa executiva. Os grupos de segurança de produtos são responsáveis pela segurança dos produtos que oferecem, o que é claramente diferente de garantir as operações da empresa.
  • Os fornecedores de repositórios do Git entram no espaço de teste de segurança de aplicativos. O GitHub e o GitLab fizeram movimentos no mercado de testes de segurança de aplicativos, destacando a necessidade de permitir que os desenvolvedores escrevam código seguro. O GitLab, em particular, adquiriu não uma, mas duas soluções de teste em fuzz.
você pode gostar também