MindSpeed RL 安全声明

系统安全加固

  • 用户可在运行系统配置时开启 ASLR(级别2)以提高系统安全性,保护系统随机化开启。
    可参考以下方式进行配置:

    echo 2 > /proc/sys/kernel/randomize_va_space
    

运行用户建议

  • 基于安全性考虑,建议您在执行任何命令时,不建议使用root等管理员类型账户执行,遵循权限最小化原则。

文件权限控制

  1. 建议用户在主机(包括宿主机)及容器中设置运行系统umask值为0027及以上,保障新增文件夹默认最高权限为750,新增文件默认最高权限为640。
  2. 建议用户对个人数据、商业资产、源文件、训练过程中保存的各类文件等敏感内容做好权限管控。涉及场景如MindSpeed RL安装目录权限管控、多用户使用共享数据集权限管控,管控权限可参考表1进行设置。
  3. MindSpeed RL在数据预处理中会生成训练数据,在训练过程会生成权重文件,文件权限默认640,用户可根据实际需求对生成文件权限进行进阶管控。

表1 文件(夹)各场景权限管控推荐最大值

类型 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------)

运行安全声明

  • 建议用户结合运行环境资源状况编写对应训练脚本。若训练脚本与资源状况不匹配,如数据集加载内存大小超出内存容量限制、训练脚本在本地生成数据超过磁盘空间大小等情况,可能引发错误并导致进程意外退出。
  • MindSpeed RL 在运行异常时会退出进程并打印报错信息,建议根据报错提示定位具体错误原因,包括设定算子同步执行、查看 CANN 日志、解析生成的 Core Dump 文件等方式。

数据安全声明

程序运行过程中,会通过nltk.load从用户指定的路径中加载语料库,需要保证网络安全,确保下载的语料包来源可信。

远程代码执行安全声明

系统默认启用远程代码执行功能(trust_remote_code=true),该配置允许系统加载和运行自定义模型架构(如非官方模型结构、自定义算子等),根据模型配置从远程仓库下载并执行相关脚本,因此需要保证网络安全,并确保代码来源的可信性。建议优先使用官方或经过认证的模型,以降低潜在安全风险。

公开接口声明

MindSpeed RL 暂时未发布wheel包,无正式对外公开接口,所有功能均通过shell脚本调用。入口脚本皆放置于cli目录下,分别为 train_grpo.py, train_orm.py, preprocess_data.py, convert_ckpt.py 和 infer_vllm.py。

公网地址声明

  • MindSpeed RL代码中包含公网地址声明如下表所示:
类型 文件名 公网IP地址/公网URL地址/域名/邮箱地址 用途说明
开源引入 MindSpeed-RL/tests/test_tools/dist_test.py https://github.com/microsoft/DeepSpeed/blob/master/tests/unit/common.py 开源引入 common 参考代码
开源引入 MindSpeed-RL/mindspeed_rl/utils/utils.py 8.8.8.8 引入公网IP地址

通信安全加固

通信安全加固说明

通信矩阵

通信矩阵说明

特殊场景

场景 使用方法 端口 可能的风险
用户下载并使用HuggingFace的开源数据集 调用load_dataset函数,并填写目标开源数据集路径 随机端口 数据集可能包含敏感或不合法内容,导致合规问题。数据集中可能存在质量问题,如标签错误或数据偏差,影响数据预处理。
使用 MindSpeed RL 进行训练任务时,新增32个端口 MindSpeed RL使用 ray 来拉起强化学习任务,并使用 pytorch 分布式训练相关的 API 拉起任一任务 [1024,65520]内 网络配置错误可能引发端口冲突或连接问题,影响训练效率。
用户将训练日志上传到wandb实现可视化 用户需要注册wandb账号,并开启use_wandb服务,系统将根据wandb login key将生成的日志同步到云端,利用WandB的强大功能实现可视化 随机端口 可能导致wandb login key以及训练日志泄露,以及日志传输过程中被篡改。
调用socket.socket函数获取ip和端口 代码内部调用socket.socket函数,获取整网ip和端口 随机端口 可能导致整网ip和端口信息泄露。
用户通过nltk.download下载语料库 用户在代码内部使用nltk.download来实现语料库的下载 随机端口 文件来源若不可信,在文件加载时可能存在反序列化漏洞,导致文件被篡改。
用户启用远程代码执行时,transformers库自动执行远程模型仓库代码 transformers库调用AutoTokenizer等类的from_pretrained()函数加载并执行远程模型仓库中的自定义代码(如.py文件)。 随机端口 可能执行远程恶意代码,导致系统被入侵、数据泄露,甚至模型训练过程被完全掌控