O que é Application Security Testing (AST)

O AST (Application Security Testing) é um termo abrangente usado para categorizar ferramentas e metodologias que testam a segurança de aplicações, identificando vulnerabilidades em diferentes estágios do ciclo de desenvolvimento (SDLC). O termo foi cunhado para unificar as abordagens de segurança em três categorias principais:

  • SAST (Static Application Security Testing)
  • DAST (Dynamic Application Security Testing)
  • IAST (Interactive Application Security Testing)

Posteriormente, o mercado também incluiu:

  • SCA (Software Composition Analysis) – Para análise de dependências vulneráveis (ex: bibliotecas de terceiros).
  • API Security Testing – Focado em testes específicos para APIs.

Aplicar testes de segurança em software é fundamental para proteção de dados e evitar incidentes de segurança. Quando falamos de SAST, DAST, IAST, SCA, API Security Testing e também o Pentest, estamos nos referindo a diferentes métodos de identificar falhas antes que elas possam ser exploradas por criminosos.

Com um bom processo de segurança ao longo do SDLC (Ciclo de Vida do Desenvolvimento de Software), você pode perceber vulnerabilidades durante o desenvolvimento. Por exemplo, o SAST vai trabalhar com o código-fonte para identificar falhas desde o início. Já o DAST testa as aplicações em funcionamento para encontrar brechas.

Essa abordagem garante que você não apenas corrija problemas, mas faça isso de forma eficaz. Afinal, queremos que os usuários se sintam seguros ao usar nossas aplicações. Investir em boas práticas de segurança é um passo importante que traz um retorno enorme no futuro.

Componentes principais do AST: SAST, DAST e IAST

No mundo da segurança de aplicações, é importante entender alguns conceitos para proteger seu software de forma eficaz. Vamos falar sobre três métodos essenciais: SAST, DAST e IAST. Cada um desempenha um papel importante, ajudando a identificar vulnerabilidades antes que se tornem um problema sério.

Para facilitar a compreensão, confira os pontos principais de cada método:

  • SAST: Analisa o código-fonte (ou binários) de forma estática (sem executar a aplicação). Identifica vulnerabilidades como SQL Injection, XSS, hardcoded passwords, más práticas de codificação, entre outras. É integrado a IDEs (ex: SonarQube, Checkmarx) ou em pipelines de CI/CD.
  • DAST: Testa a aplicação em execução (dinamicamente), simulando ataques externos. Foca em vulnerabilidades como injeções, configurações inseguras e falhas em APIs.
  • IAST: Combina SAST + DAST, analisando o código durante a execução (com agentes ou sensors no runtime). Detecta vulnerabilidades em tempo real, como autenticação quebrada ou vazamento de dados.

Incorporar esses testes ao seu SDLC é crucial para garantir a segurança. Lembre-se, a proteção deve vir desde o início do desenvolvimento para preservar os dados e a confiança do usuário.

CritérioSASTDASTIAST
TipoEstático (código)Dinâmico (runtime)Híbrido (código + runtime)
MomentoDesenvolvimentoTeste/ProduçãoTeste/Produção
PrecisãoMédia (falsos positivos)Baixa-MédiaAlta
CoberturaCódigo internoComportamento externoAmbos

Falando um pouco mais de SAST e como ele funciona?

O SAST é uma ferramenta que analisa o código do seu aplicativo antes dele ser executado. Pense nisso como ter um revisor que aponta erros enquanto você escreve um texto. Por exemplo, se você está criando um sistema de login, o SAST pode detectar se você esqueceu de proteger dados sensíveis, evitando problemas maiores no futuro.

Essa técnica ajuda a agilizar o desenvolvimento e a criar aplicativos mais seguros. Assim, você corrige falhas logo no início do processo, o que é muito mais fácil e menos custoso.

O SAST é utilizado na fase de desenvolvimento (Shift Left) e integrado a IDEs. Entre as suas vantagens, pode detectar problemas cedo, reduzindo custos de correção e cobre grande parte do código.

Já as suas limitações são que as ferramentas podem gerar falsos positivos assim como não identificar vulnerabilidades em tempo de execução.

DAST: a segurança em tempo real

O DAST, ou Dynamic Application Security Testing, é uma ferramenta para proteger as aplicações enquanto estão em execução. Diferente do SAST, que analisa o código antes da execução, o DAST efetua testes em tempo real. Ele simula ataques para identificar vulnerabilidades que podem surgir quando o aplicativo está acessível. Por exemplo, ao usar um aplicativo de banco, um teste DAST poderia identificar falhas de segurança, como senhas fracas sendo expostas.

