zh-translation: news/security/istio-security-2019-002/index.md (#9804)

This commit is contained in:
orangegzx 2021-05-26 00:49:24 +08:00 committed by GitHub
parent 38efb7282d
commit 22b9e09e11
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 13 additions and 16 deletions

View File

@ -2,7 +2,10 @@
title: ISTIO-SECURITY-2019-002
subtitle: 安全公告
description: CVE-2019-12995 所披露的安全漏洞。
cve: [CVE-2019-12995]
cves: [CVE-2019-12995]
cvss: "7.5"
vector: "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H/E:F/RL:O/RC:C"
releases: ["1.0 to 1.0.8", "1.1 to 1.1.9", "1.2 to 1.2.1"]
publishdate: 2019-06-28
keywords: [CVE]
skip_seealso: true
@ -11,13 +14,7 @@ aliases:
- /zh/news/2019/cve-2019-12995
---
{{< security_bulletin
cves="CVE-2019-12995"
cvss="7.5"
vector="CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H/E:F/RL:O/RC:C"
releases="1.0 to 1.0.8, 1.1 to 1.1.9, 1.2 to 1.2.1" >}}
## 内容{#context}
{{< security_bulletin >}}
当请求包含格式错误的 JWT 令牌时Istio JWT 认证过滤器中的 BUG 会导致 Envoy 在某些情况下崩溃。该 BUG 已由一个用户在 [GitHub](https://github.com/istio/istio/issues/15084) 上于 2019 年 6 月 23 日发现并报告。
@ -36,17 +33,17 @@ Epoch 0 terminated with an error: signal: segmentation fault (core dumped)
如果满足以下两个条件,则 Envoy 将很容易受到攻击:
* 使用了 JWT 身份认证策略。
* 使 JWT issuer(由 `jwksUri` 发行) 使用 RSA 算法进行签名认证。
* 使 JWT Issuer(由 `jwksUri` 发行) 使用 RSA 算法进行签名认证。
{{< tip >}}
用于签名认证的 RSA 算法不包含任何已知的安全漏洞。仅当使用此算法时才触发此 CVE但与系统的安全性无关。
{{< /tip >}}
如果将 JWT 策略应用于 Istio ingress gateway。请注意有权访问 Ingress gateway 的任何外部用户都可以通过单个 HTTP 请求导致它崩溃。
如果将 JWT 策略应用于 Istio Ingress Gateway。请注意有权访问 Ingress Gateway 的任何外部用户都可以通过单个 HTTP 请求导致它崩溃。
如果仅将 JWT 策略应用 Sidecar请记住它仍然可能受到攻击。例如Istio ingress gateway 可能会将 JWT token 转发到 Sidecar这可能是格式错误的 JWT token ,该 token 可能让 Sidecar 崩溃。
如果仅将 JWT 策略应用 Sidecar请记住它仍然可能受到攻击。例如Istio Ingress Gateway 可能会将 JWT Token 转发到 Sidecar这可能是格式错误的 JWT Token ,该 Token 可能让 Sidecar 崩溃。
易受攻击的 Envoy 将在处理 JWT token 格式错误的 HTTP 请求上崩溃。当 Envoy 崩溃时,所有现有连接将立即断开连接。`pilot-agent` 将自动重启崩溃的 Envoy重启可能需要几秒钟到几分钟的时间。崩溃超过十次后pilot-agent 将停止重新启动 Envoy。在这种情况下Kubernetes 将重新部署 Pod包括 Envoy 的工作负载。
易受攻击的 Envoy 将在处理 JWT Token 格式错误的 HTTP 请求上崩溃。当 Envoy 崩溃时,所有现有连接将立即断开连接。`pilot-agent` 将自动重启崩溃的 Envoy重启可能需要几秒钟到几分钟的时间。崩溃超过十次后pilot-agent 将停止重新启动 Envoy。在这种情况下Kubernetes 将重新部署 Pod包括 Envoy 的工作负载。
要检测集群中是否应用了任何 JWT 身份认证策略,请运行以下命令,该命令将显示以下任一输出:
@ -81,11 +78,11 @@ EOF
在以下 Istio 发行版中已修复此 BUG
* Istio 1.0.x: 升级到 [Istio 1.0.9](/zh/news/releases/1.0.x/announcing-1.0.9) 或者更新高版本。
* Istio 1.1.x: 升级到 [Istio 1.1.10](/zh/news/releases/1.1.x/announcing-1.1.10) 或者更新高版本。
* Istio 1.2.x: 升级到 [Istio 1.2.2](/zh/news/releases/1.2.x/announcing-1.2.2) 或者更新高版本。
* Istio 1.0.x 升级到 [Istio 1.0.9](/zh/news/releases/1.0.x/announcing-1.0.9) 或者更新高版本。
* Istio 1.1.x 升级到 [Istio 1.1.10](/zh/news/releases/1.1.x/announcing-1.1.10) 或者更新高版本。
* Istio 1.2.x 升级到 [Istio 1.2.2](/zh/news/releases/1.2.x/announcing-1.2.2) 或者更新高版本。
如果您无法立即升级到以下版本之一,则可以选择注入一个 [Lua filter](https://github.com/istio/tools/tree/master/examples/luacheck) 到老的 Istio 版本中。Istio 1.1.9、1.0.8、1.0.6、和 1.1.3 将会进行该认证。
如果您无法立即升级到以下版本之一,则可以选择注入一个 [Lua Filter](https://github.com/istio/tools/tree/master/examples/luacheck) 到老的 Istio 版本中。Istio 1.1.9、1.0.8、1.0.6、和 1.1.3 将会进行该认证。
Lua 过滤器是在 Istio `jwt-auth` 过滤器 *之前* 注入的。如果在 HTTP 请求中提供了 JWT 令牌,则 `Lua` 过滤器将检查 JWT 令牌头是否包含 alg:ES256 。如果过滤器找到了这样的 JWT 令牌,则该请求将被拒绝。