今回はBAsixs参画企業、ビジネス・アーキテクツ(以下、BAと称する)のバックエンドエンジニアの湯澤さん、フロントエンドエンジニアの宮本さんにWordPressのセキュリティについて解説していただきました。
WordPressはなぜ攻撃されやすいのか、そしてどんな種類の攻撃をされるのか、そのためにはどんな対策が必要なのか。Web担当者なら知っておきたい、セキュリティ対策の重要性についてお伝えします。
インタビューを受けた人
- 湯澤シニアエンジニア(ビジネス・アーキテクツ)
新卒でIT大手企業に入るも、大企業ならではの見通しの悪さや動きの遅さに我慢ができず転職。ちょうどインターネットが出てきた時代(1994年)だったので、かかわる仕事がしたいと思い出版社(音楽、コンピューター関連)に転職。インターネットの初めてをいろいろ担当。日本最初のメルマガ、日本最初のストリーミング放送、日本最初のカートシステム等。その後、EコマースASP会社(日商1億程度)のCTOを経て、ビジネス・アーキテクツに転職。エンジニア、パートナー開発を経て現在は主にインフラエンジニア、サーバーエンジニアを担当。プロジェクトによってはディレクターも兼務する。
- 宮本フロントエンドエンジニア(ビジネス・アーキテクツ)
金融の営業、小売店の店長などを経て、2009年に地元・愛媛県のWeb制作会社に入社。 WebサイトのコーディングやCMSの実装をメインに、大小様々なWeb制作に携わる。 2018年にBAに入社しフロントエンドエンジニアUNITに所属。 引き続きWebサイトのコーディングとCMS実装の他、テクニカルディレクターとしてディレクターと開発との調整や、制作のガイドラインの作成なども行っている。
「WordPressはセキュリティが弱い」と言われる理由は、狙われやすさが原因だった
まず、「WordPressはセキュリティが弱い」と言われる理由を教えてください。
宮本:WordPressはセキュリティに弱いというよりも、世界的にシェアが高いためにそもそも狙われやすいんです。Windowsが攻撃されやすいのと同じかなと思います。
弱いという点でいうと、WordPressはオープンソースなので、すべてのコードが誰でも容易に把握できます。そのため、ソースが非公開のCMSと比べると、脆弱性が発見されやすい特徴があります。
またデフォルトの状態だと、簡単に管理画面のログインページにアクセスできるので、攻撃対象にされやすいですね。
湯澤:そうですね。あとは、WordPressにはプラグインがあり、いろんな人がいろんな形で作っています。WordPress本体が安全でも、プラグインに脆弱性が見つかることがあるんです。
宮本さんの言うとおり、WordPressはセキュリティに弱いわけではなく、一番狙われやすいCMSだからだと思います。
WordPressへの攻撃はサイト改ざんや個人情報の流出など、多岐にわたる
メジャーな攻撃について、具体的にどういった攻撃なのか、またどのような被害が出るものなのかお願いします。
宮本:WordPress本体やプラグインの脆弱性をついて、不正ログインなどの攻撃をされることが多いですね。
不正にログインされてしまうとサイトが改ざんされ、個人情報が抜かれたり、悪質なサイトへの誘導、マルウェアの感染などの被害を受ける恐れがあります。
XML-RPC(外部からログインするプログラム)を経由して、不正アクセスを行おうとする攻撃も多いかなと思います。
湯澤:XML-RPCはサイト改ざんではなく、DoS (Denial of Service) といって、アクセスを集中させることでサイトを不能にさせるパターンも多いですね。
宮本:1分間に何十回とアクセスされます。
湯澤:DosはどのURLに対しても行える攻撃なので、抑えておくべきものの一つだと思います。
メジャーな攻撃の他に、最近耳にする攻撃方法はありますか?
湯澤:WordPressに限らず、最近のサイトへの攻撃は手動で行われることはほとんどなく、BOTと呼ばれるものを使っています。世界中のIPアドレスで総当たり攻撃しているので、1〜2日に1回は攻撃されます。
その中に、WordPressのバージョンの脆弱性をつくURLがXML-RPCに含まれています。過去の脆弱性を叩いていくものです。例えば、バッファオーバーフロー、クロスサイトスクリプトなどがあります。
WordPressはメジャーなCMSなので、脆弱性が発見されると回っているBOTに攻撃対象としてすぐに追加されてしまいます。そのため、素早い対処が求められます。
脆弱性をつく攻撃以外には、ログインURLがばれてしまい、ユーザー名を指定し、パスワードを総当たりする攻撃は相変わらず多いです。
過去の脆弱性に基づいた定番の攻撃が多いでしょうか?
湯澤:基本はロボットなので、同じ攻撃が多いですね。
何を目的にそのような攻撃をするのでしょう?
湯澤:ロボットは、世界中に自分の子分(自由に操作できるPC)を持つことを目的としています。その次の目的としては、個人情報やクレジットカード情報の取得でしょうか。
宮本:ランサムウェアと呼ばれるものですね。
湯澤:そうそう。単純にいたずら目的もありますが、数としては圧倒的に利益を出したいものが多いと思います。
WordPressのセキュリティを強化するために必要な3つの対策
1.WordPress本体とプラグインのアップデートを速やかに行う
実際に攻撃されないために、最低限必要な対策例と、それを行うことでどんな攻撃が防げるかを教えてください。
宮本:一番重要なのは、WordPress本体とプラグインのアップデートを可能な限り速やかに行うことです。脆弱性を狙った攻撃を防ぐことができます。
アップデートの影響範囲はWeb担当者も把握しておく必要はありますか?
宮本:できればしていた方が良いと思います。
湯澤:ただ、少し難しいかもしれませんね。「アップデートして、〜が使えなくなった」などの話は一般的によく聞きます。Web担当者の他に、このような時に対応できる社内エンジニアに居てもらうと盤石の体制といえますね。
なるほど。では、アップデートを行いたい場合、Web担当者はどのように進めたら良いでしょうか?外部に依頼した方が良いなどはありますか?
湯澤:プラグインをいくつも入れていると影響範囲すべてを把握するのは難しいと思います。
予めRead Meなどを読んで、どのバージョンに対応しているか確認できれば良いですが、検証環境としてテストサイトを作って確認するのが一番現実的ですね。
宮本:テストサイトがあるのが安全ですね。エラーが出なくても、警告が出ることもあります。
湯澤:そうですね。バックアップを用意して、何かあっても戻せる状態にするのも良いと思います。
宮本:サイトが大きければ大きいほど必要です。
湯澤:もしかしたら、PHPやPHPで使っているライブラリのバージョンなど、一般の人が意味を理解するのは難しいかもしれないので、外部に依頼するのが安心かもしれません。
2.Wordpressの管理画面を秘匿化する
管理画面において必要な対策はありますか?
宮本:管理画面の秘匿化ですね。セキュリティ対策ができるプラグインを導入して管理画面を秘匿化すると、狙われるリスクが減るので効果が高いかなと思います。
湯澤:どういう攻撃がくるのか、そしてそのリスクを理解して対応できる体制を作っておくことが大切ですね。
管理画面を秘匿化する方法を具体的に教えてください。
宮本:「SiteGuard WP Plugin」というプラグインをいれるのが良いと思います。手動でも設定はできますが、プラグインを使った方が早くて簡単です。
「SiteGuard WP Plugin」でWordPressサイトのセキュリティ対策 | BAsixs(ベーシックス)
3.推測されやすいユーザー名とパスワードを設定しない
他に必要な対策はありますか?
宮本:推測されやすいユーザー名やパスワードを使用しないことも大切です。デフォルトだとバージョン情報やユーザー名が表に出ているので、見えないように隠すとなお安全です。
湯澤:昔は「admin」をユーザー名にしている人が多く、それを狙った攻撃が流行ったこともありましたね。
WordPressサイトの運用を改善するプラグイン3選 | BAsixs(ベーシックス)
宮本さんならユーザー名をどのように指定しますか?
宮本:乱数にするのがベストな対策だと思います。乱数でないなら、自分の名前に、ランダムな文字列や記号の組み合わせでしょうか。
WordPressに限らず、ユーザー名とパスワードでログインできるものは、両方とも推測されにくいものにした方がいいと思います。
湯澤:ユーザー名はメールアドレスの場合もあるので、管理画面を秘匿化したり、メールアドレスによるログインを無効化したりする方が重要度は高いです。
ありがとうございます。もし、他にアドバイスがあればお願いします。
宮本:定番のプラグインはある程度決まっていて、アップデートへの対応が早いものが多いので、なるべくメジャーなプラグインを選ぶのも一つだと思います。
湯澤:最近更新されていないプラグインは、何か起こった場合でも対処していない可能性があるので、そういったプラグインを選ばないのもいいかもしれません。
予めシステム保守を依頼しておくことで、より安全なWebサイトになる
上述の対策に加えて、可能であればやっていた方がいい対策例はありますか?
宮本:管理画面を二重三重で対策するという意味では、管理画面へのIP制限やBASIC認証を施す手段があります。
また、プラグインの導入だけではなく、サイトの改ざんやマルウェアを検知するシステムをサーバーに導入すると安心かなと思います。
何でもプラグインで解決しようとすると、数が増えれば増えるほど、逆に管理が大変になりますから。
湯澤:システムオープン時にセキュリティホールがないかチェックするツールがいくつかあるので、一度かけておくのもお勧めです。Webで判断できる「OWASP ZAP」などがあります。
あとは、システムの保守費も気にした方がいいですね。
宮本:確かにそうですね!
湯澤:作りっぱなしのサイトに何か起きた場合、ワンタイムで対応するのは難しいので、予めシステム会社に頼むのがいいと思います。
「システム保守費をサイト運営の予算に含めた方が良い」ということですね。
湯澤:そうですね。セキュリティ専門の会社に相談してみるのもいいと思います。
セキュリティ対策のコストは「保険」と同じ
予算が少ない場合でも、対策できるものはありますか?
宮本:セキュリティ対策のプラグインは無料で利用できるものあるので、ある程度の対策はできます。
サイトの改ざん・マルウェア検知についても、予めサービスとしてついているサーバーもあるので、対応しているホスティングサービスを探すのもありと思います。PressidiumといったWordPress専用のホスティングサービスを利用する方法もあります。
湯澤:本当は、「お金がかからない」と思わない方が良いんですけどね。
宮本:それはそうです。笑
湯澤:本当に安くやろうと思ったら、社内の体制など、根本の部分から考えていくのがいいかなと思います。
何かあった場合、その対応に多額のお金がかかるならば、予め予算の中にある程度の保守費を確保しておく方が良さそうでしょうか?
湯澤:そうですね。保険と同じ考え方で、安くなると思います。
宮本:本当に予算がなければ「どうしてもCMSを入れなければならないのか?」という話にもなっていきますね。運用コストはどうしてもかかってくるものですから。
WordPressセキュリティ診断は専門家に頼んでこそ効果を発揮する
検知やチェックという言葉が出てきましたが、セキュリティ診断にはどんなものがあるのでしょうか。
宮本:オンラインでURLを入れて診断するものや、サーバーにインストールしてセキュリティーホールがないかチェックするツール、プラグインなどいろいろありますね。
湯澤:インストールするものだと、SymanteやMcafeeのサーバーセキュリティ製品などが有名ですね。これを入れておくと、有害なURLを弾いてくれます。
ただ、一番怖いのはゼロデイアタックです。これは脆弱性のレポートが上がる前にアタックするものです。
WAF(Web Application Firewall)という、Webサーバーの前で攻撃を防いでくれるものを入れておくと、ある程度URLのパターンを見て判断してくれるので、かなり安全になります。ただ、費用がかかるのと、設定するのにある程度専門的な知識が必要です。
宮本:確かに。きちんと設定しないと、必要なものまで弾かれてしまいますね。
湯澤:エンジニアがいないと導入しづらいサービスではあります。
無料の範囲でおすすめできるツールはありますか?
宮本:「Google Search Console」、プラグインでは「WPScan」があります。ただ、WPScanに関しては、場合によってサーバーが落ちてしまうので、サイトを立ち上げる前にいれるツールですね。
湯澤:私はOWASP ZAPがお勧めですが、これも攻撃とみなされることがあります。ただ、OWASP ZAPで落ちる場合は、サーバーに問題あるかもしれません。
また、OWASP ZAPはレンタルサーバーだとIPが止められることがあるので注意が必要です。
有料サービスでしかできないけれど、やっておいた方がいい診断はありますか?
湯澤:セキュリティ専門の会社に頼むのが一番安心だと思います。
有料でも無料でも、ツールはある程度知識がないと使えない場合が多いので、誰がやるかが重要です。外部に頼むにしても、選んだ会社がどんな施策を持ってきたかがポイントだと思います。
まとめ:WordPressのセキュリティを担保するためには、予算をかけることが必須
企業サイトのWeb担当者に向けて、セキュリティの大切さや気をつけておいて欲しいことなど、一言お願いします。
宮本:WordPressは導入が簡単な分、セキュリティ面がおろそかになりがちなので、最低限のセキュリティには気を配ったほうが良いと思います。また、セキュリティの確保にはコストがかかることを理解していただきたいです。
湯澤:CMSはWordPressでいいのか、一度考えた方がいいかもしれません。将来的にどんなことをやりたいサイトなのか、プラグインが増えてどうにもならない、なんてことにならないように、Wordpressを使わずサイトをイチから作った方がいい場合もあります。
ただ、Wordpressは手軽に立ち上げられるのがメリットなので、コストと運用のバランスをみるのが大事だと思います。
また、セキュリティを担保するにはそれなりにお金がかかることを意識していた方が良いですね。
宮本:そうですね。新規構築であれば、安全が担保されたWordPressサイトをBAsixsで作れます。サーバーの安全性が担保されたPressidiumなど、WordPressに特化したホスティングサービスを利用することも可能です。
湯澤:サイトを見せてもらえれば、安全性の診断もできます。
安全なWebサイトを構築されたい方は、ぜひBAsixsにご相談ください。
また、BAsixsではWordPressサイトのセキュリティ設定に役立つ資料もご用意しております。
セキュリティ対策の参考にもなるかと思いますので、ぜひご覧ください。
【決定版・専門知識不要】WordPressのセキュリティ対策セルフチェック資料 | BAsixs(ベーシックス)
本日は貴重なお話をありがとうございました。