Integrar o DAST ao seu processo de desenvolvimento é importante. Isso significa que você pode corrigir problemas rapidamente e fortalecer a segurança.

É utilizado em fase de testes ou produção (ambiente real) com ferramentas como OWASP ZAP, Burp Suite, Nessus.

Suas principais vantagens são em identificar riscos reais, como problemas de deploy ou dependências externas e não requer acesso ao código-fonte.

Já suas limitações são em não apontar a linha exata do código vulnerável e pode ser lento e menos abrangente que SAST.

IAST: a combinação do SAST e DAST

O IAST combina técnicas de SAST e DAST, analisando o código enquanto a aplicação está em funcionamento. É uma abordagem avançada de segurança que combina elementos do SAST (análise estática de código) e do DAST (testes dinâmicos em runtime), operando diretamente durante a execução da aplicação. 

Ao instrumentar o código com agentes ou sensores, o IAST monitora o comportamento da aplicação em tempo real, identificando vulnerabilidades como injeções SQL, quebras de autenticação e vazamento de dados com maior precisão e menos falsos positivos que métodos tradicionais. Sua integração contínua em ambientes de teste e produção permite correções ágeis, sendo ideal para pipelines DevOps, onde oferece visibilidade detalhada das vulnerabilidades no contexto real da aplicação, sem impactar significativamente o desempenho. Essa tecnologia representa um avanço para segurança em aplicações modernas, especialmente em arquiteturas de microsserviços e APIs.

Quando é usado? Em ambientes de teste (QA/staging) ou produção monitorada.

Vantagens: Precisão maior (menos falsos positivos) e Monitoramento contínuo.

Limitações: Pode impactar performance da aplicação e requer instrumentação do código.

Outro componente do AST: o SCA

O Software Composition Analysis ajuda a descobrir quais bibliotecas e componentes de terceiros você está utilizando. Ao analisar suas dependências, você evita surpresas desagradáveis, como vulnerabilidades conhecidas que podem comprometer a segurança. Além disso, incluir o SCA no seu processo de desenvolvimento é uma maneira inteligente de proteger seu código. Ao lado de outras práticas como SAST, DAST, e Pentest, o SCA forma uma rede de proteção. Assim, você assegura que seu software, desde o início até o fim do SDLC, foi construído com componentes confiáveis e seguros, tornando sua aplicação muito mais forte.

Pentest: um ataque autorizado para segurança reforçada

Um pentest  simula um ataque real ao seu software para encontrar vulnerabilidades

Aqui estão algumas etapas importantes desse processo:

  • Reconhecimento: A primeira fase envolve coletar informações sobre o sistema. Quanto mais dados você tiver, melhor.
  • Exploração: Aqui, tentamos acessar dados não autorizados. Essa é a parte onde encontramos as brechas.
  • Relatório: Por fim, reunimos tudo em um documento. Essa é uma ferramenta valiosa para que você possa corrigir as falhas e melhorar a segurança.

API Security Testing: O Que É e Por Que é Importante?

As APIs (Application Programming Interfaces) são fundamentais para a comunicação entre sistemas modernos, como aplicações web, mobile, microserviços e cloud. No entanto, elas também são alvos frequentes de ataques, incluindo injeções de dados, autenticação comprometida e vazamento de informações.

O API Security Testing é um conjunto de técnicas e ferramentas projetadas para identificar vulnerabilidades em APIs antes que possam ser exploradas por invasores.

Integração do AST no SDLC: segurança desde o início

Integrar o Application Security Testing durante o SDLC garante que a segurança das aplicações esteja sempre em primeiro lugar.

Imagine descobrir uma falha grave na última hora; é desgastante, certo? Se a segurança for abordada desde o início, você fortalece seu produto e transmite confiança aos usuários. Investir em práticas como SAST, DAST, IAST e Pentest ao longo do desenvolvimento ajuda a criar soluções mais seguras.

Aqui estão alguns benefícios importantes que esses testes trazem:

  • Detecção precoce: Isso significa descobrir falhas antes que se tornem um grande problema. Imagine encontrar uma pequena rachadura na parede da sua casa; quanto antes você consertar, melhor!
  • Redução de custos: Consertar erros no início do processo de desenvolvimento é muito mais barato do que esperar até o produto estar pronto. Você economiza recursos e tempo.
  • Aumento da confiança: Quando os usuários sabem que suas informações estão seguras, ficam mais propensos a usar o aplicativo e confiar na marca.
  • Conformidade: Seguir normas e regulamentos evita multas e problemas legais, garantindo que sua empresa esteja sempre em dia com as leis.

