パスワードを忘れた? アカウント作成
13825925 story
インターネット

第三者向けにJavaScriptコードを提供していたドメインが乗っ取られ悪用される事例 35

ストーリー by hylom
ありそう 部門より

有効期限が過ぎたまま放置されたドメインが第三者に乗っ取られることはよくあるが、かつてJavaScriptコードを第三者向けに配信していたドメインが乗っ取られ、悪意のあるコードが配信されるというケースがあるようだ(tike blog)。

画像やコンテンツなどの場合、意図したものではないものに置き換えられていた場合は閲覧者が比較的容易に判別できるが、JavaScriptコードについては注意してチェックしない限り気付きにくいという問題があるという。先のブログでは、放置されたドメインを大量に取得し、これとCDNを組み合わせて情報を送信させるような例が紹介されている。

  • 異なるドメインからJavaScriptのロードを禁止する設定があればいいのにね。

    ここに返信
  • integrity (スコア:2, 参考になる)

    by Anonymous Coward on 2019年01月29日 17時03分 (#3556443)

    最近はintegrity付きでCDNから読み込むタグの例が書かれてることも多いから、ちゃんとそういうタグを使うようにしてれば大丈夫そう。

    https://developer.mozilla.org/ja/docs/Web/Security/Subresource_Integrity [mozilla.org]

    ここに返信
    • by Anonymous Coward

      えー。多いか?初めて知った。積極的に使っていきたい。

      • by Anonymous Coward

        去年のStatCounterの件でもSRIは紹介されてた。 [security.srad.jp]

        SRIの難点はセキュリティホール等の致命的バグが有った時に、呼び出し元もハッシュを修正しないとサイトの機能が死ぬ点。

        • by Anonymous Coward

          似たような点で、呼び出し元のスクリプトがバージョン管理されていてファイル名が分かれていないと厳しいこともかな。
          同じファイル名で機能追加するようなスクリプト配信には向かない。

        • by Anonymous Coward

          これ本来はハッシュじゃなくて電子署名とかで解決すべきだよね。

          • by Anonymous Coward

            電子署名じゃないのは、金銭や処理コストがハッシュより重たいからなんですかね。
            真面目にやると失効確認等でサイトの読み込み速度落ちてしまうし。

            ちなみに、SRIの致命的な弱点は「integrityを消せば動いてしまう」事。
            integrityを消して、解決したつもりになる馬鹿を確実に排除できないといけない。

          • by Anonymous Coward

            そうかな。電子署名にしてもあんまり解決には繋がらないと思う。

            そもそもこれ、「制作者が面倒くさくなってソフトの更新を放棄して配布ドメインも自然消滅するに任せた」.js、なんかを読み込む話でしょ。
            もっと大手が作ってて、「何か下手を打ったら大手の名前に傷が付くからきっと真面目にメンテされ続けるだろう」.js、の類ならまだしも。

            そんなレベルの、どこの馬の骨かも知れない人が気まぐれに作って公開したソースを、何の検証も無しに自動で読み込もうと言うのがそもそもの間違い。せめて、バージョンアップされる毎にいくらかの動作確認はして読み込み部分のハッシュを書き換えて、ぐらいの手間は掛けないと話にならない。

            署名で放置ドメインの再利用で悪さできなくしても、悪い連中が「そのソフト更新止めちゃうの? じゃあ秘密鍵ごと権利を売ってよ。メンテするからさ」に手法を変えるだけ。悪人の手間がいくらか手間は増えるだろうけど、面倒くさくなって自然消滅するまで放ったらかしにしてるようなものを買ってくれると言うなら、作り手としてはラッキーだろうし。

    • by Anonymous Coward

      http界隈に、でかいパッチみたいな、誰かに読み取られても全く問題ないけど書き換えられるのだけは困る類のデータをプロキシなんかでキャッシュする方法が無いのはなんとかならんのかなぁ、と思ってたんですが、ちゃんと規格があるんですね。

      と思ったけど、aタグでは使えないのか。

      まあ、aタグに対応させてブラウザが「integrityが付いてないデータなので破棄をお勧めします」と警告を発するようになっても、ユーザがその通りにするとは思えないからあんまり意味はないか。自動で破棄するようにするのは、真面目な全ウェブサイトが対応でもしない限りは、問題が大きすぎるし。

  • 「放置されたドメインを大量に取得し、これとCDNを組み合わせて情報を送信させるような例」とありますが、ブログではCDNには言及しておりません。。。 connectioncdn[.]com というホスト名が紛らわしいので CDNかな?と思われたのだと思います。 ある意味上手なホスト名の付け方ですね。
    ここに返信
  • by Anonymous Coward on 2019年01月29日 16時15分 (#3556401)

    趣味に毛が生えたぐらいの範囲だと、そのようにして使え、と書いてあったら、作者への敬意とか、再配布可のライセンスか調べるのが面倒くさいとか、バージョンアップ対応が面倒くさいとかで配布サイトからの直接スクリプト読み込みやっちゃってるなぁ。

    お仕事だったらそんな不安なウェブサイト作ったらあかん。

    ここに返信
  • by Anonymous Coward on 2019年01月29日 16時58分 (#3556439)

    もちろんJavaScriptはローカルにコピーするってのは標準的かつ当たり前の対策だろうけど、本来はスマートではないよね。
    最新版への追従が遅れる、キャッシュが適切に機能しない、そもそも一つのアセットは一つのURIであるべきとか。
    サーバーがSSLなら大丈夫ってわけでもない。

    思ったのだが、可読性が要求されないドメインについては仮想通貨のアドレスみたいに公開鍵(のハッシュ)でドメインを決定するみたいな仕組みだったら接続先の継続性や暗号化などかなり便利だったんじゃないかな。
    認証局いらないし。
    暗号の世代交代や漏洩とかでドメインが変わっちゃうけど。

    ここに返信
    • by Anonymous Coward

      ブロックチェーンや!

  • by Anonymous Coward on 2019年01月29日 17時33分 (#3556462)

    非常に多くのサイトで使われてるjQueryだけど、
    多くのサイトで、自サイトにjQueryのスクリプトを置かずに、
    ajax.googleapis.com みたいな外部サイトのjQueryスクリプトを実行するようにしてる

    外部サイトのjQueryスクリプトになにか仕込まれたらネット中が影響を受ける
    また、HTTP referer を通して、ユーザーの自サイトアクセス情報を、外部の第三者サイトに送信することになる

    ここに返信
    • by Anonymous Coward

      CDNの利用はどちらかというと利用が推奨されているね。
      地理的に離れたアクセスで効果が高いし、高レスポンスに特化してるし、ローカルキャッシュされている可能性も高い。

      でもまあ個人のサイトなら兎も角、ビジネス向けのサイトで利用するのは一考を要するかな。
      ビジネス観点の論理の働く(大)企業提供のCDNなら比較的安全かなあ。

    • by Anonymous Coward

      そういえばjquery.comが攻撃を受けたのとかありましたね
      このときはCDN (code.jquery.com) は無事だったようですけど
      https://it.srad.jp/story/14/09/24/0728216/ [it.srad.jp]

    • by Anonymous Coward

      自社サイトの管理人が rm *.js する確率よりも google様のCDNのほうが信頼性高いし
      自社サイトが 1億回クラックされても google様 はビクともしないでしょう。

typodupeerror

UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア

読み込み中...