UOS CVE 漏洞检查技能
技能概述
这是一个用于检查 UOS(统信操作系统)系统 CVE 漏洞的技能。当用户需要检查特定漏洞是否影响 UOS 系统,或者需要获取漏洞修复信息和补丁下载链接时,应自动调用此技能。
本技能具有以下特点:
- 零依赖:仅依赖 Python 标准库和 requests 库,兼容 Python 3.x
- 多格式支持:支持四种漏洞编号格式(CVE、CNNVD、CNVD、UT)
- 简单易用:通过命令行参数直接调用,无需复杂的配置
- 自动下载:支持自动下载漏洞修复补丁
适用场景
当用户提出以下类型的请求时,应调用此技能:
- 检查某个 CVE 漏洞是否影响 UOS 系统
- 查询 UOS 系统的安全漏洞信息
- 获取漏洞修复版本和补丁下载链接
- 批量检查多个 CVE 漏洞
- 下载 CVE 漏洞的修复补丁
使用条件
在调用此技能之前,需要确保以下条件满足:
- 目标系统为 UOS(统信操作系统)
- 需要提供操作系统版本号(桌面版或服务器版)
- 需要提供包含 CVE 编号列表的文件
- Python 环境中已安装 requests 库
- 运行环境能够访问 UOS 安全公告网站(src.uniontech.com)
调用方法
此技能通过执行 Python 脚本来实现功能。Agent 应使用 bash 工具调用 cve_checker.py 脚本。
基本调用格式
cd ~/.config/aish/skills/check_cve/scripts/ && python3 cve_checker.py <系统版本> <CVE文件> [-d]
参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
| <系统版本> | 是 | 操作系统版本号 |
| <CVE文件> | 是 | 包含漏洞编号列表的文件路径 |
| -d | 否 | 是否下载补丁,添加此参数启用下载功能 |
版本号格式说明
- 服务器系统:格式为 1070e、1070a 等,其中数字部分为主版本号,字母部分表示服务器类型
- a = ServerA
- c = ServerC
- e = ServerE
- d = ServerD
- 桌面系统:格式为 1070、1050 等,直接使用数字版本号
漏洞文件格式
CVE 文件应包含漏洞编号,每行一个编号。支持以下四种格式:
- CVE 标准格式:CVE-2024-57900
- CNNVD 格式:CNNVD-202501-2163
- CNVD 格式:CNVD-2025-02113
- 统信内部格式:UT-2025-0006
脚本会自动从文件内容中提取匹配的漏洞编号。
使用示例
示例 1:检查 UOS 桌面版 1070 的漏洞
cd ~/.config/aish/skills/check_cve/scripts/ && python3 cve_checker.py 1070 /path/to/cve_list.txt
或者
cd ~/.config/aish/skills/check_cve/scripts/ && python3 cve_checker.py 1070 CNVD-2025-02113
示例 2:检查 UOS 服务器版 1070e 的漏洞
cd ~/.config/aish/skills/check_cve/scripts/ && python3 cve_checker.py 1070e /path/to/cve_list.txt
或者
cd ~/.config/aish/skills/check_cve/scripts/ && python3 cve_checker.py 1070e CNVD-2025-02113
示例 3:检查漏洞并下载补丁
cd ~/.config/aish/skills/check_cve/scripts/ && python3 cve_checker.py 1070e /path/to/cve_list.txt -d
或者
cd ~/.config/aish/skills/check_cve/scripts/ && python3 cve_checker.py 1070e CNVD-2025-02113 -d
示例 4:CVE 文件内容示例
文件 /path/to/cve_list.txt 内容:
CVE-2024-57900
CNNVD-202501-2163
CNVD-2025-02113
UT-2025-0006
或者混合在文本中:
根据安全公告,漏洞 CVE-2024-57900 已修复。
同时 CNNVD-202501-2163 也需要关注。
输出说明
脚本执行完成后会生成以下输出:
控制台输出
显示每个漏洞的检查结果,包括:
- 受影响漏洞:显示 CVE 编号、受影响的软件包名称、修复后的版本号、漏洞补丁下载链接
- 不受影响漏洞:显示 CVE 编号、软件包名称、修复状态
- 未查询到:显示 CVE 编号、查询状态
- 下载信息:显示补丁下载进度和结果
CSV 结果文件
在脚本运行目录生成 cve_info.csv 文件,包含以下字段:
| 字段名 | 说明 |
|---|---|
| CVE 编号 | 漏洞的唯一标识符 |
| 受影响软件 | 受影响的软件包名称 |
| 修复版本 | 修复后的版本号(不受影响时显示"不受影响") |
| 漏洞补丁下载链接 | 补丁下载链接(可能为空) |
下载的补丁文件
如果指定了 -d 参数,补丁文件会保存在以下目录结构中:
当前目录或者用户要求目录/
├── cve_info.csv # 检查结果
├── x86_64/ # x86_64 架构补丁
│ ├── package1.deb
│ └── package2.deb
├── arm64/ # ARM64 架构补丁
│ └── package3.deb
└── ...
脚本会自动跳过已存在的文件,避免重复下载。
结果处理
Agent 在调用此技能后应:
- 检查命令执行是否成功
- 读取生成的 cve_info.csv 文件(如果存在)
- 向用户呈现清晰的漏洞检查结果,包括:
- 每个漏洞的检查状态
- 受影响软件的详细信息
- 修复建议和补丁链接
- 如果用户需要,提供补丁下载链接或说明下载已完成
- 告知用户结果文件的位置
注意事项
- 网络要求:脚本需要访问 UOS 安全公告网站(src.uniontech.com),请确保网络连接正常
- 版本匹配:确保提供的操作系统版本号格式正确,否则可能导致查询失败
- 文件路径:确保 CVE 文件路径正确且文件可读
- 并发限制:建议不要在短时间内大量查询,以免对目标服务器造成压力
- 下载限制:大量下载补丁可能会占用较多磁盘空间和带宽,请谨慎使用 -d 参数
- 工作目录:脚本会在当前工作目录生成结果文件和下载的补丁,请确保有足够的磁盘空间和写权限
- 错误重试:脚本会对网络请求自动重试 3 次,间隔 2 秒
错误处理
如果技能执行过程中出现错误,Agent 应:
- 参数错误:提示用户正确的参数格式和使用方法
- 文件不存在:检查 CVE 文件路径是否正确,文件是否存在且可读
- 网络错误:检查网络连接,可能需要重试
- 权限错误:确保当前用户对工作目录有写权限
- 其他错误:向用户报告错误信息并提供解决建议
常见错误信息及解决方法:
- 用法: python3 cve_checker.py <系统版本> <CVE文件> [-d]:参数不足,请提供系统版本和 CVE 文件路径
- FileNotFoundError: [Errno 2] No such file or directory: xxx:CVE 文件不存在,请检查文件路径
- 查询 xxx 时请求失败: xxx:网络请求失败,可能是网络连接问题或目标服务器不可用
依赖安装
在使用此技能之前,请确保安装了 requests 库:
sudo apt install python3-requests
技能维护
此技能的底层功能由 cve_checker.py 脚本提供,该脚本调用 UOS 官方安全公告接口获取漏洞信息。当 UOS 网站接口发生变化时,可能需要更新脚本中的接口调用逻辑。
技能本身不需要额外维护,只需确保 requests 库保持更新即可。