Investir em segurança é uma escolha inteligente e necessária para o seu software!

Desafios e considerações ao implementar AST

Implementar segurança nos aplicativos pode ser complicado, especialmente quando a pressa é uma constante. Um dos maiores desafios que você pode encontrar é a falta de conhecimento da equipe sobre práticas de segurança pois algumas ferramentas de teste podem não se integrar bem aos processos que você já tem, o que gera retrabalho e frustração.

A cultura da empresa também pode ser um obstáculo. Muitas vezes, há uma preferência pela velocidade em vez de segurança, aumentando os riscos. Para enfrentar isso, é essencial criar uma mentalidade de segurança desde o início do desenvolvimento de software. Aqui estão algumas dicas para facilitar essa implementação:

  • Treinamento contínuo: Invista na capacitação da equipe.
  • Integração de ferramentas: Escolha soluções que funcionem bem com o que já existe.
  • Cultura de segurança: Encoraje a equipe a ver a segurança como uma prioridade, não um obstáculo.

Futuro do Application Security Testing

O futuro do teste de segurança de aplicativos está mudando e se tornando cada vez mais importante. Com o aumento das ameaças cibernéticas, é importante que as empresas fiquem um passo à frente. Por exemplo, o uso de ferramentas como SAST, DAST e IAST permite que as vulnerabilidades sejam identificadas desde as fases iniciais do desenvolvimento. O que antes era um processo isolado, agora é parte integrante do ciclo de vida do desenvolvimento de software (SDLC). Além disso, práticas como Pentest ajudam a validar a segurança das aplicações em ambientes reais. Isso significa que as equipes precisam colaborar e adotar uma mentalidade de segurança. Assim, a proteção dos dados não é apenas responsabilidade de um setor, mas de toda a empresa. E, ao integrar esses testes no dia a dia, a segurança se torna mais eficaz.

Conclusão: segurança de aplicações como prioridade

A adoção de AST (Application Security Testing) é fundamental para garantir a segurança de aplicações em um cenário onde ameaças cibernéticas são cada vez mais sofisticadas e frequentes. Ao integrar testes estáticos (SAST), dinâmicos (DAST) e interativos (IAST) no ciclo de desenvolvimento, as organizações identificam e corrigem vulnerabilidades ainda nas fases iniciais, reduzindo riscos e custos associados a brechas exploradas em produção.

Essa abordagem proativa não apenas protege dados sensíveis, mas também fortalece a conformidade com regulamentações e a confiança dos usuários. Além disso, o AST moderno vai além da detecção tradicional, incorporando análises de dependências (SCA) e testes específicos para APIs, cobrindo todo o espectro de ameaças. Em um mundo de desenvolvimento ágil e DevOps, automatizar a segurança com AST permite que as equipes entreguem software rápido sem sacrificar a proteção. Empresas que ignoram essa prática não só ficam expostas a violações caras, mas também perdem competitividade em um mercado que valoriza a segurança como requisito

Os desafios de segurança do desenvolvimento de aplicativos modernos

Na era digital, a agilidade e a rápida colocação de aplicativos no mercado são cruciais para o sucesso. Por isso, muitas empresas adotam métodos de desenvolvimento Agile e culturas DevOps, possibilitando múltiplas releases de código por dia.

No entanto, essa busca por velocidade pode comprometer a segurança. Desenvolvedores de aplicativos frequentemente dependem de componentes como containers, microsserviços e frameworks, muitos dos quais são softwares de código aberto (FOSS – Free Open-source software). Apesar de o FOSS ser uma grande fonte de inovação, ele também expande a superfície de ataque para agentes mal-intencionados.

APIs são outro componente crítico de aplicações modernas, permitindo a integração entre diferentes softwares. No entanto, APIs também são suscetíveis a explorações e abusos. Ao contrário de páginas web, APIs não são projetadas para interação direta do usuário, o que pode deixá-las fora do radar de equipes de segurança, tornando-as especialmente vulneráveis a ataques.

Componentes e APIs de código aberto, embora facilitem a vida dos desenvolvedores, introduzem novos riscos de segurança. Controles tradicionais, como desenvolvimento orientado a testes, nem sempre são eficazes com esses componentes. Por isso, o gerenciamento e a segurança da API precisam ser integrados ao pipeline de desenvolvimento.

Infelizmente, velocidade e segurança muitas vezes entram em conflito. A pressão para implementar novos códigos rapidamente pode levar ao uso inseguro de componentes FOSS e APIs. Pipelines de CI/CD que automatizam o desenvolvimento e a implantação geralmente carecem de testes de segurança adequados, gerando atrito entre desenvolvedores e equipes de segurança, pois os primeiros podem ver os testes como um obstáculo à agilidade.

