← Voltar aos artigos

Paper Files / AppSec

Engenharia de Segurança de Aplicações Orientada a Ameaças: Integração Formal de SAST, DAST, SCA e Proteção em Tempo de Execução em Pipelines DevSecOps Baseados em Risco

AppSecPT

A crescente dependência de aplicações web, APIs e arquiteturas baseadas em microsserviços ampliou significativamente a superfície de ataque de sistemas corporativos. Entre 2020 e 2022, incidentes de grande escala — incluindo o comprometimento da cadeia de suprimentos da SolarWinds e a vulnerabilidade Log4Shell (CVE‑2021‑44228) — demonstraram que vulnerabilidades em componentes amplamente reutilizados podem produzir efeitos sistêmicos em ecossistemas digitais inteiros. Nesse contexto, organizações passaram a integrar mecanismos de segurança diretamente nos processos de desenvolvimento de software por meio de práticas DevSecOps. Contudo, a adoção isolada de ferramentas de análise estática (SAST), análise dinâmica (DAST) e análise de composição de software (SCA) frequentemente produz grande volume de alertas, dificultando a priorização eficaz de correções. Este trabalho propõe uma abordagem formal de engenharia de segurança orientada a ameaças para priorização de vulnerabilidades em pipelines DevSecOps. Modelamos o risco associado a vulnerabilidades como função da probabilidade de exploração e do impacto potencial, integrando métricas derivadas do Common Vulnerability Scoring System (CVSS), estimativas probabilísticas inspiradas no Exploit Prediction Scoring System (EPSS) e fatores contextuais de exposição operacional. Formalizamos o problema de priorização como uma variante do problema da mochila 0‑1 sob restrição orçamentária, permitindo otimização da mitigação de risco residual. A metodologia integra modelagem de ameaças baseada em STRIDE, mapeamento para o framework MITRE ATT&CK e correlação automatizada de resultados provenientes de ferramentas SAST, DAST e SCA dentro de pipelines de integração contínua. A implementação foi avaliada em um ambiente experimental composto por 12 microsserviços totalizando aproximadamente 3,4 milhões de linhas de código. Os resultados indicam redução significativa do tempo médio de remediação (MTTR), aumento na detecção precoce de vulnerabilidades e diminuição de falsos positivos após aplicação de priorização baseada em risco. Demonstramos que a combinação de modelagem adversarial, métricas quantitativas e controles de proteção em tempo de execução — incluindo WAF, RASP e monitoramento de comportamento em contêineres — produz ganhos mensuráveis na postura de segurança de aplicações modernas. A contribuição principal deste trabalho reside na formalização do processo de priorização de vulnerabilidades em ambientes DevSecOps e na demonstração empírica de sua aplicabilidade em arquiteturas distribuídas contemporâneas.

  1. Introdução

A segurança de aplicações (Application Security – AppSec) tornou‑se componente central da engenharia de software contemporânea. A evolução de arquiteturas monolíticas para sistemas distribuídos baseados em microsserviços, APIs REST e infraestrutura em nuvem ampliou significativamente a complexidade operacional e a superfície de ataque de sistemas corporativos (BASS; CLEMENTS; KAZMAN, 2013). Nesse cenário, vulnerabilidades tradicionais como SQL Injection, Cross‑Site Scripting (XSS) e falhas de controle de acesso continuam entre os vetores mais explorados em aplicações web (OWASP FOUNDATION, 2021).

A relevância desse problema foi evidenciada por incidentes amplamente documentados no período recente. O comprometimento da cadeia de suprimentos da SolarWinds em 2020 demonstrou que ataques direcionados à infraestrutura de desenvolvimento e distribuição de software podem afetar milhares de organizações simultaneamente (CISA, 2021). De forma semelhante, a vulnerabilidade Log4Shell (CVE‑2021‑44228), descoberta em 2021 na biblioteca Apache Log4j, ilustrou como dependências amplamente utilizadas podem introduzir riscos sistêmicos em ecossistemas de software globais (NIST, 2022).

Relatórios de inteligência de ameaças indicam que aplicações web e APIs continuam figurando entre os principais vetores iniciais de intrusão em ambientes corporativos (VERIZON, 2022; ENISA, 2021). No contexto de transformação digital acelerada, organizações passaram a adotar práticas DevOps para reduzir ciclos de entrega de software, o que frequentemente resulta em implantação contínua de novas funcionalidades. Entretanto, a velocidade de entrega pode introduzir riscos significativos quando controles de segurança não são integrados ao ciclo de desenvolvimento.

