Web系や機械学習を勉強中。医療におけるIT活用に興味があります。こんなのを見かけました。1/3]SNSでログイン状態のまま悪意のあるサイトを閲覧すると、アカウントが特定されるという脅威Silhouetteに関して報道されていますが、成立条件はブロック機能のある多数のSNSに同時にログインしていることなど、ややハードルは高いものとなっています。アカウントが特定されてしまう「かもしれない」ということですね。不安になりますが、結論から言うとTwitterなどは既に対策されているので心配しなくて大丈夫です。ログインしていてもそのアカウント情報は取得できないはずです。今回の攻撃では確かにそこは破られていません。どのようにしてアカウント特定に至るのでしょうか。自体については過去記事で解説しているのでこちらをご覧ください。ログイン済みであることが必要です。その「悪意あるサイト」は異なるオリジンに属していますから、ログイン中のアカウントのデータを取得しようとしてもブラウザによって阻害されます。回避しているわけではありません。正常に働いており、クロスオリジンで応答の中身を取得することは不可能です。中身は得られなくても得られる情報はあります。アクセスを試みてから、「応答の中身は教えられません」とブラウザからスクリプトに通知されるまでの時間を計測することは可能です。応答時間からどのような情報が得られるというのでしょうか。応答時間など、現実の世界の要素から情報を盗み出す攻撃をサイドチャネル攻撃といいます。Meltdownといった攻撃は、低レイヤーという点で違いがあるものの応答時間を利用しているわけですから、サイドチャネル攻撃という点でSilhouette攻撃と共通する部分があります。応答時間から何が分かるのでしょうか。今回の場合は、「ユーザーがある特定のアカウントをブロックされているか否か」が得られます。ブロックされている場合とそうでない場合で応答時間に統計学的な差が生じるのです。SNSで多数のアカウントを作成し、計画的にユーザーをブロックします。つに絞り込むことも可能でしょう。膨大な数のアカウントが必要になりそうですが...。各サービス、あるいはブラウザはこの攻撃にどのように対処しているのでしょうか。サイトでは次のように述べられています。いったウェブブラウザの対策実施に対し評価手法を用いて協力することで、本脅威による第三者からのアカウント名特定は不可能となり、より安全に利用者の皆様がご利用いただけるようになりました。対する攻撃の場合は、既に対処がされており、心配する必要はないということです。この対策がされていたからです。属性の追加とあります。クロスオリジンなリクエストに付与されなくなります。ある「同じブラウザでログイン中である」という要件が実質満たされなくなるわけですね。アクセスしても未ログイン状態と同じ挙動をするため、ブロックされているかの情報を取得することが出来ないからです。攻撃を無効化することができたというわけですね。私達(ユーザー)はどうすればいい?対策済みなので、特にするべきことはありません。あなたが古代のブラウザを使っている場合を除いて。属性を付与するべきでしょう。本来は取得できないはずの情報が応答時間から推測されることがないように、わざと応答を遅らせることも考えるべきかもしれません。参考文献http://www.ntt.co.jp/news2018/1807/180718a.htmlhttp://iot-jp.com/iotsummary/iottech/%E3%82%B5%E3%82%A4%E3%83%89%E3%83%81%E3%83%A3%E3%83%8D%E3%83%AB%E6%94%BB%E6%92%83%EF%BC%88side-channel-attack%EF%BC%89/.html最後までお読みいただきありがとうございました。記事一覧へコメントフォームは設置していませんので、ご意見・ご感想などはTwitter(@cosnomi)などへお願いします。