Além disso, métodos de teste tradicionais, como testes unitários e de regressão, concentram-se na funcionalidade e não na segurança. Isso pode deixar os aplicativos vulneráveis a novas ou reintroduzidas vulnerabilidades.

A proliferação de endpoints digitais em arquiteturas modernas complica ainda mais o cenário de segurança. À medida que os aplicativos tradicionais evoluem para sistemas baseados em API, o número de possíveis superfícies de ataque aumenta. Equipes de segurança podem não estar cientes de todas as APIs em seu ecossistema, dificultando sua proteção adequada.

Para enfrentar esses desafios, as empresas precisam implementar medidas robustas de segurança de API. Isso inclui:

  • Descoberta dinâmica de API: Identificação automática de APIs em seu ambiente.
  • Proteções automatizadas usando aprendizado de máquina: Mitigação de ameaças em tempo real.
  • Colaboração estreita entre desenvolvedores e equipes de segurança: Integração da segurança no processo de desenvolvimento.

Ao priorizar a segurança da API, as empresas podem se proteger do crescente número de incidentes e violações de segurança.

Lembre-se:

  • A segurança da API é essencial para proteger seus dados e aplicativos.
  • Implemente medidas robustas de segurança de API para mitigar riscos.
  • Colabore entre desenvolvedores e equipes de segurança para integrar a segurança no processo de desenvolvimento.
  • Priorize a segurança da API para se proteger contra incidentes e violações.

Com as ferramentas e estratégias certas, você pode garantir que seus aplicativos modernos sejam seguros e confiáveis.

Para mais informações, consulte os seguintes recursos:

Iniciando os testes de APIs Meraki com DevNet Sandbox

O Cisco Meraki é um conjunto de soluções de rede gerenciadas pela internet que permite uma única fonte de gerenciamento sobre locais, infraestrutura e dispositivos. Componentes incluem uma solução completa de TI gerenciada por nuvem para atendimento as soluções de wireless, switching, segurança, gerenciamento de dispositivos móveis (MDM) e comunicações, integrando o hardware, software e a nuvem.

Há cinco maneiras pelas quais uma aplicação pode estender as funcionalidades da plataforma Meraki:

  • A Dashboard API, que fornece um serviço RESTful para provisionamento, gerenciamento e monitoramento de dispositivos.
  • Alertas de webhook, um serviço que permite atualizações em tempo real da saúde e configuração da rede.
  • A API de localização, um método HTTP POST configurado no Meraki Dashboard que fornece informações de localização do cliente (GPS, X/Y) com base no posicionamento do mapa do Meraki Access Point (AP) e na intensidade do sinal do cliente.
  • O External Captive Portal (EXCAP), que permite que uma organização crie modelos de engajamento personalizados para dispositivos que aproveitam seu ambiente WiFi.
  • MV Sense, que oferece chamadas de API REST e fluxo de dados em tempo real para aproveitamento das câmeras MV12

O ambiente “Meraki DevNet Always On Read Only Sandbox” fornece um ambiente de desenvolvimento para validar e testar o ‘Cisco Meraki Dashboard’, Dashboard API, integração do Captive Portal, MV Sense, Webhook Alerts e Location Scanning.

Todas as chamadas de API são muito bem documentadas usando a especificação OpenAPI (Swagger interface). Há ótimo trabalho disponibilizando tudo como um Documento Postman, um recurso muito útil no desenvolvimento de uma API.

Postman é uma ferramenta de desenvolvimento de API baseada no modelo web/cliente, perfeita para simular chamadas e explorar como funcionam determinadas APIs. A plataforma da Meraki está atualmente na sua API versão 1.x .

Qual o uso das APIs?
Existem muitos casos de uso para essas APIs, atendendo a requisitos de escalabilidade ​​para os administradores e automatização para as redes Meraki. Os casos de uso comuns são:

  • Provisionamento em massa (usando a API do painel)
  • Monitoramento avançado (usando MV Sense e APIs MR)
  • Automação de rede (usando chamadas MS)
  • Integrações na nuvem (integrar Meraki com dispositivos de terceiros — com Cisco Umbrella, por exemplo)

Cisco Sandbox

O ambiente Cisco DevNet Sandbox permite que engenheiros, desenvolvedores, administradores de rede, arquitetos ou qualquer pessoa que queira desenvolver e testar as APIs, controladores, equipamentos de rede, suíte de colaboração e muito mais da ferramentas da Cisco, possa fazê-lo gratuitamente!

https://developer.cisco.com/site/sandbox

