O IAST (Interactive Application Security Testing) é um termo para ferramentas que combinam as vantagens do SAST (Static Application Security Testing e do DAST (Dynamic Application Security Testing).
Como é um termo genérico, as ferramentas IAST podem diferir bastante em sua abordagem para testar a segurança de aplicativos da web. Vamos explicar como essas ferramentas de teste surgiram, como elas detectam vulnerabilidades de segurança e quais são suas vantagens e desvantagens.
Ferramentas de teste de segurança de aplicativos da Web
As ferramentas que ajudam a proteger seus aplicativos web podem, em geral, ser divididas em duas classes:
Ferramentas SAST também conhecidas como scanners de código-fonte. Suas características incluem:
- Trabalham apenas no código fonte do aplicativo;
- Identificam a causa exata do problema;
- Podem encontrar problemas no código que já foi criado, mas ainda não usado no aplicativo;
- Dependem do idioma — suportam apenas idiomas selecionados, como PHP, Java etc.;
- Conhecidas por relatar muitos falsos positivos;
- Não é possível descobrir problemas relacionados a dados ou configuração;
- Não cobrem a segurança de bibliotecas ou produtos de terceiros.
E ferramentas DAST, incluindo scanners de vulnerabilidade automatizados e ferramentas de teste de penetração manual que possuem as seguintes características:
- Trabalham apenas no aplicativo compilado;
- São completamente independentes do idioma usado para criar o aplicativo;
- Descobrem problemas relacionados a dados e configuração;
- Relatam menos falsos positivos do que as ferramentas SAST;
- Não é possível identificar a origem exata do problema (ou seja, a linha de código).
Uma empresa experiente em segurança da web tradicionalmente teria que empregar esses dois tipos de ferramentas separadamente.
As ferramentas SAST seriam usadas para revisão de código por empresas que desenvolvem seus próprios aplicativos da web. As ferramentas DAST seriam usadas com mais frequência, por todas as empresas que possuem páginas ou aplicativos da web (incluindo aqueles que desenvolvem suas próprias aplicações).
Para facilitar a vida das empresas, os fabricantes de ferramentas de segurança de aplicativos da web perceberam que as técnicas de teste estático e dinâmico podem ser combinadas para criar ferramentas melhores que incluam as vantagens de ambas. Foi assim que nasceu o IAST (Interactive Application Security Testing).
Tipos de ferramentas IAST
O maior problema com o IAST é que a ideia veio à mente dos fabricantes de ferramentas SAST e DAST de forma independente e isso resultou em produtos que usam o mesmo termo genérico, mas que na verdade são bem diferentes.
Abaixo, você conhecerá como são divididas as ferramentas IAST entre passivas e ativas:
IAST passiva
A funcionalidade IAST incorporada às ferramentas SAST oferece uma vantagem sobre o SAST puro. Ele permite que esses scanners confirmem alguns dos falsos positivos, compilando e testando o código. Portanto, a taxa de falsos positivos é reduzida.
No entanto, as ferramentas de análise estática com funcionalidade IAST ainda mantêm uma de suas maiores desvantagens: falta de foco em produtos de terceiros. Portanto, se você usar uma solução IAST passiva, basta confiar que terceiros entregam produtos totalmente seguros, o que, infelizmente, geralmente não é o caso.
As ferramentas passivas do IAST geralmente pesquisam vulnerabilidades em partes de código atualmente analisadas pela parte estática da solução. Isso significa que o aplicativo inteiro não é compilado e testado como um todo, o que pode causar a perda de certas vulnerabilidades.
Uma ferramenta IAST que foi originalmente criada como um produto SAST ainda permanece como um scanner de código-fonte. Infelizmente, ela não inclui todas as funcionalidades e vantagens do DAST. Definitivamente, é uma melhoria em relação a uma ferramenta SAST pura, mas não elimina a necessidade de um scanner de vulnerabilidades da web.
IAST ativo
As ferramentas DAST com funcionalidade IAST se concentram na introdução de uma vantagem do SAST: identificar a origem do problema para que seus desenvolvedores não gastem tempo tentando descobrir a linha de código que causa a vulnerabilidade. Também há um valor agregado nas soluções IAST ativas: elas fornecem resultados mais precisos e reduzem muito o número de falsos positivos.
Infelizmente, as ferramentas de análise dinâmica funcionam em tempo real na execução de aplicativos, para que não acessem diretamente o código-fonte. No entanto, eles podem acessar compiladores e intérpretes.
No caso de linguagens como PHP, uma ferramenta IAST ativa pode realmente identificar a linha exata de código que causa a vulnerabilidade. No caso de linguagens pré-compiladas, ele pode identificar o problema no código de bytes, o que acelera sua localização no código-fonte.
Em suma, não se pode esperar que uma solução DAST com um agente IAST substitua completamente um scanner de código fonte dedicado, mas apresenta algumas de suas vantagens e até melhora a eficiência dos testes dinâmicos.
IAST no ciclo de vida de desenvolvimento de software
Uma das maiores vantagens do IAST, independente de ser passivo ou ativo, é a sua usabilidade no processo de desenvolvimento.
As empresas que constroem seus próprios aplicativos da web precisam conhecer os possíveis problemas o mais rápido possível para evitar custos e riscos associados à descoberta de vulnerabilidades na produção. É por isso que atualmente uma das principais tendências no desenvolvimento de software é substituir o DevOps pelo DevSecOps.
As ferramentas SAST, por sua natureza, são feitas para serem usadas como parte da integração contínua. As ferramentas DAST geralmente são erroneamente consideradas impróprias para isso, mas, ao contrário de tais opiniões, as soluções DAST de ponta são usadas com sucesso nos pipelines de CI / CD por muitas empresas. A introdução de agentes IAST geralmente é mais complexa, mas vale a pena.
O IAST passivo e o IAST ativo são igualmente adequados para o desenvolvimento de softwares e código seguro. No entanto, espera-se que o IAST passivo relate mais falsos positivos e não cubra os elementos de terceiros usados no desenvolvimento. Por outro lado, o IAST ativo, que é muito mais completo, pode exigir mais recursos de computação.
Agora que você conhece mais sobre o IAST, entenda também sobre as principais práticas de desenvolvimento de código seguro, entre em contato conosco!