使用非官方镜像的 Docker 安全问题

2024-01-06

如何确保 docker 容器的安全,尤其是在使用第三方容器或基础镜像时?

  1. 使用基础映像时,它可能会启动任何服务或在后台挂载主机文件系统的任意分区,并可能向攻击者发送敏感数据,这是否正确?
  2. 因此,如果我使用第三方容器(Dockerfile 证明该容器是安全的),我是否应该遍历整个基础映像链表(可能很长)以确保容器实际上是安全的并执行其打算执行的操作?

如何系统、明确地保证docker容器的可信性?


考虑类似于 Android/iOS 移动应用程序的 Docker 镜像。您永远不确定它们是否可以安全运行,但是当它来自 Google Play 或 App Store 等官方来源时,其安全的可能性会更高。 更具体地说,来自 Docker hub 的 Docker 镜像会经过安全扫描,但其细节尚未公开。因此,从 Docker hub 中提取恶意镜像的可能性很小。 然而,当涉及到安全问题时,人们永远都不会偏执。有两种方法可以确保来自任何来源的所有图像都是安全的:

  1. 主动安全:对 Docker 镜像对应的每个 Dockerfile 进行安全源代码审查,包括您已经表达过问题的基础镜像
  2. 反应式安全性:运行由 Docker Inc. 开源的 Docker bench,它作为特权容器运行,查找容器运行时已知的恶意活动。

总之,只要有可能,就使用 Docker hub 中的 Docker 镜像。执行安全代码审查Docker文件。运行 Docker bench 或任何其他可以捕获容器执行的恶意活动的等效工具。

