《2024龙蜥大会中兴通讯分论坛:安全沙箱的过去现在与未来-李强.pdf》由会员分享,可在线阅读,更多相关《2024龙蜥大会中兴通讯分论坛:安全沙箱的过去现在与未来-李强.pdf(27页珍藏版)》请在三个皮匠报告上搜索。
1、安全沙箱的过去、现在与未来蚂蚁集团 安全专家李强自我介绍蚂蚁集团安全专家安全建设与研究Linux内核/虚拟化/容器/云原生HITB、CanSecWest、KCon等会议演进010102020303沙箱简介沙箱实现方案AI时代沙箱应用沙箱的未来0404沙箱简介什么是安全沙箱计算机领域非常古老的话题用于隔离程序运行的安全机制通常用于限制不受信任程序的系统资源访问有很多含义:虚拟机、JVM,本文主要讨论Linux进程级沙箱各个系统都有很多实现机制与方案安全沙箱限制的资源进程文件系统网络访问能力(capabilities)CPU/Memory/IO/Devices被攻破软件安全沙箱横向移动纵向移动其他
2、服务宿主机宿主机安全沙箱的使用场景攻击者能够控制的代码:实验环境不受信任的三方程序:闭源软件,不知道其行为经常出现漏洞的软件:ffmpeg/chrome/ImageMagick漏洞分析最新:AI 代码执行沙箱安全沙箱的需求能够拦截横向移动:网络策略能够阻止纵向移动:内核隔离、系统安全策略运行环境丰富:物理机、虚拟机、容器沙箱实现方案沙箱方案的机制setuidptraceseccompcapabilitieschrootnamespacecgroupnetfilterMAC(Mandatory Acess Control)传统沙箱方案:通过单一、独立的机制实现setuid-sandbox自身调用
3、seccomp、capability限制SELinuxAppArmor现在沙箱机制与方案:以容器机制为推动的组合firejailnsjailminijailgVisor方案介绍:setuid-sandbox允许被沙箱进程放弃部分权限基于namespace的UID隔离chroot参考:https:/ 只读ProtectDevics=yes:/dev namespace开启ReadOnlyDirectories=:指定文件只读PrivateNetwork=yes:没有外部网络访问权限systemd 使用 namespace/seccomp,BPF-LSM方案介绍:nsjail非常有名的轻量级的进程
4、隔离工具(沙箱)典型的使用Linux namespace以及seccomp-bpf为进程提供namespace/filesystem等资源的隔离提供网络服务与本地进程之间的隔离与宿主机共享内核没有细粒度的网络访问策略当前方案的缺陷与解法进程限制限制能够执行的程序文件系统访问限制限制文件的读写权限网络访问权限细粒度的网络管控策略(ip/端口/域名)内核隔离需要使用独立内核总结相比当前方案,我们需要横向和纵向的强隔离共享内核缺乏完善的网络策略我们的方案目标为各种业务、各种运行场合提供通用的安全沙箱方案强安全runsc模式,通过gVisor实现强性能runlc模式,通过传统方式+一些创新实现我们的方
5、案-gVisor简介gVisor是一个应用内核Go实现,内存安全实现了大部分Linux syscall界面,Sentry实现了OCI spec独立内核,纵深防御解决了纵向隔离,缺乏网络的横向隔离https:/gvisor.dev/blog/2019/11/18/gvisor-security-basics-part-1/我们的方案-vmjail runsc模式vmjail安全策略:Process/File/Networkingvmjail 策略-OCI specrunsc:启动Sentry和GoferSentry:定制,完成安全策略的检测被沙箱进程安全策略vmjailrunschost定制se
6、ntry策略enforce我们的方案-vmjail runlc模式采用类似runc的沙箱机制,高性能最小rootfs:通常只有被沙箱进程的binary在里面rootless:非特权用户在docker/podman中也能运行文件系统:通过mount ns改变file system视图实现网络:通过tap用户态协议栈实现AI时代沙箱应用代码解释器(Code interpreter)允许LLM应用执行代码通常用于文件处理与数据分析等应用层工作ChatGPT 采用gVisor作为代码