OpenShift Source-To-Image (S2I) の脆弱性 - CVE-2018-1102
Red Hat セキュリティーレスポンスチームは、Red Hat OpenShift Container Platform 3 に同梱されている source-to-image (S2I) ビルド機能の不具合に対応しています。特権を持たない攻撃者は、この不具合を利用して権限をエスカレートし、ホストシステムにアクセスできるようになります。この問題には CVE-2018-1102 が割り当てられ、重大な影響 があると評価されています。
背景情報
この問題は、source-to-image ビルドストラテジー に影響します。このストラテジーの使用を許可するパーミッションは、system:authenticated ロールのあるユーザーに有効となっており、このロールはデフォルトで OpenShift に認証可能なすべてのユーザーに拡張されています。
この問題は、Michael Hanselmann氏から直接 Red Hat にご報告いただきました。
脆弱性の詳細
悪意のある方法でフォーマットされた tar アーカイブを作成することで、攻撃者はビルド時に S2I の tar 展開機能を悪用し、権限をエスカレートして、OpenShift を実行中のホストオペレーティングシステムを危険にさらすことが可能になります。
対処方法
影響を受ける製品については「影響」タブを、軽減策および更新情報については「解決策」タブを参照してください。
影響を受ける製品
Red Hat セキュリティーレスポンスチームは、この更新のセキュリティー上の影響度を重大と評価しています。攻撃者はこの脆弱性を利用して、リモートから OpenShift ノード上の root パーミッションを取得することが可能です。
以下の Red Hat 製品バージョンが影響を受けます。
- OpenShift Container Platform 3.0-3.9
- OpenShift Online v3.x*
- OpenShift Dedicated v3.x*
*影響を受けるサービスに Red Hat がパッチを適用済み。
脆弱性の診断
悪意のある実行者にシステムへのアクセス権限がある場合は、既知の証明された一貫性のある検出方法はありません。十分なセキュリティー対策を実行し、お客様がシステムにリスクベースのアプローチを適用して、モニタリングをログに記録することで悪用の可能性を示す形跡を検出することを Red Hat では推奨します。クラスターが脆弱かどうかを判定するには、マスター上で実行中の atomic-openshift パッケージのバージョンを確認します。このサービスが、使用される S2I (source-to-image) ビルドイメージを決定するコードを制御します。OpenShift のマイナーリリースについては、以下のバージョン以降を実行中のマスターにはパッチが適用されています。
- 3.9: atomic-openshift-3.9.25-1.git.0.6bc473e.el7
- 3.8: atomic-openshift-3.8.37-1.git.0.e85a326.el7
- 3.7: atomic-openshift-3.7.44-1.git.0.6b061d4.el7
- 3.6: atomic-openshift-3.6.173.0.113-1.git.0.65fb9fb.el7
- 3.5: atomic-openshift-3.5.5.31.67-1.git.0.0a8cf24.el7
- 3.4: atomic-openshift-3.4.1.44.53-1.git.0.d7eb028.el7
バージョン 3.1 から 3.3 までについては、追加のステップが必要になります。各 OpenShift ノードホストで以下を実行します。
`$sudo docker images | grep ose-sti-builder`
registry.access.redhat.com/openshift3/ose-sti-builder v3.3.46.38 cee523a4e55c 2 weeks ago 608 MB
この例では、cee523a4e55c はパッチ未適用のイメージを表します。これらのイメージは最新リリースと同じバージョン番号となるため、sha256 sum を確認することが重要になります。対応するチェックサムがあるパッチ適用済みのイメージは、以下のとおりです。
- 3.3: registry.access.redhat.com/openshift3/ose-sti-builder:v3.3.1.46.38 (b285a30ab8e0)
- 3.2: registry.access.redhat.com/openshift3/ose-sti-builder:v3.2.1.34 (b536950df3d8)
- 3.1: registry.access.redhat.com/openshift3/ose-sti-builder:v3.1.1.11 (de9eb6fe3b01)
パッチ未適用のイメージを削除できる場合は、削除してください。そうすることで、次回にイメージが必要になった場合に、新たな (パッチ適用済み) コピーがダウンロードされます。
$ sudo docker rmi cee523a4e55c
注記: チェックサムは上記のものとは異なる可能性がありますが、この値は、`sudo docker images | grep ose-sti-builder` で取得されます。
これは複数の理由により、失敗することがあります。そのうちの 1 つは、“image is in use by stopped container xyz (停止したコンテナー xyz がイメージを使用中)” です。この場合は、2 つ目 (任意) のタグをイメージに追加し、バージョンタグがその後にエラーなしで削除できるようにします。結果として、次回にイメージが必要になった場合に、新たな (パッチ適用済み) コピーがこのノードにダウンロードされるようになります。
$ BADIMAGE=cee523a4e55c
$ BADVERS=v3.3.46.38
$ sudo docker tag $BADIMAGE registry.access.redhat.com/openshift3/ose-sti-builder:donotuse
$ sudo docker rmi registry.access.redhat.com/openshift3/ose-sti-builder:$BADVERS
影響を受けるバージョンの ose-sti-builder イメージをお持ちのお客様は、S2I ビルドを無効にするというオプションが可能でない場合、新規イメージが利用可能になり次第、それらを更新することが強く推奨されます。バージョン 3.4 から 3.9 までは、通常のアップグレードプロセスを使用します。このプロセスでは、atomic-openshift-utils パッケージが最新のものであることを確認し、アップグレード playbook を実行します。
- OpenShift Container Platform 3.4 - Performing Automated In-Place Cluster Upgrades
- OpenShift Container Platform 3.5 - Performing Automated In-Place Cluster Upgrades
- OpenShift Container Platform 3.6 - Performing Automated In-Place Cluster Upgrades
- OpenShift Container Platform 3.7 - Performing Automated In-Place Cluster Upgrades
- OpenShift Container Platform 3.9 - Performing Automated In-Place Cluster Upgrades
バージョン3.1 から 3.3 までを実行中のクラスターでは、管理者は、クラスター内の全ノードにパッチ適用済みのイメージをプルする必要があります。「診断」タブのステップで脆弱なバージョンを使用中であることが判明した場合は、以下の手順を実行することで手動でイメージを更新できます。
- 各ノードホストへの SSH 接続を確立する。
- `docker pull registry.access.redhat.com/openshift3/ose-sti-builder`を実行する。
- プルしたイメージと、「診断」セクションのクラスターバージョンで使用されているチェックサムが一致することを確認する。
注記: これらのイメージは、それらの同一マイナーパッチレベル内のいかなる番号にもタグ付けすることができます。たとえば、インストール済みクラスターのバージョンが一致する場合は、v3.3.1.36.38 を v3.3.1.46.11 にタグ付けすることができます。
軽減策
Red Hat では、パッチが利用可能になり次第、お客様がソフトウェアを更新されることを推奨しています。
source-to-image (S2I) ビルドストラテジー を無効にすると、悪用可能な機能へのアクセスを防ぐことができます。S2I ビルドストラテジーを無効にする方法については、以下の製品ドキュメントを参照してください。
- Disabling S2I in OpenShift Enterprise 3.0
- Disabling S2I in OpenShift Enterprise 3.1
- Disabling S2I in OpenShift Enterprise 3.2
- Disabling S2I in OpenShift Enterprise 3.3
- Disabling S2I in OpenShift Enterprise 3.4
- Disabling S2I in OpenShift Enterprise 3.5
- Disabling S2I in OpenShift Enterprise 3.6
- Disabling S2I in OpenShift Enterprise 3.7
- OpenShift Enterprise 3.8 は、製品バージョンではありません (アップグレードのみ)。
- Disabling S2I in OpenShift Enterprise 3.9
この問題の軽減策については、リスクベースのアプローチが推奨されます。高レベルのセキュリティーと信頼が求められるシステムから対処し、エクスプロイトのリスクを低減する対処法がこれらのシステムに適用されるまで、これらのシステムを他の信頼できないシステムから分離してください。
影響を受ける製品の更新
製品 | アドバイザリー/更新 |
---|---|
OpenShift Container Platform 3.9 | RHSA-2018:1227 |
OpenShift Container Platform 3.8 | RHSA-2018:1229 |
OpenShift Container Platform 3.7 | RHSA-2018:1231 |
OpenShift Container Platform 3.6 | RHSA-2018:1233 |
OpenShift Container Platform 3.5 | RHSA-2018:1235 |
OpenShift Container Platform 3.4 | RHSA-2018:1237 |
OpenShift Container Platform 3.3 | RHSA-2018:1239 |
OpenShift Container Platform 3.2 | RHSA-2018:1241 |
OpenShift Container Platform 3.1 | RHSA-2018:1243 |
OpenShift Container Platform 3.0 | 上記の軽減策を参照するか、サポートまでご連絡ください。 |
Comments