草庐IT

Figma$DJI$Security

全部标签

security - Node.js + Express.js 用户权限安全模型

我们的应用程序有两种类型的用户。根据用户的登录方式,我们希望他们能够访问应用程序的不同部分。我们如何实现安全模型以防止用户看到他们无权访问的内容?我们是否将安全性作为每个路由实现的一部分?问题是我们在请求中会有一些重复的逻辑。我们可以将它移动到辅助函数中,但我们仍然需要记住调用它。我们是否将安全性作为全局app.all()路由处理程序的一部分?问题是我们必须检查每条路线并根据大量规则执行不同的逻辑。至少所有的代码都在一个地方,但是……所有的代码都在一个地方。 最佳答案 每条路线都有它通常对我有用。这是我通常做的:functionre

security - 为什么 Docker Secrets 被认为是安全的?

我读到了dockerswarmsecrets并做了一些测试。据我了解,这些secret可以替换docker-compose.yml文件中提供的敏感环境变量(例如数据库密码)。结果,当我检查docker-compose文件或正在运行的容器时,我看不到密码。这很好-但它真正有什么帮助?如果攻击者在我的docker主机上,他可以轻松查看/run/secretsdockerexec-itdf2345a57ceals-la/run/secrets/而且还可以看里面的数据:dockerexec-itdf27res57ceacat/run/secrets/MY_PASSWORD同样的攻击者大多可以在

security - 通过 mitmproxy 运行 docker 容器

我正在尝试通过在另一个docker容器中运行的mitmproxy路由docker容器的所有流量。为了让mitmproxy工作,我必须更改原始docker容器的网关IP。HereisanexampleofwhatIwanttodo,但我想限制它完全在docker容器内。对我如何能够做到这一点有任何想法吗?另外,我想避免在特权模式下运行两个docker容器中的任何一个。 最佳答案 授予容器的默认功能集不允许容器修改网络设置。通过在特权模式下运行,您可以将所有功能授予容器——但也可以根据需要授予单个功能。在这种情况下,您需要的是CAP_N

security - Docker 环境变量安全

我有一个docker应用程序,我需要将一条安全信息传递给它,因为它使用密码来加密/解密存储的数据。我试图弄清楚使用环境变量传递这些信息有多安全。我知道如果我使用dockerrun-epassphrase="secretkey123"--namecontainernameimagename然后可以通过以下方式找到该值:dockerinspectcontainername因此它必须存储在磁盘上的某个位置(我假设在/var/lib/docker中)。有没有更安全的方法将环境变量传递给docker?我应该在链接到主机文件系统的卷中使用临时文件吗?有没有更好的办法?

security - Docker 主机安全 - 容器可以运行危险代码或从容器内部更改主机吗?

假设我从中心存储库中提取了一个新图像并运行它而不查看dockerfile的内容。容器或图像会以任何可能的方式影响我的主机吗?请告诉我,因为我将在我的服务器上运行来自用户输入图像名称的图像列表。我担心它是否会影响服务器/主机。 最佳答案 对于图像的默认执行,答案是有条件的否。内核能力是有限的,文件系统是有限的,进程空间是隔离的,并且它位于与主机不同的桥接网络上。任何允许访问主机的东西都是安全漏洞。有条件的部分是它可以用完所有的CPU周期,它可以耗尽你的内存,它可以填满你的驱动器,它可以将网络流量从你的机器NAT'ed发送到你的IP地址

security - 为什么 Docker Secrets 比环境变量更安全?

我正在阅读DockerSecrets并且继续阅读Docker的人们故意选择将secret存储在/run/secrets下的文件中,而不是使用环境变量。但是我在任何地方都找不到关于为什么的解释。所以我问:为什么使用DockerSecrets机制比将环境变量注入(inject)我的容器(通过-e或--env-file)更安全? 最佳答案 因为secret是加密的。来自documentation:SecretsareencryptedduringtransitandatrestinaDockerswarm.Agivensecretison

security - Docker:处理来自 apt-get 的 docker 容器内的软件包安全更新的最佳方式

在我当前的服务器上,我使用无人值守升级来自动处理安全更新。但我想知道人们会建议在docker容器中工作什么。我为我的应用程序的每个服务运行了几个docker容器。我应该在每个中设置无人值守升级吗?或者也许在本地升级它们并将升级后的图像向上推送?还有其他想法吗?有没有人有这方面的生产经验? 最佳答案 我会像您(之前)那样自动进行更新。我目前有舞台容器,但在Prod中什么都没有。但是对每个容器应用更新并没有什么坏处:一些冗余的网络事件,也许,如果你有多个容器基于同一个镜像,但否则无害。在我看来,重建容器不必要地耗费时间,并且涉及更复杂的

security -/var/run/docker.sock 的 Docker 安全风险是什么?

在thisblogarticle,我在评论中找到了以下引用:BenFirshmanYes–you'rerightIshouldhavepointedoutthesecurityissuewiththeDockersocket.That'scurrentlythemainblockertothisbeingpracticalinproductionandwe'redefinitelylookingforhelptomakeitworkbetter,asyounoticedfromtheto-dolist.虽然我相信这对许多人来说是有道理的,但对于我们其他人来说,有人可以用清晰的术语准确地

security - 以非 root 用户身份在 Docker 容器中运行不受信任的代码有哪些潜在的安全问题?

到目前为止,我已经看到很多关于Docker没有充分隔离以允许任意容器在Multi-Tenancy环境中运行的说法,这是有道理的。“如果它是Docker中的根,则认为它是主机中的根。”那么非root用户呢?如果我想获取一些不受信任的代码并在容器中运行它,只要容器以非root非sudo用户身份运行,是否可以安全地完成?这样做有哪些潜在的安全隐患?我相当确定今天有生产应用程序(CI系统、可运行的粘贴箱)这样做,但他们只是幸运地没有遇到坚定的攻击者,还是在生产系统中这样做是合理的? 最佳答案 从Dockerv1.12开始,如果以非root用

security - 禁用某些 Docker 运行选项

我目前正在着手进行一项设置,以使Docker在高性能集群(HPC)上可用。这个想法是我们组中的每个用户都应该能够保留一台机器一段时间,并且能够以“正常方式”使用Docker。意思是通过DockerCLI访问DockerDaemon。为此,用户将被添加到Docker组。但这给我们带来了很大的安全问题,因为这基本上意味着用户在该机器上拥有root权限。新想法是利用用户命名空间映射选项(如https://docs.docker.com/engine/reference/commandline/dockerd/#/daemon-user-namespace-options中所述)。在我看来,这