Home Comunidade Eventos YouTube Networks Desafios // produtos Academy News CTI | CVE Contato

07 - Objetos, Relacionamentos e Observáveis STIX

video explicativo
Video explicativoEspaco reservado para o video desta anotação — adicione video: https://youtu.be/... no frontmatter da nota.

Objetos, Relacionamentos e Observáveis STIX

Nota do capítulo 22 (Compartilhamento e Colaboração).
Cataloga de forma prática os objetos STIX 2.1 (SDOs e SCOs), os relacionamentos canônicos entre eles e como modelar uma intrusão completa como grafo navegável.
Complementa as notas 05 e 06 deste capítulo, que tratam do padrão STIX e do transporte TAXII em profundidade.

1. Contexto e Posicionamento na Biblioteca

O STIX 2.1 não é apenas um formato de serialização de indicadores; é uma linguagem para descrever o mundo das ameaças como grafo. Cada objeto representa uma entidade ou evento, e cada relacionamento conecta entidades em uma semântica previsível. Quem entende o catálogo de objetos e as regras de relacionamento consegue ler um bundle de terceiro e reconstruir a história da intrusão, e consegue escrever bundles que plataformas como MISP e OpenCTI interpretam sem perda de sentido.

Esta nota ocupa o papel de catálogo de referência rápida dentro da biblioteca. As notas 05 e 06 do capítulo 22 explicam o padrão e o transporte; aqui o foco é o vocabulário: quais objetos existem, quando usar cada um, como encadear relacionamentos canônicos e como montar um grafo de intrusão que sobreviva à importação por outra plataforma. O exemplo conduzido nas seções finais usa uma intrusão fictícia de ransomware para demonstrar a modelagem ponta a ponta.

2. Objetos STIX Domain Objects (SDOs)

Os SDOs representam entidades e eventos do domínio de ameaças. A tabela abaixo resume os SDOs de uso mais frequente, com o papel de cada um e um exemplo típico de conteúdo.

SDO Papel Exemplo de conteúdo
attack-pattern Uma TTP no vocabulário ATT&CK ou própria Execução de PowerShell com linha de comando ofuscada
malware Uma família ou amostra de malware Loader genérico, variante de stealer
tool Software legítimo abusado pelo adversário PsExec, Mimikatz como ferramenta
threat-actor O indivíduo ou grupo como entidade de atribuição Grupo financeiro identificado por sentença de Justiça
intrusion-set Atividade agrupada com propósito comum, sem julgar quem opera Cluster de intrusões com infraestrutura compartilhada
campaign Onda específica e datada de atividade Campanha de phishing de um mês específico
indicator Padrão de detecção com janela de validade Domínio de C2 com valid_until definido
identity Organização ou pessoa na cadeia de proveniência O ISAC que reportou, o setor da vítima
report Documento que agrega objetos com narrativa Relatório tático da campanha em formato STIX
vulnerability Fragilidade explorável, normalmente ligada a CVE CVE explorada para acesso inicial
relationship Conexão dirigida entre dois objetos indicator indicates malware
sighting Observação de um indicador ou objeto no mundo real Visto no SIEM da organização em data X
note, opinion Anotação e avaliação sobre objetos Discordância sobre atribuição
language-content Conteúdo localizado (menos comum) Tradução do resumo de um report
infrastructure Infraestrutura adversária como entidade própria Cluster de VPS usado para C2
location Localização geográfica associada País do hosting

Duas distinções exigem disciplina na hora de modelar. A primeira é entre malware e tool: o mesmo Mimikatz aparece como tool quando o adversário usa a ferramenta de terceiros e como malware quando a própria amostra é o objeto em análise; a escolha afeta como outras plataformas correlacionam. A segunda é entre threat-actor e intrusion-set: attribution tênue deve ser modelada como intrusion-set, e o threat-actor só entra quando a confiança na atribuição suporta o vínculo, prática coerente com a escala de confiança tratada na nota 09 do capítulo 05.

3. Observáveis e SCO (STIX Cyber-observable Objects)

Os SCOs representam fatos técnicos imutáveis: hashes, IPs, domínios, URLs, arquivos, processos, certificados. Diferentemente dos SDOs, os SCOs não possuem ID gerado pelo produtor; recebem ID determinístico derivado de seu conteúdo, o que faz dois produtores gerarem o mesmo ID para o mesmo observável, propriedade fundamental para deduplicação entre plataformas, tema também abordado na nota 10 deste capítulo.