参考:

  1. Docker 安全扫描以前称为 Project Nautilus:https://blog.docker.com/2016/05/docker-security-scanning/ https://blog.docker.com/2016/05/docker-security-scanning/
  2. 码头工长凳:https://github.com/docker/docker-bench-security https://github.com/docker/docker-bench-security
  3. Dockerfile 的最佳实践:https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/ https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用非官方镜像的 Docker 安全问题 的相关文章

  • Docker 从密码数据库获取用户名时出错

    我有一个 python 脚本 我想将其容器化 测试远程 py import os import pwd try userid pwd getpwuid os stat st uid pw name except KeyError err r
  • 为什么使用 mysql_real_escape_string,addslashes 不会阻止一切?

    我正在查看文档并偶然发现了 mysql real escape string 我不明白为什么当您可以只使用addslashes 时它很有用 有人可以向我展示一个场景来说明它为什么有用吗 我也很好奇为什么它需要数据库连接 这似乎是一个很大的开
  • ASPXAUTH Cookie 的安全标志

    我们有一个面向外部的应用程序 由外部安全公司进行了渗透测试 应用程序在 ASP NET MVC4 上开发并在 IIS8 Windows 2012 Server 上运行 报告的漏洞之一是 ASPXAUTH 不安全 当我检查 cookie 检查
  • docker 命名卷存储在哪里? [复制]

    这个问题在这里已经有答案了 我有这个docker compose yml file version 3 volumes jenkins home services registry image registry 2 ports 5000 5
  • 在 UIPageViewController 中跟踪页面索引的可靠方法 - Swift

    我在位于常规 UIViewController 中的容器内有一个 UIPageViewController 自定义 我需要能够在每次页面更改时调用一个事件 但前提是它确实发生了变化 而不仅仅是一半或类似的事情 using func page
  • Docker nginx 代理到主机

    简短的介绍 Nginx 运行在 docker 上 如何配置 nginx 以便将调用转发到主机 详细描述 我们有一个 Web 应用程序与几个后端通信 假设为rest1 rest2 和rest3 我们负责rest1 让我们考虑一下我开始rest
  • 卸载 SSL 时保护表单身份验证 Cookie

    我正在尝试使用 ASP NET MVC 2 0 和表单身份验证来保护我当前正在开发的网站 为了保护表单身份验证cookie 我想将requiresSSL 属性设置为true 以便浏览器仅在连接处于SSL 下时才发送cookie 并且显然确保
  • SecurityContextHolder.getContext().getAuthentication() 返回 null

    我想使用以下代码手动绕过 spring Security 的用户 User localeUser new User UsernamePasswordAuthenticationToken auth new UsernamePasswordA
  • Windows docker:权限被拒绝 /var/run/docker.sock

    当我尝试使用自动发现运行 filebeat 时 出现以下错误 退出 自动发现提供程序设置中出现错误 已获得权限 尝试连接到 Docker 守护程序套接字时被拒绝 unix var run docker sock 获取http 2Fvar 2
  • JSF - 实施受限页面过滤器

    我正在关注 BalusC 的回答JSF 2 0 如何获取在浏览器地址栏中输入的 URL https stackoverflow com questions 4105263 jsf 2 0 how to get the url that is
  • exec()、shell_exec()、curl_exec() 的安全漏洞

    有时 我会使用 exec shell exec 和curl exec 以下是典型用途 假设其中有 PHP 变量 即第一个变量中的 html 用户有可能修改其内容 从安全漏洞的角度来看 我应该关注什么 escapeshellcmd 和 esc
  • 当SESSION_COOKIE_SECURE = True时如何在HTTP中获取一些用户身份信息

    以下是我正在开发的网站的简短描述 公共页面可以通过 HTTP 或 HTTPS 访问 其他一些页面 认证页面 账户详情页面等 需要通过HTTPS访问 Apache2 负责进行相关的 HTTP 到 HTTPS 链接重定向 我使用标准 Djang
  • 无法解析 docker 容器之间的主机名

    我在单独的撰写文件中创建了两个容器 用于应用程序隔离 每个应用程序可能在撰写文件中定义了多个容器 例如后备数据库 这些容器通过名为 common 的外部网络链接 一个示例撰写文件是 version 2 services rabbitmq i
  • mongo docker 镜像创建后未运行脚本

    我使用 docker compose 为前端 后端和 mongo 实例创建 3 个不同的容器 其中三个正在运行并在它们之间连接 但我需要在 mongo 实例运行后立即在数据库上创建一个管理员用户 根据 mongo 图像文档 每个脚本位于do
  • 在 React 应用程序中使用 API 密钥

    我有一个使用两个第三方服务的 React 应用程序 该应用程序已开始使用react create app 这两项服务都需要 API 密钥 通过脚本标签提供一个密钥 如下所示 另一个 API 密钥在请求中使用 我将实际密钥存储在常量中并使用它
  • 在未安装 docker 的情况下构建 docker 镜像

    是否可以在不安装 docker 的情况下构建镜像 在我的项目的 Maven 构建中 我想生成 docker 映像 但我不想强迫其他人在他们的机器上安装 docker 我可以想到一些安装了 docker 的虚拟框映像 但这是一种繁重的解决方案
  • Heroku 码头部署

    我正在关注这篇文章https devcenter heroku com articles container registry and runtime https devcenter heroku com articles containe
  • 如何使用缓存快速重建dockerfile?

    我想优化我的 Dockerfile 我希望将缓存文件保留在磁盘中 但是 当我跑步的时候我发现docker build 它总是尝试从网络获取每个文件 我希望在构建期间共享我的缓存目录 例如 var cache yum x86 64 6 但是
  • 开发者环境-如何调用/消费其他微服务

    背景 我的环境 Java Play2 MySql 我在 Play2 gt S1 S2 S3 上编写了 3 个无状态 Restful 微服务 S1 消耗来自 S2 和 S3 的数据 因此 当用户点击 S1 时 该服务会异步调用 S2 S3 合
  • 具有隐式授权的 OAuth 应用程序中的客户端模拟

    来自 OAuth 草案 隐式section https datatracker ietf org doc html draft ietf oauth v2 31 section 1 3 2 在隐式授权流程期间发出访问令牌时 授权服务器不对客

