WahabKhan007/SDA-Pro
GitHub: WahabKhan007/SDA-Pro
SDA-Pro:安全事件响应与威胁缓解平台
Stars: 0 | Forks: 0
# SDA-Pro — 安全事件响应与威胁缓解平台
SDA-Pro 是 **软件设计与架构** 学期的项目原型。它模拟了一个简化的安全运营中心(SOC)平台,该平台接收安全警报,对其进行标准化和丰富,创建事件,执行响应操作,更新仪表板,并存储审计事件。
## 主要端到端流程
```
Mock Splunk/Firewall Alert
→ Adapter converts external format into RawAlert
→ Factory Method selects AlertNormalizer
→ RawAlert becomes CanonicalAlert
→ Composite groups alerts into AlertCampaign
→ Chain of Responsibility enriches alert
→ Proxy + Adapter perform threat-intel lookup
→ Incident is created
→ State Pattern controls incident lifecycle
→ Strategy selects response actions
→ Factory creates actions
→ Decorator adds audit/approval/rollback/metrics
→ Proxy checks authorization
→ Facade orchestrates response
→ Observer/EventBus updates dashboard, audit, notification, and metrics
```
## 运行方法
### 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
```
## 添加了 Web 图形用户界面仪表板
通过 `src/WebDashboardServer.java` 添加了一个基于浏览器的图形用户界面。原始控制台演示仍然可在 `MainDemo.java` 中使用;没有删除原始的后端包、文档、UML、ADR 或 API 文件。
### 运行 Web 图形用户界面
#### Linux / macOS / Git Bash
```
javac -d out $(find src -name "*.java")
java -cp out WebDashboardServer
```
可选:使用 `java -cp out WebDashboardServer 8080` 如果您特别想要端口 8080。
然后在浏览器中打开此 URL:
```
http://localhost:9090
```
#### Windows PowerShell
```
Get-ChildItem -Recurse src -Filter *.java | ForEach-Object { $_.FullName } > sources.txt
javac -d out @sources.txt
java -cp out WebDashboardServer
```
可选:使用 `java -cp out WebDashboardServer 8080` 如果您特别想要端口 8080。
然后在浏览器中打开此 URL:
```
http://localhost:9090
```
### 图形用户界面功能
- 从浏览器运行 Java 后端工作流程。
- 显示来自 Splunk 和防火墙模拟适配器的标准化警报。
- 使用组合模式显示活动严重性。
- 显示事件摘要和最终生命周期状态。
- 显示来自策略、工厂、装饰器、代理和外观逻辑的执行响应操作。
- 在 GUI 中显示后端控制台日志,供教师演示。
## 使用的设计模式
| 模式 | 主要类 | 目的 |
|---|---|---|
| 单例 | IngestionConfigManager, ThreatIntelCache, EventBusPublisher | 共享配置、缓存和事件总线 |
| 工厂方法 | AlertNormalizerFactory, ResponseActionFactory | 创建标准化器和响应操作 |
| 抽象工厂 | NotificationFactory, EnterpriseNotificationFactory | 创建相关的通知渠道 |
| 组合 | AlertComponent, SingleAlert, AlertCampaign, IncidentCluster | 统一处理单个和分组警报 |
| 外观 | IncidentResponseFacade | 简化响应编排 |
| 适配器 | SplunkAdapter, FirewallAdapter, VirusTotalAdapter, MISPAdapter | 将外部格式转换为内部合约 |
| 装饰器 | AuditLogDecorator, ApprovalGateDecorator, RollbackDecorator, MetricsDecorator | 动态添加响应操作的行为 |
| 代理 | CachingThreatIntelProxy, AuthorizedResponseActionProxy | 缓存情报查找并控制操作访问 |
| 状态 | IncidentState 和生命周期状态类 | 控制事件生命周期行为 |
| 责任链 | EnrichmentHandler 和处理器 | 通过丰富阶段处理警报 |
| 观察者 | EventBusPublisher, DashboardUpdater, AuditLogger, NotificationDispatcher, MetricsCollector | 通知模块关于领域事件 |
| 策略 | ResponseStrategy 和具体策略 | 根据严重性/上下文选择响应算法 |
## 架构风格
- **SOA:** 通过独立的服务包表示。
- **MVC:** 通过仪表板控制器、模型和视图表示。
- **分层架构:** 控制器/服务/领域/存储库风格的分离。
- **事件驱动架构:** 内存中的 EventBusPublisher 和观察者订阅者。
## 文档
- `docs/adr/` — 架构决策记录。
- `docs/api/` — API 合约和事件模式。
- `docs/uml/` — 类、组件和序列图的 PlantUML 源文件。
- `screenshots/` — 输出和图表截图。
## 提交说明
此原型使用模拟适配器和内存存储来保持项目易于运行和解释。
标签:DNS解析, GUI, Java开发, JS文件枚举, SOC平台, Web界面, 事件创建, 事件生命周期管理, 仪表盘, 原型设计, 响应动作, 响应协调, 域名枚举, 威胁情报, 威胁缓解, 安全事件响应, 安全信息库, 安全警报, 安全运营中心, 审计事件, 工厂模式, 开发者工具, 开源项目, 授权检查, 数据规范化, 策略模式, 网络映射, 装饰者模式, 观察者模式, 责任链模式, 软件架构