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界面, 事件创建, 事件生命周期管理, 仪表盘, 原型设计, 响应动作, 响应协调, 域名枚举, 威胁情报, 威胁缓解, 安全事件响应, 安全信息库, 安全警报, 安全运营中心, 审计事件, 工厂模式, 开发者工具, 开源项目, 授权检查, 数据规范化, 策略模式, 网络映射, 装饰者模式, 观察者模式, 责任链模式, 软件架构