パスワードを忘れた? アカウント作成
15511836 story
Java

Apache Log4j 2 で非常に深刻なリモートコード実行の脆弱性が見つかる 69

ストーリー by headless
深刻 部門より
Apache Log4j 2 でリモートコード実行の非常に深刻な脆弱性 (CVE-2021-44228) が見つかり、修正版の Log4j 2.15.0 が公開された (Apache Log4j Security VulnerabilitiesThe Register の記事LunaSec のブログ記事The Verge の記事)。

この脆弱性はLog4j 2 の JNDI 機能が攻撃者にコントロールされた LDAP やその他の JNDI 関連エンドポイントに対する保護を行わないというもので、Log4j 2.0-beta9 から 2.14.1 までのバージョンが影響を受ける。攻撃者は脆弱性のある Log4j 2 に特定の文字列をログとして記録させることで、LDAP サーバーから任意のコードを読み込んで実行させることが可能だ。この脆弱性を使用するエクスプロイトが既に公開されており、「Log4Shell」などと呼ばれている。

これについて あるAnonymous Coward 曰く、

Java のログ出力ライブラリ「Apache Log4j」にリモートコード実行 (RCE) の脆弱性が存在することが明らかになった。

この脆弱性を悪用するために特別な設定は不要で、「Apache Struts 2」、「Apache Solr」、「Apache Druid」、「Apache Flink」などが影響を受けるとのこと (窓の杜の記事)。

