このシンプルなスクリプトでLog4jの脆弱性をチェック - TechRepublic

このシンプルなスクリプトでLog4jの脆弱性をチェック - TechRepublic

出版

ジャック・ウォーレンの画像

アフィリエイトリンクまたはスポンサーシップを通じて、ベンダーから収益を得る場合があります。これにより、サイト上の商品配置が影響を受ける可能性がありますが、レビューの内容には影響しません。詳細は利用規約をご覧ください。

Java プロジェクトに Log4j の脆弱性がないかどうかわからない場合は、この使いやすいスキャン ツールをすぐに試してください。


画像: Shutterstock/LeoWolfert

Linuxとオープンソースコミュニティの素晴らしい点の一つは、脆弱性が検出されるとすぐに開発者が懸命に取り組んで問題を軽減するためのツールをリリースすることです。Log4jの脆弱性もまさにその例です。

この問題は、非常に多くのサーバーやプロジェクトに影響を与えるため、非常に深刻です。Log4jの脆弱性の仕組みは以下のとおりです。

  • Log4j2 は、Message Lookup Substitution と呼ばれるログ機能をサポートしています。この機能により、ログ記録時に、特殊な文字列を他の動的に生成された文字列に置き換えることができます。
  • ルックアップ メソッドの 1 つ (LDAP と組み合わせた JNDI) は、リモート ソースから特殊なクラスを取得してデシリアル化し、クラス コードの一部を実行します。
  • ログに記録された文字列の任意の部分は、リモートの攻撃者によって制御される可能性があります。

問題の一つは、Log4jがJavaプロジェクトや多くのツールで使用される依存関係に深く組み込まれていることです。そのため、サーバーのあらゆる脆弱性を見つけるのは困難です。

幸いなことに、こうした問題を特定するための多くの取り組みが行われています。その一つがLog4j Detectです。これは開発プロジェクトをスキャンし、脆弱性がないことを確認します。

Log4j Detect スクリプトを使用して Java プロジェクトをスキャンする方法を説明します。

必要なもの

このスクリプトを使用するには、Javaプロジェクトとsudo権限を持つユーザーが必要です。これで完了です。さあ、始めましょう。このスクリプトはLinux、macOS、Windowsで使用できます。ここではLinux(Ubuntu Server 20.04経由)でデモを行います。

参照: Log4j: このセキュリティ脆弱性から身を守る方法(TechRepublic)

Log4j Detectのダウンロードとインストール方法

まず最初に、Log4j Detect をインストールします。Linux サーバーにログインし、以下のコマンドでシステムアーキテクチャを環境変数に設定してスクリプトをダウンロードします。

ARCH=amd64

アーキテクチャが ARM の場合、そのコマンドは次のようになります。

ARCH=arm64

次に、次のコマンドでスクリプトをダウンロードします。

wget "https://github.com/whitesource/log4j-detect-distribution/releases/latest/download/log4j-detect-1.3.0-darwin-$ARCH.tar.gz"

次のコマンドでファイルを解凍します。

tar -xzvf log4j-detect-1.3.0-darwin-$ARCH.tar.gz

次のようにしてファイルに適切な権限を与えます。

chmod +x log4j-detect

次のコマンドでファイルを /usr/local/bin に移動します。

sudo mv log4j-detect /usr/local/bin/

参照:パスワード侵害:ポップカルチャーとパスワードが混ざらない理由(無料PDF)(TechRepublic)

Log4j-detectでプロジェクトをスキャンする方法

インストールが完了したら、プロジェクトにLog4jの脆弱性がないかスキャンしてみましょう。プロジェクトがJAVAWeb-Projectというディレクトリにあるとします。そのディレクトリに移動して、以下のコマンドを実行してください。

log4j-detect scan

プロジェクトの規模にもよりますが、スキャンはそれほど長くかかりません。完了すると、問題があればレポートが返されます(図A)。

図A

GitHubで見つけたランダムなJavaプロジェクトをLog4j-detectでスキャンした結果

ご覧のとおり、テストしたJavaプロジェクトにはLog4jの問題があり、対処が必要です。スクリプトは問題点と修正方法を指摘します。すべての問題に対処したら、スクリプトを再度実行して、脆弱性が検出されなくなったかどうかを確認してください。

Log4j の脆弱性が疑われるすべてのプロジェクトとサーバー(安全だと考えているものも含む)において、この対策は必須です。これは、安全第一に行動することが最も重要です。

Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube で TechRepublic の How To Make Tech Work を購読してください。

記事をシェア

こちらもご覧ください

  • モバイルVPNアプリとは何か、なぜ使うべきなのか
  • NIST サイバーセキュリティ フレームワーク: 専門家向けチートシート (無料 PDF)
  • Log4Shellの重大なセキュリティ欠陥により、ハッカーが脆弱なサーバーに侵入できる
  • ContiランサムウェアはLog4Shellの脆弱性を悪用して数百万の金銭を盗んでいる
  • サイバーセキュリティとサイバー戦争:さらに必読の記事
ジャック・ウォーレンの画像

ジャック・ウォーレン

ジャック・ウォーレンは、TechRepublic、The New Stack、Linux New Mediaなどで受賞歴のあるライターです。20年以上にわたり様々なトピックを執筆し、オープンソースの熱心な推進者でもあります。ジャック・ウォーレンに関する詳細は、ウェブサイトjackwallen.comをご覧ください。

Tagged: