Information
採用サイトをWordPressで制作した場合のセキュリティ対策例
先日、採用サイトをWordpressで制作する際にネックになるのがセキュリティだと先輩から聞かされました。これが担保できれば、クライアントに提案しやすいんだけどねとのこと。どのサイトでも100%のセキュリティを確保するのは難しいですが、その中でWordPressが狙われる理由は世界のウェブサイトの3割を占めるため、攻撃するための研究がしやすいことが大きいようです。
参考サイト:https://cybersecurity-jp.com/column/22048#WordPress-2
一方で、アメリカのホワイトハウスは2017年から公式ウェブサイトにWordpressを採用しました。間違いなく世界中のハッカーから狙われるであろうウェブサイトであり、絶対情報流出させてはいけないウェブサイトですから、セキュリティにも万全の対策を施していると考えられます。実際にどのようなセキュリティ対策がホワイトハウスのウェブサイトで講じられているのかはわかりませんが、Wordpressを使用しながらも、セキュリティを強化する方法があるはずと思い、その方法を調べてみました。せっかくなので、調べた内容をシェアします。万全ではありませんが、現時点で、これらに対応するだけでも情報流出のリスクを下げることができるかもしれません。
目次
攻撃されるリスクを下げる方法
ログインアドレスの変更
WordPressの脆弱性の原因の一つに、誰もが簡単にログイン画面にたどり着けることがあります。それを回避するため、SiteGuard WP PluginなどのプラグインでURLを変更し、総当たり攻撃の可能性を減らします。
ログインユーザー画面の排除
ユーザー名を知られるとログインのIDが特定されるので、ログインユーザー画面を無くし、特定されることを防ぎます。プラグインやfunctionsに記述することで対策できます。
デフォルトのユーザー名の変更
デフォルトで使用される「admin」を削除し、新たなユーザー名を登録する。それにより、特定されたログインIDを減らします。
参考サイト:https://www.8seminar.com/wp_all/admin_rename/
wp-config.phpの保護
データベースへのアクセス情報が記載された各種設定ファイルであるwp-config.phpに外部からアクセスできないようにします。.htaccessに下記を記述します。
<files wp-config.php>
order allow,deny
deny from all
</files>
パーミッションの設定変更
.htaccessのパーミッションを「604」か「606」に。wp-config.phpのパーミッションを「400」か「600」に変更すると良いそうです。
参考サイト:https://www.nedia.ne.jp/blog/tech/2017/08/22/9188#wp-configphp
ヘッダーのバージョン情報を削除
バージョン情報が攻撃の手段を示唆する可能性があるので、その情報を削除します。functionsに以下を記述。
remove_action('wp_head', 'wp_generator');
remove_action ('wp_head', 'rsd_link');
function remove_cssjs_ver2( $src ) {
if ( strpos( $src, 'ver=' ) )
$src = remove_query_arg( 'ver', $src );
return $src;
}
add_filter( 'style_loader_src', 'remove_cssjs_ver2', 9999 );
add_filter( 'script_loader_src', 'remove_cssjs_ver2', 9999 );
バージョン管理とプラグイン管理
WordPressのバージョンを最新にし、不要なプラグインを削除します。この対応により、SQLインジェクション攻撃・ゼロディ攻撃・クロスサイトスクリプティングなど脆弱性につけこんだハッキングをかわす狙いです。サーバー会社が用意しているWAFを用いて対策することもできます。
検索結果及び404ページをnoindexに
検索結果や404ページを悪用したスパム。それを防ぐ対策です。大手企業でも被害を受けているので、盲点の一つのようです。これ自体は大事に至らないようですが、他人にウェブサイトを操られていることが何か嫌ですよね。
参考サイト:https://www.harukas.org/blog/4681/
コメントをオフにする
設定のディスカッションにある「新しい投稿へのコメントを許可」のチェックを外す。これでコメントスパムに悩まされません。
攻撃を受けた後の影響を最小限にする方法
コーポレートサイトのサーバーと切り離す
コーポレートサイトのサーバーに侵入されるリスクを避けるため、採用サイトを別サーバーとして用意するのが良いでしょう。ランニングコストはかかりますが、もし採用サイトに侵入されてもコーポレートサイトを守ることができます。
セキュリティに力を入れているサーバー会社を選択
ある程度、セキュリティ対策しているサーバー会社を選択するべきでしょう。ネットで調べてみた感じでは、WAFを提供しているサーバー会社が良いそうです。ちなみに、有名なサーバー会社でもスキをつかれ、約8500件のwordpressサイトの改ざんを許すことになりました。いかに漏れの無い対策が難しいかがわかります。
参考サイト:https://lolipop.jp/info/news/4149/
WordPress内で個人情報を管理しない
エントリー者をWordpressで管理していた場合、SQLインジェクション攻撃などでハッキングされると、個人情報が流出する可能性があります。管理していなければ、流出するのは登録されたユーザーの名前やメールアドレスくらいですから、最低限の被害に防げます。設定画面で苗字や名前を入力しなければ、メールアドレスだけで済みます。
その他の方法
SSL対応
通信内容の盗聴・改ざん、第三者によるなりすましを防ぎます。加えて、Webサイト表示の高速化を図ることが可能。サーバー会社によっては無料で対応できます。
参考サイト:https://jpdirect.jp/knowledge/ssl/aossl.html
FTPを使わない
サーバーにデータをアップロードする際、FTPを使用すると暗号化されていない状態でサーバーと通信することになります。暗号化された状態で通信するにはFTPS・SFTP・SCPなどが知られているそう。ちなみに私はWinSCPを使っています。
参考サイト:https://tajuso.com/ftp_no_encryption
IDとパスワードを使い回わさない
複数人でウェブサイトを管理する場合、一つのIDとパスワードを複数人で使い回すケースが想定されます。その場合、どこからIDとパスワードが漏れるかわかりません。漏れるリスクを考えると、多少手間でも個々人で管理するべきだと思います。
Inquiry
Comments