Blackhat Search Engine Optimization (SEO) Injection
2016 年 5 月 26 日 ROB COLLINS 著
私の上司が今日、ある Web サイトへのアクセスがブロックされ、その理由が、WebBlocker サービスで安全でない Web サイトに分類されたためだったことがわかりました。WatchGuard Firebox が立派に仕事をしていることが証明されたわけですが、私の上司は、誰が作ったどんなサイトかを承知した上で、詳しく調査しようとしていたのです。
ウォッチガードの Security Portal ですぐにサイトの分類を確認し、分類理由が Injection.Black_SEO.Web.RTSS によるものであることも csi.websense.com でわかりました。
私自身も経験があったので、これは予想通りの結果でした。そこで、WebBlocker に例外を作成してこれらのサイトを登録し、ちょっとした調査のためにアクセスできるようにしましたが、調査そのものにそれほど時間はかかりませんでした。
そのサイトのホームページの HTML ソースを参照したところ、サイトの管理者もおそらく気付いていない、ある追加コードをすぐに発見しました。そのインジェクションされたコードは、「目に見えない」リンクを、閲覧者に気付かれることなく開くよう仕組まれていました。この種の攻撃の目的は、これらのリンクの検索エンジン結果を悪意のある方法で最適化することにあります。もちろん、閲覧者自身はインジェクションされたリンクを開いていることに気付きません。この攻撃手法は、ブラックハット SEO(検索エンジン最適化)とも呼ばれるものです。
この例は、HTML インジェクションの有害性が比較的低い(被害者のコンピューターでコードを実行しようとしないため)ものですが、意図しないコードが存在するということは、誰かがこのサイトに不正アクセスしたことを意味しています。サイトの管理者がこのインジェクションされたコードを削除しない限り、ユーザーがこのサイトにアクセスしようとしても、WebBlocker でブロックされることになります。例外を作成してサイトにアクセスできるようにもできますが、お勧めの方法ではありません。現段階ではこのサイトは攻撃者による SEO インジェクションに悪用されているだけですが、将来的にドライブバイダウンロードへのリダイレクトに利用される可能性もあり、Angler エクスプロイトキットなどのツールキットが使われるようになる恐れさえあります。
攻撃者によるこのコードのインジェクション方法を完全に理解していない段階で、(OWASP.orgに記載されている Web 開発のベストプラクティスをご紹介すること以外に)具体的なセキュリティ対策のヒントを Web マスターに提案することはできませんが、 すべてのサイトに共通するヒントを 1 つだけご紹介します。サイトを構築しても、それで終わりではありません。最低でも自分のサイトのコードへのアクセスを制限し、定期的にコードが変更されていないかチェックして、悪意のあるインジェクションにすぐに気付けるようにすることが重要です。