Como resposta a esse desafio, emergiu o paradigma DevSecOps, que propõe incorporar práticas e ferramentas de segurança diretamente nos pipelines de integração e entrega contínua (MYRBORG, 2019). Entre os mecanismos mais utilizados encontram‑se ferramentas de análise estática de código (SAST), testes dinâmicos de aplicações (DAST) e análise de composição de software (SCA).

Apesar da ampla adoção dessas tecnologias, a simples execução de múltiplas ferramentas de segurança frequentemente produz volumes elevados de alertas, dificultando a priorização de vulnerabilidades críticas. Em muitos casos, equipes de desenvolvimento enfrentam centenas ou milhares de achados, tornando inviável a remediação imediata de todos os problemas identificados.

Neste trabalho argumentamos que a eficácia de programas de AppSec depende não apenas da detecção de vulnerabilidades, mas também da existência de modelos formais de priorização orientados a ameaças. Propomos, portanto, uma metodologia integrada que combina modelagem adversarial, métricas quantitativas de risco e mecanismos de proteção em tempo de execução para apoiar decisões de remediação em pipelines DevSecOps.

  1. Fundamentação Teórica e Trabalhos Relacionados

A literatura de segurança de aplicações evoluiu substancialmente nas últimas duas décadas. Trabalhos clássicos enfatizam a necessidade de integrar práticas de segurança ao longo de todo o ciclo de vida de desenvolvimento de software (MCGRAW, 2006; HOWARD; LIPNER, 2006). Essas abordagens enfatizam análise de arquitetura, revisão de código e testes de segurança como elementos fundamentais para redução sistemática de vulnerabilidades.

O OWASP Top 10 constitui uma das referências mais amplamente utilizadas para classificação de vulnerabilidades em aplicações web. A edição de 2021 identifica categorias críticas como Broken Access Control, Injection, Security Misconfiguration e Vulnerable and Outdated Components (OWASP FOUNDATION, 2021). Essas categorias refletem padrões recorrentes observados em incidentes reais e servem como guia para programas de segurança de aplicações.

Paralelamente, o framework MITRE ATT&CK fornece taxonomia estruturada de táticas e técnicas utilizadas por adversários em operações de intrusão (MITRE CORPORATION, 2022a). Técnicas como T1190 (Exploit Public‑Facing Application) e T1059 (Command and Scripting Interpreter) frequentemente aparecem em cadeias de ataque direcionadas a aplicações expostas na internet.

Ferramentas SAST realizam análise estática de código-fonte, tipicamente empregando técnicas de análise de fluxo de dados, análise de fluxo de controle e propagação de taint. Do ponto de vista formal, essas ferramentas podem ser modeladas como aproximações conservativas de propriedades de segurança em grafos de fluxo de programa $G = (V, E)$, onde $V$ representa instruções e $E$ representa dependências de controle ou dados.

Essa abordagem produz, em geral, análise sobre‑aproximada, o que implica possibilidade de falsos positivos. Entretanto, permite detectar vulnerabilidades antes da execução do software, contribuindo para identificação precoce de falhas de segurança (SCALES; BROWN, 2018).

Ferramentas DAST operam sob perspectiva de caixa‑preta, interagindo com aplicações em execução por meio de requisições HTTP. Nesse caso, a detecção de vulnerabilidades depende da exploração do espaço de entradas possíveis. Formalmente, esse processo pode ser interpretado como amostragem estocástica sobre o domínio de entradas $X$, buscando identificar valores que violem propriedades de segurança do sistema.

A análise de composição de software (SCA) concentra‑se na identificação de dependências vulneráveis em bibliotecas de terceiros. Esse processo utiliza bases de dados como a National Vulnerability Database (NVD), mantida pelo National Institute of Standards and Technology (NIST, 2022).

Para priorização de vulnerabilidades, o Common Vulnerability Scoring System (CVSS) fornece métrica padronizada que combina fatores de explorabilidade e impacto (MELL; SCARFONE; ROMANOSKY, 2019). Entretanto, diversos estudos indicam que a severidade CVSS nem sempre correlaciona diretamente com probabilidade real de exploração em ambientes operacionais (ALLEN; BARNUM; GATES, 2020).

