Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
ossem-power-up — Uma ferramenta para avaliar a qualidade dos dados, construída sobre o incrível OSSEM. | Kitploit
Ferramentas/GitHubGitHub/hxnoyd/ossem-power-up
Inteligência de AmeaçasAprendizado e EducaçãoRecursos CuradosAnálise de Logs
GitHubhxnoyd/ossem-power-up

ossem-power-up

Uma ferramenta para avaliar a qualidade dos dados, construída sobre o incrível OSSEM.

Ver Repositório
7911há 1 mêsRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

OSSEM

Uma ferramenta para avaliar a qualidade dos dados, construída sobre o incrível projeto OSSEM.

Missão

  • Responder à pergunta: Quero começar a caçar técnicas ATT&CK, quais fontes de logs e eventos são mais adequadas?
  • Criar transparência sobre os pontos fortes e fracos das suas fontes de log
  • Fornecer uma maneira fácil de avaliar seus logs

Visão Geral do Power-up do OSSEM

O Power-up usa o Detection Data Model (DDM) do OSSEM como base para sua avaliação de qualidade de dados. A principal razão para isso é que ele fornece uma forma estruturada de correlacionar ATT&CK Data Sources, entidades do modelo de informação comum (CIM) e Data Dictionaries (eventos) entre si.

Para aqueles não familiarizados com a estrutura DDM, aqui está um exemplo:

Como pode ver, cada entrada no DDM define uma sub fonte de dados (escopo) usando entidades abstratas como processo, usuário, arquivo, etc. Cada uma dessas entradas também contém um ID de evento, onde o escopo se aplica. Você pode ler mais sobre essas entidades aqui.

Em suma, as entradas DDM desempenham um papel importante na remoção da complexidade dos eventos brutos, fornecendo um escopo que define como uma fonte de log (canais de dados) pode ser consumida.

Dimensões de Qualidade dos Dados

O Power-up avalia a pontuação de qualidade dos dados de acordo com cinco dimensões distintas:

Cada dimensão é avaliada com uma pontuação entre 0 (nenhum) e 5 (excelente).

Cobertura, Oportunidade e Retenção

Essas dimensões estão vinculadas aos canais de dados e se propagam para todos os eventos fornecidos por eles.

Devido à natureza dessas dimensões, elas devem ser avaliadas manualmente, de acordo com as especificidades dos canais de dados.

O Power-up usa resources/dcs.yml para definir o canal de dados e avaliar as dimensões:

root@kitploit:~
data channel: sysmon
description: sysmon monitoring
coverage: 2
timeliness: 5
retention: 2
---
data channel: security
description: windows security auditing
coverage: 5
timeliness: 5
retention: 2

Estrutura

Para calcular o quão completa é a estrutura do evento, o power-up compara os nomes padrão do dicionário de dados com os campos das entidades (CIM) referenciadas na entrada DDM (origem e destino).

Como nem todos os campos das entidades são relevantes (depende do contexto), o power-up usa o conceito de perfis para selecionar quais campos precisam corresponder aos nomes padrão do dicionário de dados. Por exemplo:

root@kitploit:~
# OSSEM CIM Profile
process:
    - process_name
    - process_path
    - process_command_line

Nota: Há um perfil de exemplo em profiles/default.yml para você experimentar.

A pontuação de estrutura é calculada com a seguinte fórmula:

SCORE_PERCENT = (MATCHED_FIELDS / TOTAL_RELEVANT_FIELDS) * 100

Para maior clareza, aqui está um exemplo de como a pontuação de estrutura é calculada:

Nota: Como o dicionário de dados do Sysmon Event Id 1 corresponde a 100% dos campos de entidade relevantes, a pontuação de estrutura será avaliada como 5 (excelente).

A pontuação de estrutura é traduzida para a escala de 0 a 5 da seguinte forma:

PorcentagemPontuação

Nota: Dependendo do caso de uso (SIEM, Threat Hunting, Forense), você pode definir diferentes perfis para avaliar seus logs de forma diferente.

Consistência

Para calcular a consistência, o power-up simplesmente calcula a porcentagem de campos com um nome padrão em um dicionário de dados. Dicionários de dados com um alto número de campos mapeados para um nome padrão têm maior probabilidade de se correlacionar com entidades CIM.

A pontuação de consistência é calculada com a seguinte fórmula:

SCORE_PERCENT = (STANDARD_NAME_FIELDS / TOTAL_FIELDS) * 100

A pontuação de consistência é traduzida para a escala de 0 a 5 da seguinte forma:

