msMonitor安全声明
系统安全加固
建议用户在系统中配置开启ASLR(级别2 ),又称全随机地址空间布局随机化,可参考以下方式进行配置:
echo 2 > /proc/sys/kernel/randomize_va_space
运行用户建议
-
用户须自行保证使用最小权限原则(如禁止其他用户可写,常见做法是避免使用666、777权限)。
-
安装或使用工具前请确保执行用户的umask值大于等于0027,否则会导致源码编译失败、读取配置文件失败、生成的目录和文件权限过大等问题。
-
本代码仓中的工具设计为低权限安装使用,出于安全性及权限最小化角度考虑,不应使用root等高权限账户安装执行,建议使用普通用户权限。
-
若工具使用依赖CANN,为保证安全,应使用同一低权限用户默认安装的CANN包,执行source命令后不要随意修改set_env.sh中涉及的环境变量。
文件权限控制
-
msMonitor在线监测功能在默认安全模式下,需提供根证书、服务端证书、服务端私钥文件、证书吊销列表文件所在的目录,用户需保证目录权限为700、证书等文件权限为600。
-
用户向工具提供输入文件时,建议提供的文件属主与工具进程属主一致,且文件权限他人不可修改(包括group、others)。工具落盘文件权限默认他人不可写,用户可根据需要自行对生成后的相关文件进行权限控制。
-
用户安装和使用过程需要做好权限控制,建议参考下表文件权限参考进行设置。
MindStudio-Monitor
| 类型 | Linux权限参考最大值 |
|---|---|
| 用户主目录 | 750(rwxr-x---) |
| 程序文件(含脚本文件、库文件等) | 550(r-xr-x---) |
| 程序文件目录 | 550(r-xr-x---) |
| 配置文件 | 640(rw-r-----) |
| 配置文件目录 | 750(rwxr-x---) |
| 日志文件(记录完毕或者已经归档) | 440(r--r-----) |
| 日志文件(正在记录) | 640(rw-r-----) |
| 日志文件目录 | 750(rwxr-x---) |
| Debug文件 | 640(rw-r-----) |
| Debug文件目录 | 750(rwxr-x---) |
| 临时文件目录 | 750(rwxr-x---) |
| 维护升级文件目录 | 770(rwxrwx---) |
| 业务数据文件 | 640(rw-r-----) |
| 业务数据文件目录 | 750(rwxr-x---) |
| 密钥组件、私钥、证书、密文文件目录 | 700(rwx------) |
| 密钥组件、私钥、证书、加密密文 | 600(rw-------) |
| 加解密接口、加解密脚本 | 500(r-x------) |
漏洞安全声明
漏洞机制说明参考msMonitor漏洞机制声明。
数据安全声明
- 工具使用过程中需要加载和保存数据,可能存在数据风险。
- 工具使用过程中通常会从硬盘中读取您从互联网所下载的模型权重(通过您提供的命令行参数或配置文件),使用非可信的模型权重可能会导致未知的安全风险,建议您在使用工具前通过SHA256校验等方法,确保模型权重可信后再传递给工具。
构建安全声明
msMonitor支持源码编译安装,在编译时会下载依赖第三方库并执行构建shell脚本,在编译过程中会产生临时程序文件和编译目录。用户可根据需要自行对源代码目录内的文件进行权限管控降低安全风险,用户在构建过程中可根据需要修改构建脚本以避免相关安全风险,并注意构建结果的安全。
运行安全声明
-
工具加载数据集时,如数据集加载内存大小超出内存容量限制,可能引发错误并导致进程意外退出;采集时间过长导致生成数据超过剩余磁盘空间大小时,可能会导致异常退出。
-
工具在运行异常时会退出进程并打印报错信息,属于正常现象。建议用户根据报错提示定位具体错误原因,包括查看日志文件,采集解析过程中生成的结果文件等方式。
公网地址声明
在msMonitor仓工具的配置文件和脚本中存在的公网地址信息
公开接口声明
msMonitor项目采用C++和Python联合开发,提供的对外接口均已在资料中公开,正式接口只提供Python接口,动态库不直接对外提供服务,不建议用户直接调用内部未公开的接口。
python等脚本语言,源码发布,建议直接使用资料说明的公开接口,不建议直接调用未明确公开的接口源码。
安全函数使用说明
不强制禁用不安全函数,但推荐使用缓冲区长度作为参数明确传入的_s安全版本,如memset_s、memcpy_s等
通信安全加固
1.dynolog原生全零监听安全风险
背景: msMonitor引入了开源第三方库dynolog。msMonitor对dynolog进行了NPU适配,适配引入的文件msmonitor/dynolog_npu/dynolog/src/rpc/SimpleJsonServer.cpp中包含全零监听代码,为保证工具功能和易用性,未对原生dynolog全零监听进行修改。
风险: 该库的dynolog/src/rpc/SimpleJsonServer.cpp文件包含全零监听功能(bind to in6addr_any),通过 IPv6 套接字处理连接请求,默认支持同时兼容 IPv4 与 IPv6 协议,存在网络暴露安全风险。该安全风险来源于dynolog开源三方库。
风险消减措施: 在默认安全模式下,需提供根证书、服务端证书、服务端私钥文件、客户端证书、客户端私钥文件、证书吊销列表文件,用户需保证提供的证书文件的有效性、合法性,同时用户需保证证书所在的目录文件权限为700、证书等文件权限为600;建议用户配置 iptables 等防火墙机制限制对 RPC 端口的网络访问;若需限制 IPv4 协议访问 dynolog 服务的能力,可执行命令echo 1 > /proc/sys/net/ipv6/bindv6only,确保该服务仅允许通过 IPv6 访问。
通信矩阵
通信矩阵信息
| 序号 | 代码仓 | 功能 | 源设备 | 源IP | 源端口 | 目的设备 | 目的IP | 目的端口(侦听) | 协议 | 端口说明 | 端口配置 | 侦听端口是否可更改 | 认证方式 | 加密方式 | 所属平面 | 版本 | 特殊场景 | 备注 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | MindStudio-Monitor | dyno和dynolog RPC通信 | dyno客户端 | 运行dyno客户端进程的服务器的ip | dynolog服务端所在服务器 | dynolog服务端所在服务器的ip | 1778 | TCP | RPC通信 | 不涉及 | 可修改 | 证书密钥 | TLS | 业务面 | 所有版本 | 无 |
免责声明
-
本工具仅供调试和开发使用,使用者需自行承担使用风险,并理解以下内容:
- 数据处理及删除:用户在使用本工具过程中产生的数据属于用户责任范畴。建议用户在使用完毕后及时删除相关数据,以防信息泄露。
- 数据保密与传播:使用者了解并同意不得将通过本工具产生的数据随意外发或传播。对于由此产生的信息泄露、数据泄露或其他不良后果,本工具及其开发者概不负责。
- 用户输入安全性:用户需自行保证输入的命令行的安全性,并承担因输入不当而导致的任何安全风险或损失。对于输入命令行不当所导致的问题,本工具及其开发者概不负责。
-
免责声明范围:本免责声明适用于所有使用本工具的个人或实体。使用本工具即表示您同意并接受本声明的内容,并愿意承担因使用该功能而产生的风险和责任,如有异议请停止使用本工具。
-
在使用本工具之前,请谨慎阅读并理解以上免责声明的内容。对于使用本工具所产生的任何问题或疑问,请及时联系开发者。