海の向こうの“セキュリティ”

企業や組織におけるOSSの利用状況とリスク/理想の「サイバーヒーロー」とは?

企業や組織におけるOSSの利用状況とリスク

 昔、こんな迷信がありました。「オープンソースソフトウェア(以降、OSS)はソースコードがすべて公開されているので、深刻な脆弱性があっても、すぐに見つかって修正されるため、プロプライエタリソフトウェアよりは(相対的に)安全である」というものです。これがただの迷信に過ぎないことは明らかなのですが、それでも、まことしやかに語られることは少なくありませんでした。しかし、これが本当にただの迷信だったことを証明したのが、2014年に明らかになったSSL/TLSのオープンソースのライブラリ「OpenSSL」の脆弱性「Heartbleed」です。この脆弱性を生んだコードは2年もの間「公開」状態にあったにもかかわらず、脆弱性があることが開発元に認知されることなく、放置されていたのです。つまり、いくらソースコードが公開されていても、その内容を誰も確認していなければ、意味がないという当たり前のことを世の中に明確に示したわけです。

 OSSの脆弱性は、これまでにも数多くのインシデントの原因として悪用されていますが、最近では2017年に起きた米消費者信用情報会社Equifaxの大規模個人情報漏えい事件の直接の原因が、OSSのJavaウェブアプリケーションフレームワーク「Apache Struts」の脆弱性だったことは記憶に新しいところでしょう。また、この事件とは別にApache Strutsについては、開発元のセキュリティへの取り組み姿勢自体に看過できない深刻な問題があると言わざるを得ない出来事もありました。

 一方、OSSは基本的に無保証なものですが、それでも多くのOSSの開発元が既知の脆弱性に対してパッチを公開しています。しかし、その適用は利用者側(OSSを含んだソフトウェアやシステムの開発者・提供者などを含む)に委ねられていることが多く、そのため更新漏れが起きやすい傾向があるとも言えます。

 そのような中、米Synopsys傘下のBlack Duck Softwareは、企業や組織におけるOSSの利用状況について調査した結果を「2018 Open Source Security and Risk Analysis」として発表しました。調査はコードベースで1100以上の匿名化されたデータを監査した結果に基づいています。ここで「コードベース (codebase)」とは、ソフトウェアシステムやアプリケーション、ソフトウェアコンポネントなどを構築するのに使われるソースコードのひとまとまりを指しています。

 この調査結果で最も目を引くのは、調査対象となったコードベースの8%にApache Strutsが含まれており、その33%にEquifaxの事件で悪用された脆弱性が残されたままになっていたという点です。また、調査対象のコードベースの4%に2014年のHeartbleedがいまだに残されていたのだそうです。どちらも全体から見れば少数ですが、このような認知度が比較的高いはずの脆弱性でも放置されているというのは、(OSSに限らず)脆弱性への対応を徹底することの難しさを改めて示すものと言えるでしょう。

 今回の調査報告書にはほかにもさまざまな興味深い結果が掲載されています。

  • 検査したアプリケーションの96%にオープンソースのコンポーネントが存在し、アプリケーションあたり平均して257個のコンポーネントが含まれている。
  • オープンソースのコードベースの割合は平均して57%であり、前年の36%に比べて大きく増えている。
  • 調査対象のコードベースの78%に最低でも1つの脆弱性が存在し、コードベースあたり平均して64個の脆弱性が存在。これは前年の調査結果と比べて134%の増加。

 この増加は、2017年に公になった脆弱性の数が2016年に比べて大幅に増えたことも原因の1つと考えられます。例えば、米国立標準技術研究所(NIST)の脆弱性情報データベース「NVD(National Vulnerability Database)」の登録件数だけでも、2016年は約6400件だったのに対し、2017年は約1万4700件となっています。

  • IoTアプリケーションでは、コードベースの77%にオープンソースのコンポーネントが含まれており、アプリケーションあたり平均して677個の脆弱性あり。
  • 調査で見つかった脆弱性が公になったのは平均して6年近く前。

 前年の同じ調査で「4年」であった結果と比較すると、古い脆弱性が放置されたまま積み残され続けている傾向が見てとれます。

  • 調査対象のコードベースで見つかった脆弱性の54%以上がリスクの高い脆弱性。

 オープンソースのコードベースの割合とリスクの高い脆弱性のあるコードベースの割合を業種別でまとめたのが以下の表です。

