WordPressの脆弱性まとめ

技術
この記事は約7分で読めます。

最近は脆弱性という言葉もよく聞くようになりました。

ウィルス対策は企業では当たり前になりましたが、では、「脆弱性」対策は?

Windows Updateできてるから大丈夫?

インターネットに公開しているサービス、特にウェブサイト大丈夫ですか?

ということで

WordPressの脆弱性についてまとめました

弊社、システム屋です。いろいろなシステムを納品させて頂いております。また、お客様のサーバも運用させて頂いています。オープンソースのソフトウェアをいくつも使わせていただいています。ありがたいことです。

だ・か・らこそ、脆弱性の情報にアンテナを張っていないと。侵入や改竄なんて事が起きたら一大事です。

検出・報告された脆弱性数

社内資料から抜粋しました。2017年以降ものすごい数になってます。怖いですよね。弊社の脆弱性への取り組みもその頃から本腰を入れ始めています。

WordPressではどうなのか

WordPress関連(本体のほかプラグイン等も含む)の脆弱性の推移も気になったので調べてみました。

WordPress関連脆弱性報告数(時系列)

別個に調べたのでグラフの形式も違いますが、こちらはNVDではなくてJVNDBの登録数です。あんまり増えてない感じもしますね。

でも、WordPress本体とプラグインで四半期に50件とか100件とか出ています。1日1件くらいのペースです。これはこわい。

for i in $(seq 1 50 1570); do \
(curl "https://jvndb.jvn.jp/myjvn?method=getVulnOverviewList&feed=hnd&rangeDatePublic=n&rangeDatePublished=n&rangeDateFirstPublished=n&keyword=wordpress&maxCountItem=50&startItem=$i" \
|xmlstarlet sel -t \
-m "/rdf:RDF/rss:item" \
  -v "concat(dcterms:issued,'	',rss:title)" \
  -m "sec:references[@source='CVE']" \
    -v "concat('	',@id)" -b \
  -m "sec:references[contains(string(@title),'CWE-')]" \
    -v "concat('	',@id)" -b \
  -m "sec:cvss[@version='3.0']" \
    -v "concat('	',@score,'	',@vector)" -b -n \
>> wordpressvuls.txt); done

このデータはIPAさんが公開しているMyJVN APIを使ってキーワード「wordpress」の脆弱性情報を上記のようにして抜き出したものをまとめたものです。xmlstarletの使い方がよくわからなくて変なことしてますが。

WordPress関係で見つかる脆弱性の危険性は?

その報告される脆弱性はどんなものかも気になったので別のグラフもつくりました。CVSSv3の基本評価値のヒストグラムです。

WordPress関連脆弱性報告数(CVSSv3指標値)

CVSSv3の指標もそれほど酷くはないように見えます。6.0〜6.9のところが突出していますが、それを除くと、9.0〜10.0のところが多いのが怖いです。しかもこれの内訳は、9.8が84件となっています。9.8というと、「いますぐ対処しないとヤバいよ!」というレベル。

ここまで調べると、「やっぱりヤバいよなあ」と実感しましたので、もう少しだけ調べました。

WordPress関係で見つかる脆弱性の種別は?

CWE脆弱性種別です。

WordPress関連脆弱性報告数(CWE種別)

1件のみの種別は省きましたが、いろいろな種別があるのですね。改めて勉強になります。

脆弱性に仕事で関われば必ず聞くと言っていいほど頻出するクロスサイトスクリプティング(略称XSS)がダントツでした。そしてWebシステムの開発に関わっていれば一度は指摘される、うっかり脆弱性の代表ですよね。

2番目がSQLインジェクション、3番目がクロスサイトリクエストフォージェリ、やっぱりなあという有名どころとなりました。

具体的にどんな脆弱性?

ほぼ毎日出ている脆弱性、うっかりすると本当に侵入されます。

Ultimate Member – User Profile & Membership Plugin
The #1 user profile & membership plugin for WordPress.

WordPress用Ultimate Member プラグイン2.0.40未満に、クロスサイトリクエストフォージェリの脆弱性(CVE-2019-10673)。同2.0.45以下にもXSS脆弱性が見つかったみたいですが…。

W3 Total Cache
Search Engine (SEO) & Performance Optimization (WPO) via caching. Integrated caching: CDN, Minify, Page, Object, Fragment, Database support.

WordPress用 W3 Total Cacheプラグイン0.9.4未満に、情報漏えいに関する脆弱性(CVE-2019-6715)。

Related Posts
Related posts a so easy and fast

WordPressのプラグインYuzo Related Posts5.12.91以前に脆弱性。プラグインから呼び出される特定のパラメーターにエスケープ漏れの脆弱性(CVE-2019-11869JVNDB-2019-004469)。日本国内でのゼロデイ攻撃による乗っ取りやトップページ書き換えによる詐欺サイトへの誘導などの実害が確認されており、現在はプラグインの公開が停止されています。piyologさんのところでまとめが出ています

脆弱性にアンテナを張るには

では、どうすれば被害に会わないか。

できる限りアップデートは早期にやることですよね。Windows Updateしかり、Adobeのアップデートしかり。WordPressはログインすれば、WordPress本体、テーマファイル、プラグインなどのアップデートをお知らせしてくれます。気づいたら更新しましょう。

ただ、更新においては、互換性に注意してください。過去弊社内にてアップデートしたら表示がおかしくなった実例があります。

肌感ですが、xx.yy.zzのようなバージョン表示であれば、zz(パッチレベル)の変化であれば大丈夫、yy(マイナーバージョン)の変化はザクッとchangelogを見ておく、xx(メジャーバージョン)が変化した場合はステージング環境でチェック、そんな基準でだいたい間違いない感じです。

WordPress以外の脆弱性は?

もちろん脆弱性が見つかるシステムはこれだけではありません。

普段からの情報収集としては、セキュリティ関係のニュース(Security NextScan NetSecuritySIOS SECURITY BLOGLAC注意喚起の記事JPCERT/CCIPA脆弱性対策情報)は巡回しておきたいところですが、脆弱性情報に特化したものとしては、やはりNVDJVN iPedia(JVNDB)が一番です。これらはRSSフィードがあるので、購読しておくのも良いかもしれないです。

NIST RSS Feeds
Main NIST Feed NIST News and Events By Type NIST News NIST Events By Topic Advanced communications Bioscience Buildings...
JVN iPedia - 脆弱性対策情報データベース
脆弱性対策情報データベース

ただ、双方とも流量が半端なく多く、NVDだと平気で1日300件とか流れてきます。他の業務ができなくなります(実体験)。

そういう場合には、ツールに頼るのが一番。

Vuls · Agentless Vulnerability Scanner for Linux/FreeBSD
Agentless Vulnerability Scanner for Linux/FreeBSD

なんか便利っぽいんですけど、環境構築やDB維持がちょっと面倒っぽい。そんなあなたにSaasなVuls

FutureVuls - Vulsクラウドサービス [Vuls SaaS]
FutureVuls(Vuls クラウドサービス )なら専門家でなくても脆弱性の可視化、対応要否、優先順位付け判断をラクに行えます。さらにアップデートコマンドの表示、パッチ適用状況の追跡やTrend Micro Deep Security as a Service™の防御ルール生成など運用までサポートします

様々な理由があるのですが、結論として私はVulsでの運用を断念、VulsのDBを使って独自の自動化ができないかと今取り組んでいるところです。

こんな私の一人CSIRTを手伝ってもいいよ、という奇特な方、Jトラストシステムで一緒に仕事をしませんか?ぜひ助けてください(笑)