SCO Papel Exemplo
file Arquivo, com hashes e nome SHA-256 do loader
ipv4-addr / ipv6-addr Endereço de rede IP de C2
domain-name Domínio Domínio de lookalike
url URL completa URL de entrega do payload
network-traffic Comunicação de rede com protocolos e portas Sessão HTTPS para o C2
email-addr, email-message Endereço e mensagem completa Cabeçalhos da mensagem de phishing
process Processo em execução powershell.exe com linha de comando
windows-registry-key Chave de registro Run key de persistência
x509-certificate Certificado TLS Certificado autofirmado do C2
directory, artifact, archive-ext Conteúdo binário e empacotamento Payload embutido em ZIP

A prática de mercado é compor SCOs em estrutura: um network-traffic aponta para o ipv4-addr de destino e para o domain-name via SNI; um process aponta para o file do binário executado. Essa composição permite descrever contexto sem inventar SDOs redundantes. Em ambientes que consomem apenas indicadores simples, o SCO aparece embutido no objeto indicator via pattern, em linguagem STIX Patterning, como mostra o exemplo a seguir.

{
  "type": "indicator",
  "spec_version": "2.1",
  "id": "indicator--d4f8...",
  "pattern": "[domain-name:value = 'cdn-updates-login.com']",
  "pattern_type": "stix",
  "valid_from": "2026-05-02T00:00:00Z",
  "valid_until": "2026-08-02T00:00:00Z",
  "labels": ["malicious-activity"],
  "confidence": 85
}

4. Relacionamentos Canônicos

Os relacionamentos carregam a semântica do grafo e são a parte mais descuidada na prática. Usar relationship errado quebra a interpretação do consumidor: um indicator que delivers malware em vez de indicates malware muda o significado da cadeia. A tabela reúne os pares canônicos de uso diário, com fonte, alvo e leitura natural da frase.

Relacionamento Fonte Alvo Leitura
indicates indicator malware, attack-pattern, infrastructure O indicador aponta para a atividade
uses threat-actor, intrusion-set, malware attack-pattern, tool, malware, infrastructure O ator usa a técnica ou ferramenta
targets threat-actor, intrusion-set, campaign identity, location, vulnerability O ator mira o setor ou a fragilidade
delivers malware, threat-actor malware, vulnerability O loader entrega o payload
drops malware, url malware, file A entrega resulta no artefato
exploits malware, threat-actor vulnerability O código explora a CVE
attributed-to intrusion-set threat-actor A atividade é atribuída ao ator
based-on report SDOs e SCOs O relatório fundamenta-se nos objetos
related-to qualquer qualquer Ligação genérica, usar com parcimônia
controls infrastructure malware O servidor controla o implante
beacons-to malware, infrastructure infrastructure O implante comunica com o C2
communicates-with malware infrastructure Ligação ampla de comunicação

Três regras de higiene evitam grafos ilegíveis. Primeira: preferir o relacionamento mais específico disponível; beacons-to comunica mais que communicates-with. Segunda: never usar related-to como atalho quando a semântica real é known; grafos cheios de related-to perdem valor analítico. Terceira: toda atribuição passa por attributed-to a partir de intrusion-set, nunca direto de indicator, porque o indicador demonstra atividade, não autor.

5. Versionamento, Markings e Bundle

Todo SDO carrega created e modified, e a modificação segue versionamento: quando o produtor altera um objeto, mantém o mesmo id e incrementa modified; plataformas conciliam pela dupla id e modified, adotando a versão mais recente. Esse mecanismo é o que permite sincronização bidirecional segura entre TIPs, e ignorá-lo é a causa mais comum de loops de sincronização, armadilha documentada na nota 10 deste capítulo.

Os data markings (TLP como marking-definition) são vinculados aos objetos via object_marking_refs e devem ser respeitados em toda a cadeia: um bundle TLP AMBER não pode ser reexportado publicamente com os markings removidos. O bundle, por fim, é o envelope de transporte: uma lista de objetos que viaja pelo TAXII ou por arquivo. Um bundle bem formado inclui identity do produtor, markings apropriados e todos os objetos citados pelos relacionamentos, evitando referências órfãs que quebram a importação.