Frequency of high security risks by industry(Black Duck Software「2018 Open Source Security and Risk Analysis Report」より)

 また、詳しい説明が報告書内にはないのですが、アプリケーションに含まれるリスクの高いコンポーネントで最も一般的なものと、そのコンポーネントを含むコードベースの割合を業界別にまとめたのが以下の表です。

Most common high-risk component by industry(Black Duck Software「2018 Open Source Security and Risk Analysis Report」より)

 Black Duck SoftwareはもともとOSSのライセンス管理ソリューションを提供している企業なので、今回の調査ではOSSのライセンスが遵守されているかについても調べています。その結果、調査対象のコードベースのうち85%が、ライセンス不一致(license conflicts)もしくはライセンスが不明という結果になっています。OSSのライセンスはおよそ2500もあり、それぞれに条件は異なっています。導入しているOSSそれぞれのライセンスを確認した上で、全体として矛盾なく遵守するのはかなり難しいことではあるのですが、知的財産権の侵害や訴訟リスクなど、ビジネスにとって深刻な問題になる可能性は十分にあり、注意が必要です。ちなみに、OSSのライセンスとして有名なGPL(GNU General Public License)に対して不一致(conflicts)があるのは調査対象のコードベースのうち44%となっています。

 ライセンス不一致の割合をオープンソースの割合とともに業種別にまとめたのが以下の表です。

Frequency of license conflicts by industry(Black Duck Software「2018 Open Source Security and Risk Analysis Report」より)

 「Telecommunications & Wireless」の業界ではコードベースのすべてに不一致があるというのは気になるところです。

 Black Duck SoftwareはOSSの管理ソリューションを提供している企業なので、今回の報告書が最終的に自社のサービスの導入につなげようという意図があることは明らかです。しかし、その点を差し引いても、すでに数多くのOSSが導入されていることに変わりはなく、それらの脆弱性管理を完璧に行うのが極めて難しいことも確かです。管理を強化する必要はもちろんありますが、OSSの脆弱性が悪用される可能性があることを前提に、事後の対応をあらかじめ検討し、被害を局所化できるように備えておくことが重要です。

 また、導入コストを抑えられるという理由だけで安易にOSSを採用するのではなく、その管理を具体的にどのように行うのかを十分に検討した上で導入の可否を慎重に判断すべきでしょう。特に、OSSの中には脆弱性への対応が適切に行われているものも確かにありますが、そうでないものも存在するということに注意が必要です。

理想の「サイバーヒーロー」とは?

「サイバーヒーロー」のインフォグラフィック(Trustwave「What are Cyber Heroes Made of?」より。同社サイトよりPDFでダウンロード可能)

 米Trustwaveは、理想の「サイバーヒーロー」を図解したインフォグラフィックを公開しました。もちろん基本的にはジョークなのですが、各々の項目の説明にはセキュリティ専門家に期待されているポイントが含まれていますので、一見の価値はそれなりにあるでしょう。

 項目は以下の6つです。

  • 頭脳:Superhuman Cyber Sense
  • 目:X-Ray Vision
  • 耳と口:Attending Ears and Sonic Speech
  • 指:Delicate Touch
  • 胃:Gutsy Demeanor
  • 時間管理:Lightning-Fast Response

山賀 正人

CSIRT研究家、フリーライター、翻訳家、コンサルタント。最近は主に組織内CSIRTの構築・運用に関する調査研究や文書の執筆、講演などを行なっている。JPCERT/CC専門委員。日本シーサート協議会専門委員。