2018年のOSS脆弱性の動向とTop5

こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面 和毅です。

今回は、少し早いですがちょうど10月までのOSSのセキュリティ、特に脆弱性の情報をまとめる機会がありましたので、そちらで使用したデータを用いて、11月中旬までの(つまり概ね2018年の)脆弱性の動向、特にOSSの脆弱性を中心としてどういう動きがあったのかを、CVE情報と弊社へのアクセス情報(PV数)を元にしてTop5の形で簡単にまとめていきたいと思います。



用語等

CVE、CVSS等の専門用語は、SCAP(セキュリティ設定共通化手順)とは何か――CVE、CVSS、CPEについて (1/2)の記事を参考にしてください。

2018年のOSS脆弱性の動向(CVEベース)

2018年も公表される脆弱性は増えています。全体的な動向と、その中でOSSが占める割合を示したグラフを示します。

この図の注意としては下記になります。

  1. CVEの情報を前述のMITREから入手し、かつ詳細情報をNIST DBから持ってきているため、MITREに登録されているがNIST DBに未登録のものは漏れています。
  2. OSSか否かはCPE情報からProduct情報を拾ってきているため、CPEの登録がないもの(稀にある)に関しては、非OSSに含まれています。
  3. firefoxやchromeのようにOSS/非OSSの双方にインストールされるものでも、CPE情報にOSSが含まれている場合にはOSSとしてカウントしています。

こうしてみると、OSSか否かに関わらず、公表されるCVE数(つまり公知の脆弱性数)は右肩上がりで上昇してきていることがわかります。これは世の中が危険になったと言うよりも、各SW/HWベンダーが社会的な状況で脆弱性情報を公開する必要になってきた事と、Google社の開発したSyzkaller/Syzbot(弊社セキュリティブログでも取り上げました、Linux Kernelについての脆弱性を自動検査するツール)等のような「自動でソフトウェアを検査する」ツールによる活躍が大きいと思われます。

2018年の(OSS関係の)脆弱性Top5

