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 的自动化威胁情报流水线**
[](https://github.com/bayraktarozcan/TC-SGB-API-to-List/actions/workflows/ci.yml)
[](https://github.com/bayraktarozcan/TC-SGB-API-to-List/actions/workflows/schedule.yml)
[](https://github.com/bayraktarozcan/TC-SGB-API-to-List/actions/workflows/codeql.yml)
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[](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ı**
[](https://github.com/bayraktarozcan/TC-SGB-API-to-List/actions/workflows/ci.yml)
[](https://github.com/bayraktarozcan/TC-SGB-API-to-List/actions/workflows/schedule.yml)
[](https://github.com/bayraktarozcan/TC-SGB-API-to-List/actions/workflows/codeql.yml)
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[](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, 可观测性, 威胁情报, 安全规则引擎, 开发者工具, 无后门, 逆向工具