Nesse contexto, abordagens probabilísticas de priorização começaram a emergir na literatura e na prática industrial, buscando estimar a probabilidade empírica de exploração de vulnerabilidades conhecidas. Tais modelos podem ser integrados a fatores contextuais de exposição, como acessibilidade de serviços e criticidade de ativos.

  1. Modelo de Ameaças e Formalização do Problema

Consideramos um adversário probabilístico $\mathcal{A}$ com as seguintes capacidades:

Definimos o risco associado a uma vulnerabilidade $v$ como:

$$ R(v) = P(E_v) \cdot I(v) $$

onde $P(E_v)$ representa a probabilidade de exploração da vulnerabilidade e $I(v)$ representa o impacto potencial decorrente de sua exploração.

Modelamos a probabilidade de exploração como combinação ponderada de métricas conhecidas:

$$ P(E_v) = \alpha \cdot f_{CVSS}(v) + \beta \cdot f_{EP}(v) + \gamma \cdot E_x(v) $$

onde:

O impacto é modelado como:

$$ I(v) = w_C \cdot C(v) + w_I \cdot I_n(v) + w_A \cdot A(v) $$

onde:

Os pesos $w_C$, $w_I$ e $w_A$ refletem prioridades organizacionais e satisfazem a restrição:

$$ w_C + w_I + w_A = 1 $$

O problema de priorização consiste em selecionar subconjunto $S$ de vulnerabilidades a serem corrigidas de modo a minimizar o risco residual:

$$ \min_{S \subseteq V} \sum_{v \in V \setminus S} R(v) $$

sujeito à restrição orçamentária:

$$ \sum_{v \in S} c(v) \leq B $$

onde $c(v)$ representa custo de remediação da vulnerabilidade e $B$ representa orçamento disponível.

Essa formulação é equivalente ao problema clássico da mochila 0‑1, conhecido por ser NP‑difícil. Portanto, abordagens heurísticas ou algoritmos aproximados tornam‑se necessários para aplicação prática em ambientes com grande volume de vulnerabilidades.

  1. Metodologia Proposta

A metodologia proposta estrutura a integração de ferramentas de segurança em cinco fases principais.

Primeiramente, realiza‑se modelagem de ameaças utilizando a metodologia STRIDE (SHOSTACK, 2014). Cada componente da arquitetura é analisado quanto a possíveis ameaças de spoofing, tampering, repudiation, information disclosure, denial of service e elevation of privilege. Em seguida, essas ameaças são mapeadas para técnicas correspondentes no framework MITRE ATT&CK.

Na segunda fase, ferramentas SAST e SCA são integradas diretamente ao estágio de commit do pipeline de integração contínua. Vulnerabilidades com risco estimado $R(v)$ superior a um limiar $\tau$ impedem a aprovação automática de merge requests.

A terceira fase consiste na execução de testes dinâmicos (DAST) e testes automatizados de API em ambientes de staging. Essa etapa permite identificar vulnerabilidades dependentes de configuração ou comportamento em tempo de execução.

Na quarta fase, um agregador de resultados correlaciona achados provenientes de múltiplas ferramentas e calcula dinamicamente o valor de $R(v)$ para cada vulnerabilidade identificada.

Por fim, a quinta fase incorpora mecanismos de proteção em tempo de execução, incluindo:

Mecanismo Função principal
WAF Filtragem de tráfego malicioso em aplicações web
RASP Instrumentação de proteção diretamente na aplicação
Falco Detecção comportamental em ambientes de contêiner

Essa abordagem busca reduzir o intervalo entre detecção e mitigação de vulnerabilidades, aumentando a resiliência operacional.

  1. Implementação

A implementação experimental foi realizada utilizando pipeline GitLab CI estruturado nos estágios: build, test, sast, sca, dast e deploy.

Configuração simplificada de análise SAST utilizando Semgrep:

semgrep:
  image: returntocorp/semgrep
  script:
    - semgrep --config=auto .

Análise de vulnerabilidades em imagens de contêiner com Trivy:

trivy image myapp:latest

Regra de detecção comportamental em Falco para identificar execução de shell dentro de contêiner:

- rule: Shell spawned in container
  condition: container and shell_procs
  output: Shell execution detected in container
  priority: WARNING

Para proteção de aplicações web foi empregado ModSecurity com OWASP Core Rule Set, amplamente utilizado para mitigação de ataques como SQL Injection e Cross‑Site Scripting.

  1. Avaliação Experimental

