JaspreetRFSingh/sentinel-hub

GitHub: JaspreetRFSingh/sentinel-hub

基于 Spring Boot 的安全运营平台,整合威胁检测、事件响应与漏洞管理,通过对接主流 SIEM 和 EDR 实现统一可视性与自动化响应。

Stars: 0 | Forks: 0

# Sentinel Hub 用于威胁检测、事件响应和漏洞管理的安全运营平台。 ## 概述 Sentinel Hub 是一个综合性的安全运营平台,旨在跨云原生和混合基础设施检测、调查和响应安全威胁。它与主流的 SIEM 和 EDR 解决方案集成,提供统一的可视性和自动化响应能力。 ## 架构 ``` ┌─────────────────────────────────────────────────────────────────┐ │ Sentinel Hub Platform │ ├─────────────────────────────────────────────────────────────────┤ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐ │ │ │ Detection │ │ Incident │ │ Vulnerability │ │ │ │ Engine │ │ Management │ │ Management │ │ │ └──────┬───────┘ └──────┬───────┘ └──────────┬───────────┘ │ │ │ │ │ │ │ ┌──────┴─────────────────┴──────────────────────┴───────────┐ │ │ │ SIEM Integration Layer │ │ │ │ (Splunk, Azure Sentinel, QRadar) │ │ │ └─────────────────────────────┬─────────────────────────────┘ │ │ │ │ │ ┌─────────────────────────────┴─────────────────────────────┐ │ │ │ EDR Integration Layer │ │ │ │ (CrowdStrike, SentinelOne) │ │ │ └────────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────┘ ``` ## 核心能力 ### 威胁检测 - **检测规则**:基于签名、基于异常、基于行为和威胁情报的规则 - **实时评估**:亚秒级检测的安全事件流处理 - **威胁狩猎**:用于主动威胁狩猎的即席查询功能 - **告警关联**:智能关联相关告警以减少噪音 ### 事件响应 - **事件管理**:从检测到解决的全生命周期管理 - **响应剧本**:具有可自定义操作的自动化响应工作流 - **升级工作流**:基于严重性和 SLA 的自动升级 - **时间线跟踪**:所有事件活动的详细审计追踪 ### 漏洞管理 - **漏洞跟踪**:基于 CVE 的漏洞数据库及 CVSS 评分 - **风险优先级排序**:关键漏洞的识别与跟踪 - **修复工作流**:带有分配机制的端到端修复跟踪 - **指标与趋势**:全面的仪表板和趋势分析 ### 安全集成 - **SIEM 集成**:与 Splunk、Azure Sentinel 和 QRadar 原生集成 - **EDR 集成**:与 CrowdStrike Falcon 和 SentinelOne 直接集成 - **自动化响应**:主机隔离、文件隔离和进程终止 ## 技术栈 - **运行时**:Java 17 - **框架**:Spring Boot 3.2.4 与 Spring Security - **搜索**:Elasticsearch 8.12.2 - **流处理**:Apache Kafka 3.7.0 - **数据库**:PostgreSQL 与 Flyway 迁移 - **可观测性**:Micrometer、Prometheus ## 入门指南 ### 前置条件 - Java 17 或更高版本 - Maven 3.8+ - PostgreSQL 14+ - Elasticsearch 8.12+ - Apache Kafka 3.7+ ### 配置 编辑 `src/main/resources/application.yml`: ``` spring: datasource: url: jdbc:postgresql://localhost:5432/sentinelhub username: sentinel password: ${DB_PASSWORD:sentinel} security: user: name: ${SECURITY_ADMIN_USER:admin} password: ${SECURITY_ADMIN_PASSWORD:admin123} sentinelhub: elasticsearch: enabled: true hosts: localhost:9200 username: elastic password: ${ELASTIC_PASSWORD:changeme} siem: enabled: true integration-type: splunk splunk: hec-url: ${SPLUNK_HEC_URL:} hec-token: ${SPLUNK_HEC_TOKEN:} edr: enabled: true integration-type: crowdstrike crowdstrike: client-id: ${CROWDSTRIKE_CLIENT_ID:} client-secret: ${CROWDSTRIKE_CLIENT_SECRET:} base-url: ${CROWDSTRIKE_BASE_URL:} detection: rules-refresh-interval-seconds: 60 alert-threshold: 0.7 ``` ### 构建 ``` mvn clean package ``` ### 运行 ``` java -jar target/sentinel-hub-1.0.0.jar ``` ## API 参考 ### 检测 API ``` # 创建检测规则 POST /api/v1/detection/rules Content-Type: application/json { "ruleId": "brute-force-detection", "name": "Brute Force Login Detection", "description": "Detects multiple failed login attempts", "type": "ANOMALY_BASED", "severity": "HIGH", "query": "type=AUTHENTICATION AND success=false", "evaluationWindow": "PT5M", "threshold": 5, "dataSource": ["auth-logs"], "enabled": true, "tags": ["authentication", "brute-force"], "mitigation": "Block source IP and notify security team" } # 接收安全事件 POST /api/v1/detection/events Content-Type: application/json { "eventId": "evt-001", "type": "AUTHENTICATION", "source": "auth-service", "sourceIp": "192.168.1.100", "userId": "user@example.com", "hostname": "workstation-01", "severity": "MEDIUM", "properties": { "success": false, "failureReason": "invalid_password" }, "timestamp": "2024-01-15T10:30:00Z" } # 执行威胁狩猎 POST /api/v1/detection/hunt Content-Type: application/json { "name": "Suspicious IP Hunt", "indicators": ["192.168.1.100", "10.0.0.50"], "timeRange": "PT24H", "analyst": "analyst@example.com" } ``` ### 事件管理 API ``` # 创建事件 POST /api/v1/incidents Content-Type: application/json { "title": "Suspected Brute Force Attack", "severity": "HIGH", "priority": "P2", "relatedAlertIds": ["alert-001", "alert-002"], "attackVector": "CREDENTIAL_THEFT", "description": "Multiple failed login attempts detected", "affectedSystems": ["auth-service", "user-portal"], "assignedTo": "security-analyst", "tags": ["authentication", "brute-force"] } # 更新事件状态 POST /api/v1/incidents/{incidentId}/status?status=INVESTIGATING&updatedBy=analyst # 升级事件 POST /api/v1/incidents/{incidentId}/escalate?reason=SLA_breach&escalatedBy=manager # 执行响应 playbook POST /api/v1/incidents/playbooks/{playbookId}/execute?incidentId=INC-001&executor=analyst ``` ### 漏洞管理 API ``` # 注册漏洞 POST /api/v1/vulnerabilities Content-Type: application/json { "vulnerabilityId": "vuln-001", "cveId": "CVE-2024-1234", "title": "Remote Code Execution in Web Framework", "description": "A critical RCE vulnerability...", "cvss": { "baseScore": 9.8, "vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", "severity": "CRITICAL" }, "affectedAsset": "web-server-01", "affectedComponent": "web-framework", "affectedVersion": "2.1.0", "remediation": "Upgrade to version 2.2.0 or later" } # 获取漏洞指标 GET /api/v1/vulnerabilities/metrics # 修复漏洞 POST /api/v1/vulnerabilities/{vulnerabilityId}/remediate?remediatedBy=ops-team ``` ## 检测规则类型 | 类型 | 描述 | 用例 | |------|-------------|----------| | SIGNATURE_BASED | 针对已知威胁的模式匹配 | 恶意软件签名、已知的恶意 IP | | ANOMALY_BASED | 偏离基线的统计异常 | 异常登录模式、数据渗透 | | BEHAVIORAL | 动作序列分析 | 横向移动、权限提升 | | THREAT_INTEL | 与威胁情报源集成 | 已知 C2 服务器、恶意域名 | | COMPLIANCE | 策略违规检测 | 缺失安全控制、配置漂移 | ## 响应剧本操作 - **ISOLATE_HOST**:受损主机的网络隔离 - **BLOCK_IP**:创建防火墙规则以阻止 IP - **DISABLE_USER**:在身份提供者中禁用账户 - **COLLECT_FORENSICS**:内存和磁盘镜像收集 - **NOTIFY_TEAM**:Slack/Teams/PagerDuty 通知 - **CREATE_TICKET**:创建 ServiceNow/Jira 工单 - **RUN_SCRIPT**:执行用于修复的自定义脚本 ## 监控 ### 健康检查端点 - `/actuator/health` - 整体健康状态 - `/actuator/metrics` - 应用程序指标 - `/actuator/prometheus` - Prometheus 指标端点 ### 关键指标 - `security.events.processed` - 已处理的安全事件总数 - `detection.rules.triggered` - 检测规则触发次数 - `alerts.active.count` - 活跃告警数量 - `incidents.open.count` - 按严重程度划分的待处理事件 - `vulnerabilities.critical.count` - 严重漏洞数量 - `response.playbook.executions` - 剧本执行次数 ## 安全注意事项 1. **认证**:所有 API 端点都需要通过 Spring Security 进行认证 2. **授权**:对敏感操作实行基于角色的访问控制 3. **审计日志**:记录所有与安全相关的操作 4. **数据加密**:传输中数据使用 TLS,支持静态数据加密 5. **机密管理**:通过环境变量注入外部机密 ## 许可证 专有软件 - 保留所有权利。
标签:AMSI绕过, Azure Sentinel, EDR, GPT, QRadar, SOAR, 域名枚举, 威胁情报, 威胁检测, 安全信息与事件管理, 安全运营平台, 开发者工具, 搜索引擎爬取, 攻击调查, 构建工具, 测试用例, 混合基础设施安全, 漏洞管理, 终端检测与响应, 统一可见性, 网络安全, 脆弱性评估, 自动化响应, 自定义请求头, 隐私保护