PorcentagemPontuação
00
1 a 501
51 a 993
1005

Como usar

Antes de começar

  • O Power-up é um script python, certifique-se de executar pip install -r requirements.txt
  • Certifique-se de ter uma cópia local do repositório OSSEM

Executando o power-up

root@kitploit:~
$> python3 powerup.py --help
  _____ _____ _____ _____ _____    _____ _____ _ _ _ _____ _____     _____ _____ __
 |     |   __|   __|   __|     |  |  _  |     | | | |   __| __  |___|  |  |  _  |  |
 |  |  |__   |__   |   __| | | |  |   __|  |  | | | |   __|    -|___|  |  |   __|__|
 |_____|_____|_____|_____|_|_|_|  |__|  |_____|_____|_____|__|__|   |_____|__|  |__|

usage: powerup.py [-h] [-o OSSEM] [-y OSSEM_YAML] [-p PROFILE] [--excel]
                  [--elastic] [--yaml]

A tool to assess ATT&CK data source coverage, built on top of awesome OSSEM.

optional arguments:
  -h, --help            show this help message and exit
  -o OSSEM, --ossem OSSEM
                        path to import OSSEM markdown
  -y OSSEM_YAML, --ossem-yaml OSSEM_YAML
                        path to import OSSEM yaml
  -p PROFILE, --profile PROFILE
                        path to CIM profile
  --excel               export OSSEM DDM to excel
  --elastic             export OSSEM data models to elastic
  --yaml                export OSSEM data models to yaml
  --layer               export OSSEM data models to navigator layer

Como pode ver, o power-up pode consumir dados OSSEM de dois formatos diferentes:

  • OSSEM markdown - O formato nativo do OSSEM quando você clona do git.
  • OSSEM yaml - Um formato resumido do OSSEM, apenas os campos de dados e alguns metadados. Você pode usar o power-up para converter OSSEM markdown para yaml.

Atualmente, o Power-up exporta a saída OSSEM para:

  • Yaml - Cria estruturas OSSEM em yaml, na pasta output/
  • Excel - Cria uma tabela DDM OSSEM, enriquecida com as pontuações de qualidade dos dados, na pasta output/
  • Elastic - Cria uma estrutura OSSEM no elastic, os índices são os seguintes:
    • ossem.ddm - Tabela DDM OSSEM, enriquecida com as pontuações de qualidade dos dados
    • ossem.cim - Entradas CIM OSSEM
    • ossem.dds - Dicionários de Dados OSSEM
    • ossem.dcs - Canais de Dados OSSEM

Nota: se nenhum caminho de arquivo de perfil for especificado, o power-up usa profiles/default.yml por padrão.

Exportando para YAML

root@kitploit:~
$> python3 powerup.py -o ../OSSEM --yaml
  _____ _____ _____ _____ _____    _____ _____ _ _ _ _____ _____     _____ _____ __
 |     |   __|   __|   __|     |  |  _  |     | | | |   __| __  |___|  |  |  _  |  |
 |  |  |__   |__   |   __| | | |  |   __|  |  | | | |   __|    -|___|  |  |   __|__|
 |_____|_____|_____|_____|_|_|_|  |__|  |_____|_____|_____|__|__|   |_____|__|  |__|

[*] Profile path: profiles/default.yml
[*] Parsing OSSEM from markdown
[*] Exporting OSSEM to YAML
[*] Created output/ddm_20191114_160246.yml
[*] Created output/cim_20191114_160246.yml
[*] Created output/dds_20191114_160246.yml

O objetivo de exportar/importar para/de YAML é facilitar a personalização do OSSEM. É provável que a primeira coisa que você faça seja criar seus próprios dicionários de dados e depois adicionar novas entradas DDM, então o YAML tornará as atualizações mais fáceis.

Nota 1: modifique resources/config.yml para instruir o power-up sobre os nomes dos arquivos para as estruturas corretas. Depois, basta colocá-los em uma pasta e passar para o argumento OSSEM_YAML.

Nota 2: o power-up não analisa todos os objetos OSSEM para YAML, apenas os campos de dados e alguns metadados (por exemplo, descrição). A razão para isso é que eu queria manter o objeto YAML o mais enxuto possível, apenas com os dados necessários para avaliar a qualidade dos dados.

Exportando para EXCEL

