[Log4j2の脆弱性と解決策]

1. 破壊の原理

Log4j2 バグの被害方法は何ですか? 実際は非常に単純です。SQL インジェクションに似ています。こちらの方が強力です。直接コード インジェクションです。コードの実行権限は、当然アプリケーションの権限と同等です。ここは丸太を印刷する道具屋が働かずに日本兵を紹介する村です。
  では、主な原則は何でしょうか?ログを出力する際、ログ内容にキーワード ${ } が見つかった場合、{ } に含まれる内容が変数に置き換えられ、攻撃者が任意にコマンドを実行できるようになります。脆弱性の詳細な開示については、https://issues.apache.org/jira/projects/LOG4J2/issues/LOG4J2-3201?filter=allissues を参照してください。
  実際、これは主にプラグインの大きな問題が原因です。 Log4J2: ルックアップ。これはあまり使用されないプラグインですが、コードは非常に頻繁にトリガーされるため、コードが情報、警告、エラー、その他のログの書き込みをトリガーするたびに、ルックアップ ロジックが実行されているかどうかがチェックされます。このうち、より深刻な問題は、JNDILookup 関数と RMILookup 関数です。JNDI はデータとリソースを検索して検索できますが、RMI はリモート呼び出しを行うことができます。私が開始した破壊的なコード (アプリケーション サービス) をホストを使用してリモートで呼び出すと、サービス ホストはまな板の上の肉となり、すぐに屠殺されることになります。

2. 解決策

JVM 実行パラメータを変更する

一部のプロジェクトには複雑な依存関係があり、再コンパイルが不便である場合があります。実行時に次の JVM パラメータを直接追加して、ルックアップが有効にならないようにすることができます。

-Dlog4j2.formatMsgNoLookups=true

参考リンク:https://blog.csdn.net/qq_22136439/article/details/121906595

おすすめ

転載: blog.csdn.net/m0_46459413/article/details/128486785