2022年6月16日、多くの環境でInternet Explorer 11(以下IE)のサポートが終了します。それに合わせ、複数のサイトやライブラリがInternet Explorer(以下IE)のサポートを打ち切っています。React等を使ったモダンなサイトはもちろん、Microsoft、Yahoo!といった著名なサイトや、業務系のシステムでも対応が終了し、いよいよIEの本格的な終焉が見えてきました。
- Microsoft 365 アプリの Internet Explorer 11 のサポート終了と Windows 10 での Microsoft Edge レガシー版のサービス終了 - Windows Blog for Japan
- Yahoo! JAPANの推奨ブラウザー
しかし、Webサービスのいう「IEのサポート終了」は、「IEで動作確認をおこないません。」「IEで表示が崩れたり、動かない機能があっても問い合わせを受け付けません」といった意味で使われていることが多いかと思います。
しかし、本当にそれだけで安全にIEのサポートを終了できるのでしょうか。
警告
私は法律・IEのサポートポリシーの専門家ではありません。各種情報はご自分で裏を取ってください。
IEは重要なセキュリティ技術に対応していない
モダンブラウザでは時間をかけて様々なセキュリティ対策が追加されてきました。それらの多くをIEは実装していません。
- CSPへの対応 コンテンツセキュリティポリシー (CSP) - HTTP | MDN
- デフォルトリファラポリシーの変更 Referrer-Policy - HTTP | MDN
- SameSite属性への対応度合い SameSite cookies - HTTP | MDN
これらはの多くは実装時に「軽減策」「緩和策」とされてきました。あくまで設定や実装不備があった際に攻撃の可能性や被害を低減するだけである、ということです。しかし、モダンブラウザが実装を完了していくことで、これらは被害の「緩和策」ではなく、「適切なセキュリティ対策」となる可能性が現実味を帯びてきているように感じます。
例えば、CSPですべてのJavaScriptの実行や通信を塞いだ場合、スクリプトタグを不正に埋め込んだところでスクリプトは実行されないため、XSSが成立しなくなります。SameSite属性を始めとした対策が進んだ未来では、CSRFトークンは全く意味のない、無駄に手間のかかる仕組みになっているかもしれません。(もちろん、現在では不完全な部分があるので注意が必要です。)
IEの仕様やバグは複雑である
IEには不可思議な仕様やバグがたくさんたくさん存在し、MDNにもMicrosoftのサイトにも全く記述が無いのはザラです。仕様上は安全で、モダンブラウザでも問題ない処理が、IEでのみXSSやオープンリダイレクトに繋がるケースは複数存在します。
いくつかIEに限定した記事を並べてみます。
- Masato Kinugawa Security Blog: EasyXDM 2.4.20で修正されたXSS
- Masato Kinugawa Security Blog: ブラウザのXSS保護機能をバイパスする(13)
- https://www.nic.ad.jp/ja/materials/iw/2010/proceedings/s6/iw2010-s6-02.pdf
IEの挙動が、どのバージョンのどの状況で影響を受けるのか、完璧に把握している方は少ないと思います。(それなりにでもまとまった資料を私は知りません。ご存知のかたは教えてください。)そして、これらのバグ挙動で絶対に脆弱性を引き起こさないと自信をもてる人はどのぐらいいるでしょうか。
IEがわかるエンジニアを集められなくなる。余計なコストがかかる。
市販のPCにChromeやEdgeがバンドルされることで、今の若者はIEを一度も使ったことがない、という状態になっています。IEと共に時代を過ごした人でも、もう過去のものとして忘れきっているでしょう。
今から高いモチベーションを持ってIEの勉強ができる人はなかなか居ないでしょうし、当然対応コストもかかります。
IEのMicrosoftサポートはまだまだ、2032年まで続く
「IEのサポートは2022年6月で終了する!ユーザーに責任がある!」……といいたいのですが、現実はことなります。すべてのIEのサポートが2022年6月で切れるわけではありません。
具体的には、以下のものが残ります。
- EdgeのIEモード(MSHTML) Windows11でも使えるはずです。
- Windowsの一部のバージョン IEデスクトップアプリケーション自体が残ります (延長サポートや、LTSC、Windows Server等)
- Trident MSHTMLやIEコンポーネントなどの名前でWebアプリケーションに組み込まれているTridentのサポートは続きます
情報がやや不安定なので、必ずMicrosoftから裏をとってほしいのですが、2029年~2032年程度まで様々な環境でIE(やTrident)がのこります。
もちろん、特殊な環境なので積極的にIE対応する必要は全く無いですし、開発コストも見合わないかと思います。MicrosoftですらWebサービスでIEサポートを終了しています。しかし、「Microosftのサポート期間内のIEで閲覧したらXSSで個人情報や財産が侵害された。そちらが責任を取ってくれ。」と言われたら……どのように対応することになるのでしょうか。
被害が発生したら調査・対応は必要
どういう理論にしろ、「金銭や個人情報が盗まれた!」「アカウントが乗っ取られた!」という連絡があったら調査・対応をする必要があるはずです。サポート・調査・対応にコストが掛かります。
「IE使ったのが原因だった」となってもユーザーの重過失がどこまで認められるかはわかりません(私は法律の専門家ではありません!)。損害賠償や行政指導につながったり、そこまでいかずともサポートコストを払ったり、Twitterやネットニュースで無意味に炎上してブランドに傷がつくかもしれません。厄介なことですが、検討をしておかざるをえない事象かと思っています。
解決策:IEでの閲覧をブロックする
「IEでの閲覧時には、モダンブラウザを推奨するメッセージのみを表示する」
これが一つの対策かと思います。IEの判定方法については専門外なのですが、User-Agentとか、特定のヘッダとかを見ることになるでしょうか。
なお、弾くのはIEだけにして、どうかシェアの低いFirefoxやSafari、クローラ等をむやみに弾かないでください。NHKがFirefoxのサポートを終了することが話題となりましたが、一社独占状態が進むのはWebにとって健全ではありません。
しかし、IEはそのシェアと挙動から、そうせざるをえない理由が十分にある、という考えもありかと思います。
まとめ
IEはWebの歴史にいまもなお、そしてこれからも影響を与えるブラウザです。どうかIE卒業式を迎えても忘れないで上げてください。そして、この記事を読んでもIEのサポートを続ける!と言い出さないでください。IEは卒業したのです。
次の卒業式はWindows8.1とWindows7 ESUが終了する2023年1月です。よろしくお願いします。