外注したシステムの脆弱性は誰のせい? 連日の「深刻な脆弱性」にどう向き合い、どう対応するか?(2/4 ページ)

» 2017年10月03日 05時00分 公開

XSSは「ポップアップ」だけにあらず!「勝手にアドミン追加可能」を放置するな

サイバーディフェンス研究所 技術部 岩崎徳明氏

 特別講演「ソフトウェアの脆弱性を突かれ攻撃されるまでの一部始終」では、サイバーディフェンス研究所 技術部の岩崎徳明氏が講演を行った。個人的にもバグハントが大好きだという岩崎氏は、多くのWebアプリで発見され、放置される「クロスサイトスクリプティング(XSS)」について掘り下げる。

 XSSはWebアプリだけではなく、ソフトウェアにおいても検出されやすい脆弱性だ。しかし、その実態は分かりにくいと岩崎氏は述べる。XSSは受動的な攻撃に悪用されることが多く、その影響もWebアプリの特性によって変化する。そのため、まずは「XSSがどのように攻撃に使われるか」を理解することで、その影響範囲を把握すべきだという。

反射型XSSの実態

 XSSには幾つかの種類がある。そのうちの1つが、リクエストの中にスクリプトを埋め込み、それを脆弱なWebサーバに送信することでリクエストの送信者に不正なスクリプトを実行させる「反射XSS」だ。岩崎氏は例として、あるログ収集分析ソフトウェアのXSS脆弱性(既に修正済み)を例に取り、その攻撃内容を紹介する。この手法では攻撃者が用意した「スクリプトを組み込んだURL」を用意し、その“わな”に誘導する必要がある。

 岩崎氏が発見したのは、ホストヘッダを経由したXSSだ。リクエストのホスト部に埋め込んだスクリプトがそのまま展開されるというXSS脆弱性が存在したが、そのままでは“わな”を作れない。ところが、Internet Explorer 11に固有の挙動を組み合わせることにより、攻撃者の意図するスクリプトを被害者のPCに実行させ、ログ収集分析ソフトウェアのXSS脆弱性を突くことができるようになるという。

ホストヘッダを利用してスクリプトを埋め込み、XSSを成功させる事例。ホストにログ収集分析ソフトウェアのIPアドレスとスクリプトを埋め込むことで、スクリプトを被害者ブラウザ上で実行させる

 Internet Explorer 8以降には「XSSフィルター」が実装されている。単純なXSS攻撃はこれにより防ぐことができるのだ。ところが、攻撃者はこのフィルターをバイパスすることを知っており、今回の攻撃もタグのフィルターをすり抜けるよう細工することで、最終的に「突破」できてしまうという。

Internet Explorer 11に搭載されているXSSフィルターを回避するためにスクリプトに細工を加え、攻撃者にとっての“障害”を1つ1つ乗り越えていく

XSSによる攻撃の手法を知る

 XSSは“わな”のURLを踏むことでアラートダイアログが表示されるという記事が多い。そのため、「XSS脆弱性があっても、大した攻撃はできない」と思い込んでいる人もいるかもしれない。実は、XSS脆弱性により、システムから不正に情報を取り出すだけではなく、管理者権限を持つユーザーを勝手に登録することもできる。

 岩崎氏がデモを行った2つの事例は、まさにXSS脆弱性の幅広さを示すものだ。1つ目の攻撃手法は“わな”のURLを踏んだ被害者の「セッション情報」を抜き出すもの。被害者のブラウザにXSSを利用してスクリプトを実行させると、セッションIDを盗むことができる。これは「セッションハイジャック」と呼ばれる手法で、セッションIDを利用することで、“なりすまし”が実現できてしまう。

被害者のブラウザからセッションIDを盗み、“なりすまし”を行う「セッションハイジャック」

 とはいえ、単純な手法だと「セッションハイジャック対策」を行っているシステムには攻撃ができない。クッキーにHttpOnly属性が付与されていれば、セッションIDを盗み出すことはできないからだ。そもそも攻撃者が外部にいる場合は内部にあるログ収集分析ソフトウェアへのアクセスもできない。そこで岩崎氏は、ブラウザの脆弱性を攻撃するフレームワーク「BeEF」を使い、被害者のブラウザを遠隔操作することでこの回避を行う、2つ目の攻撃手法を紹介した。

 XSSで挿入したJavaScriptは、同一のオリジンと判断されるため、レスポンスをJavaScriptで取得することが可能になる。リクエストではセッションIDが自動的に送信されるため、被害者PCのブラウザを経由して“なりすまし”によるアクセスを行え、管理者権限を持つ利用者を不正に追加することもできるようになる。

ブラウザを“簡単にのっとる”ためのツール「BeEF」を利用し、被害者ブラウザに小さな別ウィンドウを生成し、そこから攻撃を仕掛けていく
被害者ブラウザを経由して“なりすまし”による不正操作を行うことで、新たな「admin2」ユーザーが追加できた。XSSが残っているシステムでは、このユーザーを踏み台にさらに深く攻撃が行われてしまうだろう

XSSはソフトウェアによって「大きな影響」を及ぼす

 「ソフトウェアのXSSは内部のIPアドレスの特定が必要な上、被害者を“わな”のURLにうまく誘導する必要があるなど、攻撃を成功させるための条件は多い。しかし、成功してしまうと被害者に“なりすまし”た不正操作が可能だ。社会インフラや個人情報を取り扱うシステムなどであれば、その影響は非常に大きい。脆弱性が修正された最新バージョンのソフトウェアを利用をするとともに、WebブラウザやOSも最新のセキュリティアップデートを行うべきだ」(岩崎氏)

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。