capabilities

为什么 eBPF 堆栈跟踪中的指令指针包含两次具有相同 IP 的 eBPF 程序,以及一个奇怪的不相关 IP?
capabilities

为什么 eBPF 堆栈跟踪中的指令指针包含两次具有相同 IP 的 eBPF 程序,以及一个奇怪的不相关 IP?

当在 eBPF 程序中获取内核堆栈跟踪时,我得到了重复且看似奇怪的条目:有人可以解释一下吗? 让我们从相关的 eBPF 程序片段开始;首先,我声明了一个堆栈跟踪图,如下所示: struct { __uint(type, BPF_MAP_TYPE_STACK_TRACE); __type(key, u32); __type(value, stack); __uint(max_entries, 1 << 14); } stacks SEC(".maps"); 在 eBPF 程序(稍后附加到cap_capable)中,...

Admin

为什么 chown 会重置/删除 SUID 位和重置功能?
capabilities

为什么 chown 会重置/删除 SUID 位和重置功能?

这个命令: sudo chown -R root:root directory 将删除 SUID 位并重置所有功能文件。我想知道为什么它是默默完成的,并且在手册页中没有提及。奇怪的是 GUID 位没有被删除。在运行此命令之前文件或目录属于谁并不重要。 SUID/GUID 位也是不是删除了目录(认为​​它们在这种情况下毫无用处)。 大概这是以安全的名义进行的,但对我来说,这绝不能悄无声息地进行。 这变得更糟: $ setcap cap_sys_rawio,cap_sys_nice=+ep test $ getcap -v test test cap_sys...

Admin

为 systemd 服务和特定用户分配能力
capabilities

为 systemd 服务和特定用户分配能力

我正在开发一个基本上有 root 用户的嵌入式系统设备。我有一个 systemd 服务call.service,可以在 root 访问下正常工作。该服务基本上创建一些套接字,然后与网络设备进行交互。 我想向用户启动这项服务UserA,并提供net_raw和等功能net_admin。我编写了以下单元文件: file: /etc/systemd/system/multi-user.target.wants/call.service [Unit] Description=XXX call service After=network-online.target W...

Admin

执行setcap后,为什么我仍然无法使用tar并出现“不允许操作”错误?
capabilities

执行setcap后,为什么我仍然无法使用tar并出现“不允许操作”错误?

问题 我正在实习,从事容器安全方面的工作,最近我需要构建一个有安全问题的容器来做一些测试。这是我的 dockerfile FROM dockerfiles/centos-lamp WORKDIR /var/www/html RUN wget https://github.com/RandomStorm/DVWA/archive/v1.0.8.tar.gz -O- | tar xvz --strip-components=1 RUN service mysqld start && mysqladmin -uroot password p@ssw...

Admin

运行 docker 时删除“AUDIT_WRITE”、“KILL”、“SETFCAP”和“SETPCAP”功能的影响
capabilities

运行 docker 时删除“AUDIT_WRITE”、“KILL”、“SETFCAP”和“SETPCAP”功能的影响

我正在探索 Docker 容器的功能和权限,我很好奇删除“AUDIT_WRITE”、“KILL”、“SETFCAP”和“SETPCAP”功能的影响。 任何人都可以清楚地解释默认情况下 Docker 容器中这些功能允许执行哪些功能吗?丢弃容器后,哪些具体操作可能会受到限制或影响?如果你告诉我一个场景,在放弃这些功能之后,与它们的存在相比,它会发生变化,我将非常感激。 ...

Admin

AppArmor 配置文件中的功能与扩展属性
capabilities

AppArmor 配置文件中的功能与扩展属性

我目前正在尝试了解 AppArmor 的功能。我找到了一个示例,让我/bin/ping为其复制并生成 AppArmor 配置文件。 首先,我复制并按照说明/bin/ping设置其net_raw功能:permittedeffective sudo cp /bin/ping /bin/fake_ping sudo setcap cap_net_raw+ep /bin/fake_ping 然后我生成了一个 AppArmor 配置文件: sudo aa-genprof /bin/fake_ping AppArmor 配置文件以强制方式保存 - 一切正常。之后我...

Admin

aws efs 和容器上限能够在容器内手动运行 `mount nfs`
capabilities

aws efs 和容器上限能够在容器内手动运行 `mount nfs`

