
CVE-2021-44228に対して意図的に脆弱なJavaアプリケーション
このリポジトリには、通称log4shellとして知られるCVE-2021-44228に対して意図的に脆弱なJavaアプリケーションが含まれています。
log4stdinは、文字通り、単なる標準入力リーダーであり、その入力は脆弱なlog4jインスタンスに渡されます。log4stdin.jar ビルドは、Mavenアーティファクトのlog4j-api 2.14.1とlog4j-core 2.14.1を使用し、ログレベルとタイムスタンプの詳細を省略するロギングパターンを使用しています。このバージョンは、脆弱であることが保証されています™️。
versions/ フォルダには、デフォルトのロギングパターンとlog4jバージョン2.0-beta9から2.20.0を使用したビルドがあります。
入力にはUnixパイプを使用します。たとえば、ログエントリに注入可能性の処理を施すには、次を実行します。
cat output.log | java -jar log4stdin.jar
あるいは、ログをリアルタイムで読み取るには、次を実行します。
tail -f output.log | java -jar log4stdin.jar
log4stdinは、標準入力に与えられたものを出力するだけで、ユーザー入力への処理は一切行いません。したがって、上記の例のようなログファイルの読み取りや、ユーザー操作を必要としないソフトウェアでの使用に適しています。
このリポジトリの内容物は、AVによって、感染ファイルまたは悪意のあるコマンドの発行試行のいずれかに分類されることは間違いありません。リポジトリをクローンする前に、AVスキャンの対象からターゲットフォルダを除外しておくとよいでしょう。さらに良いのは、ネットワーク接続のない仮想環境で試すことです。
第一に、既存のソフトウェアをフォークする必要なく、実質どこにでもJNDIインジェクションポイントを置いた場合の結果を調査するために使用できます。保護方法の研究やテストに役立つかもしれません。
第二に、これは基本的にサイバーセキュリティの「Hello World」であり、この脆弱性の単純さと深刻さの両方を強調するために書かれています。
第三に、AVソリューションがCVE-2021-44228を悪用するソフトウェアを検出できるかどうかをテストするために使用できます。たとえば、log4stdin.javaやlog4stdin.jarがGeneric.Zojfor.Gとしてフラグ付けされる可能性があります。
いずれにせよ、これをどのような目的で使用するにしても、その結果に対する責任はあなたにあります。
MITライセンス。詳細はLICENSE.mdをお読みください。
とはいえ、大した作業があったわけでもありません。ご自身の判断で自由に複製していただいて構いません。誰かが追いかけてくることもありません。
Copyright 1999–2023 The Apache Software Foundation
Apache License、バージョン 2.0(以下「本ライセンス」)に基づいてライセンスされています。 本ライセンスに準拠する場合を除き、このファイルを使用することはできません。 本ライセンスのコピーは、次の場所から入手できます。
http://www.apache.org/licenses/LICENSE-2.0
適用法で要求される場合、または書面による合意がない限り、本ライセンスに基づいて配布されるソフトウェアは、明示または黙示を問わず、いかなる種類の保証や条件もなく、「現状のまま」(AS IS)ベースで配布されます。 本ライセンスの下での特定の許可と制限については、本ライセンスを参照してください。