linux常用命令 bwrap 命令 沙箱安全

这篇具有很好参考价值的文章主要介绍了linux常用命令 bwrap 命令 沙箱安全。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章目录



前言

bubblewrap 是一个构建沙箱环境的工具。bubblewrap 不是一个完整的、具有特定安全策略的现成沙箱。


一、bubblewrap 是什么?

bubblewrap 的一些用例需要沙箱和真实系统之间的安全边界;其他用例希望能够更改沙箱内进程的文件系统布局,但不旨在成为安全边界。因此,沙盒进程和主机系统之间的保护级别完全由传递给 bubblewrap 的参数决定。

无论哪个程序为 bubblewrap 构造命令行参数(通常是较大的框架,如 Flatpak、libgnome-desktop、sandwine 或临时脚本),都负责定义自己的安全模型,并选择适当的 bubblewrap 命令行参数来实现该模型安全模型。

bubblewrap 的目标是在沙箱中运行应用程序,在沙箱中它限制对部分操作系统或用户数据(例如主目录)的访问。

bubblewrap 始终创建一个新的挂载命名空间,并且用户可以准确指定文件系统的哪些部分应在沙箱中可见。默认情况下,您指定的任何此类目录都会安装nodev,并且可以设置为只读。

和 bwrap 类似的工具还有 SELinux 和 AppArmor。它们是作用于整个系统的,Firejail 是面向应用程序的,但是配置起来也挺不容易。bwrap 更偏重于提供底层功能而不是完整的解决方案,具体用法可以让用户自由发挥。

此外,您还可以使用这些内核功能:

  • 用户命名空间 ( CLONE_NEWUSER ):这会隐藏沙箱中除当前 uid 和 gid 之外的所有内容。您还可以更改沙箱中 uid/gid 的值。

  • IPC 命名空间 ( CLONE_NEWIPC ):沙箱将获得所有不同形式的 IPC 的自己的副本,例如 SysV 共享内存和信号量。

  • PID 命名空间 ( CLONE_NEWPID ):沙箱不会看到沙箱之外的任何进程。此外,bubblewrap 将在容器内运行一个简单的 pid1 来处理在沙箱中收获子项的要求。这避免了现在所谓的Docker pid 1 问题。

  • 网络命名空间 ( CLONE_NEWNET ):沙箱将看不到网络。相反,它将拥有自己的网络命名空间,并且只有一个环回设备。

  • UTS 命名空间 ( CLONE_NEWUTS ):沙箱将有自己的主机名。

  • Seccomp 过滤器:您可以传入 seccomp 过滤器来限制可以在沙箱中执行哪些系统调用。有关详细信息,请参阅Seccomp。

如果您不使用 seccomp 过滤器过滤掉命令 TIOCSTI ,–new-session 则需要参数来防止沙箱外命令执行(请参阅CVE-2017-5226)。

二、使用步骤

2.1 安装

bubblewrap 在大多数 Linux 发行版的软件包存储库中都可用,并且可以从那里安装。

如果您需要从源代码构建 bubblewrap,您可以使用 meson 或 autogen 来完成此操作。

meson:

meson _builddir
meson compile -C _builddir
meson test -C _builddir
meson install -C _builddir

autogen:

./autogen.sh
make
sudo make install

2.2 bwrap 使用

bubblewrap 的工作原理是创建一个新的、完全空的挂载命名空间,其中根位于主机上不可见的 tmpfs 上,并且当最后一个进程退出时将自动清理。然后,您可以使用命令行选项构建根文件系统和进程环境以及在命名空间中运行的命令。

源代码中有一个更大的演示脚本,但这里有一个精简版本,它运行一个重用主机的 /usr

bwrap \
    --ro-bind /usr /usr \
    --symlink usr/lib64 /lib64 \
    --proc /proc \
    --dev /dev \
    --unshare-pid \
    --new-session \
    bash

这是一个不完整的示例,但对于说明目的很有用。更常见的是,您不想使用主机的文件系统树创建容器,而是希望以 chroot 为目标。在那里,您可能已经在目标 rootfs 中创建了符号链接,而不是lib64 -> usr/lib64在 tmpfs 中创建符号链接。


总结

本文介绍了 bwrap 命令的基本概念和使用场景。文章来源地址https://www.toymoban.com/news/detail-778687.html