我正在 aws eks 1.26 内运行一个 Pod。我需要通过kubectl exec操作挂载 aws efs,如果 POD 未使用特权容器启动,则会失败。 在 aws eks 内运行的容器需要什么权限才能执行mount挂载 aws efs 的命令? 这个配置有效 securityContext: privileged: true allowPrivilegeEscalation: true 此配置失败 securityContext: allowPrivilegeEscalation: false privileged: false ...

Admin

允许非 root 用户创建 TUN/TAP 接口
capabilities

允许非 root 用户创建 TUN/TAP 接口

我遇到过这样的情况:我需要允许非 root 用户创建 TUN/TAP 接口。我知道这需要 CAP_NET_ADMIN 功能。 曾经有过其他问题关于这一点,但答案似乎集中在向 a 授予 CAP_NET_ADMIN 能力文件/程序,而不是给用户。就我而言,我需要将能力分配给用户,因此他们可以使用他们认为合适的任何工具来创建接口(即不限于用于创建它们的特定文件/程序)。 这在 Linux 中可能吗?具体来说,我使用的是 Ubuntu 22.04。 对于上下文,这样做的原因是我正在通过进行系统调用的自定义程序创建 TUN 接口,并且我需要它在调试时工作。由于每次运行...

Admin

CAPNG_SELECT_AMBIENT 发生了什么?
capabilities

CAPNG_SELECT_AMBIENT 发生了什么?

三年前,我编写了一个程序来操纵我的程序的 CAP_NET_RAW 功能。我使用了 AMBIENT 功能集。 但现在,我无法在实际的 Debian 发行版(内核 5.10)上编译我的程序,因为 CAPNG_SELECT_AMBIENT 在 cap-ng.h 中不再存在。 我注意到出现了一个新常量: CAPNG_SELECT_BOTH 有人可以解释 CAPNG_SELECT_AMBIENT 发生了什么吗? 谢谢! ...

Admin

POSIX 1e 功能是否得到广泛实施?
capabilities

POSIX 1e 功能是否得到广泛实施?

有人知道实施的操作系统是什么能力(即 Posix 1e)? 它们兼容吗? 功能是否会仅降低 Linux 的可移植性? ...

Admin

如何允许除查看和编辑单个目录之外的每个管理员访问权限?
capabilities

如何允许除查看和编辑单个目录之外的每个管理员访问权限?

我们有一些服务器运行我们的 Web 应用程序以及 nginx、redis 和一些其他服务。我想将这些服务器的访问权限授予系统管理员来管理这些系统,但我想拒绝访问包含应用程序机密(例如数据库密码)和代码的目录(以便他无法更改代码以报告密码)。事实上,我想授予管理系统的访问权限,但拒绝访问数据。 这可能吗?我认为它应该使用Linux功能,但我不知道如何。 安全吗?我们如何提高安全性? (我认为他可能通过更改 nginx 配置或利用 redis 漏洞来访问这些文件)。 ...

Admin

如何有选择地为一个可执行文件或用户启用 unprivileged_userns_clone?
capabilities

如何有选择地为一个可执行文件或用户启用 unprivileged_userns_clone?

与仅相比,如何CLONE_NEWUSER以更细粒度的方式启用kernel.unprivileged_userns_clone? 我希望通过禁用非 rootCAP_SYS_ADMIN或 BPF 等新的复杂功能来保持内核 API 攻击面的可管理性,同时也有选择地允许某些特定程序使用它。 例如,chrome-sandbox想要CLOSE_NEWUSER或 suid-root 才能正常运行,但我不希望所有程序都能够使用如此复杂的技巧,只有少数经过批准的程序。 ...

Admin

防止 POSIX 功能扩散
capabilities

防止 POSIX 功能扩散

一般来说,unix(或者特别是Linux)程序不能执行类似使用ICMP_ECHO(“ping”)来检查路由器的可访问性的操作,除非任何一个由超级用户运行或者setuid 根或者拥有适当的 POSIX 功能。显然,在任何正常运行的系统上,将 setuid 或 POSIX 功能应用于二进制文件都需要超级用户干预。 如果开发环境拥有 CAP_SETFCAP 功能,那么它应该能够在其构建的程序上设置适当的 POSIX 功能,至少就本地操作而言。 向肯·汤普森致敬关于信任信任的思考论文并假设所有库的静态链接,原则上应该可以在每个程序源模块中构建指纹,将其传播到对象和二...

Admin