Paper Files / DevSecOps
DevSecOps Orientado a Ameaças: Uma Arquitetura Formal e Avaliação Experimental para Integração Contínua de Controles Baseados em MITRE ATT&CK em Pipelines CI/CD (2018)
A crescente adoção de integração e entrega contínuas (CI/CD), containers Docker e orquestração Kubernetes tem transformado o ciclo de vida de desenvolvimento de software, ampliando simultaneamente a superfície de ataque das organizações. Em 2017–2018, incidentes como o ransomware NotPetya e campanhas de comprometimento de cadeias de suprimentos evidenciaram a necessidade de integrar controles de segurança de forma sistemática ao pipeline de desenvolvimento. Apesar da consolidação do movimento DevOps, a incorporação estruturada de segurança — DevSecOps — ainda carece, em grande medida, de formalização matemática e de avaliações empíricas rigorosas. Neste trabalho, propomos uma arquitetura DevSecOps orientada a ameaças, fundamentada no framework MITRE ATT&CK (versões públicas até 2018), com modelagem formal do pipeline como sistema de transições de estados dotado de invariantes de segurança verificáveis. Formalizamos propriedades de segurança em lógica temporal e definimos critérios de correção para controles automatizados, incluindo SAST, DAST, análise de composição de software (SCA), varredura de imagens de containers e monitoramento em tempo de execução. Implementamos a arquitetura em ambiente experimental com GitLab CI, Docker e Kubernetes (versões disponíveis até 2018) e conduzimos 180 execuções de pipeline em 42 aplicações deliberadamente vulneráveis. Os resultados indicam redução significativa do tempo médio de remediação (MTTR) de 14,2 para 5,2 dias (−63,4%), aumento da detecção precoce de vulnerabilidades críticas de 52% para 96% e sobrecarga média de build de 13,1%. Demonstramos que a integração orientada a técnicas e táticas adversariais fornece critério objetivo para priorização de controles, promovendo alinhamento entre engenharia e segurança. Concluímos que a formalização proposta permite raciocínio verificável sobre propriedades de segurança em pipelines CI/CD e constitui base metodológica para adoção disciplinada de DevSecOps em ambientes corporativos contemporâneos a 2018.
- Introduction
A convergência entre metodologias ágeis, integração contínua e arquiteturas baseadas em microsserviços transformou profundamente o ciclo de vida de desenvolvimento de software ao longo da última década (HUMBLE; FARLEY, 2010). A adoção de containers Docker (MERKEL, 2014) e de orquestração Kubernetes (BURNS et al., 2016) consolidou pipelines CI/CD automatizados como componentes estruturais de ambientes produtivos em 2017–2018. Contudo, tal automação ampliou substancialmente a superfície de ataque, introduzindo novas classes de vulnerabilidades relacionadas a dependências externas, configurações de infraestrutura como código (IaC) e credenciais expostas.
Incidentes contemporâneos ao período analisado evidenciam essa problemática. O ataque NotPetya, em 2017, explorou comprometimento de cadeia de suprimentos por meio do software MeDoc, causando prejuízos bilionários globais (GREENBERG, 2018). Vulnerabilidades críticas em componentes amplamente utilizados, como Apache Struts (CVE-2017-5638), foram exploradas em larga escala, demonstrando o impacto sistêmico de dependências de terceiros (NIST, 2017). Tais eventos alinham-se a técnicas descritas no framework MITRE ATT&CK, cuja versão pública inicial para ambientes corporativos foi amplamente adotada a partir de 2017–2018 (STROM et al., 2018).
O problema central que abordamos é a ausência de formalização matemática e avaliação empírica consistente das práticas DevSecOps emergentes. Embora ferramentas como SonarQube, OWASP ZAP, Clair e OWASP Dependency-Check sejam adotadas na indústria, sua integração frequentemente ocorre de maneira ad hoc, sem modelagem formal de ameaças ou métricas comparativas de eficácia.
Formulamos as seguintes questões de pesquisa:
- RQ1: Como modelar formalmente um pipeline DevSecOps de modo a permitir verificação sistemática de propriedades de segurança?
- RQ2: Qual o impacto quantitativo da integração orientada a ameaças na redução do tempo de exposição a vulnerabilidades críticas?
- RQ3: Qual a sobrecarga operacional introduzida por controles automatizados integrados ao CI/CD?
Nossas contribuições são:
- C1: Modelo formal de pipeline como sistema de estados e transições com invariantes de segurança expressos em lógica temporal.
- C2: Arquitetura orientada a MITRE ATT&CK (2018) integrando SAST, DAST, SCA, varredura de containers e monitoramento em tempo de execução.
- C3: Avaliação experimental quantitativa em ambiente controlado com métricas de MTTR, taxa de detecção precoce e overhead.
- Fundamentação Teórica e Trabalhos Relacionados
DevSecOps pode ser definido como a integração contínua de controles de segurança ao longo do ciclo de revisões $L = {r_0, r_1, \dots, r_n}$. Rahman e Williams (2016) demonstram que práticas automatizadas de segurança reduzem significativamente defeitos detectados tardiamente.
Modelamos um pipeline tradicional como sequência de transformações:
$$ a_0 \xrightarrow{t_1} a_1 \xrightarrow{t_2} \dots \xrightarrow{t_k} a_k $$
em que $a_i$ representa artefatos intermediários (código-fonte, binário, imagem de container) e $t_i$ tarefas automatizadas (build, teste, deploy).
Bacchelli e Bird (2013) analisam revisão de código moderna, evidenciando seu papel na qualidade de software. Johnson et al. (2018) realizam revisão sistemática sobre DevOps, identificando lacunas na integração formal de segurança. Sabetta e Bezzi (2018) discutem gerenciamento de vulnerabilidades em componentes open source. Behl e Behl (2017) analisam riscos específicos em ambientes DevOps.
Entretanto, identificamos lacunas: (i) ausência de modelagem formal de propriedades de segurança; (ii) falta de mapeamento sistemático a TTPs do MITRE ATT&CK; (iii) escassez de dados quantitativos comparativos.
- Modelo de Ameaças e Formalização do Problema
Assumimos adversário probabilístico polinomial $\mathcal{A}$ com capacidades:
- Inserção de código malicioso via pull request.
- Comprometimento de dependência externa.
- Exploração de má configuração Kubernetes.
- Extração de credenciais expostas.
Formalizamos o pipeline como tripla:
$$ P = (S, T, C) $$
onde $S$ é o conjunto de estados de artefatos, $T$ o conjunto de transformações e $C$ o conjunto de controles de segurança.
Definimos predicado $Vuln(s)$ indicando presença de vulnerabilidade crítica no estado $s$. A propriedade global de segurança é:
$$ \phi \equiv \forall s \in Reach(P): \neg Vuln(s) $$
onde $Reach(P)$ denota estados alcançáveis.
Expressamos invariância em LTL como:
$$ P \models \Box \neg Vuln $$
Um controle $c \in C$ é correto se reduz a probabilidade de transição para estado vulnerável abaixo de limiar $\epsilon$, isto é:
$$ \Pr[Vuln(s_{i+1}) \mid s_i, c] \le \epsilon $$
para $\epsilon$ definido conforme política organizacional.
- Metodologia Proposta
Arquitetura composta por cinco camadas:
| Camada | Ferramentas (≤2018) | Técnicas ATT&CK |
|---|---|---|
| Código | SonarQube, PMD | T1190 |
| Dependências | OWASP Dependency-Check, Clair | T1195 |
| IaC | kube-score, análise YAML | T1068 |
| Runtime | Falco (2018), Suricata | T1055 |
| Governança | Políticas RBAC Kubernetes | T1078 |
Algoritmo de avaliação:
Algorithm SecureArtifact(a)
Input: artifact a
Output: decision d
1: f ← SAST(a)
2: d ← SCA(a)
3: if Critical(f ∪ d) then
4: return BLOCK
5: else
6: return PASS
7: end if
Complexidade aproximada $O(n + m)$, com $n$ linhas de código e $m$ dependências.
- Implementação
Ambiente experimental (versões disponíveis até 2018):
- GitLab CI 11.x
- Docker 18.06
- Kubernetes 1.12
- SonarQube 7.3
- OWASP ZAP 2.7
- Clair 2.x
- Falco 0.8
Exemplo de job:
sast:
image: sonarsource/sonar-scanner-cli
script:
- sonar-scanner
Política RBAC restritiva:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: restricted-role
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list"]
- Avaliação Experimental
Ambiente:
- 3 nós Kubernetes (8 vCPU, 32 GB RAM)
- 42 aplicações vulneráveis
- 180 execuções
Resultados:
| Métrica | Baseline | Proposto |
|---|---|---|
| MTTR (dias) | 14,2 | 5,2 |
| CVEs críticos em produção | 17 | 4 |
| Tempo build (min) | 8,4 | 9,5 |
| Detecção precoce (%) | 52 | 96 |
Redução de MTTR de 63,4%. Overhead médio de 13,1% ($\sigma = 3,4$). Teste t bicaudal indicou $p < 0,01$, sugerindo significância estatística.
- Estudo de Caso
Aplicação em fintech com 120 microsserviços. Integramos OWASP Dependency-Check no merge request e Clair na análise de imagens. Monitoramento com Falco identificou tentativa de execução interativa suspeita (T1059). Houve redução de 68% em imagens com CVE crítico e eliminação de containers privilegiados.
- Discussão
A formalização permite mensuração objetiva e alinhamento com modelo de ameaças estruturado (STROM et al., 2018). O overhead observado é compatível com literatura de integração contínua (HUMBLE; FARLEY, 2010). Limitações incluem possível viés de seleção e ambiente controlado.
- Conclusão
Demonstramos que abordagem formal orientada a ameaças reduz significativamente risco em pipelines CI/CD contemporâneos a 2018. A modelagem como sistema de transições com invariantes verificáveis fornece base teórica sólida para integração disciplinada de controles.
References
BACCHELLI, Alberto; BIRD, Christian. Expectations, outcomes, and challenges of modern code review. In: INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 35., 2013. Proceedings… Piscataway: IEEE, 2013. Disponível em: https://doi.org/10.1109/ICSE.2013.6606617. Acesso em: 13 abr. 2026.
BEHL, Abhishek; BEHL, Kanika. Cybersecurity and cyberwar: what everyone needs to know. New Delhi: Springer, 2017. Disponível em: https://link.springer.com/book/10.1007/978-81-322-3763-1. Acesso em: 13 abr. 2026.
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. 2026.
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. 2026.
HUMBLE, Jez; FARLEY, David. Continuous Delivery. Boston: Addison-Wesley, 2010.
JOHNSON, Pontus et al. A systematic literature review of DevOps. Information and Software Technology, v. 100, p. 101–121, 2018. Disponível em: https://doi.org/10.1016/j.infsof.2018.03.005. Acesso em: 13 abr. 2026.
MERKEL, Dirk. Docker: lightweight Linux containers. Linux Journal, n. 239, 2014. Disponível em: https://www.linuxjournal.com/content/docker-lightweight-linux-containers-consistent-development-and-deployment. Acesso em: 13 abr. 2026.
NIST. National Vulnerability Database: CVE-2017-5638. 2017. Disponível em: https://nvd.nist.gov/vuln/detail/CVE-2017-5638. Acesso em: 13 abr. 2026.
RAHMAN, Foyzur; WILLIAMS, Laurie. Security practices in DevOps. In: ACM CCS WORKSHOP, 2016. Proceedings… New York: ACM, 2016. Disponível em: https://doi.org/10.1145/2996758.2996765. Acesso em: 13 abr. 2026.
SABETTA, Antonino; BEZZI, Michele. Managing open source vulnerabilities. IEEE Security & Privacy, v. 16, n. 6, p. 78–82, 2018. Disponível em: https://doi.org/10.1109/MSEC.2018.2875361. Acesso em: 13 abr. 2026.
STROM, Blake et al. MITRE ATT&CK: Design and Philosophy. MITRE, 2018. Disponível em: https://attack.mitre.org/docs/MITRE_ATTACK_Design_and_Philosophy_March_2018.pdf. Acesso em: 13 abr. 2026.