単純に、弊社(https://security.sios.com)へのアクセス数でTop5を決めました。と言っても、実質はTop1が独走のような状態です。

  1. CPUやGPU周りの脆弱性(Meltdown, Spectre, L1TF, その他)
  2. Linux Kernelの脆弱性(SegmentSmack他)
  3. BIND/Apache/PostgreSQLの脆弱性
  4. Gitの脆弱性
  5. ZipSlipの脆弱性

各Top5の概要

  1. CPUやGPU周りの脆弱性(Meltdown, Spectre, L1TF, その他)
  2. OSSや非OSSに限らず、今年一番セキュリティ関係者の頭を悩ませたのは、CPUやGPU周りの脆弱性で決まりでしょう。

    2018年は嫌な幕開けでした。2018/01/02辺りから「IntelのCPU周りでの脆弱性が公開されるらしい」という情報が囁かれ始め、2018/01/04に『Meltdown/Spectre Attack』として公開されると、世間ではお屠蘇気分も抜けていない状態だと言うのにセキュリティ関係者は情報を求めてあちこちのWebを探り、元になった論文を読み、影響範囲を考え、等大変な作業に陥りました。セキュリティ関係者で、今年満足に正月を過ごせた方は(筆者自身を含めて)皆無だったのではないかと思います(涙)。

    この脆弱性はIntel/AMD/ARM全てのCPU自身の基幹部分から発生しているため、非常に影響範囲が大きく、社会的にも問題になりました。2018/01/04には日本経済新聞のサイトでも問題が取り上げられています。

    弊サイトでも、2018/01/04(JST)に情報が公開された際に、各SW/HW情報やOSSディストリビューションの情報、AzureやAWS等の情報を取り上げた所、アクセス数(PV数)が跳ね上がりました。

    弊サイトは、傾向としては殆ど月〜金のアクセスが多く、休日や祝日にはほぼアクセス数はありません(どうやら、仕事で検索している方々がアクセスに来ているようです)。

    こちらの図が2018年前半部分のアクセス数になります。

    通常は、一日のアクセス数(PV数)は3,000-4,000です。しかし、3が日が明けてからアクセス数が跳ね上がり、2018/01/05では1日で10,000以上のアクセス数があります。また、2018/01/09も10,000以上のアクセスになっています。

    この一週間の動きを拡大した図がこちらになります。

    これを見ると、東証が開いて最初の2018/01/04(金融機関系が開く日にち)に既に5,000PVを突破し、一般企業が開く2018/01/05、或いは連休明けを待って開く2018/01/09に大きく10,000PVを突破したことがわかります。これらのアクセスにより、この一週間だけで通常のアクセス数の一ヶ月と同程度のアクセスが行われました。これだけ見ても、Meltdown/Spectreが世間一般にどれだけの関心を持たれたかという所が見て取れます。

    しかも、このSpectre系に代表されるCPU周りの脆弱性は、これだけでは終わりませんでした。単にSpectreの亜種と呼ばれるものだけでも、

    Spectre系と言われるもの
    亜種番号 CVE番号 内容 公開日時
    1 CVE-2017-5753 Bound Check Bypass(BCB) 2018/01/04
    2 CVE-2017-5715 Branch Target Injection (BTI) 2018/01/04
    3 CVE-2017-5754 RDCL(Meltdown) 2018/01/04
    3a CVE-2018-3640 Rogue System Register Read (RSRE) 2018/05/22
    4 CVE-2018-3639 Speculative Store Bypass (SSB) 2018/05/22
    5 CVE-2018-3665 Lazy FP State Restore 2018/06/14
    1.1 CVE-2018-3693 Speculative Bounds Check Bypass Store (BCBS) 2018/07/10

    があります。また、上記のSpectre/Meltdown系の修正が不充分だったため、新たに協議しているという情報(ITMediaのリンク)と元の論文(PDF)も出ていますので、今年は最後までSpectre系が関わってくると考えられます。

    他にも、今年のCPUやGPU周りの脆弱性としては

    その他CPUやGPU周りの脆弱性
    CVE番号 内容 公開日時
    CVE-2018-3615, CVE-2018-3620, CVE-2018-3624 L1 Terminal Fault 2018/08/14
    CVE-2018-5407 Portsmash 2018/11/02
    CVE-2018-6260 NVIDIA社のGPUに対するサイドチャネル攻撃 2018/11/05

    等がありました。とにかく、2018年という年は「CPU関連の脆弱性が数多く出てきた年」だったと言って良いでしょう。

  3. Linux Kernelの脆弱性
  4. 今年もLinux Kernelの脆弱性は多く、Kernelに関する記事で一番アクセス数が多かったのがIntelの"System Programming Guide of the Intel 64 and IA-32 Architectures Software Developer's Manual (SDM)"でのステートメントが、殆ど全てのOSのkernel開発で誤って処理されていたという問題になります。

    こちらの問題ですが、Intelが提供しているドキュメント"System Programming Guide of the Intel 64 and IA-32 Architectures Software Developer's Manual (SDM) "でのステートメントに関して、殆ど全てのOSのKernel開発者が誤って取り扱っていたため、ほぼ全てのOSに関して権限昇格やDoSを引き起こすことができるという脆弱性でした。

    また、次にアクセス数が多かったのが"SegmentSmack"、また関連した"FragmentSmack"と呼ばれる脆弱性でした。この脆弱性は、リモートからDoSを引き起こすことができるというものだったため重要度も高く、関心も高かったようです。

    この他にも、今年一年ではLinux Kernelに関する脆弱性の記事は都合66件、CVE数は157件でした。弊社のOSS脆弱性ブログでは、PriorityがLowのものは極力扱わないようにしていますので、PriorityがMedium以上のものでもこれだけのLinux Kernelに関する脆弱性が出ているということになります。

    しかし、ここで勘違いしてはいけないのは、Linux Kernelが特別脆弱だというわけではないということです。むしろ、Google社の開発したSyzkaller/Syzbot(弊社セキュリティブログでも取り上げました、Linux Kernelについての脆弱性を自動検査するツール)等の活躍により、Linux Kernelに関してダメな部分が洗い出されているという風に取るべきでしょう。今後も、Linux Kernelの脆弱性情報は出続けていくと思いますが、それはむしろ「キレイになっていく過程」と受け止めたほうが良いと思います。

  5. BIND/Apache/PostgreSQLの脆弱性
  6. 最早定番となっているためひとまとめにしてしまっていますが、BIND/Apache/PostgreSQL等の脆弱性が上位に来ています。今年公開された脆弱性では、Apache/PostgreSQLはMedium/Lowの脆弱性だけでした。Apacheに関してはApache HTTP Serverの複数の脆弱性情報(CVE-2017-15710,CVE-2017-15715,CVE-2018-1283,CVE-2018-1301,CVE-2018-1302,CVE-2018-1303,CVE-2018-1312)が、PostgreSQLに関してはPostgreSQLの脆弱性(CVE-2018-1058)に関してが上位に来ていますが、アクセス数に関しては殆ど差はありませんでした。BINDに関しては2018年はHighのものばかりで、BIND 9の脆弱性 ( CVE-2017-3145 )BIND 9 に関しての脆弱性 ( CVE-2018-5734 )BIND 9の脆弱性 ( CVE-2018-5740 )が、リモートからの攻撃が可能ということからアクセスが多かったようです。

  7. Gitの脆弱性
  8. 2018年の脆弱性では、Gitの脆弱性もImportantのものばかりだったため、比較的目立ちました。特にGitの複数の脆弱性 ( CVE-2018-11235, CVE-2018-11233 )Gitに関しての脆弱性情報 ( Important: CVE-2018-17456 )と更新バージョン (Git 2.14.5, 2.15.4, 2.16.5, 2.17.2, 2.19.1)では、Gitサーバ上での任意のコマンド実行が出来るということから関心が高かったようです。

  9. ZipSlipの脆弱性
  10. 2018年には、複数のパッケージが関係している実装上の脆弱性もありました。特にZip Slip脆弱性と呼ばれるものは、アーカイブファイルの展開処理での問題が引き金となったため、npm, tar, rar, jarなどひじょうに多くの圧縮ファイルソフトウェアが影響を受けました。

  11. その他の脆弱性
  12. OpenSSLは2018年はMedium/Lowのプライオリティの脆弱性だけでした(OpenSSLの脆弱性 ( CVE-2018-0739, CVE-2018-0733 )OpenSSLの脆弱性情報 ( CVE-2018-0737 : Low)OpenSSLの脆弱性 ( CVE-2018-0732 )OpenSSLに関しての脆弱性情報 ( Low: CVE-2018-0734, CVE-2018-0735 ))。特に大きい問題はありませんでしたが、やはりアクセス数は比較的多くなります。OpenSSLに関しては、Heart Bleedの経験からLinux Foundationによる後援もあり、新たに脆弱性と修正バージョンを出す場合には一週間以上前にOpenSSL-Announce-ML等でForthcoming OpenSSL releasesというタイトルで開示時期とプライオリティを事前に告知するという方法を取っているため、パニックにならずに対処できるようになってきています。

    MySQLやJavaに関しても関心が高かったようですが、Oracleの方でCritical Patch Update(CPU)としてこちらのOracleのサイトで四半期ごとのアップデートの日にちを事前告知しているため、その瞬間はアクセス数が多いですが、こちらもあまりパニックになっていないようです。(Java: Oracle Javaの脆弱性(Oracle Critical Patch Update Advisory - Jan 2018)Oracle Javaの脆弱性(Oracle Critical Patch Update Advisory - Apr 2018)Oracle Javaの脆弱性(Oracle Critical Patch Update Advisory - Jul 2018)Oracle Javaの脆弱性(Oracle Critical Patch Update Advisory - Oct 2018)/MySQL: MySQLの脆弱性(Oracle Critical Patch Update Advisory - Jan 2018) 、MySQLの脆弱性(Oracle Critical Patch Update Advisory - Apr 2018)MySQLの脆弱性(Oracle Critical Patch Update Advisory - Jul 2018)MSQLの脆弱性(Oracle Critical Patch Update Advisory - Oct 2018))

    これらの点(事前告知)は、他のメジャーなソフトウェアでも是非参考にして欲しいと思います。

    その他、libsshの脆弱性情報(Important: CVE-2018-10933)が関心が高かったようです。こちらは通常のOpenSSHは影響を受けませんが、Cisco製品などSSHの実装にlibsshを使用している製品が多いため、関心を持たれたようです。

    また、Strutsは相変わらず定期的に(Apache Struts2の脆弱性(S2-056 : CVE-2018-1327)Apache Struts2にリモートコード実行(RCE)の脆弱性(S2-057 : CVE-2018-11776))脆弱性が出ているため、代替を真剣に検討する時期にきていると思われます。

まとめ

2018年も残す所はあと一ヶ月程度となりました。脆弱性の発表に関しては、まだ残り一ヶ月の間にも大きいものがありそうな気がします。

また、脆弱性の発見・公開は季節等とは無関係に行われますので、また年末年始の休暇の間にも大きい脆弱性が出てくる可能性が有ります。2019年こそは、お正月休みはしっかりと取れることを祈って結びとさせて頂きます。

セキュリティ系連載案内

OSSに関するお困りごとは サイオス OSSよろず相談室まで

サイオスOSSよろず相談室 では、OSSを利用する中で発生する問題に対し、長年培ってきた技術力・サポート力をもって企業のOSS活用を強力に支援します。Red Hat Enterprise Linux のほか、CentOS をご利用されている環境でのサポートも提供いたします。

前へ

Linux Kernelの脆弱性情報(Moderate: CVE-2018-18955)

次へ

gVisorの脆弱性情報(CVE-2018-19333)