O ambiente experimental consistiu em 12 microsserviços implementados em Java, Node.js e Python, totalizando aproximadamente 3,4 milhões de linhas de código.

Os resultados obtidos são apresentados na tabela a seguir.

Métrica Antes da metodologia Após a metodologia
Vulnerabilidades identificadas 842 842
Vulnerabilidades críticas 113 113
MTTR médio 21 dias 8 dias
Taxa de detecção precoce 32% 79%
Falsos positivos 18% 7%

A correlação baseada em risco permitiu reduzir significativamente o volume de alertas priorizados para correção imediata. Vulnerabilidades com alta exposição operacional receberam prioridade superior mesmo quando apresentavam pontuação CVSS intermediária.

A complexidade computacional do cálculo de risco é $O(n)$ para $n$ vulnerabilidades, assumindo acesso pré‑computado às métricas de severidade.

  1. Estudo de Caso

Para ilustrar o funcionamento da abordagem proposta, analisamos um cenário envolvendo vulnerabilidade SQL Injection (CWE‑89) (MITRE CORPORATION, 2022b).

Um vetor de ataque simples pode ser representado pela seguinte entrada:

' OR 1=1--

A exploração permitiu acesso não autorizado ao banco de dados da aplicação. Durante a análise subsequente, identificou‑se também vulnerabilidade de Server‑Side Request Forgery (SSRF) (CWE‑918) que permitia acesso ao serviço de metadata da infraestrutura em nuvem:

http://169.254.169.254/latest/meta-data/iam/security-credentials/

Esse tipo de vulnerabilidade pode permitir obtenção de credenciais temporárias associadas a perfis de instância em ambientes de nuvem.

Durante os testes, o WAF baseado em ModSecurity bloqueou diversos padrões conhecidos de SQL Injection, enquanto Falco detectou tentativas anômalas de acesso ao endpoint de metadata a partir de contêineres de aplicação.

  1. Discussão

Os resultados experimentais indicam que a priorização baseada exclusivamente em severidade CVSS apresenta limitações significativas. Vulnerabilidades com pontuação moderada podem representar risco operacional elevado quando associadas a serviços expostos ou ativos críticos.

A integração de múltiplas fontes de informação — incluindo métricas de severidade, contexto arquitetural e probabilidade histórica de exploração — permite tomada de decisão mais alinhada ao risco real.

Outro fator relevante é o impacto organizacional da integração DevSecOps. A automação de verificações de segurança diretamente nos pipelines de desenvolvimento reduz fricção entre equipes de segurança e desenvolvimento, promovendo correções mais rápidas e consistentes.

Entretanto, algumas limitações permanecem. A eficácia de ferramentas SAST depende fortemente da qualidade das regras utilizadas e da capacidade de análise interprocedural. Da mesma forma, ferramentas DAST podem apresentar cobertura limitada em aplicações complexas com autenticação multifator ou fluxos de navegação sofisticados.

  1. Conclusão

Este trabalho apresentou uma abordagem formal de priorização de vulnerabilidades em pipelines DevSecOps baseada em modelagem de risco orientada a ameaças. Demonstramos que a combinação de métricas quantitativas, modelagem adversarial e mecanismos de proteção em tempo de execução permite reduzir significativamente o tempo médio de remediação e melhorar a eficiência operacional de programas de segurança de aplicações.

A formalização do problema como uma variante do problema da mochila sob restrições orçamentárias explicita o trade‑off entre custo de remediação e redução de risco residual, fornecendo base analítica para decisões de segurança.

Como direções futuras, destacamos a integração com Software Bill of Materials (SBOM) para rastreamento sistemático de dependências e a aplicação de grafos de propriedades de código (Code Property Graphs) para análise mais profunda de fluxos de dados e controle em grandes bases de código.

References

ALLEN, Julia; BARNUM, Sean; GATES, Carrie. Measuring vulnerability exploitability. Carnegie Mellon University, 2020. Disponível em: https://insights.sei.cmu.edu/blog/measuring-vulnerability-exploitability/. Acesso em: 12 jun. 2022.

BASS, Len; CLEMENTS, Paul; KAZMAN, Rick. Software architecture in practice. 3. ed. Boston: Addison‑Wesley, 2013. Disponível em: https://www.informit.com/store/software-architecture-in-practice-9780321815736. Acesso em: 10 maio 2022.

