Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
kubernetes-log4j-cve-2021-44228-node-agent — Log4j2 CVE-2021-44228を緩和するため、全てのコンテナおよびホストJVMにわたってJNDIルックアップを無効化するJVMレベルのホットパッチをデプロイするKubernetes DaemonSet。 | Kitploit
ツール/GitHubGitHub/aws-samples/kubernetes-log4j-cve-2021-44228-node-agent
脆弱性スキャナーコンテナセキュリティ脆弱性分析クラウドセキュリティDevSecOpsインシデントレスポンスArchived
GitHubaws-samples/kubernetes-log4j-cve-2021-44228-node-agent

kubernetes-log4j-cve-2021-44228-node-agent

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Log4j2 CVE-2021-44228を緩和するため、全てのコンテナおよびホストJVMにわたってJNDIルックアップを無効化するJVMレベルのホットパッチをデプロイするKubernetes DaemonSet。

リポジトリを見る
2163年前未レビュー

!!!! 非推奨のお知らせ !!!!

このプロジェクトは、以下に概説するように非推奨となります。

  • 2023-01-01 - このリポジトリは更新されなくなります
  • 2023-04-01 - このリポジトリは恒久的に非推奨となります

このプロジェクトは、2023-01-01 以降、Issue を受け付けず、更新も行われません。この日以降、このプロジェクトはサポートされず、新しいリリースや関連するアーティファクトは生成されません。

プロジェクトリポジトリは、2023-04-01 に恒久的にアーカイブ(読み取り専用)されます。

元のプロジェクトドキュメントに記載されているように、これはあくまで Kubernetes ユーザーを支援するための一時的な措置であり、Log4j2 CVE-2021-44228 および CVE-2021-45046 によるセキュリティ露出を部分的に緩和するものに過ぎませんでした。これらの CVE に関連するリスクを完全に緩和するには、すべての Log4j ユーザーが修正バージョンにアップデートすることを強く推奨します。

それでもこれを使いたい場合は?

最新リリースに関連するリリースアーティファクトは、引き続き Kubernetes 環境にデプロイしているプロジェクト利用者が利用できるように永続的に利用可能です。具体的には、DaemonSet マニフェスト と ECR Public コンテナイメージ は非推奨後も利用可能ですが、サポートや更新は行われません。

Apache Log4j2 CVE-2021-44228 ノードエージェント

AWS は Log4j2 ライブラリからの JNDI ルックアップを無効にする JVM レベルのホットパッチを実行する RPM を開発しました。Log4j2 CVE-2021-44228 および CVE-2021-45046 を緩和します。

Apache Log4j2 CVE-2021-44228 ノードエージェントは、AWS の Kubernetes チームによって構築されたオープンソースプロジェクトです。DaemonSet として実行され、信頼できないソースからの入力を処理する際に Apache Log4j2 バージョン < 2.15.0 を実行するアプリケーションに影響を与える Log4j2 CVE-2021-44228 の影響を緩和するように設計されています。この DaemonSet を実行すると、コンテナ内だけでなくホスト上で実行されている JVM もパッチされます。

動作内容: 各ワーカーノードに cron エントリがインストールされ、実行中の JVM を探すプロセスを実行し、Log4J2 CVE を緩和するエージェントを注入します。コンテナ内で実行されているものを含むすべての JVM が、この方法でホットパッチされます。現在、ホットパッチプロセスは 30 分ごとに 15 分のジッターで実行するように構成されています。有効なウィンドウは実行間隔で 15 分から 45 分の範囲になります。

注記: Log4j2 の脆弱性と AWS の対応に関する追加情報は、AWS セキュリティ速報 にあります。

注記: 2022 年 4 月 20 日、イメージ (v0.0.16) は Amazon Linux 1 および 2 の最新パッチで更新されました。この DaemonSet の以前のバージョンをインストールしていて、まだ実行中の場合は、daemonset.yaml ファイルを再適用して最新の RPM をインストールする必要があります。log4j パッチが不要になった場合は、DaemonSet を削除し、RPM をアンインストールする必要があります。古いバージョンの RPM (< 1.1-16) には、攻撃者がコンテナからエスケープして基盤となるホストにアクセスできる脆弱性があったためです。

注記: バージョン 1.3-5 は ALAS2-2022-1806 および ALAS-2022-1601 に対応しています。詳細については、Amazon Linux "log4j hotpatch" <1.3-5 ローカル権限昇格による root 化 を参照してください。

