bayraktarozcan/TC-SGB-API-to-List

GitHub: bayraktarozcan/TC-SGB-API-to-List

从土耳其国家网络安全总局 API 自动获取 IOC 数据并转换为 17 种主流安全工具兼容格式的威胁情报流水线工具。

Stars: 0 | Forks: 0

[English](#english) | [Türkçe](#turkish) # TC-SGB-API-to-List **针对土耳其国家网络安全总局 (TC SGB) API 的自动化威胁情报流水线** [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/64/6402ed1b0b38ad5b3164d8eb323822844b5b603e2c640509d02bd7dab3bd23a3.svg)](https://github.com/bayraktarozcan/TC-SGB-API-to-List/actions/workflows/ci.yml) [![Scheduled Pipeline](https://static.pigsec.cn/wp-content/uploads/repos/cas/fe/fe2ae707c4f5ee587c3844bbdaff0f00404bfc6922b3b6ed56b9f7466588dbd7.svg)](https://github.com/bayraktarozcan/TC-SGB-API-to-List/actions/workflows/schedule.yml) [![CodeQL](https://static.pigsec.cn/wp-content/uploads/repos/cas/77/771a9ce93d71fa9185379c2bf247fbbaef9308612349152644e292859a4e4a75.svg)](https://github.com/bayraktarozcan/TC-SGB-API-to-List/actions/workflows/codeql.yml) [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) ## 概述 TC-SGB-API-to-List 从 TC SGB 公共 API (`https://siberguvenlik.gov.tr/api/`) 获取 IOC (入侵指标) 数据,通过强大的多阶段流水线进行处理,并输出兼容主流 DNS 过滤和安全工具的 **16+ 种互操作格式** 的结构化威胁情报。 ## 功能 - **自动化 IOC 获取** — 通过重试逻辑和速率限制从 TC SGB API 进行分页检索 - **验证与规范化** — 基于 Pydantic 的数据模型,包含 IOC 类型推断和格式规范化 - **去重** — 在多次获取中进行高效的基于集合的去重 - **质量评分** — 对每个 IOC 进行多因素质量评估 - **16+ 种输出格式**: - DNS:NextDNS, AdGuard, Pi-hole, dnsmasq, Unbound, RPZ, Technitium, MikroTik - 防火墙:nftables, ipset - IDS/IPS:Suricata, CrowdSec - 数据:CSV, JSON, YAML, SQLite - **定时流水线** — 使用 GitHub Actions cron 进行每日自动更新 - **双语文档** — 提供完整的英文和土耳其语文档 ## 快速开始 ### 前置条件 - Python 3.11+ - pip 或 Poetry ### 安装 ``` git clone https://github.com/bayraktarozcan/TC-SGB-API-to-List.git cd TC-SGB-API-to-List pip install -r requirements.txt ``` ### 使用方法 ``` # Run the full pipeline python scripts/main.py fetch --limit 1000 --output-dir ./output # Fetch and display health status python scripts/main.py health # Run in headless mode (no display) python scripts/main.py fetch --headless --output-dir ./output ``` ## 项目结构 ``` TC-SGB-API-to-List/ ├── scripts/ │ ├── main.py # CLI entry point │ └── src/ │ ├── models.py # Pydantic data models │ ├── client.py # Async API client │ ├── validator.py # IOC validation │ ├── normalizer.py # IOC normalization │ ├── deduplicator.py # Deduplication │ ├── quality.py # Quality scoring │ ├── outputs.py # 16+ output format generators │ └── pipeline.py # Pipeline orchestrator ├── tests/ # Test suite ├── wiki/ # Documentation (bilingual) ├── schema/ # JSON Schema & OpenAPI spec ├── data/ # Runtime data cache ├── output/ # Generated IOC output files (tracked) ├── examples/ # Usage examples ├── benchmark/ # Performance benchmarks └── .github/workflows/ # CI/CD pipelines ``` ## 文档 | 文档 | 描述 | |----------|-------------| | [架构](wiki/Architecture.md) | 系统设计与组件概述 | | [数据流](wiki/Data-Flow.md) | 流水线数据流与转换 | | [模块架构](wiki/Module-Architecture.md) | 模块职责与接口 | | [仓库结构](wiki/Repository-Structure.md) | 目录布局与文件用途 | | [API 分析](wiki/API-Analysis.md) | TC SGB API 端点与功能 | | [数据模型](wiki/Data-Model.md) | Pydantic 模型与 schema | | [威胁模型](wiki/Threat-Model.md) | STRIDE 威胁分析 | | [安全分析](wiki/Security-Analysis.md) | 安全态势与强化 | | [许可证分析](wiki/License-Analysis.md) | 法律与许可考量 | | [测试策略](wiki/Test-Strategy.md) | 测试方法与覆盖率 | | [回归策略](wiki/Regression-Strategy.md) | 回归测试方法论 | | [性能策略](wiki/Performance-Strategy.md) | 性能基准与优化 | | [版本策略](wiki/Versioning-Strategy.md) | 语义化版本控制方法 | | [发布策略](wiki/Publishing-Strategy.md) | 分发与发布 | | [维护计划](wiki/Maintenance-Plan.md) | 日常维护程序 | | [风险分析](wiki/Risk-Analysis.md) | 风险评估与缓解 | | [路线图](wiki/Roadmap.md) | 开发路线图 | | [法律声明](wiki/Legal-Notices.md) | 法律与合规声明 | ## 配置 将 `.env.example` 复制为 `.env` 并根据需要进行配置: ``` cp .env.example .env ``` ## 开发 ``` # Install dependencies pip install -r requirements.txt # Run tests pytest tests/ -v # Run linter ruff check scripts/ tests/ # Run type checker mypy scripts/src/ ``` ## 路线图 - [x] 核心流水线 (获取 → 验证 → 规范化 → 去重 → 评分 → 输出) - [x] 16+ 种输出格式 - [x] 使用 GitHub Actions 的 CI/CD - [x] 全面的测试套件 - [ ] Docker 容器化 - [ ] 发布至 PyPI - [ ] 添加更多威胁情报源 (CISA KEV, Spamhaus, URLhaus) - [ ] Web 仪表盘 ## 许可证 本项目基于 [MIT License](LICENSE) 授权。有关数据再分发的重要法律信息,请参阅 [LEGAL_NOTICES](wiki/Legal-Notices.md)。 ## 免责声明 本工具按“原样”提供,用于合法的网络安全研究与防御目的。用户需自行遵守所有适用的法律法规。 # TC-SGB-API-to-List **Türkiye Ulusal Siber Güvenlik Direktörlüğü (TC SGB) API'si için Otomatik Tehdit İstihbaratı Hattı** [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/64/6402ed1b0b38ad5b3164d8eb323822844b5b603e2c640509d02bd7dab3bd23a3.svg)](https://github.com/bayraktarozcan/TC-SGB-API-to-List/actions/workflows/ci.yml) [![Scheduled Pipeline](https://static.pigsec.cn/wp-content/uploads/repos/cas/fe/fe2ae707c4f5ee587c3844bbdaff0f00404bfc6922b3b6ed56b9f7466588dbd7.svg)](https://github.com/bayraktarozcan/TC-SGB-API-to-List/actions/workflows/schedule.yml) [![CodeQL](https://static.pigsec.cn/wp-content/uploads/repos/cas/77/771a9ce93d71fa9185379c2bf247fbbaef9308612349152644e292859a4e4a75.svg)](https://github.com/bayraktarozcan/TC-SGB-API-to-List/actions/workflows/codeql.yml) [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) ## Genel Bakış TC-SGB-API-to-List, TC SGB kamu API'sinden (`https://siberguvenlik.gov.tr/api/`) IOC (İhlal Göstergesi) verilerini çeker, güçlü bir çok aşamalı hat üzerinden işler ve **16+ birlikte çalışabilir formatta** yapılandırılmış tehdit istihbaratı çıktısı üretir. ## Özellikler - **Otomatik IOC Çekme** — Yeniden deneme mantığı ve hız sınırlaması ile sayfalı veri çekme - **Doğrulama ve Normalleştirme** — Pydantic tabanlı veri modelleri ile IOC türü çıkarma ve format normalleştirme - **Tekilleştirme** — Çekimler arasında verimli küme tabanlı tekilleştirme - **Kalite Puanlama** — Her IOC için çok faktörlü kalite değerlendirmesi - **16+ Çıktı Formatı**: - DNS: NextDNS, AdGuard, Pi-hole, dnsmasq, Unbound, RPZ, Technitium, MikroTik - Güvenlik Duvarı: nftables, ipset - IDS/IPS: Suricata, CrowdSec - Veri: CSV, JSON, YAML, SQLite - **Zamanlanmış Hat** — Otomatik günlük güncellemeler için GitHub Actions cron zamanlayıcısı - **Çift Dilli Dokümantasyon** — Tam İngilizce ve Türkçe dokümantasyon ## Hızlı Başlangıç ### Ön Gereksinimler - Python 3.11+ - pip veya Poetry ### Kurulum ``` git clone https://github.com/bayraktarozcan/TC-SGB-API-to-List.git cd TC-SGB-API-to-List pip install -r requirements.txt ``` ### Kullanım ``` # Tam hattı çalıştır python scripts/main.py fetch --limit 1000 --output-dir ./output # Sağlık durumunu görüntüle python scripts/main.py health # Başsız modda çalıştır (görüntü olmadan) python scripts/main.py fetch --headless --output-dir ./output ``` ## Proje Yapısı ``` TC-SGB-API-to-List/ ├── scripts/ │ ├── main.py # CLI giriş noktası │ └── src/ │ ├── models.py # Pydantic veri modelleri │ ├── client.py # Asenkron API istemcisi │ ├── validator.py # IOC doğrulama │ ├── normalizer.py # IOC normalleştirme │ ├── deduplicator.py # Tekilleştirme │ ├── quality.py # Kalite puanlama │ ├── outputs.py # 16+ çıktı formatı üreteçleri │ └── pipeline.py # Hat koordinatörü ├── tests/ # Test paketi ├── wiki/ # Dokümantasyon (çift dilli) ├── schema/ # JSON Schema ve OpenAPI belirtimi ├── data/ # Çalışma zamanı veri önbelleği ├── output/ # Üretilen IOC çıktı dosyaları (izleniyor) ├── examples/ # Kullanım örnekleri ├── benchmark/ # Performans karşılaştırmaları └── .github/workflows/ # CI/CD hatları ``` ## Dokümantasyon | Belge | Açıklama | |-------|----------| | [Mimari](wiki/Architecture.md) | Sistem tasarımı ve bileşen genel bakışı | | [Veri Akışı](wiki/Data-Flow.md) | Hat veri akışı ve dönüşümleri | | [Modül Mimarisi](wiki/Module-Architecture.md) | Modül sorumlulukları ve arayüzleri | | [Depo Yapısı](wiki/Repository-Structure.md) | Dizin yerleşimi ve dosya amaçları | | [API Analizi](wiki/API-Analysis.md) | TC SGB API uç noktaları ve yetenekleri | | [Veri Modeli](wiki/Data-Model.md) | Pydantic modelleri ve şemaları | | [Tehdit Modeli](wiki/Threat-Model.md) | STRIDE tehdit analizi | | [Güvenlik Analizi](wiki/Security-Analysis.md) | Güvenlik duruşu ve sertleştirme | | [Lisans Analizi](wiki/License-Analysis.md) | Hukuki ve lisanslama hususları | | [Test Stratejisi](wiki/Test-Strategy.md) | Test yaklaşımı ve kapsama | | [Regresyon Stratejisi](wiki/Regression-Strategy.md) | Regresyon test metodolojisi | | [Performans Stratejisi](wiki/Performance-Strategy.md) | Performans karşılaştırmaları ve optimizasyon | | [Sürüm Stratejisi](wiki/Versioning-Strategy.md) | Semantik sürümleme yaklaşımı | | [Yayın Stratejisi](wiki/Publishing-Strategy.md) | Dağıtım ve yayınlanma | | [Bakım Planı](wiki/Maintenance-Plan.md) | Sürekli bakım prosedürleri | | [Risk Analizi](wiki/Risk-Analysis.md) | Risk değerlendirmesi ve azaltma | | [Yol Haritası](wiki/Roadmap.md) | Geliştirme yol haritası | | [Yasal Bildirimler](wiki/Legal-Notices.md) | Hukuki ve uyum bildirimleri | ## Yapılandırma `.env.example` dosyasını `.env` olarak kopyalayın ve gerektiğince yapılandırın: ``` cp .env.example .env ``` ## Geliştirme ``` # Bağımlılıkları kur pip install -r requirements.txt # Testleri çalıştır pytest tests/ -v # Linter'ı çalıştır ruff check scripts/ tests/ # Tip kontrolcüyü çalıştır mypy scripts/src/ ``` ## Yol Haritası - [x] Çekirdek hat (çek → doğrula → normalleştir → tekilleştir → puanla → çıktı) - [x] 16+ çıktı formatı - [x] GitHub Actions ile CI/CD - [x] Kapsamlı test paketi - [ ] Docker konteynerleştirme - [ ] PyPI yayınlama - [ ] Ek tehdit istihbaratı kaynakları (CISA KEV, Spamhaus, URLhaus) - [ ] Web kontrol paneli ## Lisans Bu proje [MIT Lisansı](LICENSE) altında lisanslanmıştır. Veri yeniden dağıtımı ile ilgili önemli yasal bilgiler için [YASAL BİLDİRİMLER](wiki/Legal-Notices.md) dosyasına bakın. ## Sorumluluk Reddi Bu araç, meşru siber güvenlik araştırması ve savunma amaçları için olduğu gibi sağlanmaktadır. Kullanıcılar, geçerli tüm yasa ve düzenlemelere uymaktan sorumludur.
标签:API集成, IOC转换, Python, 可观测性, 威胁情报, 安全规则引擎, 开发者工具, 无后门, 逆向工具