root@kitploit:~
$> python3 powerup.py -o ../OSSEM --excel
  _____ _____ _____ _____ _____    _____ _____ _ _ _ _____ _____     _____ _____ __
 |     |   __|   __|   __|     |  |  _  |     | | | |   __| __  |___|  |  |  _  |  |
 |  |  |__   |__   |   __| | | |  |   __|  |  | | | |   __|    -|___|  |  |   __|__|
 |_____|_____|_____|_____|_|_|_|  |__|  |_____|_____|_____|__|__|   |_____|__|  |__|

[*] Profile path: profiles/default.yml
[*] Parsing OSSEM from markdown
[*] Exporting OSSEM DDM to Excel
[*] Saved Excel to output/ddm_enriched_20191114_160041.xlsx

Ao exportar para Excel, o power-up criará um DDM visualmente atraente, com as respectivas dimensões de qualidade dos dados para cada entrada:

Exportando para ELASTIC

root@kitploit:~
$> python3 powerup.py -o ../OSSEM --elastic
  _____ _____ _____ _____ _____    _____ _____ _ _ _ _____ _____     _____ _____ __
 |     |   __|   __|   __|     |  |  _  |     | | | |   __| __  |___|  |  |  _  |  |
 |  |  |__   |__   |   __| | | |  |   __|  |  | | | |   __|    -|___|  |  |   __|__|
 |_____|_____|_____|_____|_|_|_|  |__|  |_____|_____|_____|__|__|   |_____|__|  |__|

[*] Profile path: profiles/default.yml
[*] Parsing OSSEM from markdown
[*] Exporting OSSEM to Elastic
[*] Creating elastic index ossem.ddm
[*] Creating elastic index ossem.cim
[*] Creating elastic index ossem.dds
[*] Creating elastic index ossem.dcs

Ao exportar para Elastic, o power-up armazenará todos os dados OSSEM no elastic. Como o DDM também é enriquecido com as respectivas dimensões de qualidade dos dados, você poderá criar painéis como este:

Exportando para o ATT&CK Navigator

root@kitploit:~
$> python3 powerup.py -o ../OSSEM --layer
  _____ _____ _____ _____ _____    _____ _____ _ _ _ _____ _____     _____ _____ __
 |     |   __|   __|   __|     |  |  _  |     | | | |   __| __  |___|  |  |  _  |  |
 |  |  |__   |__   |   __| | | |  |   __|  |  | | | |   __|    -|___|  |  |   __|__|
 |_____|_____|_____|_____|_|_|_|  |__|  |_____|_____|_____|__|__|   |_____|__|  |__|

[*] Profile path: profiles/default.yml
[*] Parsing OSSEM from markdown
[*] Exporting OSSEM to Naviagator Layer
[*] Pulling ATT&CK data
[*] Generating data source quality layer
[*] Created output/ds_layer_20191119_220141.json

Ao exportar para camada, o power-up criará um arquivo JSON de camada do Attack Navigator, com as respectivas dimensões de qualidade dos dados para cada técnica:

Nota: as pontuações das técnicas são derivadas das pontuações médias das fontes de dados no DDM.

Agradecimentos

  • Roberto Rodriguez @Cyb3rWard0g, Jose Luis Rodriguez @Cyb3rPandaH e todos os membros da comunidade por apoiarem o OSSEM.
  • Marcus Bakker @bakk3rm e Ruben Bouman @rubenb_2 pela inspiração nas Dimensões de Qualidade dos Dados do DeTTECT.

A Fazer

  • Criar documentação adicional
  • Exportar para Camada do ATT&CK Navigator
  • Lidar adequadamente com dicionários de dados que compartilham o mesmo canal de dados, mas têm esquemas diferentes dependendo do sistema operacional
  • Fornecer objetos Kibana (visualizações e painéis)
Baixar ferramenta
Fonte de Dados ATT&CKSub Fonte de DadosObjeto de Dados de OrigemRelacionamentoObjeto de Dados de DestinoEventID
Process monitoringprocess creationprocesscreatedprocess4688
Process monitoringprocess creationprocesscreatedprocess1
Process monitoringprocess terminationprocessterminated-4689
Process monitoringprocess terminationprocessterminated-5
DimensãoTipoDescrição
CoberturaCanal de dadosQuantos dispositivos ou segmentos de rede são cobertos pelo canal de dados
OportunidadeCanal de dadosQuanto tempo leva para o evento estar disponível
RetençãoCanal de dadosQuanto tempo o evento permanece disponível
EstruturaEventoQuão completo é o evento, se campos relevantes estão disponíveis
ConsistênciaEventoQuão padronizados são os campos do evento, se os campos foram normalizados
00
1 a 251
26 a 502
51 a 753
76 a 994
1005