インストール手順

  1. マニフェストを適用します:
root@kitploit:~
kubectl apply -f https://raw.githubusercontent.com/aws-samples/kubernetes-log4j-cve-2021-44228-node-agent/main/daemonset.yaml
  1. DaemonSet の 1 つ以上の Pod のログを確認します。

単一の Pod をスポットチェックする:

root@kitploit:~
kubectl get pods -l job=node-patch-installer -n node-configuration-daemonset
root@kitploit:~
kubectl logs <pod-name> -c node-patch-installer -n node-configuration-daemonset

またはすべてのノードの確認を取得する:

root@kitploit:~
kubectl logs -l job=node-patch-installer -c node-patch-installer -n node-configuration-daemonset | grep 'installed'

インストールが成功した場合、ログファイルの最終行に installed and verified と表示され、そうでない場合はエラーが記録されます。

考慮事項

  • このプロジェクトは、すべての Java ベースの Kubernetes アプリケーションの Log4j2 依存関係を少なくとも Log4j バージョン 2.15.0 に更新できるまでの一時的なベストエフォート型の緩和策として機能することを目的としています。このエージェントを長期的な緩和策として依存しないでください。依存関係の更新がすぐに不可能な場合、このツールはリスクを緩和するのに役立つ可能性があります。
  • DaemonSet は、Amazon Linux (AL)、Amazon Linux 2 (AL2)、および Ubuntu などの Debian Linux ディストリビューションでサポートされています。Bottlerocket はシェルやパッケージマネージャーが含まれていないためサポートされていません。Bottlerocket で log4j を実行している場合は、CVE は Hotdog によって対処されます。
  • DaemonSet は AWS Fargate では実行されないため、Amazon EKS クラスターの Fargate で実行されている Pod はこのエージェントによってパッチされません。
  • デフォルトの実行頻度が 30 分であるため、このエージェントは長時間実行されるコンテナーに適しています。
  • RPM は以下の Java ディストリビューションでのみ動作します:
    • Credo
    • Corretto
    • OpenJDK
  • ワーカーノードがインターネット接続のないサンドボックス環境にある場合は、ECR からイメージをプルしてプライベートレジストリにプッシュできます。または、イメージディレクトリの makefile を変更して、結果のイメージをビルドしてプライベートレジストリにプッシュすることもできます。DaemonSet の spec.template.spec.initContainers.image を daemonset.yaml ファイルで編集して新しい URI:タグを反映し、マニフェストをクラスターに適用します。

CVE-2021-44228 について

Apache Log4j2 < 2.15.0 では、設定、ログメッセージ、パラメーターで使用される JNDI 機能が、攻撃者が制御する LDAP およびその他の JNDI 関連エンドポイントから保護されていません。メッセージルックアップ置換が有効な場合、ログメッセージやログメッセージパラメーターを制御できる攻撃者は、LDAP サーバーからロードされた任意のコードを実行できます。Log4j2 バージョン < 2.15.0 では、この動作はデフォルトで無効になっています。詳細は CVE 速報 にあります。

Log4j2 の脆弱性に関する追加情報は、AWS セキュリティ速報 にあります。

仕組み

AWS は、Log4j2 ライブラリから JNDI ルックアップを無効にする JVM レベルのホットパッチを実行する RPM を開発しました。これにより、ホスト上の JVM とコンテナ内で実行されている JVM の両方に適用される Log4j2 の問題を緩和します。このプロジェクトは、RPM を Kubernetes DaemonSet としてパッケージ化します。

インストールされると、各ワーカーノードで実行中の JVM を探すプロセスが実行され、JVM にエージェントを注入して Log4j2 の脆弱性を緩和します。エージェントは、ロードされたすべての org.apache.logging.log4j.core.lookup.JndiLookup インスタンスの lookup() メソッドをパッチし、無条件に文字列 Patched JndiLookup::lookup() を返すようにします。これは、Java プロセスを再起動せずに Log4j2 の CVE-2021-44228 リモートコード実行の脆弱性に対処するように設計されています。

このプロセスはデフォルトで 30 分ごとに実行するように構成されており、アプリケーションがまだ更新された Log4j2 依存関係でパッチされていないクラスターに保護の層を追加します。

ホットパッチの詳細については、AWS オープンソースブログ を参照してください。

コンテナイメージは aws-containers ECR Public リポジトリ でホストされています。

ツールをダウンロード