安全なWebアプリケーション開発を推進する「DevSecOps」の実践には、「SCA」(ソフトウェア構成分析)が欠かせない。その理由とは。そもそもSCAとは何なのか。
近年、「DevOps」(開発と運用の融合)や「アジャイル」など開発効率を向上させる開発手法が台頭しました。DevOpsにセキュリティを取り入れた「DevSecOps」も登場しています。それに伴って、Webアプリケーション開発におけるオープンソースソフトウェア(OSS)ライブラリの利用が広がっています。ただしOSSライブラリには、さまざまな脆弱(ぜいじゃく)性が存在することも事実です。
私が国内法人の代表を務めるContrast Securityは2021年に、ユーザー企業がWebアプリケーションに利用中のOSSライブラリに関する調査を実施しました。その結果をまとめたレポートが「2021 State of Open-Source Security」です。それによると、Contrast Securityのセキュリティサービスの保護下にあるWebアプリケーションの、およそ90%がOSSライブラリを利用していました。
Palo Alto Networksの調査チームUnit 42は、非営利団体MITREが脆弱性に割り当てる共通脆弱性識別子(CVE:Common Vulnerabilities and Exposures)を分析しました。この分析においてUnit 42は、2020年8月時点で採番(公開、割り当て)済みのCVEを、採番年ごとにカウントしました(図1)。CVEの採番数は増加傾向にあり、2017年から2019年には年間1万4000件以上に上っています。アプリケーションセキュリティベンダーWhite Source(Mend.ioの名称で事業展開)の調査によると、脆弱性の増加傾向はOSSにも現れており、2020年には9658件の脆弱性がOSSで見つかっています。
Webアプリケーションにおいて利用するOSSライブラリの種類が増えると、それだけ脆弱性を抱える可能性が高まりやすくなります。OSSライブラリの積極的な利用が、企業にとって大きな脅威になり得るのです。
DevOpsやアジャイルといった手法に基づくWebアプリケーション開発を安全に進めるには、ソースコードだけではなくOSSライブラリについても、存在する脆弱性の検出や対処を効率化しなければなりません。そこで視野に入るのが「SCA」(ソフトウェア構成分析)の活用です。
SCAは、Webアプリケーションが利用しているOSSライブラリをスキャンによってリストアップし、脆弱性を調査するツールです。見つかった脆弱性のCVEを特定し、脆弱性の深刻度に基づいて対策の優先順位を付けます。従来、開発部門はその分析結果を調査し、必要な対策を施すという流れでSCAを活用してきました。
Webアプリケーションが脆弱なOSSライブラリを「組み込んでいるかどうか」を判断するのに、SCAは役立ちます。ただし「実際に利用しているかどうか」を調べるのは、極めて困難です。OSSライブラリが提供する関数やクラス(データと処理をまとめたもの)の呼び出しを含め、Webアプリケーションのソースコードにおける処理の流れを目視で追わなければいけないからです。結果として開発部門は、スケジュールに間に合わせるために、脆弱性を十分に検証できないままWebアプリケーションをリリースせざるを得なくなる可能性があります。
SCAはOSSライブラリから複数のクラスを検出します。ただしWebアプリケーションがそれらのクラス全てを利用していることは、ほとんどありません。
例えば図3の状況を考えてみましょう。ソースコードによると、WebアプリケーションはライブラリAとライブラリBを呼び出しています。ライブラリAはライブラリCを呼び出し、さらにライブラリCはライブラリFを呼び出す仕組みです。このように、あるライブラリが別のライブラリを必要とする関係を「依存関係」と呼びます。
ライブラリBにも他のライブラリとの依存関係があり、一部の機能にライブラリDやライブラリEを必要とします。ただし、このWebアプリケーションはライブラリBの全ての機能を使っているのではなく、ライブラリDやライブラリEを呼び出す必要のない機能だけを使っています。つまりライブラリDやライブラリEの脆弱性は、このWebアプリケーションに影響を及ぼさないことになります。
2021 State of Open-Source Securityは、依存関係を含めて1つのWebアプリケーションにひも付くOSSライブラリのうち、Webアプリケーションが実際に呼び出すOSSライブラリの割合を調査した結果をまとめています。その結果によると、調査対象となったWebアプリケーションにひも付くOSSライブラリ(平均118件)のうち、Webアプリケーションが実際に呼び出すOSSライブラリは半数程度でした。つまり実際には半数程度のOSSライブラリを呼び出していないことになります。呼び出さないOSSライブラリの脆弱性対処に時間を掛けても無駄足になることは、想像に難くありません。
Webアプリケーションが実際に呼び出しているOSSライブラリのみをリストアップし、そのOSSライブラリを優先的にバージョンアップして脆弱性を排除できれば、脆弱性対処を効率化できます。最新のSCAは、エージェントソフトウェアを利用し、Webアプリケーションのソースコードを解析してOSSライブラリを確認する機能を備え始めています。この機能により、SCAは実際に呼び出しているOSSライブラリのみをリストアップし、そのライブラリを優先的にアップデートすることが可能になります。2021年に脆弱性が見つかったことで、広範囲に影響を及ぼしたライブラリ(プログラム部品群)「Apache Log4j」も検出可能です。脆弱性検出ツール「IAST」(インタラクティブアプリケーションセキュリティテスト)も、同様の機能を備えています(IASTの詳細は連載第2回「脆弱性検出ツール『IAST』が『DevSecOps』に欠かせないのはなぜか?」を参照)。
第4回は、開発部門による本番環境の管理を実現する「RASP」(ランタイムアプリケーションセルフプロテクション)を紹介します。
国内システムインテグレーターや外資系企業で営業を経験した後、ArcSight(現Micro Focus)、41st Parameter(現Experian)、SundaySkyなど、主に米国スタートアップのカントリーマネジャーとして6社の日本オフィスを立ち上げ、成長させた。IT業界で約30年の経験があり、ハードウェア、ソフトウェア、クラウド、セキュリティ、データベース、デジタルマーケティングなどさまざまな分野に精通している。Contrast Security日本オフィスの立ち上げに尽力。
Copyright © ITmedia, Inc. All Rights Reserved.
ハロウィーンの口コミ数はエイプリルフールやバレンタインを超える マーケ視点で押さえておくべきことは?
ホットリンクは、SNSの投稿データから、ハロウィーンに関する口コミを調査した。
なぜ料理の失敗写真がパッケージに? クノールが展開する「ジレニアル世代」向けキャンペーンの真意
調味料ブランドのKnorr(クノール)は季節限定のホリデーマーケティングキャンペーン「#E...
業界トップランナーが語る「イベントDX」 リアルもオンラインも、もっと変われる
コロナ禍を経て、イベントの在り方は大きく変わった。データを駆使してイベントの体験価...