少し前になりますが、XSS(クロスサイトスクリプティング)の危険性に関する記事を見ました。内容は、XSSの問題について過敏に反応しすぎなのでは?という内容ですが、いままでにない見解で非常に面白く拝見させて頂いたことを記憶してます。
理由としては、以下のような内容が述べられていました。
世間の認識と脅威レベルのギャップ――XSSは本当に危ないか?| 「XSSなんてバグなんだから存在してはならない」 |
たしかに、SQLインジェクションと比較すると、XSSが事件となった事例は比較にならないくらい少ないんですよね(ないということではありません・・)。実際に問題の存在するサイトの数としては、SQLインジェクションの存在するサイトよりもXSSの存在するサイトの方が多く、XSSを使って攻撃することは容易だと思いますが、なぜ大きな事件にならないのでしょうか?
XSSが事件にならない理由
これは個人的な推測ですが、XSSによる攻撃を受けた場合、その痕跡の残らない可能性が高いという点があります。例えば、GETのパラメータとしてXSSを悪用する文字列が送信された場合はWebサーバのログに残りますが、POSTで送信された場合はログにすら残りません。また、XSSの問題が悪用されたことを後から追跡することも(ログが存在しない場合は)困難な為、もし情報が漏洩していたとしてもXSSを悪用されたことが発覚することはありません。
SQLインジェクションの問題についてもそうですが、セキュリティインシデントというのは発覚しなければ事件にはなりません。私もいろんなサイトにメールアドレスを登録してますが、いつしかスパムメールがいろんなところから届くようになりました。どこかでメールアドレスが漏洩してるはずなんですが、過去に登録したサイトで情報が漏洩したなんてニュースを見た記憶(あったけど見てないだけかもしれませんが)はありません。きっと、管理者の知らないうちに脆弱性を利用して情報を盗んでいる攻撃者がいるはずで、事件となって取り上げられている事例は氷山の一角にすぎないはずです。
攻撃者はXSSの問題をどうとらえる?
攻撃者の視点からXSSの問題をどう悪用しようか考えた場合、まず一番に考えられるのは罠を仕掛けて不特定多数の人を罠に誘導することによって行う攻撃です。ただし、記事にもありましたが、不特定多数を対象とし、罠を仕掛けて誘導するのであればクライアントアプリケーションの脆弱性を利用してボットを仕込む方が効率的です。
では、どういった場合にXSSを悪用するのかと考えた場合、スピア方攻撃によるXSSの悪用が挙げられます。企業のシステムや端末では、OSのパッチ適用やアンチウィルスのインストールがポリシーとして定められており、既知の脆弱性については早期に対策されていることもあります。その場合はボットを仕込むことは難しくなりますが、XSSであればアプリケーション側で対策しない限り悪用することができます。さらに、社内で使われているメールアドレスを偽装してXSSの罠に誘導することはそれ程難しいことではありません(管理部から、次のURLを参照してインフルエンザ対策を実施するようにといった内容のメールが届くとみんなURLを開いてしまうかもしれません)。
つまり、XSSは悪用することができないのではなく、また効率的ではないので悪用されないのでもなく、場合によっては攻撃手段として非常に有効な脆弱性であり、攻撃者もその点は理解しているはずです。不特定多数を対象とした攻撃としては効率的ではない為、数は多く検出されないだけなのかもしれません。
対策はどうすればいい?
XSSの対策をとる為には、Webアプリケーションに対するセキュリティ検査や改修費用等、かなりコストがかかるのが一般的です。前述の記事では、XSSによるリスクを以下のように分析していました。つまり、このようなリスクに対して対策が必要だと感じる場合は対策した方が良いとの考え方です。でも、以下の内容はネット上でビジネスを展開しているほとんどの企業が該当するように思います。うちはまったく問題ないぞ~なんて企業あるんでしょうか?
|
対策としては、Webアプリケーションを開発するたびにセキュリティ検査の実施や改修を行うのではコストがかかるため、WAF(Wab Application Firewall)を導入することを検討するという手もあると思います。コストはかかりますが、セキュリティ検査と改修費用を考えると、同じくらいか、もしくは安くすむのではないでしょうか。また、WebサーバとしてApacheの利用が一般的であるように、mod_security等の無料のWAFも使って当たり前という考え方があればWebアプリケーションの脆弱性も少なくなるはずです。なかなかシステムを動かす為に必須ではない為、そこまでやってる開発会社は少ないのが現状です。
やはり一般的な対策としてはセキュリティ検査会社に頼んで問題箇所を特定し、開発会社に改修を依頼するのが一般的ですが、うちにWeb開発を依頼すればWAFも導入しますよ!なんて開発会社があれば今後は注目されるのかもしれません。
0 コメント:
コメントを投稿