NullSpace-BitCradle/Rapid7_InsightVM_Console_Resources
GitHub: NullSpace-BitCradle/Rapid7_InsightVM_Console_Resources
为 Rapid7 InsightVM SQL Query Export 接口提供完整的表结构参考、实体关系图和分类查询模板的综合文档库。
Stars: 1 | Forks: 0
# Rapid7 InsightVM SQL Query Export 文档
[](./COMPLETE_TABLE_REFERENCE.md)
[](./QUERIES/)
[](./RAPID7_INSIGHTVM_ERD.md)
[](LICENSE)
## 概述
本仓库包含目前最详尽的 **Rapid7 InsightVM SQL Query Export** 接口文档,提供详细的 schema 信息、表格参考,并为漏洞管理团队提供实践指南。
## 快速入门
### 面向漏洞管理团队
1. **从** [快速表格查询](./QUICK_TABLE_LOOKUP.md) **开始**,获取即时解答
2. **浏览** [SQL 查询](./QUERIES/),获取可直接运行的报告模板
3. **参考** [完整表格参考](./COMPLETE_TABLE_REFERENCE.md),获取详细的字段信息
4. **使用** [实体关系图](./RAPID7_INSIGHTVM_ERD.md) 了解表格关系
### 面向开发者和集成商
1. **从** [机器可读的 Schema 文件](./SCHEMA_FILES_README.md) **开始**,用于自动化和代码生成
2. **查阅** [完整表格参考](./COMPLETE_TABLE_REFERENCE.md),了解字段级别的详细信息
3. **研究** [实体关系图](./RAPID7_INSIGHTVM_ERD.md) 以进行数据建模
4. **使用** JSON schema 进行 MCP 集成、ORM 生成或构建查询器
## 文档文件
| 文件 | 描述 |
|------|-------------|
| [完整表格参考](./COMPLETE_TABLE_REFERENCE.md) | 包含字段描述、数据类型、约束和关键关系的全部 89 个表(64 个维度表 + 24 个事实表 + 1 个函数) |
| [快速表格查询](./QUICK_TABLE_LOOKUP.md) | 前 10 个表、用例分类、可直接使用的 SQL 示例、join 模式以及性能提示 |
| [实体关系图](./RAPID7_INSIGHTVM_ERD.md) | 展示表关系、事实表与维度表组织结构以及桥接表的 Mermaid 图表 |
| [Schema 文件指南](./SCHEMA_FILES_README.md) | 用于自动化、查询构建、MCP 开发和代码生成的 JSON schema 文件 |
## SQL 查询
在 [`./QUERIES/`](./QUERIES/) 中提供了 151 个可直接运行的 SQL 查询,按用例进行分类:
| 类别 | 查询示例 | 描述 |
|----------|----------------|-------------|
| **资产清单** | `COMPREHENSIVE_ASSET_INVENTORY`, `LIVE_ASSETS`, `ASSET_COUNT` | 资产发现、主机详情、IP/MAC/OS 数据 |
| **漏洞** | `ALL_ASSETS_ALL_VULNS`, `MOST_CRITICAL_VULNERABILITIES`, `VULN_AGING` | 漏洞发现、严重程度、时效性、漏洞利用状态 |
| **风险与优先级排序** | `ASSETS_ORDERED_BY_RISK`, `TOP_10_RISKIEST_ASSETS`, `ASSET_CONTEXT_DRIVEN_RISK` | 风险评分、优先修复目标 |
| **修复** | `TOP_25_REMEDIATION_REPORT`, `REMEDIATION_SUMMARY`, `TRACK_REMEDIATION` | 解决方案跟踪、修复进度、汇总报告 |
| **合规性** | `POLICY_COMPLIANCE`, `POLICY_RESULTS_AND_EXCEPTIONS`, `POLICY_REPORT_WITH_DETAILS` | 策略规则结果、合规百分比、例外情况 |
| **身份验证** | `LIST_ASSETS_WITH_CREDENTIAL_STATUS`, `AUTHENTICATION_SERVICE_STATUS` | 凭据验证、扫描身份验证结果 |
| **软件** | `SOFTWARE_INVENTORY`, `OBSOLETE_SOFTWARE`, `DETECT_FIREFOX_PER_VERSION` | 已安装软件、过时的 OS/软件检测 |
| **扫描** | `SCAN_DURATION_REPORT`, `RECENTLY_SCANNED_ASSETS`, `SCAN_HISTORY_RISK` | 扫描性能、覆盖范围、历史记录 |
| **趋势分析** | `ASSET_GROUP_COMPARE_4_WEEK_TREND`, `HISTORICAL_VULNERABILITY_FINDINGS` | 周环比比较、历史快照 |
| **SSL/TLS** | `TLS_1_VULNERABILITIES`, `SSL_ALL_CERTS`, `ASSETS_WITH_EXPIRING_CERTIFICATES` | 证书清单、TLS/SSL 协议发现 |
| **热门主题** | `LOG4J_QUERY_BY_INSTANCE`, `SMBV1_ENABLED`, `ASSET_WITH_SHELL_SHOCK` | 针对高知名度漏洞的查询 |
### 如何使用
1. 在 InsightVM SQL Query Export 控制台或您的 PostgreSQL 客户端中打开 `./QUERIES/` 中的查询
2. 检查 `FROM`/`JOIN` 的表以及任何 `WHERE` 过滤条件 —— 根据您的环境(站点、标签、日期)进行调整
3. 在测试期间先使用 `LIMIT`,然后在用于报告和仪表板时将其删除或调整
4. 许多查询包含带有用途、数据源和预估行数说明的头部注释
### 性能提示
- 对于计数和聚合,建议优先使用**事实表**
- 在大型 join 之前,使用 `WHERE` 子句**尽早过滤**
- 在开发和测试期间**限制结果数量**
- 带有 `WARNING` 注释的查询可能会返回庞大的结果集 —— 在生产环境中运行前请添加过滤条件
## Schema 概述
### 表分布
- **维度表:** 64(主数据、查找表、配置)
- **事实表:** 24(指标、度量、聚合)
- **函数:** 1(修复分析)
### 关键实体类别
| 类别 | 描述 | 核心表 |
|----------|-------------|-------------|
| **资产** | 主机、服务器、网络设备 | `dim_asset`, `fact_asset` |
| **漏洞** | 安全发现和 CVSS 评分 | `dim_vulnerability`, `fact_asset_vulnerability_instance` |
| **扫描** | 发现和评估活动 | `dim_scan`, `fact_scan`, `fact_asset_scan` |
| **策略** | 合规性和配置检查 | `dim_policy`, `dim_policy_rule`, `fact_asset_policy` |
| **解决方案** | 修复建议 | `dim_solution`, `fact_remediation()` |
| **例外** | 风险接受和排除项 | `dim_vulnerability_exception` |
### 数据模型类型
- **累积快照表** —— 当前状态 (`fact_asset`, `fact_vulnerability`)
- **事务事实表** —— 历史事件 (`fact_asset_scan`, `fact_scan`)
- **桥接表** —— 多对多关系
- **查找表** —— 引用数据和枚举值
## 常见用例
### 带有漏洞数量的资产清单
```
SELECT
da.ip_address,
da.host_name,
fa.vulnerabilities,
fa.critical_vulnerabilities,
fa.riskscore
FROM dim_asset da
JOIN fact_asset fa ON da.asset_id = fa.asset_id
WHERE fa.vulnerabilities > 0
ORDER BY fa.riskscore DESC;
```
### 带有解决方案的关键漏洞
```
SELECT
dv.title,
dv.severity,
dv.cvss_score,
ds.summary,
ds.solution_type
FROM dim_vulnerability dv
JOIN dim_vulnerability_solution dvs ON dv.vulnerability_id = dvs.vulnerability_id
JOIN dim_solution ds ON dvs.solution_id = ds.solution_id
WHERE dv.severity = 'Critical'
ORDER BY dv.cvss_score DESC;
```
### 按资产划分的合规性策略
```
SELECT
da.ip_address,
dp.title AS policy_name,
fap.rule_compliance,
fap.compliant_rules,
fap.noncompliant_rules
FROM fact_asset_policy fap
JOIN dim_asset da ON fap.asset_id = da.asset_id
JOIN dim_policy dp ON fap.policy_id = dp.policy_id
WHERE fap.rule_compliance < 100
ORDER BY fap.rule_compliance ASC;
```
## 技术细节
### 前置条件
- 启用了 SQL Query Export 的 **Rapid7 InsightVM**
- **数据库访问权限**(本地控制台或托管版)
- 用于构建查询的 **SQL 知识**
- **PostgreSQL**(用于本地控制台访问)
### 支持的版本
- **InsightVM 6.x** 及更高版本
- **PostgreSQL 9.x** 及更高版本
- **SQL Query Export** 接口
## 免责声明
- 本文档基于对 InsightVM SQL Query Export 接口的广泛分析
- **未经 Rapid7 官方验证** —— 仅作参考,不作为规范说明
- **Schema 可能因** InsightVM 版本和配置的不同而有所差异
- **自定义配置** 可能会影响表结构
- 在生产环境中使用前,**务必在**您的具体环境中验证字段名称和数据类型
## 许可证
本项目基于 MIT 许可证授权 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。
## 致谢
- **Rapid7**,感谢其提供的 InsightVM 平台和 SQL Query Export 接口
- **漏洞管理社区**,感谢其提供的反馈和贡献
- **安全团队**,感谢其提供的真实用例和示例
标签:GPT, Homebrew安装, Rapid7 InsightVM, 代码示例, 多线程, 技术文档, 数据分析, 数据库文档, 测试用例, 漏洞管理