Hassan-Zahid-07/SDA-Pro

GitHub: Hassan-Zahid-07/SDA-Pro

SDA-Pro:安全事件响应与威胁缓解平台

Stars: 0 | Forks: 0

# SDA-Pro — 安全事件响应与威胁缓解平台 **软件设计与架构 — 学期项目** | 字段 | 详细信息 | |---|---| | **项目名称** | SDA-Pro — 安全事件响应与威胁缓解平台 | | **团队成员** | Hassan Zahid (54481) · Malik Hamza Shahid (54523) | | **提交日期** | 2026年6月3日 | | **语言** | Java | ## 主端到端流程 ``` Mock Splunk / Firewall / CrowdStrike Alert → Adapter converts external format into RawAlert → Factory Method selects AlertNormalizer → RawAlert becomes CanonicalAlert → Composite groups alerts into AlertCampaign / IncidentCluster → Abstract Factory builds enrichment pipeline (Premium or Standard tier) → Chain of Responsibility enriches alert (Dedup → GeoIP → ThreatIntel → Asset → Classify) → Caching Proxy + Rate Limit Proxy + Access Control Proxy wrap the ThreatIntel adapter → Incident is created and published via Singleton EventBusPublisher (Observer) → State Pattern controls incident lifecycle (New → Triage → Containment → Eradication → Recovery → Review → Closed) → Strategy selects response actions (Aggressive / Balanced / Conservative / WatchAndWait) → Factory Method creates actions (BlockIP, IsolateEndpoint, DisableUser, QuarantineFile, Escalate) → Decorator adds Audit / ApprovalGate / Rollback / Metrics layers → Proxy checks authorization before execution → Facade orchestrates the entire response workflow → Observer / EventBus updates dashboard, audit, notification, and metrics → MVC Dashboard renders real-time analyst view ``` ## 运行方法 ### Linux / macOS / Git Bash ``` javac -d out $(find src -name "*.java") java -cp out MainDemo ``` ### Windows PowerShell ``` Get-ChildItem -Recurse src -Filter *.java | ForEach-Object { $_.FullName } > sources.txt javac -d out @sources.txt java -cp out MainDemo ``` ### Docker Compose ``` docker compose up --build ``` ### Makefile ``` make run make smoke ``` ## 设计模式(全部12种) | # | 模式 | 主要类 | 目的 | |---|---|---|---| | 1 | **单例** | `IngestionConfigManager`, `ThreatIntelCache`, `EventBusPublisher` | 共享配置、缓存和事件总线 | | 2 | **工厂方法** | `AlertNormalizerFactory`, `ResponseActionFactory` | 创建标准化器和响应动作 | | 3 | **抽象工厂** | `EnrichmentProviderFactory`, `PremiumEnrichmentFactory`, `StandardEnrichmentFactory`, `NotificationFactory` | 创建一系列增强提供者和通知通道 | | 4 | **组合** | `AlertComponent`, `SingleAlert`, `AlertCampaign`, `IncidentCluster` | 统一处理单个和分组警报 | | 5 | **外观** | `IncidentResponseFacade` | 简化响应编排 | | 6 | **适配器** | `SplunkAdapter`, `FirewallAdapter`, `CrowdStrikeAdapter`, `VirusTotalAdapter`, `MISPAdapter` | 将外部格式转换为内部合约 | | 7 | **装饰器** | `AuditLogDecorator`, `ApprovalGateDecorator`, `RollbackDecorator`, `MetricsDecorator` | 动态添加响应动作的行为 | | 8 | **代理** | `CachingThreatIntelProxy`, `RateLimitThreatIntelProxy`, `AccessControlThreatIntelProxy`, `AuthorizedResponseActionProxy` | 缓存查找、速率限制和授权 | | 9 | **状态** | `NewState`, `UnderTriageState`, `ContainmentState`, `EradicationState`, `RecoveryState`, `PostIncidentReviewState`, `ClosedState` | 控制事件的生命周期行为 | | 10 | **责任链** | `EnrichmentHandler` + 5 handlers | 通过增强阶段处理警报 | | 11 | **观察者** | `EventBusPublisher`, `DashboardUpdater`, `AuditLogger`, `NotificationDispatcher`, `MetricsCollector` | 通知模块关于领域事件 | | 12 | **策略** | `AggressiveContainmentStrategy`, `BalancedStrategy`, `ConservativeStrategy`, `WatchAndWaitStrategy` | 根据严重性/上下文选择响应算法 | ## 架构风格(全部4种) | 风格 | 证据 | |---|---| | **SOA** | 分离的服务包:`ingestion`, `enrichment`, `incident`, `response`, `threatintel`, `notification`, `audit` | | **MVC** | `dashboard/controllers/`, `dashboard/models/`, `dashboard/views/` | | **分层** | 适配器 → 标准化器 → 服务 → 每个模块内的领域分离 | | **事件驱动** | `EventBusPublisher` 与类型化的 `DomainEvent`,通过 `EventType` 进行 pub/sub,4 个观察者订阅者 | ## 文档 - `docs/adr/` — 架构决策记录(ADR-001 至 ADR-005) - `docs/api/` — API 合约和事件模式 - `docs/uml/` — PlantUML 源文件(类、组件、序列图) - `demo-output.txt` — 完整运行示例的样本控制台输出 - `screenshots/` — 最终截图证据 - `tests/` — 烟雾测试和记录的测试用例 - `docs/evidence/` — 截图清单和提交证据指南 ## SOC 网络仪表板 一个基于 React 的专业 SOC 分析师仪表板原型包含在 `soc-dashboard/` 中。它通过可视化提供用户友好的前端证据,以满足 MVC 和事件驱动的要求: - 来自 Splunk SIEM、Palo Alto 防火墙、CrowdStrike EDR 和威胁情报源的真实时间警报流 - 事件队列,包括严重性、分配的分析师、状态、策略和风险评分 - 状态模式的事件生命周期跟踪器 - 响应动作面板,包括阻止 IP、隔离端点、隔离文件和升级操作 - 显示适配器 + 代理行为的威胁情报声誉面板 - 显示观察者/EventBus 风格更新的审计日志 ### 仪表板 MVC 结构 | 层 | 证据 | |---|---| | 模型 | `soc-dashboard/src/models/` | | 视图 | `soc-dashboard/src/views/` | | 控制器 | `soc-dashboard/src/controllers/` | | 事件服务 | `soc-dashboard/src/services/mockEventBus.js` | ### 运行仪表板 ``` cd soc-dashboard npm install npm run dev ``` 然后打开终端中显示的本地 Vite URL,通常是 `http://localhost:5173`。 ## 项目备注 此原型使用模拟适配器和内存存储,以便与 plain `javac`、Makefile 或 Docker Compose 一起运行。架构已完全记录,并设计为可以通过真实 API、PostgreSQL、Redis、RabbitMQ/Kafka 和 WebSocket/SSE 仪表板更新进行扩展。
标签:DNS通配符暴力破解, JS文件枚举, MVC, React, SOA, Syscalls, 事件总线, 事件驱动, 代理模式, 仪表盘, 分层架构, 告警处理, 响应策略, 域名枚举, 威胁情报, 威胁缓解, 安全, 安全事件响应, 安全运营中心, 审计, 工厂模式, 开发者工具, 授权, 提示词模板, 状态模式, 组合模式, 缓存, 网络映射, 装饰者模式, 观察者模式, 设计模式, 请求拦截, 责任链模式, 资产分类, 超时处理, 门面模式