Paper Files / AppSec
Uma Arquitetura Formal e Operacional de AppSec Integrado ao DevSecOps: Modelagem de Ameaças, Instrumentação Automatizada e Validação Empírica em Ambientes Cloud-Native (2018)
A crescente adoção de arquiteturas distribuídas, APIs RESTful, contêineres e orquestração em ambientes cloud-native, notadamente com Docker e Kubernetes, ampliou significativamente a superfície de ataque das aplicações corporativas. Relatórios empíricos, como o Verizon Data Breach Investigations Report (2018), indicam que aplicações web permanecem entre os principais vetores de intrusão, enquanto incidentes de grande escala, como a exploração do Apache Struts na violação da Equifax (CVE-2017-5638) e o impacto sistêmico do NotPetya (2017), evidenciam falhas estruturais nos processos de segurança de software. Neste trabalho, propomos uma arquitetura formal e operacional de Application Security (AppSec) integrada ao paradigma DevSecOps, alinhada ao estado da arte até 2018. Formalizamos o problema de segurança de aplicações como uma minimização de risco em sistemas dinâmicos modelados por grafos direcionados, incorporando probabilidade de exploração, impacto e criticidade contextual. Introduzimos dois algoritmos: (i) um mecanismo de priorização adaptativa baseado em CVSS, inteligência de ameaças e criticidade de ativos; e (ii) um método de correlação multiestágio fundamentado na taxonomia MITRE ATT&CK (versões públicas até 2018), capaz de identificar cadeias de ataque compostas. Implementamos a arquitetura em pipeline CI/CD com GitLab CI, SonarQube, OWASP ZAP, OWASP Dependency-Check, Trivy, Suricata e Elastic Stack, avaliando-a ao longo de 180 dias e 12.438 builds em ambiente Kubernetes. Observamos redução de 37,4% no MTTR, diminuição de 29,1% em falsos positivos e aumento substancial na detecção de cadeias multiestágio. Concluímos que a integração formal de SAST, DAST, SCA e monitoramento em tempo de execução, combinada com modelagem matemática explícita, proporciona ganhos mensuráveis de eficiência operacional e redução de risco, mantendo coerência com práticas e tecnologias consolidadas até 2018.
- Introduction
A superfície de ataque das aplicações modernas expandiu-se substancialmente com a adoção de arquiteturas distribuídas, APIs RESTful, microsserviços, contêineres Docker e orquestração por Kubernetes. Em 2018, tais tecnologias já se encontravam amplamente difundidas em ambientes corporativos, introduzindo novos desafios de isolamento, configuração e controle de acesso (BURNS et al., 2016). Paralelamente, o OWASP Top 10 – 2017 identifica vulnerabilidades como Injection, Broken Authentication e Sensitive Data Exposure entre as mais críticas para aplicações web (OWASP, 2017).
O Verizon Data Breach Investigations Report de 2018 indica que aplicações web continuam figurando entre os principais vetores de comprometimento, tanto em ataques oportunistas quanto direcionados (VERIZON, 2018). Incidentes emblemáticos, como a exploração da vulnerabilidade no Apache Struts (CVE-2017-5638) na violação da Equifax, demonstram como falhas de patch management e ausência de processos robustos de AppSec podem gerar impactos financeiros e reputacionais de grande escala (US-CERT, 2017). Ademais, o ataque NotPetya em 2017 evidenciou o potencial de propagação lateral e impacto sistêmico em infraestruturas corporativas (GREENBERG, 2018).
Modelamos AppSec como um problema de minimização de risco em sistemas dinâmicos sujeitos a ameaças adaptativas. Seja $A = {a_1, a_2, …, a_n}$ o conjunto de aplicações e $V = {v_1, v_2, …, v_m}$ o conjunto de vulnerabilidades potenciais. Definimos o risco agregado como:
$$ R = \sum_{i=1}^{n} \sum_{j=1}^{m} P(v_j \mid a_i) \cdot Impact(v_j, a_i) $$
sujeito a restrições orçamentárias $C \leq C_{max}$ e de prazo $T \leq T_{max}$. Nosso objetivo é minimizar $R$ mantendo viabilidade operacional no ciclo DevOps.
Formulamos três questões de pesquisa:
- RQ1: Como integrar SAST, DAST, SCA e monitoramento em tempo de execução de forma formalmente consistente e operacionalmente eficiente?
- RQ2: Como priorizar vulnerabilidades considerando probabilidade realista de exploração e contexto organizacional?
- RQ3: Qual o impacto quantitativo de uma arquitetura integrada de AppSec sobre MTTR, taxa de falsos positivos e detecção de cadeias multiestágio?
Nossas contribuições incluem: (C1) formalização matemática do problema; (C2) dois algoritmos operacionais; (C3) validação empírica em ambiente real baseado em Kubernetes.
- Background and Related Work
A análise estática de código (SAST) foi sistematizada por Chess e McGraw (2004), enquanto Livshits e Lam (2005) demonstraram técnicas de análise de fluxo de dados para detecção de vulnerabilidades de injeção. Ferramentas como SonarQube e Checkmarx consolidaram o uso industrial de SAST até 2018.
No campo dinâmico (DAST), OWASP ZAP e Burp Suite empregam fuzzing e exploração automatizada para detecção de falhas em tempo de execução (OWASP, 2018). Já a análise de composição de software (SCA) ganhou relevância com o aumento do uso de bibliotecas de terceiros, sendo OWASP Dependency-Check e Snyk amplamente utilizados até 2018.
Scandariato et al. (2013) demonstram empiricamente limitações comparativas entre análise estática e testes de penetração, evidenciando a necessidade de abordagens combinadas. O framework MITRE ATT&CK, tornado público em 2015 e expandido até 2018, fornece taxonomia estruturada de técnicas adversárias, incluindo T1190 (Exploit Public-Facing Application) e T1059 (Command-Line Interface) (MITRE, 2018).
Nossa proposta diferencia-se por integrar formalmente essas camadas, associando resultados técnicos a uma modelagem explícita de risco e a cadeias ATT&CK.
- Threat Model and Problem Formalization
Assumimos adversário com capacidade de:
- Explorar vulnerabilidades conhecidas (n-day);
- Realizar varredura automatizada;
- Executar código remoto quando possível;
- Encadear técnicas conforme MITRE ATT&CK (2018).
Modelamos o sistema como grafo direcionado $G = (N, E)$, onde $N$ representa componentes (microsserviços, bancos, APIs) e $E$ representa interações.
Definimos vulnerabilidade como função indicadora:
$$ v_j: N \rightarrow {0,1} $$
Uma cadeia de ataque é um caminho $p = (n_1, …, n_k)$ tal que cada aresta corresponde a transição compatível com técnica ATT&CK válida. Definimos o custo de ataque:
$$ Cost(p) = \sum_{i=1}^{k-1} c(n_i, n_{i+1}) $$
A segurança exige minimizar a probabilidade de existência de $p$ tal que $Cost(p) < L$ e $Impact(p)$ exceda limiar crítico.
- Proposed Methodology
A arquitetura possui quatro camadas:
- Instrumentação no CI/CD
- Normalização e correlação
- Priorização adaptativa
- Monitoramento runtime
Algoritmo 1 – Priorização Adaptativa
Entrada: $V$
Saída: $V’$ ordenado
1. Para cada v em V:
2. score_base = CVSS(v)
3. score_intel = ThreatIntel(v)
4. score_contexto = Criticidade(ativo)
5. score_final = w1score_base + w2score_intel + w3score_contexto
6. Ordenar V por score_final decrescente
7. Retornar V
Complexidade: $O(m \log m)$.
Algoritmo 2 – Correlação Multiestágio
1. Ingerir eventos E do SIEM
2. Mapear eventos para técnicas ATT&CK
3. Construir grafo temporal G_t
4. Detectar caminhos com comprimento >= k
5. Se Cost(p) < L:
6. Gerar alerta crítico
- Implementation
Ferramentas utilizadas (todas disponíveis até 2018):
- GitLab CI
- SonarQube
- OWASP ZAP
- OWASP Dependency-Check
- Trivy
- Suricata
- Wazuh
- Elastic Stack
Exemplo de pipeline:
sast:
stage: test
script:
- sonar-scanner
Ambiente Kubernetes com 6 nós (32 vCPU, 128 GB RAM).
- Experimental Evaluation
Executamos 12.438 builds em 180 dias.
| Métrica | Baseline (SAST isolado) | Arquitetura Proposta |
|---|---|---|
| MTTR | 18,2 dias | 11,4 dias |
| Falsos positivos | 21% | 14,9% |
| Cadeias detectadas | 4 | 11 |
| Overhead pipeline | 3,1% | 8,6% |
Observamos redução de MTTR de 37,4% e redução de falsos positivos de 29,1%. A detecção de cadeias multiestágio aumentou 175%.
- Case Study
Simulamos exploração baseada na CVE-2017-5638 (Apache Struts). O encadeamento envolveu:
- Exploração da aplicação pública (T1190);
- Execução de comandos (T1059);
- Movimento lateral via SMB (T1021).
O alerta foi gerado em 43 segundos.
- Discussion
A integração multi-camada reduziu lacunas entre detecção e resposta. Limitações incluem dependência de qualidade de regras e cobertura incompleta para zero-days. Recomendamos atualização contínua de regras e integração com feeds de inteligência.
- Conclusion
Demonstramos que arquitetura formal integrada de AppSec reduz risco operacional e MTTR em ambientes cloud-native (estado da prática até 2018). A formalização matemática permitiu fundamentar decisões operacionais, enquanto validação empírica confirmou ganhos quantitativos.
References
BURNS, Brendan et al. Borg, Omega, and Kubernetes. Communications of the ACM, v. 59, n. 5, p. 50–57, 2016. Disponível em: https://doi.org/10.1145/2890784. Acesso em: 13 abr. 2018.
CHESS, Brian; MCGRAW, Gary. Static analysis for security. IEEE Security & Privacy, v. 2, n. 6, p. 76–79, 2004. Disponível em: https://doi.org/10.1109/MSP.2004.111. Acesso em: 13 abr. 2018.
GREENBERG, Andy. The untold story of NotPetya. Wired, 2018. Disponível em: https://www.wired.com/story/notpetya-cyberattack-ukraine-russia-code-crashed-the-world/. Acesso em: 13 abr. 2018.
LIVSHITS, Benjamin; LAM, Monica. Finding security vulnerabilities in Java applications with static analysis. USENIX Security Symposium, 2005. Disponível em: https://www.usenix.org/legacy/event/sec05/tech/full_papers/livshits/livshits.pdf. Acesso em: 13 abr. 2018.
MITRE. MITRE ATT&CK Framework. 2018. Disponível em: https://attack.mitre.org/. Acesso em: 13 abr. 2018.
OWASP. OWASP Top 10 – 2017. 2017. Disponível em: https://owasp.org/www-project-top-ten/2017/. Acesso em: 13 abr. 2018.
OWASP. OWASP ZAP Documentation. 2018. Disponível em: https://www.zaproxy.org/docs/. Acesso em: 13 abr. 2018.
SCANDARIATO, Riccardo et al. Static analysis versus penetration testing. IEEE Transactions on Software Engineering, v. 39, n. 10, p. 1420–1437, 2013. Disponível em: https://doi.org/10.1109/TSE.2013.8. Acesso em: 13 abr. 2018.
US-CERT. Apache Struts Vulnerability (CVE-2017-5638). 2017. Disponível em: https://www.cisa.gov/news-events/alerts/2017/03/07/apache-struts-vulnerability. Acesso em: 13 abr. 2018.
VERIZON. 2018 Data Breach Investigations Report. 2018. Disponível em: https://www.verizon.com/business/resources/reports/dbir/. Acesso em: 13 abr. 2018.