最近見つけた現象で既に論じられているかと思ったがちょっと解説が見つからなかったのでまとめておく。
手短に
- X(旧Twitter)クライアントで表示されるTwitterカードについてカードに表示されるドメインとは違うページにリンクさせる手法が存在する
- この手法は第三者のTwitterカードを利用することができる
- つまり悪用者は第三者のTwitterカードを表示させながら自身の意図するページに閲覧者を誘導することができる
- これはフィッシングの手法になりうる
見つけたツイート
以下のツイートはGoogle、Bloomberg、日経ビジネスのTwitterカードが添付されているがクリックするとそれらとは異なる情報商材サイトにジャンプする。リンク先に危険な仕組みはないと思われるがクリックは自己責任で。念を入れたい人は curl -L
で。
PCブラウザでカーソルを合わせてもXの短縮URLサービスである t.co
に隠されているので一般のPCユーザーにはクリックするまでどこにジャンプするかわからない。
何をしているの?
推測ではあるが。
Twitterカードは閲覧者のブラウザがリンク先に直接取得を試みるのではなくXのAPIサーバを介して取得される。つまりページ運営者視点だとTwitterカードの取得のためのリクエストは閲覧者ではなくXのサーバから受け取る。curl -L
をすればわかるがジャンプ先のページまでにリダイレクトを2つ介している。リダイレクトを行なっているサーバがX APIサーバからのリクエストは偽装したいサイトへリダイレクトしTwitterカードを取得させ、閲覧者がアクセスしようとすると誘導したいページへリダイレクトする。こうすれば他者のTwitterカードで自身のページへ誘導するツイートが作れる。
危険なの?
例えばこの手法で〜〜銀行のTwitterカードを表示しながら「〜〜銀行がお得なポイントキャンペーンやってるよ!」とツイートし、フィッシングサイトに誘導することはできる。こう考えると公式アカウントや信用できる人が貼ったTwitterカード以外は何も信用できなくなる。
利用されている企業は防止できないの?
おそらくできない。X APIサーバからのアクセスは正当にTwitterカードを表示するためにも認めなければいけない。何かしらのシグネチャ(例えばどういうリダイレクト元を介してリクエストされたのか)がついていれば判別できるかも知れないが実装が大変。
誰が治すの?
そりゃイーロンに言ってくれよという。つまりX社がどうにかしないといけない。安直にはTwitterカードにドメインではなくリンク先のURLを表示すれば比較的容易に目視で安全を確認できる(誤認するようなURLは話がまた別)。
Twitterカードの取得にリダイレクトが発生したら蹴るという運用だと自社の短縮URLを使っているところ(知っているのだとロイター)やあるいは趣味的に短縮URLを使う一般ユーザーが困ることになる。
ツイートするときに気をつけることは?
URLを貼った後にさらに文章なりハッシュタグをつければURLの表示が省略されることはない。またTwitterカードはポスト作成時に手動で消すこともできる。気にしすぎだと思うがフィッシングと疑われたくなければそういう対応をする。ちなみに自分はそんな面倒なことをする気はない。
で?
Twitterカードが貼られたツイートはすべて詐欺です