6. Modelando uma Intrusão em Grafo

O exemplo seguinte modela, em forma de grafo textual, uma intrusão fictícia de ransomware: campanha de phishing, loader, C2, exploração de CVE para escalação e ativação de criptolocker. A leitura em português de cada aresta facilita a conferência de coerência antes da serialização.

[identity--produtor]      Organização X, produtor da inteligência (TLP AMBER)
[campaign--phish-mai]     Campanha de phishing de maio de 2026
   | targets -> identity (setor financeiro brasileiro)
   | uses   -> attack-pattern (Phishing: Spearphishing Attachment)
   | delivers -> malware (loader LDR-2026)
[malware--ldr-2026]       Loader escrito em .NET
   | drops   -> malware (ransomware CRPT-2026)
   | beacons-to -> infrastructure (cluster C2)
   | exploits -> vulnerability (CVE de escalação local)
[indicator--dom-c2]       domínio cdn-updates-login.com
   | indicates -> malware (loader LDR-2026)
[indicator--hash-loader]  hash SHA-256 do loader
   | indicates -> malware (loader LDR-2026)
[infrastructure--c2]      Cluster de VPS com certificado autofirmado
   | controls -> malware (ransomware CRPT-2026)
[intrusion-set--fin]      Cluster de atividade financeira
   | attributed-to -> threat-actor (confiança moderada)
[campaign--phish-mai]     | attributed-to -> intrusion-set--fin (moderada)
[sighting--siem]          indicator--dom-c2 visto no SIEM em 2026-05-14

O mesmo grafo em bundle STIX serializa cada nó e aresta como objeto; o valor prático aparece na importação por uma plataforma como OpenCTI, que reconstrói a visão visual da intrusão e permite pivoting a partir de qualquer nó. A regra de fechamento é conferir completude: todo relacionamento referencia objetos presentes no mesmo bundle ou já publicados com o mesmo id, e todo objeto carrega marking compatível com o canal de compartilhamento escolhido.

7. Erros Comuns e Pontos de Atenção

Os erros abaixo aparecem com frequência em produtões reais e em feeds públicos, e cada um degrada a confiança do consumidor de forma silenciosa.

  • Publicar indicator sem valid_until, o que faz o indicador viver para sempre nas ferramentas do consumidor e contaminar a telemetria com falsos positivos antigos.
  • Usar threat-actor com atribuição fraca, quando o correto seria intrusion-set, transmitindo certeza que a evidência não sustenta.
  • Confundir malware com tool, duplicando entidades e quebrando a correlação nas plataformas do consumidor.
  • Escrever relacionamentos com direção invertida, como malware indicates indicator, semântica que nenhuma plataforma interpreta.
  • Gerar SCOs com IDs aleatórios em vez de determinísticos, eliminando a deduplicação automática por conteúdo.
  • Remover data markings no reexporto, violação de TLP que expõe o produtor e compromete a participação na comunidade.
  • Criar referências órfãs no bundle, objetos citados por relacionamentos que não foram incluídos, provocando importações parciais silenciosas.

A disciplina coletiva é o que transforma STIX em infraestrutura de confiança: produtor cuidadoso gera consumidor confiante, e consumidor que devolve sightings e opiniões realimenta a qualidade da fonte. Esse circuito de reciprocidade é o mesmo argumento econômico do compartilhamento medido nas notas 01 e 02 do capítulo 22, agora operacionalizado em padrão aberto.

8. Integração com o Restante da Biblioteca

O catálogo desta nota sustenta as práticas de vários capítulos. Na coleta, o capítulo 02 usa SCOs como unidade de normalização no pipeline e no enriquecimento. Na produção, o capítulo 05 materializa atribuição e confiança nos campos confidence e nos relacionamentos attributed-to. No compartilhamento, as notas 05, 06, 08, 09 e 10 deste capítulo formam com esta nota o bloco completo de interoperabilidade STIX, TAXII, MISP e TIPs. No Framework CTH da seção 15, os controles PLT.3 (formatos de inteligência) e PLT.5 (TLP) dependem diretamente do vocabulário aqui consolidado, e a esteira INT.5 usa bundles como carga útil da orquestração end to end.