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, 域名枚举, 威胁情报, 威胁检测, 安全信息与事件管理, 安全运营平台, 开发者工具, 搜索引擎爬取, 攻击调查, 构建工具, 测试用例, 混合基础设施安全, 漏洞管理, 终端检测与响应, 统一可见性, 网络安全, 脆弱性评估, 自动化响应, 自定义请求头, 隐私保护