Pipeline reprodutível para coletar e preparar eventos cibernéticos do Hackmageddon com foco em alinhamento metodológico ao artigo SENTINEL.
Construir um dataset auditável em três camadas:
raw: extração sem perda de contexto da timeline;normalized: padronização de datas/categorias e deduplicação conservadora;analítica: recorte temporal (2023+) e agregação diária pordate_occurred.
Este projeto implementa a sequência central descrita no SENTINEL para o ground truth do Hackmageddon:
- importar timelines de ataques;
- padronizar datas;
- manter registros com
Date Occurredválido; - filtrar a partir de
2023-01-01; - reamostrar em frequência diária;
- aplicar taxonomia analítica (
Unknown/raros ->other; CVE/vulnerabilities ->vulnerability).
- Fonte primária: páginas de timeline do Hackmageddon (OSINT).
- Parser robusto para pequenas variações de HTML, priorizando extração tabular.
- O total de eventos pode divergir de valores publicados no artigo devido a mudanças históricas no site, correções editoriais e janela temporal de coleta.
- Python 3.11+
- Dependências em
requirements.txt
cd hackmageddon
python3.11 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtpython -m src.cli discover --start-year 2023 --end-year 2026python -m src.cli scrapepython -m src.cli normalizepython -m src.cli daily-countspython -m src.cli all --start-year 2023 --end-year 2026data/interim/timeline_urls.csvdata/processed/hackmageddon_raw.csvdata/processed/hackmageddon_normalized.csvdata/processed/hackmageddon_2023plus.csvdata/processed/hackmageddon_daily_counts.csvdata/logs/scrape.log
- O CSV final da pipeline é
data/processed/hackmageddon_daily_counts.csv, gerado na etapadaily-counts. - Se você quiser o dataset final em nível de evento, antes da agregação diária, use
data/processed/hackmageddon_2023plus.csv.
- Crawl em arquivos anuais e suas paginações.
- Fallback por categoria de timeline com paginação.
- Deduplicação canônica de URLs.
- Filtro para manter apenas URLs de post de timeline (exclui páginas de categoria).
- Download de HTML por página com retry/backoff.
- Seleção de tabelas com cabeçalhos mínimos (
Date Reported,Attack,Target). - Preservação dos nomes originais de colunas na camada raw.
- Metadados de origem:
source_timeline_url,source_year,scraped_at,page_title.
- Conversão confiável de datas explícitas (
dd/mm/yyyy,yyyy-mm-dd). - Sem inferência para datas vagas (
Recently, intervalos textuais etc.). - Status de parsing por campo de data.
attack_normcom unificação determinística de vulnerabilidades.row_hashpara deduplicação exata, sem colapso agressivo.
- Apenas linhas com
date_occurredparseável. - Filtro
date_occurred >= 2023-01-01. - Colapso de classes raras (
<5) eunknownparaother. - Agregação diária em
events_per_dayusandodate_occurred.
pytest -qCobertura básica:
- parsing de datas explícitas;
- preservação de datas vagas;
- mapeamento de taxonomia de ataque;
- identificação de tabela válida;
- validação de URLs de timeline.
- Respeite termos de uso e políticas aplicáveis do site-alvo.
- Mantenha taxa de requisições moderada (o projeto já aplica
timeout,retry,backoffesleepaleatório). - Preserve HTML bruto para auditabilidade e reprodutibilidade.
- Não use o pipeline para coleta abusiva, evasão de controles ou violação de privacidade.
hackmageddon_scraper/
data/
raw/
interim/
processed/
logs/
src/
tests/
Saeed, Mohammad Hammas, and Howie Huang. "SENTINEL: A Multi-Modal Early Detection Framework for Emerging Cyber Threats using Telegram." arXiv preprint arXiv:2512.21380 (2025).
Este projeto está licenciado sob a MIT License. Consulte o arquivo LICENSE.