到了这里,关于linux常用命令 bwrap 命令 沙箱安全的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux下解决高并发socket最大连接数限制,tcp默认1024个连接

     linux获取TCP连接数 linux作为服务器系统,当socket运行高并发TCP程序时,通常会出现连接建立到一定个数后不能再建立连接的情况 本人在工作时,测试高并发tcp程序(GPS服务器端程序),多次测试,发现每次连接建立到1000左右时,再也不能建立tcp连接,最总上网搜索,linux系

    2024年02月12日
    浏览(43)
  • git 常用命令---修改Git默认编辑器为vim

    1. 配置 在linux机器中git的编辑器默认使用的是nano(退出Ctrl+x),使用起来很不方便,如下图。而平时使用的vim编辑器很友好,可以将默认编辑器设置为vim。 git config --global core.editor vim                //修改Git默认编辑器为vim 2. 创建仓库 3.提交、修改 4.生成patch、打补丁

    2024年02月11日
    浏览(42)
  • 【云原生】在DACS沙箱内配置Telepresence工具(社区版限制5人连接)

    使用 Telepresence 映射 Kubernetes 服务到 DACS 沙箱内 Telepresence 属于沙箱工具,它可以把我们在AWS云平台的EKS(Kubernetes)上部署的服务映射到本地,这样大家就可以在本地访问EKS(Kubernetes)上的资源了,如注册中心Nacos、Redis、Kafka等服务 安装很简单,按照官网文档操作几步就可以完成

    2024年02月15日
    浏览(28)
  • Linux系统firewalld防火墙的应用实操(对外端口开放使用,对内端口限制ip地址使用,不使用端口默认关闭)

    本文直接进行Linux系统firewalld防火墙的应用实操 对外端口开放使用 对内端口限制ip地址使用 不使用端口默认关闭 基础知识请查阅:Linux系统firewalld防火墙的基本操作 进阶知识请查阅:Linux系统firewalld防火墙的进阶操作(日志保存 IP网段 ssh服务) 应用实操请查阅:Linux系统f

    2024年02月05日
    浏览(65)
  • Linux umask命令详解,Linux修改文件默认访问权限

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 作用: umask 命令用来控制 「权限掩码」 ,为新建的文件或目录设置一个 「初始权限」 。 文件/目录创建时的初始权限 = 默认权限 - 权限掩码 「查看」 当前用

    2024年02月07日
    浏览(59)
  • Linux SSH安全策略限制IP登录的两种方法

    尽管SSH在传递过程中比较安全,但有些人也可以利用SSH漏洞来取得远程主机的root权限,所以使用SSH的过程中有必要对SSH程序的漏洞进行扫描,并进行修补,除此之外,不要将 sshd 对 Internet 开放可登入的权限,尽量将SSH局限在几个小范围内的 IP ,这样也可以大大加强服务器的安

    2024年02月12日
    浏览(63)
  • Linux journalctl命令详解(journalctl指令)(systemd服务默认日志管理工具)

    Linux提供了一个强大的日志系统,它可以跟踪和记录系统的各种活动。在这个系统中, journalctl 是一个非常重要的工具,用于查询和操作由systemd进程管理的日志。 本文将深入探讨 journalctl 命令,介绍其基本使用、高级选项及示例等内容。 Systemd是Linux发行版的初始化系统,负

    2024年02月08日
    浏览(48)
  • 安全基础 --- nodejs沙箱逃逸

    沙箱绕过原理:沙箱内部找到一个沙箱外部的对象,借助这个对象内的属性即可获得沙箱外的函数,进而绕过沙箱 前提:使用vm模块,实现沙箱逃逸环境。(vm模式是nodejs中内置的模块,是nodejs提供给使用者的隔离环境) 目的:拿到process模块 (1)Function构造函数实现 源代码

    2024年02月08日
    浏览(38)
  • 沙箱安全机制

    目录 1.什么是沙箱? 2.什么是沙箱机制? 3.沙箱机制的发展 jdk1.0安全模型 jdk1.1安全模型 jdk1.2安全模型 jdk1.6安全模型 4.沙箱的基本组件 沙箱是一个限制程序运行的环境(沙箱主要限制系统资源的访问,如cpu,内存等等。不同级别的沙箱对这些资源的访问限制也不一样) 就是将

    2024年02月05日
    浏览(29)
  • 安全沙箱技术小科普

    安全沙箱技术是一种用于保护用户隐私和系统安全的机制,它可以将应用程序限制在一个封闭的运行环境中,防止其对系统和其他应用程序造成潜在的威胁。安全沙箱技术广泛应用于计算机安全领域,如防病毒软件、浏览器、操作系统等,以提高计算机系统的安全性和稳定性

    2023年04月18日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包