僕が契約しているレンタルサーバーから「wlwmanifest.xmlへの不審なアクセスが増加しているため、国外IPアドレスからの該当ファイルへのアクセスを制限する」というメールが届きました。
WordPressで使用されているようですが、知らないものだったので少し調べてみました。
不審なアクセスの状況
wlwmanifest.xmlへの不審なアクセスとはどんなものなのかは、サーバーへのアクセスログを見ると確認できます。
- 156.146.56.109 - - [11/Mar/2022:21:57:13 +0900] "GET /news/wp-includes/wlwmanifest.xml HTTP/1.1" 404
- 156.146.56.109 - - [11/Mar/2022:21:57:14 +0900] "GET /2018/wp-includes/wlwmanifest.xml HTTP/1.1" 404
- 156.146.56.109 - - [11/Mar/2022:21:57:14 +0900] "GET /2019/wp-includes/wlwmanifest.xml HTTP/1.1" 404
- 156.146.56.109 - - [11/Mar/2022:21:57:14 +0900] "GET /shop/wp-includes/wlwmanifest.xml HTTP/1.1" 404
- 156.146.56.109 - - [11/Mar/2022:21:57:14 +0900] "GET /wp1/wp-includes/wlwmanifest.xml HTTP/1.1" 404
- 156.146.56.109 - - [11/Mar/2022:21:57:14 +0900] "GET /test/wp-includes/wlwmanifest.xml HTTP/1.1" 302
- 156.146.56.109 - - [11/Mar/2022:21:57:14 +0900] "GET /media/wp-includes/wlwmanifest.xml HTTP/1.1" 404
- 156.146.56.109 - - [11/Mar/2022:21:57:14 +0900] "GET /wp2/wp-includes/wlwmanifest.xml HTTP/1.1" 404
- 156.146.56.109 - - [11/Mar/2022:21:57:15 +0900] "GET /site/wp-includes/wlwmanifest.xml HTTP/1.1" 404
- 156.146.56.109 - - [11/Mar/2022:21:57:15 +0900] "GET /cms/wp-includes/wlwmanifest.xml HTTP/1.1" 404
- 156.146.56.109 - - [11/Mar/2022:21:57:15 +0900] "GET /sito/wp-includes/wlwmanifest.xml HTTP/1.1" 404
- 23.102.127.172 - - [12/Mar/2022:00:43:31 +0900] "GET /wp-includes/wlwmanifest.xml HTTP/1.1" 404
- 23.102.127.172 - - [12/Mar/2022:00:43:32 +0900] "GET /blog/wp-includes/wlwmanifest.xml HTTP/1.1" 404
- 23.102.127.172 - - [12/Mar/2022:00:43:32 +0900] "GET /web/wp-includes/wlwmanifest.xml HTTP/1.1" 404
- 23.102.127.172 - - [12/Mar/2022:00:43:32 +0900] "GET /wordpress/wp-includes/wlwmanifest.xml HTTP/1.1" 404
- 23.102.127.172 - - [12/Mar/2022:00:43:33 +0900] "GET /website/wp-includes/wlwmanifest.xml HTTP/1.1" 404
- 23.102.127.172 - - [12/Mar/2022:00:43:33 +0900] "GET /wp/wp-includes/wlwmanifes .xml HTTP/1.1" 404
- 23.102.127.172 - - [12/Mar/2022:00:43:33 +0900] "GET /news/wp-includes/wlwmanifest.xml HTTP/1.1" 404
- 23.102.127.172 - - [12/Mar/2022:00:43:33 +0900] "GET /2020/wp-includes/wlwmanifest.xml HTTP/1.1" 404
wlwmanifest.xmlがありそうなURLに片っ端からアクセスしていますね。
ちなみにこのログはWordPressではないサイトのものです。
どんなに探しても、wlwmanifest.xmlは出てきません。
迷惑というか、気持ち悪いですね。
wlwmanifest.xmlのアクセス制限
こうなると、WordPressでなくてもアクセス制限しておいた方がいい気がします。
レンタルサーバーにwlwmanifest.xmlへのアクセス制限機能が実装されているなら、有効にします。
実装されていないないなら、.htaccessに次のコードを記述します。
- SetEnvIf Request_URI "/wlwmanifest\.xml" file_ng
- Order Allow,Deny
- Allow from all
- Deny from env=file_ng
これで、/wlwmanifest.xmlが含まれているURLへのアクセスを遮断してくれます。
.htaccessを編集できないときは…あきらめましょう。
WordPressの簡単なセキュリティ対策
セキュリティ対策という意味では、wlwmanifest.xmlだけに注目しても意味がありません。
個人でWordPressサイトを運営しているなら、次のプラグインを入れてしまうのが一番簡単です。
サクッと入れて、一通りの機能を有効にすればOKです。
wlwmanifest.xmlの役割
WordPressのWebページから確認できる、wlwmanifest.xmlの情報を整理してみます。
wlwmanifest.xmlのURLを確認
wlwmanifest.xmlのURLは、Webページのデータを見ると簡単に確認できます。
headタグ内に次のような記述があります。
- <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://xxx.xxx/wp-includes/wlwmanifest.xml" />
これは「wlwmanifestをxmlで記述したデータは、"http://xxx.xxx/wp-includes/wlwmanifest.xml"にアクセスすると見ることができるよ」という意味です。
このタグを削除する方法は、次の記事で紹介しています。
wlwmanifest.xmlの内容を確認
WordPressはWebページを動的に作成していますが、wlwmanifest.xmlは静的なファイルです。
そのため、プラグインなどで意図的に改ざんしなければ、WordPressの設定を変更しても内容が変更されることはありません。
wlwmanifest.xmlの内容を確認してみます。
wlwmanifestのURLにブラウザでアクセスすると、次のような内容が表示されます。
- <manifest xmlns="http://schemas.microsoft.com/wlw/manifest/weblog">
- <options>
- <clientType>WordPress</clientType>
- <supportsKeywords>Yes</supportsKeywords>
- <supportsGetTags>Yes</supportsGetTags>
- </options>
- <weblog>
- <serviceName>WordPress</serviceName>
- <imageUrl>images/wlw/wp-icon.png</imageUrl>
- <watermarkImageUrl>images/wlw/wp-watermark.png</watermarkImageUrl>
- <homepageLinkText>View site</homepageLinkText>
- <adminLinkText>Dashboard</adminLinkText>
- <adminUrl>
- <![CDATA[
- {blog-postapi-url}/../wp-admin/
- ]]>
- </adminUrl>
- <postEditingUrl>
- <![CDATA[
- {blog-postapi-url}/../wp-admin/post.php?action=edit&post={post-id}
- ]]>
- </postEditingUrl>
- </weblog>
- <buttons>
- <button>
- <id>0</id>
- <text>Manage Comments</text>
- <imageUrl>images/wlw/wp-comments.png</imageUrl>
- <clickUrl>
- <![CDATA[
- {blog-postapi-url}/../wp-admin/edit-comments.php
- ]]>
- </clickUrl>
- </button>
- </buttons>
- </manifest>
とりあえず気になるのが、<adminUrl>、<postEditingUrl>、<clickUrl>です。
{blog-postapi-url}/../wp-admin/
{blog-postapi-url}/../wp-admin/post.php?action=edit&post={post-id}
{blog-postapi-url}/../wp-admin/edit-comments.php
これらは管理ページや投稿ページ、コメントの管理ページへのURLですね。
情報としてはこれだけです。
ユーザーIDやパスワードなど知られてはいけないものはもちろん、サイト固有な情報もありません。
無理やり変更してなければ、他のサイトでも同じような内容になります。
なにが問題なんでしょうか。
wlwmanifest.xmlの目的
次のWordPressのサポートページを見ると、wlwmanifest.xmlの目的についての質問がありました。
■https://wordpress.org/support/topic/wlwmanifest-xml-file/
Hi
I found a file called wlwmanifest.xml
Is the file from WordPress? And what is the file for?
Thank you
「wlwmanifest.xmlというファイルを見つけました。
ファイルはWordPressからのものですか? そして、ファイルは何のためのものですか?」
This lets WP work with Windows Live Writer. Currently, WP puts this into your site header:
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://example.com/wp-includes/wlwmanifest.xml" />
This is a core file and is OK.
「これにより、WPはWindows Live Writerで動作します。 現在、WPはこれをサイトヘッダーに配置します。
これはコアファイルであり、問題ありません。 」
Windows Live Writerという言葉がでてきました。
これはマイクロソフトが作成したアプリで、WordPressだけでなく様々なブログへの投稿ができるツールです。
既にサポートは終了していて、現在はOpen Live Writerという名前でオープンソース化されています。
wlwmanifest.xmlは、Windows Live Writerがブログの管理ページなどのURLを把握するために用意されているようです。
wlwmanifest.xmlと不審なアクセス
管理画面にアクセスしてサイトを乗っ取りたい攻撃者が最初のに知りたい情報は、管理画面のURLです。
wlwmanifest.xmlを見つけることができれば、WordPressだけでなく様々なブログサイトの管理パネルのURLを知ることができます。
そのため、wlwmanifest.xmlが存在しそうなURLに次々とアクセスしていくのです。
■Googleで他サイト検索
■僕がおススメするアフィリエイト教材
■マーケティング施策ツール