Capítulo 22 — Inteligência de ameaças e OSINT: modelos de sistema e de dados
Mapa da aula
Aula 22 publicada. Mapa, exemplo, EX064.
flowchart TD
N0["22.1 Núcleo do STIX 2.1"]
N1["22.2 Escolhendo um subconjunto"]
N2["22.3 Confiança e marcações"]
N3["22.4 Validação"]
N4["22.5 Modelo do sistema"]
N5["Nota de prática — Mapeando referências externas"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
N6 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX064"]
Desenho lógico
flowchart LR
N0["22.1 Núcleo do STIX 2.1"]
N1["22.2 Escolhendo um subconjunto"]
N2["22.3 Confiança e marcações"]
N3["22.4 Validação"]
N4["22.5 Modelo do sistema"]
N5["Nota de prática — Mapeando referências externas"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX064"]
[22.1 Núcleo do STIX 2.1]
|
v
[22.2 Escolhendo um subconjunto]
|
v
[22.3 Confiança e marcações]
|
v
[22.4 Validação]
|
v
[22.5 Modelo do sistema]
|
v
[Nota de prática — Mapeando referências externas]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX064]
Objetivos de aprendizagem
Você vai (1) modelar os dados do Lantern com objetos e relacionamentos STIX 2.1; (2) escolher quais objetos STIX suportar; (3) modelar procedência e confiança; (4) validar objetos contra as propriedades obrigatórias.
22.1 Núcleo do STIX 2.1
O STIX 2.1 define objetos de domínio (indicator, malware, threat-actor, campaign, attack-pattern, report e outros), objetos observáveis cibernéticos (domain-name, ipv4-addr, file) e objetos de relacionamento e de avistamento. Todo objeto de domínio precisa de type, spec_version, id, created e modified; os indicadores também precisam de pattern, pattern_type e valid_from. O validador do Lantern verifica essas propriedades obrigatórias em cada objeto antes de qualquer outra coisa. Indicadores são o tipo que a maioria dos parceiros envia, e seu campo de padrão contém a condição a casar, como o valor de um domínio. Kofi mantém um guia interno curto com exemplos de objetos válidos para cada tipo suportado, que os parceiros acharam útil ao depurar as próprias exportações.
22.2 Escolhendo um subconjunto
O Lantern suporta indicator, attack-pattern (ligado a IDs do ATT&CK por referências externas), campaign, threat-actor, malware, report, relationship e sighting. Tipos não suportados são armazenados de forma opaca e sinalizados para revisão, em vez de descartados. Kofi escolheu o subconjunto contando o que os parceiros de fato enviaram em três meses e o que os analistas de fato consultaram. Tipos que apareciam raramente e que ninguém pesquisava ficaram de fora, o que poupou a construção de telas e regras de validação para eles. Armazenar os objetos não suportados como registros opacos significa que nada se perde se surgir uma necessidade depois, e a sinalização para revisão mostra com que frequência chega cada tipo não suportado.
22.3 Confiança e marcações
O STIX oferece uma propriedade confidence (0–100) e definições de marcação, incluindo marcações TLP. O Lantern converte sua confiança interna com decaimento para essa propriedade na exportação e anexa marcações TLP 2.0 a todo objeto compartilhado. Como cada produtor define a confiança à sua maneira, o Lantern registra o valor enviado pelo parceiro ao lado de sua própria pontuação. Assim os analistas veem quando a visão da BEN difere da visão da fonte. Na exportação, a marcação TLP é escolhida pelo rótulo mais restritivo entre as fontes, e um objeto sem rótulo de sua fonte não é compartilhado até que um analista lhe atribua um.
22.4 Validação
Antes de armazenar, o validador verifica as propriedades obrigatórias e o formato do identificador. O laboratório de mestrado desta família de cursos verifica as mesmas regras; o Lantern as aplica no pipeline e conta as falhas por fonte. As contagens de falhas por fonte alimentam os relatórios de qualidade de dados dos parceiros. Kofi descobriu que a maioria das falhas vinha de dois parceiros, ambos enviando carimbos de tempo sem fuso horário. Uma nota curta a cada parceiro, com exemplos, resolveu o problema em um mês. O validador rejeita em vez de consertar, porque um carimbo de tempo consertado dependeria de um palpite sobre o fuso que o parceiro pretendia.
22.5 Modelo do sistema
Além dos dados: os componentes (coletor, validador, armazenamento, enriquecedor, interface do analista, publicador), suas interfaces e seus estados. Uma máquina de estados para um indicador — novo, ativo, decaído, aposentado — torna o comportamento explícito. A máquina de estados impede combinações estranhas, como um indicador aposentado ainda sendo enviado aos firewalls. Kofi listou cada transição permitida com seu gatilho: um objeto novo fica ativo após a validação, decai com o passar do tempo sem avistamentos e é aposentado quando cruza o piso. Um avistamento pode levar um indicador decaído de volta a ativo. Qualquer transição fora da lista é um erro e é registrada.
Nota de prática — Mapeando referências externas
Objetos attack-pattern carregam referências externas às páginas de técnicas do ATT&CK, por exemplo T1566 Phishing. O Lantern valida que essas referências usem IDs de técnica reais, porque IDs digitados errado quebram silenciosamente os relatórios de cobertura de detecção que agrupam os achados por técnica.
Exemplo resolvido
Um parceiro envia um objeto threat-actor sem spec_version. O Lantern o rejeita com um motivo, armazena o hash e avisa o contato de dados do parceiro. A exportação seguinte do parceiro inclui a propriedade.
Caso sintético. O objeto e o parceiro são inventados.
Erros e limites
O STIX é expressivo; suportar tudo acrescenta complexidade sem valor. Números de confiança de produtores diferentes não são diretamente comparáveis.
Exercícios
- EX064 — Extras do indicador. Quais três propriedades um indicador precisa ter além das comuns? Rubrica: 3 = pattern, pattern_type, valid_from; 2 = duas; 1 = uma; 0 = nenhuma.
- EX065 — Tipo não suportado. Como o Lantern deve tratar um tipo STIX que não suporta? Rubrica: 3 = armazenar de forma opaca + sinalizar para revisão, não descartar; 2 = sinalizar; 1 = descartar; 0 = nenhuma.
- EX066 — Máquina de estados. Liste os estados do indicador e um gatilho de transição. Rubrica: 3 = novo/ativo/decaído/aposentado + gatilho válido (sem avistamentos com o tempo, aposentadoria abaixo do piso, novo avistamento); 2 = só os estados; 1 = parcial; 0 = nenhuma.
Síntese
Use um subconjunto deliberado do STIX, valide as propriedades obrigatórias, carregue confiança e marcações TLP e torne os estados explícitos.
Continue estudando — capítulo 22 de 50
← Capítulo 21 (rascunho) · Índice de capítulos do curso · Capítulo 23 (rascunho) →