このサイト(シイノキデザイン)には、URLを入れるだけでホームページの安全性を採点する「無料サイト診断」があります。道具を作ったからには、まず自分のサイトで試すのが筋というもの。結果は100点満点で76点、評価はBでした。「作った本人のサイトがこの点数か」と少し恥ずかしかったのですが、正直に記録として残します。そのあと対策をして、94点・A評価まで上げました。何が引っかかって、何を直したのかを公開します。
最初の結果:76点(B評価)
診断は15項目を外側からチェックします。最初の診断で「注意」になったのは4項目でした。
- httpからhttpsへの自動転送がされていない
- セキュリティヘッダーが設定されていない
- readme.html(WordPressの説明ファイル)が公開されている
- ユーザー名(ログインID)が外から調べられる状態
逆に問題なかったのは、SSL証明書の期限、WordPress本体が最新版であること、XML-RPCの制限、危険なファイル(.envや.git)が公開されていないことなど6項目です。公開したばかりのサイトでも、油断するとこのくらい「注意」は出ます。
「注意」4項目は、放っておくと何が危ないのか
点数だけ見てもピンと来ないと思うので、それぞれの意味を簡単に書いておきます。
httpからhttpsへ転送されない状態は、暗号化されていない住所でもサイトが見えてしまうということです。お客様がそちらから入ってくると、通信の途中で内容をのぞかれたり、書き換えられたりする余地が残ります。セキュリティヘッダーがない状態は、ブラウザへの「扱い方の指示」がない状態で、他のサイトに勝手に埋め込まれて表示される、といった悪用の余地が広がります。ユーザー名が外から分かる状態は、鍵の形が半分バレているようなもので、パスワードを総当たりで試す攻撃の効率が上がります。readme.htmlは直接の被害にはつながりにくいものの、「このサイトはWordPressのこの版だな」という推測材料を渡してしまいます。どれも「今すぐ乗っ取られる」という話ではありませんが、攻撃する側から見て「入りやすそうな家」リストに載りやすくなる、というイメージです。
直したこと(4項目中3項目)
対策は、サイト診断の修正サービスで実際にお客様へ提供している内容と同じ手順で行いました。
1. httpからhttpsへの自動転送
httpでアクセスされたら、自動でhttpsに転送するよう設定しました。住所が2つある状態をやめて、暗号化された方に一本化するイメージです。
2. セキュリティヘッダーの追加
Strict-Transport-Security、X-Content-Type-Options、X-Frame-Optionsなど、ブラウザに「このサイトはこう扱ってね」と伝える指示を追加しました。なりすまし表示や、意図しない埋め込みを防ぐためのものです。
3. ユーザー名が調べられないように
WordPressは初期状態だと、あるURLを開くだけでユーザー名が分かってしまう場合があります。ここを外から見えないように閉じました。ログインIDが知られると、パスワード攻撃の的が絞られてしまうので、地味ですが大事な対策です。
残した1項目:readme.html
readme.htmlは、WordPressのバージョン推測の手がかりになるファイルです。ただ、これはサーバー側の事情で、現時点では触らず様子を見ることにしました。実害の小さい項目なので、優先順位を付けて後回しにしています。「全部完璧にしないとダメ」ではなく、危険度の高いものから順に潰していくのが現実的な進め方だと思います。
対策後:94点(A評価)
同じ診断をかけ直した結果、94点・A評価になりました。残る注意はreadme.htmlの1項目だけです。やったことは特別なことではなく、基本の積み重ねです。ただ、この「基本」が手付かずのサイトは、思っているより多いのではないでしょうか。特に、作ってから一度も触っていないサイト、更新を止めているサイトは要注意です。
正直な話:この診断で「分からないこと」
この診断は外側から見える範囲のチェックです。サーバーの中にあるファイルが改ざんされていないか、マルウェアが潜んでいないかまでは、外からは分かりません。「最近サイトの表示がおかしい」「身に覚えのないページが増えた」といった場合は、内部の調査が別途必要です。道具の限界は、使う側が正直に伝えるべきだと思っています。その上で、外から分かる範囲だけでも一度点検しておくと、多くの「うっかり」は早めに潰せます。
あなたのサイトは何点ですか?
この診断は、どなたでも無料で使えます。URLを入れるだけ、会員登録も不要です。点数が低くても、直し方には順番があります。診断結果のページから、そのまま修正の相談もできます。まずは今の状態を知るところから始めてみてください。
