最近は脆弱性という言葉もよく聞くようになりました。
ウィルス対策は企業では当たり前になりましたが、では、「脆弱性」対策は?
Windows Updateできてるから大丈夫?
インターネットに公開しているサービス、特にウェブサイト大丈夫ですか?
ということで
WordPressの脆弱性についてまとめました
弊社、システム屋です。いろいろなシステムを納品させて頂いております。また、お客様のサーバも運用させて頂いています。オープンソースのソフトウェアをいくつも使わせていただいています。ありがたいことです。
だ・か・らこそ、脆弱性の情報にアンテナを張っていないと。侵入や改竄なんて事が起きたら一大事です。
社内資料から抜粋しました。2017年以降ものすごい数になってます。怖いですよね。弊社の脆弱性への取り組みもその頃から本腰を入れ始めています。
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の基本評価値のヒストグラムです。
CVSSv3の指標もそれほど酷くはないように見えます。6.0〜6.9のところが突出していますが、それを除くと、9.0〜10.0のところが多いのが怖いです。しかもこれの内訳は、9.8が84件となっています。9.8というと、「いますぐ対処しないとヤバいよ!」というレベル。
ここまで調べると、「やっぱりヤバいよなあ」と実感しましたので、もう少しだけ調べました。
WordPress関係で見つかる脆弱性の種別は?
CWE脆弱性種別です。
1件のみの種別は省きましたが、いろいろな種別があるのですね。改めて勉強になります。
脆弱性に仕事で関われば必ず聞くと言っていいほど頻出するクロスサイトスクリプティング(略称XSS)がダントツでした。そしてWebシステムの開発に関わっていれば一度は指摘される、うっかり脆弱性の代表ですよね。
2番目がSQLインジェクション、3番目がクロスサイトリクエストフォージェリ、やっぱりなあという有名どころとなりました。
具体的にどんな脆弱性?
ほぼ毎日出ている脆弱性、うっかりすると本当に侵入されます。

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

WordPress用 W3 Total Cacheプラグイン0.9.4未満に、情報漏えいに関する脆弱性(CVE-2019-6715">CVE-2019-6715)。
WordPressのプラグインYuzo Related Posts5.12.91以前に脆弱性。プラグインから呼び出される特定のパラメーターにエスケープ漏れの脆弱性(CVE-2019-11869">CVE-2019-11869、JVNDB-2019-004469.html">JVNDB-2019-004469)。日本国内でのゼロデイ攻撃による乗っ取りやトップページ書き換えによる詐欺サイトへの誘導などの実害が確認されており、現在はプラグインの公開が停止されています。piyologさんのところでまとめが出ています。
脆弱性にアンテナを張るには
では、どうすれば被害に会わないか。
できる限りアップデートは早期にやることですよね。Windows Updateしかり、Adobeのアップデートしかり。WordPressはログインすれば、WordPress本体、テーマファイル、プラグインなどのアップデートをお知らせしてくれます。気づいたら更新しましょう。
ただ、更新においては、互換性に注意してください。過去弊社内にてアップデートしたら表示がおかしくなった実例があります。
肌感ですが、xx.yy.zzのようなバージョン表示であれば、zz(パッチレベル)の変化であれば大丈夫、yy(マイナーバージョン)の変化はザクッとchangelogを見ておく、xx(メジャーバージョン)が変化した場合はステージング環境でチェック、そんな基準でだいたい間違いない感じです。
WordPress以外の脆弱性は?
もちろん脆弱性が見つかるシステムはこれだけではありません。
普段からの情報収集としては、セキュリティ関係のニュース(Security Next、Scan NetSecurity、SIOS SECURITY BLOG、LAC注意喚起の記事、JPCERT/CC、IPA脆弱性対策情報)は巡回しておきたいところですが、脆弱性情報に特化したものとしては、やはりNVD、JVN iPedia(JVNDB)が一番です。これらはRSSフィードがあるので、購読しておくのも良いかもしれないです。
ただ、双方とも流量が半端なく多く、NVDだと平気で1日300件とか流れてきます。他の業務ができなくなります(実体験)。
そういう場合には、ツールに頼るのが一番。
なんか便利っぽいんですけど、環境構築やDB維持がちょっと面倒っぽい。そんなあなたにSaasなVuls

様々な理由があるのですが、結論として私はVulsでの運用を断念、VulsのDBを使って独自の自動化ができないかと今取り組んでいるところです。
コメント
[…] https://www.jtrustsystem.co.jp/2019/06/13/wordpress-vulnerability-statistics/ […]