紹介する
私は Kubernetes クラスターに関連する一連のプロジェクトを通じて脆弱性の数を減らそうとしています。この目的のために、私は現在すべての潜在的な脆弱性を強調するためにTwistlockを使用しており、現在すべての高い/重要な脆弱性と重大な脆弱性を排除しようとしています。
Twistlockのダッシュボードによると、脆弱なパッケージの1つは次のように関連しています。SQLite& その他の関連項目libxml2。可能であれば、その項目も削除したいと思います。バス、この時点では、この問題をどのように解決するのかわかりません。
プロセス
これまで私はCentOSを使用しているので、上記のパッケージを処理するためにかなり原始的なプロセスを使用しようとしているので、dockerfileで次のコマンドを実行します。
## Use the base image.
FROM base-img
## Utilise root for package management.
USER root
RUN yum update
RUN yum clean all
RUN yum remove sqlite
RUN yum remove libxml2
## Run as non root user.
USER jboss
## Now to remove yum.
RUN rpm -e $(rpm -qa '*yum*')
## etc.
しかし、これにより、docker buildコマンドを実行しようとしたときなど、いくつかのエラーが発生します。
...
Error: Trying to remove "systemd", which is protected
Error: Trying to remove "yum", which is protected
...
結論として
Linuxの専門家の助けが必要だと思いますか?このプロジェクトの要件は最大限のセキュリティを確保することであり、可能な限り多くの潜在的な脅威を排除しようとしています。ほぼアプリケーション層が識別されました。今はOS層を調査しており、まもなくネットワーク層も調査する予定です。誰もがこれらの脅威を無力化する方法についての意見や指示を提供していただきありがとうございます。
婦人声明
残念なことに、私はLinuxの専門家から遠く離れたもので、せいぜい中級レベルなので、私が見逃した部分があればご了承ください。私もSOに関する質問、これはJBossともっと関連があるだけです。この問題を解決するのに役立つ人がいる場合は、大変感謝します。
答え1
あなたのプロセスには(面倒ではありませんが)かなり難しくするいくつかの問題があります。
大きな基本画像で始まります。
jboss/wildfly
、ベースjboss/base-jdk:11
、ベースjboss/base
、に基づいていますcentos:7
。基本画像を整理するのは難しいです。コンテンツがあまりにも多くの画像で始まり、削除するよりも必要なものがない画像から始めて追加する方がはるかに簡単です。私が使用しているCentOS 7に基づいた素敵で最小限の画像はありません。UBI基本イメージしかし、あなたの状況に合わないかもしれません。すべての CVE に解決すべき脆弱性が反映されていると仮定します。 CVEは一意の識別子です。実際の脆弱性を示す必要がありますが、必ずしもそうとは限らず、下痢が発生しても脆弱性があなたの状況に関連していない可能性があります。例えば、CVE-2017-15412XPath拡張機能が含まれています。脆弱性XPath拡張機能を設定してユーザー制御入力にアクセスできるようにするプログラムでは、
libxml2
最新バージョンのdoには関連するlibxml2
すべての脆弱性を防ぐ修正が含まれています。ただし、最初に脆弱なプログラムを使用している場合にのみ必要です。
脆弱性を評価して解決するには多くのリソースが必要なため、ほとんどの人はそのためにプロバイダに依存しています。通常、基本イメージを構築するディストリビューションを作成する人、基本イメージを構築する人(該当する場合)、おそらくインフラストラクチャをホストしている人です。 CentOS 7はまだセキュリティアップデートを受けていますが、Twistlockダッシュボードに表示される脆弱性がパッチされていないという事実は、その脆弱性が解決するのに十分重要ではないことを意味します。もちろんこれはありません。保証するしかし、CentOSを盲目的に信頼しないようにするには、Twistlockも盲目的に信頼しないでください。独自のセキュリティ評価を実行する必要があります。