随机推荐

  • Facebook Unity API - 发布带有链接和描述的屏幕截图?

    我正在尝试让我的应用程序 iOS Android 允许用户将屏幕截图发布到 Facebook 并附上链接和描述 我可以使用 FB API 将我的应用程序的屏幕截图上传到 Facebook 为我的应用程序自动生成的用户相册 方法是 int w
  • 与 cypher/neo4j 比较数组值

    我有一张成员图表以及他们查看过的项目 该数据将用于根据类似会员查看过的项目来推荐项目 我想根据项目颜色的相似程度对项目进行排序 颜色存储在数组中的项目上 红色 蓝色 绿色 cypher 中是否有任何方法可以比较数组以查看它们有多少共同元素
  • 如何将调试符号添加到build.gradle

    我已经为我的 Flutter 应用程序创建了 android 版本 然后我创建了一个内部测试版本 显示警告 此应用程序包包含本机代码 并且您尚未上传调试 符号 我们建议您上传一个符号文件以使您的崩溃 ANR 更易于分析和调试 基本上我要做的
  • 在django admin中一次创建多个对象

    例如 我有一个 Post 模型 Class Post models Model title models Charfield max length 200 other fields 我想知道有没有办法在管理中一次创建多个帖子 换句话说 我需
  • Kotlin `?.let` 是线程安全的吗?

    是科特林吗 let线程安全 比方说a变量可以在不同的线程中更改 正在使用a let 线程安全 如果它等于if a null block 会不会发生在if它不为空并且在block它已经为空了吗 a let block 确实相当于if a nu
  • 实体框架硬级联删除

    我有一个与实体框架映射的 SQLite DB 有 2 个表 集合 1 n 专辑 当我删除收藏集时 所有相关相册也必须被删除 我用CollectionRepo Delete collection 为了实现这一点 它使用以下代码 public
  • JavaScript 错误显示“confirm 不是函数”

    当我提交表单时 我将 jQuery 与验证插件一起使用 frmProject visible validate errorContainer site details visible messageBox1 errorLabelContai
  • 如何检查 Windows 程序的 C++ 文件是否存在?

    这是仅适用于 Windows 的程序 因此可移植代码不是问题 我只需要 bool DoesFileExist LPWSTR lpszFilename 根据陈雷蒙德先生的说法 你应该如果您迷信 请使用 GetFileAttributes ht
  • Sitecore 管道上传处理器

    我正在使用 UploadProcessor 阻止特定文件上传到 MediaLibrary 一切正常 我可以看到 Sitecore 的警报消息 但是 Sitecore 的错误消息并不真正用户友好 无法上传一个或多个文件 请参阅日志文件了解更多
  • 在 Java 中捕获 Scala 中抛出的异常 - 无法访问的 catch 块

    Scala 没有 https softwareengineering stackexchange com q 177806检查异常 然而 当从 java 调用 scala 代码时 需要捕获 scala 抛出的异常 Scala def f d
  • Request::createFromGlobals() 与 $this->getRequest()

    我见过两种在控制器中获取 Request 对象的方法 request Request createFromGlobals request this gt getRequest 我想知道有什么区别 一种方法比另一种方法更好吗 还有更多方法可以
  • 关键字“SELECT”附近的语法不正确。 ')' 附近的语法不正确

    我使用了vb net中的sql代码 SELECT Table1 Query amel code Table1 Query kala code Sum Table1 Query SumOfqty AS SumOfSumOfqty FROM S
  • C# - 常量值“4294901760”无法转换为“int”

    问候 我不敢相信我问了这么一个基本的问题 但这没有意义 所以就在这里 在 Windows Phone 7 net 上的 C 中 我尝试在类中定义一个常量 如下所示 error CS0266 Cannot implicitly convert
  • JS 函数的原型属性有什么用?

    我通过以下方式了解 javascript 原型继承 proto 财产 但是我注意到当我这样做时var f function f 现在将有一个prototype财产除了 proto 财产 看来prototype不参与财产连锁 到底是什么doe
  • “无法删除数据库,因为它当前正在使用”。怎么修?

    有了这个简单的代码 我在运行它时得到 无法删除数据库 test db 因为它当前正在使用 CleanUp 方法 TestFixture public class ClientRepositoryTest private const stri
  • 测试 API 调用不会在 Cypress 中发生

    我在我的应用程序中实现了 API 数据缓存 这样如果数据已经存在 就不会重新获取 我可以拦截初始获取 cy intercept api things as api cy visit things cy wait api passes 为了测
  • 根据另一列的条件提取值

    case number lt c 1 1 2 2 2 3 3 type lt c STD STD2 STD STD3 STD2 STD STD2 date lt as Date c 2008 11 1 2009 3 25 2010 3 14
  • WPF RichTextBox 附加彩色文本

    我正在使用RichTextBox AppendText函数将字符串添加到我的RichTextBox 我想用特定的颜色设置它 我怎样才能做到这一点 试试这个 TextRange tr new TextRange rtb Document Co
  • 如何判断今天的日期是否在另外 2 个日期之间?

    我不太能得到正确的语法 我只需要一个 IF 语句来检查今天是否在一组日期之间 如果是 则回显 这个应该怎么调整呢 now time Y m d date september 2014 09 01 date october 2014 10 0
  • 使用非官方镜像的 Docker 安全问题

    如何确保 docker 容器的安全 尤其是在使用第三方容器或基础镜像时 使用基础映像时 它可能会启动任何服务或在后台挂载主机文件系统的任意分区 并可能向攻击者发送敏感数据 这是否正确 因此 如果我使用第三方容器 Dockerfile 证明该