Ambiente Meraki

Nesse post faremos um laboratório utilizando a infraestrutura Meraki (Meraki Always On).

Faça login, no dashboard com as credenciais fornecidas, acesse o ambiente “DevNet Sandbox”

Certifique se o use o uso de API está ativo “Enable access to the Cisco Meraki Dashboard”. Logado no painel vá para: Organization -> Settings -> Dashboard API Access, marque a caixa:

Gere uma API key para aquela conta. Cada conta poderá ter até 2 API Keys.

Clique no seu Perfil (canto superior direito): My Profile -> API Access -> Clique em “Generate API Key” copie e armazene em local seguro.

Postman

Depois de seguir os passos acima, você pode começar a fazer chamadas de API para seu dashboard e dispositivos usando o Postman ou seus scripts Python.

Se você precisar de ajuda com o Postman, incluindo como importar a API Postman Meraki, confira: https://developer.cisco.com/meraki/build/meraki-postman-collection-getting-started/  com poucos cliques é possível instalar a Coleção “Meraki Dashboard API – v1”

Vamos fazer nossa primeira chamada de API e definir o escopo da nossa documentação da API, pois existem algumas maneiras de fazer isso:

  • Você pode acessá-lo através do Meraki Dashboard: Clique em Help -> API Docs.
  • Importe o documento de API mais recente do Postman para sua conta do Postman.

Após importar para sua conta você poderá ver quantas chamadas de API estão disponíveis e como ela está organizada, confira abaixo:

Escolha um request que você possa preencher facilmente com as informações que já possui (por enquanto só temos a chave da API, portanto precisamos de uma solicitação que exija apenas o valor da Chave da API), por exemplo, poderíamos listar todas as Organizações disponíveis no Chave de API que estamos usando, depois de inserir os campos obrigatórios no cabeçalho da API:

baseURL: https://api.meraki.com/api/v1

apiKey: ae829149e162f8dd0535ca5f0b98e96f1d3adc29 (a API key gerada )

1º Passo, crie um ambiente. Clique no ícone do olho na parte superior direita e  “Add” para criar um novo ambiente.

2º Defina as variáveis. Adicione as informações baseURL e keyAPI

3º Execute o teste para coletar o ID do ambiente “DevNet Sandbox” dentro de “Organization” do ambiente Meraki.

Armado com essas informações, podemos começar a criar scripts e integrar nosso ambiente Meraki com outras ferramentas/plataformas.

Uma vez que coletamos a informação do ID da Organização, podemos atualizar as variáveis e coletar as informações de rede.

Por exemplo, podemos coletar o ID das redes.

Uma vez que coletamos a informação do ID da Rede, podemos atualizar as variáveis e coletar as informações de rede.

Por exemplo, podemos coletar as informações detalhadas dos equipamentos de rede, como endereço IP, serial, geolocalização, modelo, etc.

Coletar os SSIDs da rede:

Visualizando o mesmo SSID no ambiente Meraki:

Com o método PUT podemos alterar ou inserir nos parâmetros para a os SSIDs da Rede.

Referências

Andre Camillo: https://andrecamillo.medium.com/getting-started-with-meraki-apis-7633a822a9da

Charles Judd: https://www.youtube.com/watch?v=86uq_Imi-L0

Meraki API V1: https://developer.cisco.com/meraki/api-v1/

Postman, API development tool: https://www.postman.com/

Meraki API V1 Postman Documentation (import from here):  https://documenter.getpostman.com/view/897512/SzYXYfmJ

Getting started with Postman: https://developer.cisco.com/meraki/build/meraki-postman-collection-getting-started/

https://documenter.getpostman.com/view/897512/SzYXYfmJ#intro

Ambiente de Lab Gratuito – Cisco Devnet Sandbox

O ambiente Cisco DevNet Sandbox permite que engenheiros, desenvolvedores, administradores de rede, arquitetos ou qualquer pessoa que queira desenvolver e testar as APIs, controladores, equipamentos de rede, suíte de colaboração e muito mais da ferramentas da Cisco, possa fazê-lo gratuitamente!

Cisco DevNet Sandbox
https://developer.cisco.com/site/sandbox/

Outros Links
Meraki API V1: https://developer.cisco.com/meraki/api-v1/
Postman, API development tool: https://www.postman.com/
Meraki API V1 Postman Documentation (import from here): https://documenter.getpostman.com/view/897512/SzYXYfmJ
Getting started with Postman: https://developer.cisco.com/meraki/build/meraki-postman-collection-getting-started/
https://documenter.getpostman.com/view/897512/SzYXYfmJ#intro