问题标签 [apparmor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
57 浏览

docker - 在 Docker 守护程序上强制执行 AppArmor 配置文件

不是关于(Docker)容器 AppArmor 配置文件,而是关于强制执行 Docker守护程序AppArmor 配置文件。

Docker 的 AppArmor 相关文档仅简要提到引擎守护程序的配置文件没有随 Debian 软件包一起安装,然后链接到代码存储库中的 .go 文件

我如何让它工作,也就是说,我如何将配置文件应用到我的 Docker 引擎进行一些测试?

github.com/moby/moby/blob/master/contrib/apparmor/main.go@latestgo install或 go install的任何尝试都github.com/moby/moby/blob/master/contrib/apparmor/main.go@master失败module github.com/moby/moby@latest found (v20.10.6+incompatible), but does not contain package github.com/moby/moby/blob/master/contrib/apparmor或类似。

0 投票
0 回答
25 浏览

firefox - 是否可以在本地 AppArmor 配置文件中“取消包含”抽象?

是否可以在 /etc/apparmor.d/local/usr.bin.firefox 中添加一行来撤销 /etc/apparmor.d/abstractions/ubuntu-browsers.d/firefox 中指定的包含?

还是需要直接修改/etc/apparmor.d/abstractions/ubuntu-browsers.d/firefox?如果是这样,如何防止此文件在升级/更新时被覆盖?

案例:如此所述,虽然 Firefox 的默认 AppArmor 配置文件看起来只允许访问 ~/Downloads 和 ~/Public 中的文件,但它实际上允许访问 ~. 我可以确认 Ubuntu 20.04 就是这种情况。这是因为 /etc/apparmor.d/usr.bin.firefox 包含 abstractions/ubuntu-browsers.d/firefox,其中包含 abstractions/ubuntu-browsers.d/user-files,它明确允许访问 ~ 中的所有文件。我希望撤销此特权,但这样做的方式是 (1) 不会在 ~ 上调用显式拒绝,并且 (2) 不会冒在升级/更新时被覆盖的风险。

谢谢!

0 投票
0 回答
20 浏览

flask - Flask/uWSGI 的哪个部分正在创建 /tmp/#

我有一个简单的 Flask 应用程序,它允许用户向管理人员提交一些信息。应用程序通过 uWSGI 和 Apache2 代理运行。

问题是,该应用程序在过去 24 小时内定期在 /tmp 中创建临时文件,这些文件是随机编号的:

这会触发 AppArmor,因为 uwsgi 不允许(在我的配置文件下)写入/tmp(但它现在处于抱怨模式,所以它正在工作。此外,这似乎不是一个好习惯,因为这些名称是可以猜测的并且可能用于某种符号链接竞争攻击。

我如何找到 Flask 的哪个部分正在创建此类文件?以及如何配置 Flask 以使用其分配的临时目录而不是全局目录?

通过代码库和谷歌搜索根本没有用。

导入列表,因为一些 Flask 扩展/库可能是肇事者:

0 投票
0 回答
10 浏览

linux - 如何使用 C 可执行文件运行 app_armor 配置文件

我正在使用 Ubuntu 18.04。我正在尝试将 app_armor 配置文件应用于 C 二进制文件,但我无法成功执行此操作。在我的/etc/apparmor.d文件中,我有个人资料home.ubuntu.c_binary。被c_binary标记为a.out并被执行为./a.outhome.ubuntu.c_binary运行命令时如何应用配置文件./a.out

任何帮助,将不胜感激。

0 投票
0 回答
137 浏览

python - AppArmor 子配置文件未在 Docker 容器中应用

我正在尝试构建一个 Docker 映像,该映像将用作 Python 监禁沙箱。为此,我想将某个 AppArmor 配置文件应用于我的容器。我的问题是我无法将子“python”配置文件应用于实际容器。

以下是重现该问题的方法:首先,编写一个“docker-python-sandbox”AppArmor 配置文件,其内容如下:

第一部分是从样板docker-default配置文件中复制粘贴的。在第二部分,我们拒绝对“/tmp/forbidden-all”的写访问。此外,我们(试图)拒绝对 python 可执行文件的“/tmp/forbidden”的写访问。

这是我应用此配置文件的尝试:

正如我们所见,我们成功地阻止了写入“/tmp/forbidden-all”,但未能阻止 Python 访问“/tmp/forbidden”。

在主机上,我可以成功创建应用这两个限制的配置文件。这让我认为 Docker 容器忽略了子配置文件。这个结论正确吗?是设计使然吗?如果没有,有没有办法解决这个问题?

0 投票
2 回答
377 浏览

docker - 启动 docker 实例的问题

不确定这是一个码头问题,但事情就是这样:我试过sudo docker stop 7f8c9285465c导致

Error response from daemon: cannot stop container: 7f8c9285465c: Cannot kill container...unknown error after kill: runc did not terminate sucessfully: container_linux.go:392: signaling init process caused "permission denied"

按照这个 stackoverflow 建议我做了sudo aa-remove-unknown。现在docker stop成功但随后docker-compose up导致:

snap-confine has elevated permissions and is not confined but should be. Refusing to continue to avoid permission escalation attacks.

接下来我运行命令sudo apt purge snapd snap-confine && sudo apt install -y snapd。现在运行docker-compose up结果

bash: /snap/bin/docker-compose: No such file or directory.

该命令sudo docker container ls导致:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

sudo service docker status返回Active: active (running)

我尝试重新安装docker。运行sudo docker run hello-world相同的返回Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?值(尽管状态是活动的)。

0 投票
1 回答
109 浏览

linux - 当 NoNewPrivileges=no 时 AppArmor 拒绝执行“无新权限”

在尝试限制我的 Python 应用程序后,我一直在点击这些 AppArmor 消息

使用此配置文件(由 aa-logprog 生成)

Api是系统服务。读完这篇文章后,我注意到api.service确实已经NoNewPrivileges=yes设置好了。因此,我将其更改为NoNewPrivileges=no(并重新加载了服务),但这并没有改变任何事情。行为仍然完全相同。

是的,一旦任务没有新的权限,就不允许更改其配置文件并可能增加其权限。有一个例外是不受限制的状态,因为任何配置文件转换都是特权的减少。因此,在 ix 时刻(继承当前限制)和堆叠,您剩下两个潜在的转换。堆叠可能不是您想要的,因为它保留了当前的限制并在顶部添加了额外的限制。

知道还有什么原因info="no new privs"吗?

0 投票
0 回答
67 浏览

docker - 如何解决“apparmor_parser:无法替换“docker-default”错误?

当我使用 docker 为项目设置开发工具包时,执行docker-compose up -d命令时收到以下错误

我应该如何解决这个问题?提前致谢

0 投票
1 回答
77 浏览

docker - 如何使用 apparmor 在 docker 容器中启用挂载文件系统

我有一个运行 docker 的 ubuntu 20.04 服务器。最近,默认 apparmor 配置文件似乎已经开始对 docker 容器中的挂载点实施限制。所以容器直接写入根文件系统而不是挂载。

在 docker 之外,我可以毫无问题地导航挂载,但是在容器中执行 shell 时,就好像挂载点没有挂载一样。

我已将其缩小为由 apparmor 引起的,禁用 apparmor 允许安装,并且一切正常。容器似乎正在使用 docker-default 配置文件。

我的问题是:如何在全局或单个容器上启用在 docker 容器中的挂载。我宁愿不必为此问题完全禁用 apparmor?

0 投票
0 回答
30 浏览

containers - 使用 aa-genprof 为容器应用程序自动生成配置文件

aa-genprof 实用程序可以为给定的应用程序自动生成 AppArmor 配置文件。有没有办法使用 aa-genprof 为容器应用程序自动生成配置文件?例如,对于非容器实用程序 abc.exe,可以像“$sudo aa-genprof abc.exe”一样运行 aa-genprof 但是如果将 abc.exe 捆绑为容器,那么如何在容器环境中使用使用 aa-genprof?