パスワードを忘れた? アカウント作成
13779644 story
オープンソース

npmリポジトリで公開されているパッケージに仮想通貨を盗むマルウェアが混入 15

ストーリー by hylom
ピンポイントで狙っていたのか 部門より
あるAnonymous Coward曰く、

JavaScript/Node.js向けパッケージリポジトリのnpmで公開されていた「event-strem」というJavaScriptパッケージにマルウェアが仕込まれる事件が発生した(Qiitaに投稿された解説記事event-stremパッケージに対するチケットRegisterZDNet)。

このパッケージでは最近メンテナの交代があったのだが、新メンテナが意図的に暗号通貨を盗むマルウェアをパッケージに仕込んでリリースを行っていたという。

問題のevent-streamパッケージはビットコインウォレットの「Copay」で利用されており、これを狙ってビットコインウォレットの情報を盗む攻撃を行うマルウェアが含まれていたようだ。

  • by Anonymous Coward on 2018年11月29日 19時37分 (#3524038)
    ここに返信
    • by Anonymous Coward on 2018年11月29日 20時48分 (#3524076)

      これOSSにとって今後大きな問題になるような…。
      元メンテナがやる気を無くした時に、誰か他の人にメンテナやりますって言われたらそりゃ喜んで渡してしまうわけで。

      今回はそれが悪意あるユーザーで、いろんなとこで使われているライブラリにマルウェアが仕込まれてしまったわけだけど。
      ユーザーの方も、まさか有名ライブラリがそんな事になるなんて思いもしないし、かといって元メンテナに無限に続けてもらうわけにはいかないし、今後もこの手の攻撃が増えるんではなかろうか?

      • 実は目新しくない人間(エンドユーザーや開発者)に対するソーシャルハックなんですよ。
        OSSに限らずイソジン [srad.jp]やら、イソジンのコメントにもある味覇と創味シャンタンDX [wikipedia.org]みたいな例も有ります。
        プロプラでは、流石にトロイ的な事 [security.srad.jp]はあまりないですが、次バージョンでゴミ化とかEOSになったりとか有りますし。
        # 燃費やら検査データ改ざんみたいな例とかも有りますけど。

        閑話休題。
        自動更新によって突如マルウェア化する人気Chrome拡張 [security.srad.jp]とか色々前例は有ったり。
        使用者が外部依存しているリソースのチェックを怠り続ける限り今後も何処かで起きるでしょうね。
        最近有った事例だと、StatCounter [security.srad.jp]みたいな話題にならなかった物も含め。

        とはいえ、Web界隈はシステムの複雑化と開発速度優先により、容易に外部ライブラリを使用し、
        その外部ライブラリも別の外部ライブラリを呼び、人間が管理しきれなくなり、
        言語ではなく、ロジックが理解しきれない事によるバベルの塔崩壊前夜な感じにも見えます。

        たしかに管理者が変わったのに、パッケージ名という名前空間でしか管理していないために、
        ブランドに対する信用をそのまま機械的に引き継げてしまうシステムが問題を大きくする要因の一つでしょう。
        しかし、悪意あるオデュッセウスが見つかっていないだけという可能性だってあります。
        究極的には対処法は外部リソースは基本的に信じず、信頼できる方法で確認し続ける事が必要なのでしょう。
        そして、それって最初に書いた通り、別にOSSに限った話ではないのですよね。
        # で、誰がコストを負担するかで揉めたり、確認が追いつかずライブラリやランタイムのバージョンが古いままで地獄を見るのだ。

        --
        誰も信じちゃいけない、裏切られるから。
        私を信じないで、貴方を裏切ってしまうから。
      • by Anonymous Coward

        left-pad問題もそうだったけど、javascript/ES のモジュール再利用はちょっと異常。

  • by Anonymous Coward on 2018年11月29日 17時31分 (#3523946)
    引用箇所だけわざとつづり違えてるとか
    ここに返信
    • by Anonymous Coward
      (誤記の入れどころを)ピンポイントで狙っていたのか
  • by Anonymous Coward on 2018年11月29日 18時13分 (#3523983)

    一体どうやってコードチェックをすり抜けたのかと思ったら
    依存関係を自動で処理するシステムを悪用したのか
    確かに便利な仕組みだけど、多くの依存関係あるコードに不安があった
    しかし、こんな攻撃が出てくるとは予想してなかったな

    ここに返信
    • by Anonymous Coward

      一つ一つのパッケージをきちんと見てるDebianのようなのが望ましいのかもしれませんが、言語処理系のパッケージだと数が多くて手間がかかりすぎるんですよね。

      iOSのようにお金を払って開発者登録して、さらに人手審査をするなんてのが使う側には安全かもしれませんが。

  • by Anonymous Coward on 2018年11月29日 18時40分 (#3524002)

    この件では新メンテナが犯人ぽいけど、検挙できないのかなあ。
    犯人の居住国の法律によるのかな?

    ここに返信
    • by Anonymous Coward

      マルウェアの定義ってなんなのかね。
      npmの使い方考えれば、深い層のreadme.mdなんて読まないから、
      readme.mdに、「これはあなたの仮想通貨を私に送金するモジュールです」
      って書いとけば、作者の宣言通りの動作になる。

      性善説のsemverだから、今回みたいな小物モジュールを乗っ取って、
      0.0.1上げて送金コード仕込めば勝手に広まる、

      • by Anonymous Coward

        狭義のMal-Ware(悪意あるソフトウェア)にはあたらないだろうけど、
        「仮想通貨の採掘」という無関係なモジュールを
        依存関係があると偽ってダウンロード・実行させるのは
        宣言があろうと悪質で実害のある不正行為じゃないかね。

        黒に近いグレーで塀の上を歩く状態なのはcoinhiveと同じ。

  • by Anonymous Coward on 2018年11月30日 0時57分 (#3524155)

    実際はひっそりと乗っ取られてるリポジトリが他にもあるんじゃなかろうか

    ここに返信
    • by Anonymous Coward

      今回はflatmap-stream@0.1.1の悪意あるコードで使われているAPIがnode.js 11でdeprecated警告出るようになったから発覚したようなものなので
      当然見つかってないのはあるでしょうね

      今回みたいに直接悪意あるコードを追加するのではなく
      新規のまともそうに見える依存ライブラリを追加し、
      さらにそのminify版にだけ悪意あるコードを注入していたら
      探すのは困難でしょうし

    • by Anonymous Coward

      バグと言い訳できるレベルの巧妙なセキュリティーホールでバッグドアを仕掛けられたら、
      もはやどうにもならない。

      • by Anonymous Coward

        とりよせバッグみたいな

typodupeerror

日本発のオープンソースソフトウェアは42件 -- ある官僚

読み込み中...