WordPressの魅力の一つは何と言ってもプラグインの豊富さ。ただ、プラグインには脆弱性が見つかることがあります。そんな時、一つ一つ手動で確認するのは大変です。
そこで今回は、AIの力を借りてサクッと脆弱性をチェックする方法をご紹介します。使うのはChatGPTとWebPilot。WebPilotはChatGPTのプラグインのため、記事公開時点では有料でChatGPTに課金していることが前提となります。
目次
ChatGPTからWebPilotをスタンバイさせる
ChatGPTからWebPilotプラグインを使うことで、指定したWordPressプラグインとバージョンに対して、脆弱性情報を手軽に調査することができます。
まず初めに、調査対象のWordPressプラグインとバージョンのリストを作成します。(効率的なリスト作成方法は後述)
リストが完成したら、ChatGTPからWebPilotを使える状態にします。プラグインのインストールはChatGPTよりGPT4内になるPlugin storeから、WebPilotを検索します。
これでWebPilotが使える状態になりました。
WordPress プラグインのリストとバージョンを告げるだけ
WebPilotが有効化されている状態で、WordPressのプラグインとバージョンを調査してほしいことを伝えます。ChatGPTの入力エリアに、調査したいプラグインとそのバージョンを指定するだけ。
試しに、いくつかプラグインとバージョンを指定して聞いてみました。すると、指定したプラグインリストとバージョンに対する脆弱性情報の調査が始まります。そして、結果は以下のようになりました。
長いので、以下に回答を貼り付けます。
1. Classic Editor: 1.6.3
現在、このプラグインのバージョンについては、データベースに脆弱性が記録されていません。ただし、これはプラグインが完全に安全であることを意味するものではありません。
2. Akismet Anti-Spam: Spam Protection: 5.1
このプラグインの過去のバージョン(2.5.0-3.1.4)には脆弱性が存在しましたが、現在のバージョン(5.1)については、特に脆弱性が報告されていません。
3. Jetpack – WP Security Backup Speed & Growth: 12.2.1
このプラグインの過去のバージョンには複数の脆弱性が存在しました。最近のものでは、バージョン12.1.1以下におけるAPIを通じた任意のファイル操作の脆弱性が報告されています。しかし、現在のバージョン(12.2.1)については、特に脆弱性が報告されていません。
これらの情報は、WPScan Vulnerability Databaseから取得しました。ただし、これらの情報はあくまで参考の一部であり、プラグインの安全性を完全に保証するものではありません。プラグインの安全性を確保するためには、常に最新のバージョンを使用し、定期的にセキュリティチェックを行うことが重要です。
それぞれ情報が正しいか確認してみると……
- Akismet 2.5.0-3.1.4 – Unauthenticated Stored Cross-Site Scripting (XSS) WordPress Security Vulnerability
- Jetpack < 12.1.1 – Author+ Arbitrary File Manipulation via API WordPress Security Vulnerability
ChatGPTが回答した通りの脆弱性情報がありました。また、Classic Editorにおいては脆弱性情報はなかったため、正しい結果を反映したということになります。賢い!
今回は例として3つのプラグインにしましたが、もっと多くのプラグインを一気に調査することが可能です。ただし、数に比例してWebPilotが動くため時間はかかります。
脆弱性があるバージョンだった場合も正しく指摘される
少しいじわるして、脆弱性が確認されているバージョンを指定してみます。果たしてChatGPTは正しい答えを返してくれるのでしょうか?
長いので、ピックアップします。
Jetpack – WP Security Backup Speed & Growthのバージョン12.1.0には脆弱性が存在します。具体的には、「Author+ Arbitrary File Manipulation via API」という脆弱性がバージョン12.1.1で修正されています。したがって、現在のバージョン12.1.0はこの脆弱性に影響を受けます。
これらの情報を基に、両プラグインともに最新バージョンに更新することを強く推奨します。
脆弱性があるバージョンの場合でも、ちゃんと脆弱性が存在することを指摘してくれました!
このように、調査結果は一覧形式で表示され、各プラグインについての脆弱性の詳細、その影響、そして対処方法までばっちり教えてくれます。
最終更新日のチェックも行える
同じように、長らく更新されていないプラグインかどうかの最終更新日のチェックも可能です。脆弱性情報はないものの、放置されているプラグインがないか、一緒に調べておくことをお勧めします。
まとめると以下のようになります。
“Health Check & Troubleshooting”プラグインの最終更新日は約3ヶ月前です。最後に”Gutenberg”プラグインについて調査します。
“Gutenberg”プラグインの最終更新日は約7日前です。これで全てのプラグインの最終更新日を調査しました。
Classic Widgets: 約3ヶ月前
Health Check & Troubleshooting: 約3ヶ月前
Gutenberg: 約7日前
情報が合っているか、直接プラグインページにアクセスして確認してみます。
このように正しい更新日を返しました。ほか2つも調査し、同様に正しい日付でした。これは便利ですね!
GoogleのBardでは動かないばかりか、間違った情報を返す有様
ChatGPTと同様に、GoogleのBardでも同様に聞いてみました。すると、脆弱性情報のチェックはプログラムされていないため調べてくれませんでした。
さらに、最終更新日がいつか調べてもらうように指示すると、とんでもない間違った情報をあたかも正しいように返してきました。
AddToAny Share Buttons を直接調べてみると、最終更新日は「3か月前」と出ており、全くのデタラメだというのがわかります。
この辺はまだまだBardでは対応できておらず、WebPilotが得意とする領域なのでしょう。まあ、仮にBardも正しい情報を返してくれるようであればわざわざお金払ってChatGPTの有料版を使うまでもないのかもしれませんが……。
WordPress の全プラグインとそのバージョンのリストを作るのはSublime Textが便利
今回はWordPressでインストールしている全プラグインとそのバージョンの情報をChatGPTに渡しましたが、このリストを作るのも手作業だと単調作業となり、個人的にかなり面倒です。
そこで私はメインで使っている「Sumblime Text」のFind All機能を使って、プラグイン名とバージョン情報を抜き出しています。Find All機能については以前ご紹介しました。
Sublime TextのFind All機能が便利すぎて仕事が捗る
バージョン情報も合わせてFind Allで抜くのは正規表現で条件を組み合わせないとできなそうなので、プラグイン名とバージョンをそれぞれFind Allで抜き取り、一旦スプレッドシートやエクセルといった表計算ソフトにペーストしてあげると、簡単にリストが完成します。
プラグイン数が少なければ手作業でやっても問題有りませんが、例えば10個以上とかになると手間なので……。テキストエディタのこういった機能は覚えるのは学習コストが少しかかるものの、一度覚えてしまえばずっと使えるのでおすすめです。
面倒な調査系作業はChatGPT+WebPilotが便利
以上、ChatGPTとWebPilotを組み合わせることで脆弱性情報を調査してくれることの紹介でした。
WordPressプラグインの脆弱性や最終更新日といった安全に使えるかどうかの調査は、ChatGPTとWebPilotを組み合わせることで解決してくれる時代になりました。
これでWordPressサイトの調査をしないといけないときなど、楽に安全かどうか・対応が必要かどうかの判断ができるようになります。他にも応用例は無数にあると思うので、是非この機会に試してみてください。
コメントを残す