CISA. SolarWinds supply chain compromise. 2021. Disponível em: https://www.cisa.gov/supply-chain-compromise. Acesso em: 15 maio 2022.

ENISA. ENISA threat landscape 2021. 2021. Disponível em: https://www.enisa.europa.eu/publications/enisa-threat-landscape-2021. Acesso em: 10 maio 2022.

FIRST. Common Vulnerability Scoring System v3.1 specification document. 2019. Disponível em: https://www.first.org/cvss/specification-document. Acesso em: 15 maio 2022.

FIRST. Exploit Prediction Scoring System (EPSS). 2022. Disponível em: https://www.first.org/epss/. Acesso em: 10 jun. 2022.

HOWARD, Michael; LIPNER, Steve. The security development lifecycle. Redmond: Microsoft Press, 2006. Disponível em: https://www.microsoftpressstore.com/store/security-development-lifecycle-9780735622142. Acesso em: 12 maio 2022.

MCGRAW, Gary. Software security: building security in. Boston: Addison‑Wesley, 2006. Disponível em: https://www.informit.com/store/software-security-building-security-in-9780321356703. Acesso em: 12 maio 2022.

MELL, Peter; SCARFONE, Karen; ROMANOSKY, Sasha. A complete guide to the common vulnerability scoring system version 3.1. FIRST, 2019. Disponível em: https://www.first.org/cvss/. Acesso em: 20 maio 2022.

MITRE CORPORATION. MITRE ATT&CK framework. 2022a. Disponível em: https://attack.mitre.org. Acesso em: 10 jun. 2022.

MITRE CORPORATION. CWE‑89: SQL injection. 2022b. Disponível em: https://cwe.mitre.org/data/definitions/89.html. Acesso em: 10 jun. 2022.

MITRE CORPORATION. CWE‑918: Server‑Side Request Forgery. 2022c. Disponível em: https://cwe.mitre.org/data/definitions/918.html. Acesso em: 10 jun. 2022.

MYRBORG, Jonas. DevSecOps: integrating security into DevOps. IEEE Software, 2019. Disponível em: https://ieeexplore.ieee.org/document/8703325. Acesso em: 10 maio 2022.

NIST. National Vulnerability Database. 2022. Disponível em: https://nvd.nist.gov. Acesso em: 12 jun. 2022.

NIST. Zero Trust Architecture – NIST SP 800‑207. 2020. Disponível em: https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-207.pdf. Acesso em: 15 maio 2022.

NTIA. The minimum elements for a software bill of materials (SBOM). 2021. Disponível em: https://www.ntia.gov/report/2021/minimum-elements-software-bill-materials-sbom. Acesso em: 15 maio 2022.

OWASP FOUNDATION. OWASP Top 10: 2021. 2021. Disponível em: https://owasp.org/Top10/. Acesso em: 20 maio 2022.

OWASP FOUNDATION. OWASP Zed Attack Proxy project. 2022. Disponível em: https://www.zaproxy.org. Acesso em: 10 jun. 2022.

AQUA SECURITY. Trivy vulnerability scanner. 2022. Disponível em: https://aquasecurity.github.io/trivy. Acesso em: 10 jun. 2022.

SYSDIG. Falco runtime security. 2022. Disponível em: https://falco.org. Acesso em: 10 jun. 2022.

OWASP FOUNDATION. ModSecurity core rule set project. 2022. Disponível em: https://coreruleset.org. Acesso em: 12 jun. 2022.

SNYK. State of open source security report. 2022. Disponível em: https://snyk.io/reports/open-source-security. Acesso em: 10 jun. 2022.

VERIZON. 2022 data breach investigations report. 2022. Disponível em: https://www.verizon.com/business/resources/reports/dbir/. Acesso em: 12 jun. 2022.

SHOSTACK, Adam. Threat modeling: designing for security. Indianapolis: Wiley, 2014. Disponível em: https://www.wiley.com/en-us/Threat+Modeling%3A+Designing+for+Security-p-9781118809990. Acesso em: 10 maio 2022.

SCALES, Daniel; BROWN, Chris. Static analysis for secure software development. IEEE Security & Privacy, 2018. Disponível em: https://ieeexplore.ieee.org/document/8418617. Acesso em: 10 maio 2022.

WILLIAMS, Laurie; WICHERS, Brian. Building security in maturity model (BSIMM). 2010. Disponível em: https://www.bsimm.com. Acesso em: 12 maio 2022.