ロギングライブラリ「Apache Log4j」に何が起こっているのか?

今「 Apache Log4j 」というオープンソースのライブラリに脆弱性が見つかり、世界中で大問題になっている。今回はその脆弱性の具体的な内容と現在の状況を説明します。その上で今回のような脆弱性を生み出さないように我々開発者はどうしていくべきかを考察していきます。

Apache Log4j 」とは?

Apache Log4j 」は オープンソースのJavaライブラリで、ログの記録を行うライブラリである。とても広く普及しており、その影響範囲は世界中のWebサーバの1/3にも上るとされています。さらにIoTの普及によって、冷蔵庫などの家電や家具にも、このライブラリ直接またはネット経由で間接的に利用されています。

発見された脆弱性

このライブラリの脆弱性は今月の12月10日が見つかった。 Log4j 2.0ベータ9~2.14.1 の機能の一つ「JNDI Lookup」に恐ろしい大穴があったのだ。この機能はログとして記録した文字列の一部を変数として置き換えるもので、これを悪用して細工した文字列をログに送信・記録させて、任意のJavaコードをシステムに実行させられます。この攻撃の真に恐ろしいところは、システム側はログとして悪意のあるJavaコードを受け取るので認証など潜り抜ける必要なく、簡単に攻撃できて防ぎずらいというところだ。

脆弱性が発見される前からすでに悪用されていて、様々な被害が出ていた。

  • 他人のサーバで暗号通貨の計算をさせる
  • ゲームのプライベートロビーに侵入する
  • システムのコードやサーバにある秘匿情報を盗み出す

この脆弱性はその影響範囲や悪用のしやすさから、ここ数年で最悪レベルの脆弱性と評されている。そのあまりの凶悪さゆえにアメリカ政府が、影響を受けている全ての Log4j クリスマスイブまでに修正版にアップデートするよう呼び掛けている。

世界中のシステムへの影響

先述していたようにこのシステムは世界中で開く使われていた。すでに大手のサーバはある程度修正版にアップデート済みであるが、まだ対策が完了していないところも多い。しかも、最初の修正版が公開されたのは12月13日(発覚から3日後)。さらにこれでも不十分であったため、さらなる修正版が 12月15日( 発覚から5日後、つい一昨日のこと )に公開された。修正版が公開される前に受けた影響も大きく、今回の最終的な影響は計り知れないといわれている。

このようなことを起こさない為に

この脆弱性が生まれてしまった原因は  「JNDI Lookup」 機能の”検証不足”が原因だと考えられている。この悪用方法を検証中に思いつかなかったのだろう。

大事なのは私たち開発者がこのような大規模な脆弱性とその影響をしっかり記憶しておくことだと思う。こうゆうことが起こるというのを覚えておけば、検証をするときに役に立つ。そうやって二度と同じようなことが起こらないようにしなければならない

今回の件は開発に携わるすべての人々が教訓としておく必要がある事例である。検証やテストはそのシステムが悪用される可能性を常に念頭に入れて行うべきだ。自分が”検証を怠っただけ”で今回のような大問題に発展する可能性があるのだから…

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA