安全声明

系统安全加固

推荐运行环境ASLR级别为2,大部分系统默认为2。

# 查看ASLR级别
cat /proc/sys/kernel/randomize_va_space

# 设置ASLR级别为2(需要root权限)
sudo sh -c "echo 2 > /proc/sys/kernel/randomize_va_space"

运行用户建议

出于安全性及权限最小化角度考虑,不建议使用root等管理员类型账户使用torchvision_npu。

文件权限控制

  1. 建议用户在主机(包括宿主机)及容器中设置运行系统umask值为0027及以上,保障新增文件夹默认最高权限为750,新增文件默认最高权限为640。
  2. 建议用户对个人数据、商业资产、源文件、训练过程中保存的各类文件等敏感内容做好权限管控。涉及场景如torch_npu和torchvision_npu安装目录权限管控、多用户使用共享数据集权限管控等场景,管控权限可参考表1进行设置。
  3. 为保证文件处理安全,建议数据预处理相关文件避免使用软链接,做好权限管控,插件中涉及文件读写的接口(如read_video, default_loader等)会进行属组、软链接、是否可读等校验。

表 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------)

构建安全

Torchvision_npu在源码安装过程中,会依赖torch、torch_npu和torchvision三方库,编译过程中会产生临时编译目录和程序文件。用户可根据需要,对源代码中的文件及文件夹进行权限管控,降低安全风险。

运行安全

  1. 建议用户结合运行环境资源状况编写对应训练脚本。若训练脚本与资源状况不匹配,如数据集加载内存大小超出内存容量限制、训练脚本在本地生成数据超过磁盘空间大小等情况,可能引发错误并导致进程意外退出。

  2. Torchvision和torchvision_npu在运行异常时会退出进程并打印报错信息,属于正常现象。建议用户根据报错提示定位具体错误原因,包括通过设定算子同步执行、查看CANN日志、解析生成的Core Dump文件等方式。

公网地址

表 2 torchvision_npu的配置文件和脚本中存在的公网地址

类型 开源代码地址 文件名 公网IP地址/公网URL地址/域名/邮箱地址 用途说明
开发引入 不涉及 vision/setup.cfg https://gitcode.com/ascend/vision 用于打包whl的url入参

公开接口

torchvision_npu 不对外暴露任何公开接口。为使torchvision在NPU上运行,我们通过Monkey Patch技术对torchvision原有函数的实现进行替换。用户使用原生torchvision库的接口,运行时执行torchvision_npu库中替换的函数实现。