プログラムで Java を導入しているところは Log4j も入っているものと考えると影響は広範囲に及ぶものと見られ、GitHub では Apple、Steam、Minecraft などでの実証した画像が公開されている。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2021年12月11日 16時51分 (#4168172)

    RedHatのCVE-2021-44228ページ [redhat.com]

    攻撃元区分: ネットワーク
    攻撃条件の複雑さ: 低
    必要な特権レベル: 不要
    ユーザ関与レベル: 不要
    スコープ: 変更なし
    機密性への影響: 高
    完全性への影響: 高
    可用性への影響: 高

    うーんヤバい。
    log4jでアクセスログとか取ってるサーバーは普通に攻撃条件を満たすから範囲が広すぎる。
    まさかアクセスログでインジェクション受けるとは思ってないですよ…。

    • by Anonymous Coward

      まさかアクセスログでインジェクション受けるとは思ってないですよ…。

      ログ爆弾とかゴミ箱爆弾とか
      全世紀から想定されていた手法かと
      集積や解析の場はターゲットに最適みたいな
      忘れた頃に穴が生み出されるものなんですよ

    • by Anonymous Coward

      そもそもログライブラリーになぜこんな強力な謎機能が実装されてたんだろう。
      と今回のニュースを見て多くの開発者が思ったんではないかと。

      log4jを使ったことがあるだけにかなり衝撃的だよ。
      他者か提供するライブラリーはソースを読むところから始めないといかんのか!?

      • by 90 (35300) on 2021年12月11日 22時49分 (#4168308) 日記

        オブジェクト指向実行環境ならではの素晴らしいネットワーク透過性の発露ではないですか。クラスファイルがたまたまリモートに存在していてもちゃんと名前を解決してログが取れるんですよ! これはSun Microsystemsに惜しみない👍を送る [impress.co.jp]べきでしょう。

        親コメント
        • by Anonymous Coward

          どちらかというと🖕を送りたい

      • by Anonymous Coward

        OSにログ機能が無くてもカバーできるようにする為、という辺りかな?
        PC関係だけをターゲットにするなら無くてもいいだろうけど。

        • by Anonymous Coward

          ソフトウェアから見たログの出し方も、
          Javaの実行環境についてもご存知ない?

          ログってのは開発言語上で扱う様々な情報を文字列化できると便利に使える物なので、
          開発言語に依存しないOS機能がいくらか充実してた所で言語に依存する機能は充実しない。
          そしてJavaは一度書いたコードが大きく異なる環境でも動かせるというコンセプトを持っているので、
          コンセプトが機能する範囲において「ターゲット」という概念を持ち出すこと自体何かがおかしい。

    • by Anonymous Coward

      こういうバグを見ると、国家情報機関はとっくに知っていて、
      使っているんだろうなと思ってしまう。

  • by Anonymous Coward on 2021年12月11日 18時18分 (#4168204)

    こういった高機能ライブラリでも、ほとんどの人が一部のシンプルな機能しかつかってないのでは?
    シンプル版があれば余計な馬具も入りにくい

    • by Anonymous Coward on 2021年12月12日 1時16分 (#4168329)

      標準ライブラリのLoggerでいいんじゃない。

      親コメント
    • by Anonymous Coward on 2021年12月12日 14時38分 (#4168438)
      1人が使う機能はシンプルでも、それぞれが必要とする機能を寄せ集めたらシンプルではなくなる
      そういう君だってprintfじゃあ機能が足りないからログライブラリを使うわけだし
      そのprintfでさえ複雑すぎでセキュリティホールの原因になるのもありがちな話
      親コメント
    • by Anonymous Coward

      あなたがフォークして作れば良いのでは?

      実際問題、機能を削るのだって手間だしデグレの恐れもある。メンテも本家とは別にしなきゃならない。
      誰もやってはくれないと思うよ。

    • by Anonymous Coward

      確かに馬具は余計というか使わないプロジェクトの方が多そうですね……。

      #お馬のゲームとかもあるのでゼロとは言わない

    • by Anonymous Coward

      餅は餅屋ということだな

  • by Anonymous Coward on 2021年12月11日 16時19分 (#4168161)

    2010年代javaシステムのほぼ100%が深刻なセキュリティホールを持つことになるのか
    だからうちのjava部が徹夜作業してるんだな

    //年末だからと思ってた

    • by Anonymous Coward

      > だからうちのjava部が徹夜作業してるんだな
       
      USだとホリデーシーズン入ってんじゃないかな?
      みんな休暇取っててやばそう。

      • by Anonymous Coward

        担当者に連絡が取れなかったのでサービス終了。部署ごとスクラップアンドビルドでまるごと解雇。

    • by Anonymous Coward

      風の噂ではバージョン2系だけでなく1系も駄目な可能性アリとか。
      すいませんが追い切れなかったので、事情分かる方が追記していただければ。

    • by Anonymous Coward

      そうやってAspectJしか使ってる認識ないプロジェクトでロギングのバックエンドにLog4jが入ってて大惨事って世界で数件は起こりそうなのが怖い。

    • by Anonymous Coward

      Log4j2よりLogbackの方がメジャーなはずだから100%ってことはないんじゃないかな

  • by Anonymous Coward on 2021年12月11日 16時30分 (#4168167)

    うちはコンテナ隔離してるから大丈夫・・・
    ではなくて、外部からダウンロードしたJavaコードを実行されられるので、
    情報を盗まれなくても仮想通貨マイニングソフトウェアを動かされたり、DDoSのボットにされたりと
    なんでもござれの脆弱性。
    大変危険。外部に接続されているシステムで使用している場合は直ちに対処すべきだ。

    • by Anonymous Coward on 2021年12月11日 16時46分 (#4168171)

      実際のところ速やかに対処ができないなら、停止しなければならないくらいの問題なんだよなこれ。

      親コメント
      • by Anonymous Coward

        実際のところ速やかに対処ができないなら、停止しなければならないくらいの問題なんだよなこれ。

        巫女召喚フラグですね

        • by Anonymous Coward

          info.gbiz.go.jp とか止めてるところは止めてるっぽいね

    • by Anonymous Coward

      サーバというのは外部からの通信は受けても、外部への通信はダメになっているものと思っていたが、そうでもないのだろうか。

      • firewalldも外からのアクセスは FWとかもホワイトリスト方式だけど、
        内から出る方はブラックリスト方式というか、デフォルトで全開放じゃね?

        ntpとか、ソフトのインストールとかで穴開けるとか作業したことないし。

        こういう事でもないと、大概は外固めときゃ問題ないしな。
        親コメント
      • by Anonymous Coward

        LDAP はまだしも DNS すら通していないのは珍しいのでは

      • by Anonymous Coward

        外部との通信が一切不可になってるのは珍しいからなー。
        ポートスキャンとか疎通確認も内側からできそうだし気付いたら関連会社のサーバを攻撃してましたなんてのもありそう。

      • by Anonymous Coward

        DNSとかNTPとかは開けます。
        さらにセキュリティフィックスのダウンロードに支障がない程度には開けますよ。
        必要なケースではそれらに加えてLDAPも。

        • by Anonymous Coward

          弊社のシステムは閉域網内にDNS/NTPサーバをわざわざ作っていてセキュリティフィックス用のマネージャー
          (プロキシ)も一台建てている。
          まさにこういうことを想定して外部との通信を極力排するためだったんだな。今やっと理解したよ。
          ありがとう、辞めた前任者の人。

          • by Anonymous Coward

            プロキシのログ定期的に見てあげてね。
            見慣れないログがあったら、ヤラれた証拠なので。

  • by Anonymous Coward on 2021年12月11日 21時01分 (#4168259)

    30億のデバイスで脆弱性

    cf.「30億のデバイスで動いて客先で動かないJava」
      「30億のデバイスで走るJava」

  • by Anonymous Coward on 2021年12月11日 23時04分 (#4168312)

    普通に考えて、ロギングライブラリとして求められる機能ではないように思うのだが、
    開発者にもともと脆弱性を仕込む意図があったのでは無いかと勘ぐってしまうな

    • by Anonymous Coward on 2021年12月12日 8時06分 (#4168361)

      例えば、
      異常検知やユーザーの異常行動の解析のためログの吐く先がDBの場合に、
      Appender インタフェースを使った JDBCAppenderがよく使われますが、
      そこでJNDIが使われてたりします。
      ご参考まで:https://logging.apache.org/log4j/2.x/manual/appenders.html

      これに限らず、
      サービス化されている機能を介してログや設定を取ったり、ログを吐き出すのに、
      JNDIを使うことはまあ一般的です。

      といっても、
      今回の脆弱性が、URI書式異常時の例外をトラップするもスルーし、
      しかも、”This is OK.”とかコメントを書いときながら、
      異常URIをそのままJNDI接続処理に回してた、
      修正はreturn文を1行追加するだけ、
      ってー感じの、
      ちょっと恥ずかしくなる類のミスなので、勘繰りたくもなりますよね…。

      親コメント
      • by Anonymous Coward

        "This is OK."のコードは今回の脆弱性の修正過程で一時的に入ったもので、今回の脆弱性の原因じゃないですよ。

    • by Anonymous Coward

      こちら [github.io] に詳細な説明がありますが、ログ出力時に動作環境に関する様々な情報を出力したい、という要件から作られたものですから、意図的ではなかったと思いますよ。

typodupeerror

Stableって古いって意味だっけ? -- Debian初級

読み込み中...