msTT安全声明¶
系统安全加固¶
建议用户在系统中配置开启ASLR(级别2),又称全随机地址空间布局随机化,可参考以下方式进行配置:
echo 2 > /proc/sys/kernel/randomize_va_space
运行用户建议¶
出于安全性及权限最小化角度考虑,本代码仓中的工具均不应使用root等高权限账户使用,建议使用普通用户权限安装执行。
文件权限控制¶
-
msMonitor在线监控、msProbe在线预检功能在默认安全模式下,需提供根证书、服务端证书、服务端私钥文件、证书吊销列表文件所在的目录,用户需保证目录权限为700、证书等文件权限为600。
-
用户向工具提供输入文件时,建议提供的文件属主与工具进程属主一致,且文件权限他人不可修改(包括group、others)。工具落盘文件权限默认他人不可写,用户可根据需要自行对生成后的相关文件进行权限控制。
-
用户安装和使用过程需要做好权限控制,建议参考如下文件权限参考表格进行设置。
文件权限参考
| 类型 | 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------) |
漏洞安全声明¶
tb-graph-ascend工具在开发态的依赖webpack-dev-server,4.x版本已被识别存在已知的安全漏洞(CVE-2025-30359、CVE-2025-30360),但最终构建生成的发布产物(生产环境代码/包)中,不包含webpack-dev-server或其相关代码,用户使用也不会下载这个依赖库。因此,该漏洞不会影响使用本工具生成的最终应用程序的安全性,也不会被终端用户下载或触发,但需要开发者自行保证开发过程中的安全性。
漏洞机制说明请参见MindStudio漏洞机制说明。
数据安全声明¶
工具使用过程中需要加载和保存数据,部分接口直接或间接使用风险模块pickle,可能存在数据风险,如torch.load等接口,可参考torch.load了解具体风险。
构建安全声明¶
msMonitor、msProbe支持源码编译安装,在编译时会下载依赖第三方库并执行构建shell脚本,在编译过程中会产生临时程序文件和编译目录。用户可根据需要自行对源代码目录内的文件进行权限管控降低安全风险,用户在构建过程中可根据需要修改构建脚本以避免相关安全风险,并注意构建结果的安全。
运行安全声明¶
-
工具加载数据集时,如数据集加载内存大小超出内存容量限制,可能引发错误并导致进程意外退出;采集时间过长导致生成数据超过剩余磁盘空间大小时,可能会导致异常退出。
-
工具在运行异常时会退出进程并打印报错信息,属于正常现象。建议用户根据报错提示定位具体错误原因,包括查看日志文件,采集解析过程中生成的结果文件等方式。
-
精度工具msProbe:
使用前提:被采集对象的python源码应可读可执行以便获取公开调用栈等公开信息
使用场景:用户需要进行模型精度分析时,可以在模型训练开脚本中添加msProbe的dump接口,执行训练的同时采集精度数据,完成训练后直接输出精度数据文件。数据文件内容包含模型中的API数据、模型结构以及API调用的堆栈信息(方便定位到在精度问题的API时,能快速找到该API在模型中的位置)。
风险提示:使用该功能会在本地生成精度数据,用户需加强对相关精度数据文件的保护,请在需要模型精度分析时使用,分析完毕后及时关闭。
- 为了避免远程代码注入攻击,如涉及到--trust-remote-code参数,请将其设置为False。
公网地址声明¶
在msTT仓工具的配置文件和脚本中存在的公网地址信息
公开接口声明¶
msTT项目采用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),存在网络暴露安全风险。该安全风来源于dynolog开源三方库。
风险消减措施:在默认安全模式下,需提供根证书、服务端证书、服务端私钥文件、客户端证书、客户端私钥文件、证书吊销列表文件,用户需保证提供的证书文件的有效性、合法性,同时用户需保证证书所在的目录文件权限为700、证书等文件权限为600;建议用户配置iptables等防火墙机制限制对RPC端口的网络访问。
2. 模型分级可视化TensorBoard插件
背景:模型分级可视化插件(plugins/tensorboard-plugins/tb_graph_ascend)基于TensorBoard底座开发和调试,安装插件完毕,需要启动TensorBoard后使用。
风险:TensorBoard启动时可以通过--host指定IP,或通过--bind-all指定绑定在全零监听。由于分级可视化插件仅为TensorBoard的插件,无法针对TensorBoard自身服务进行安全加固,建议用户使用时确保环境安全。
风险消减措施:建议使用时绑定--host=127.0.0.1或localhost,并尽量避免使用root用户启动。如因远程访问场景需要将TensorBoard服务启动在非localhost,建议用户确保环境自身的安全以及通过网络安全加固方案进行防护,如通过iptables等访问控制策略限制使用的客户端,或通过nginx等反向代理工具进行https加固。
通信矩阵¶
通信矩阵信息
| 序号 | 代码仓 | 功能 | 源设备 | 源IP | 源端口 | 目的设备 | 目的IP | 目的端口 (侦听) |
协议 | 端口说明 | 端口配置 | 侦听端口是否可更改 | 认证方式 | 加密方式 | 所属平面 | 版本 | 特殊场景 | 备注 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | msMonitor | dyno和dynolog RPC通信 | dyno客户端 | 运行dyno客户端进程的服务器的ip | dynolog服务端所在服务器 | dynolog服务端所在服务器的ip | 1778 | TCP | RPC通信 | 不涉及 | 可修改 | 证书密钥 | TLS | 业务面 | 所有版本 | 无 | ||
| 2 | tensorboard-plugins、msProbe | TensorBoard底座前后端通信 | 访问TensorBoard浏览器所在机器 | 访问TensorBoard浏览器所在机器ip | TensorBoard服务所在机器 | TensorBoard服务所在服务器的ip | 6006 | HTTP | TensorBoard底座非交付范围,若选择使用可能会开放端口,TensorBoard默认开放的端口是6006,用户也可指定开放其他端口 | --port | 可修改 | 业务面 | 所有版本 | 无 |
免责声明¶
-
本工具仅供调试和开发之用,使用者需自行承担使用风险,并理解以下内容:
-
数据处理及删除:用户在使用本工具过程中产生的数据(包括但不限于dump的数据)属于用户责任范畴。建议用户在使用完毕后及时删除相关数据,以防泄露或不必要的信息泄露。
- 数据保密与传播:使用者了解并同意不得将通过本工具产生的数据随意外发或传播。对于由此产生的信息泄露、数据泄露或其他不良后果,本工具及其开发者概不负责。
- 用户输入安全性:用户需自行保证输入的命令行的安全性,并承担因输入不当而导致的任何安全风险或损失。对于由于输入命令行不当所导致的问题,本工具及其开发者概不负责。
- 免责声明范围:本免责声明适用于所有使用本工具的个人或实体。使用本工具即表示您同意并接受本声明的内容,并愿意承担因使用该功能而产生的风险和责任,如有异议请停止使用本工具。
- 在使用本工具之前,请谨慎阅读并理解以上免责声明的内容。对于使用本工具所产生的任何问题或疑问,请及时联系开发者。