- 2019年1月9日
- WordPress脆弱性情報
WordPress 用プラグイン Google XML Sitemaps におけるクロスサイトスクリプティングの脆弱性が明らかになりました
2018年12月25日にWordPress用のSEO対策プラグイン「Google XML Sitemaps」に格納型クロスサイトスクリプティングの脆弱性が存在することが明らかになりました。
【参照】WordPress 用プラグイン Google XML Sitemaps におけるクロスサイトスクリプティングの脆弱性
https://jvn.jp/jp/JVN27052429/index.html
脆弱性が存在するプラグインはバージョン4.0.9以前のものです。
現在、脆弱性が修正されたバージョン4.1.0が公開されています。バージョン4.0.9以前のまま使っている人は、公式サイトからバージョン4.1.0をダウンロードするか、WordPressの管理画面よりバージョンアップを実施しましょう。
【参照】Google XML Sitemaps
https://wordpress.org/plugins/google-sitemap-generator/
格納型クロスサイトスクリプティングとは何か
クロスサイトスクリプティングとはWebサイトに発生する脆弱性の一つです。
XSSと省略されて表記されることもあります。大きく分けて以下の3つの種類に分類されます。
・反射型XSS
・格納型XSS
・DOMベースXSS
今回、WordPress用プラグイン「Google XML Sitemaps」の脆弱性で明らかになったのは、格納型クロスサイトスクリプティング(格納型XSS)です。
格納型XSSは「蓄積型XSS」または「持続型XSS」とも呼ばれます。
攻撃者は脆弱性のあるWebサーバーに対して、攻撃スクリプトを埋め込みます。
そのWebサーバーに対して、外部から訪問者が訪れます。訪問者のブラウザに脆弱性のあるWebページが表示されます。そして攻撃スクリプトが実行されて、訪問者が被害を受けます。
格納型XSSは「攻撃スクリプトの埋め込み」と「スクリプトが実行されるタイミング」が異なるという特徴があります。
さらにいったんWebサーバーに攻撃スクリプトを埋め込んでおけば、アクセスが発生するたびに攻撃が実行されます。
持続型XSSや蓄積型XSSと呼ばれることがあるのはこのためです。
XSSの対策方法として、エスケープ処理を適切に行うことが重要です。
エスケープ処理を行うことで、プログラムとして意味を持つ情報から、ただの文字列として変換させることができるからです。
またURLのパラメータからHTMLを動的生成するようなプログラムは書かない方がよいでしょう。
このような設計ですと、不正なパラメータから不正なHTMLが生成される恐れがあります。
このような問題の一番の解決方法は、最初からそのような設計でソフトウェアを開発しないことです。
Google XML Sitemapsとはどのようなプラグインなのか
今回、脆弱性が報告されたGoogle XML SitemapsとはWebサイト内に存在するページをまとめてサイトマップを自動的に作成するプラグインです。
サイトマップというとツリー状のリンク集のようなものをイメージするかもしれせんが、Google XML Sitemapsが作成するのは、人間ではなくGoogleのシステムに読み込ませるためのサイトマップです。
ページ数が少なく更新頻度が低いサイトではあまり必要がないプラグインですが、ブログのようにページ数が多く更新頻度も高いWebサイトでは非常に有用なプラグインです。
なおプラグインで作成されたサイトマップはGoogle Search Consoleに登録することで初めて意味を持ちます。
プラグインを導入したら、WebサイトをGoogle Search Consoleに登録して、作成されたサイトマップの設定も忘れずに行いましょう。そしてもちろんプラグインは最新版で!
【参照】Google Search Console
https://search.google.com/search-console/about?hl=ja
(Photo by NordWood Themes on Unsplash)