ソフトウェア・サプライチェーン・リスク管理と実践的サイバーセキュリティ対策としてのセキュリティ・テスト

 

【講演者】
日本シノプシス合同会社
ソフトウェア・インテグリティ・グループ
マネージング・プリンシパル
大森 健史 氏

<ソフトウェアのサプライチェーン・リスク>

サプライチェーン・リスクは、IPAの10大脅威でも2番目に入る重大なリスクだ。ソフトウェアのサプライチェーンとは、受託開発業者やシステムインテグレータ、商用ソフトウェア、オープンソース、開発ツールやフレームワーク、アプリケーション、運用ツールなど多岐に渡る。

サプライチェーン・リスクとして1つ目に挙げられるのが、OSSの脆弱性だ。2021年にはLog4Shell(Apache Log4j 脆弱性)が有名になった。広く使われているOSSのログ取得モジュールに脆弱性が発見され、どこに含まれているか探された方も多いだろう。2014年に発見されたのがHeartbleed(OpenSSL 脆弱性)で、秘密鍵等の機密情報を取得できる脆弱性であった。同じ時期にはShellshock(bash 脆弱性)も、不正なスクリプトが実行できる脆弱性として発見された。

2つ目のリスクはサプライチェーン攻撃で、具体例として2018年にNode.js event-streamにマルウェアが混入した事例がある。ストリーム処理用JavaScriptパッケージである event-stream に依存関係が追加され、そこにマルウェア(ビットコイン窃取)が埋め込まれた。2020年にはSolarWind社のOrionという、連邦政府機関を含む3万以上の官民の組織で利用されているITパフォーマンス監視システムへのマルウェア混入が発生した。攻撃者が同社のネットワークに侵入し、悪意のあるコードをOrionに注入し、ソフトウェア・アップデートとして、バックドアを含むコードが自動的に配信されてしまった。

<ソフトウェアのサプライチェーン・リスク管理>

OSS/OTS/商用ソフトの場合、脆弱性管理では最初にコンポーネントの特定が必要だ。そのためにはSCAツールやSBOMなどが必要になってくる。次にベンダー情報や脅威インテリジェンスなどの情報を使って、脆弱性を特定する。特定した脆弱性に対し、リスク判定やトリアージを行う。CVSSやNISTなどリスク判定基準を明確に持ち、人ではなく機械的に判定することが重要だ。脆弱性対応では、まず情報公開が求められる。どのような影響があるのか、回避策も含めてなるべく早く伝えることだ。その後にパッチ適用などの対応を行う。

<シフト・エブリウェア>

これまでソフトウェア・セキュリティでは「シフト・レフト」を推進してきたが、現在は「シフト・エブリウェア」に変わりつつある。ただ単に前倒しでテストをするのではなく、SDLCの適切な時期に、適切なコンテキストに特化したテストを行う。時にはデプロイメントの最後に行うこともある。

<ソフトウェア・セキュリティ関連法令・業界規制>

米国では、国家のサイバーセキュリティの改善に関する大統領令(EO14028)が出ている。その中の1つがSection4のソフトウェア・セキュリティで、サプライチェーン・セキュリティを強化する内容だ。米国政府に物を納める企業は、ガイダンスに従ってソフトウェアをセキュアに作らなければならない。具体的な内容は、セキュアなソフトウェア開発環境、信頼できるソースコード・サプライチェーンの維持とコードの整合性の確保、定期的またはリリース前の脆弱性チェック、SBOMの提供、脆弱性開示プログラムへの参加などだ。

日本では経済安全保障推進法の中の1つに、基幹インフラ役務の安定的な提供の確保がある。サイバー攻撃の中には国家を背景とした形で行われるものもあるため、我が国の外部から行われる妨害行為の手段として使用される恐れが大きい場合には、そのリスクを低減させ、または排除する必要があるとしている。

<セキュア・ソフトウェア開発ライフサイクル(SDLC)>

ソフトウェア開発ライフサイクルにおいて、各段階でセキュリティの取り組みを行う必要がある。最初の計画段階ではセキュリティ要件や脅威モニタリング、ビルド段階では静的解析やSCA/SBOM、テスト段階では動的解析などのセキュリティ・テストが必要だ。デプロイでは運用SBOMやペネトレーション・テスト、運用段階に入ったら継続的スキャンや脆弱性管理を行う。

<セキュリティ診断/テストにおける課題>

課題は主に2つあり、1つ目は、まず何をすれば良いかわからないことだ。診断/テストの目的や実施方法がわからない、セキュア開発のプロセスがない、できる人やわかる人がいないという状況だ。2つ目は、報告された問題の対応ができないことだ。問題の優先度付け(トリアージ)ができない、修正方法がわからない、修正するリソース(人員/時間/費用)がないという課題だ。

<シノプシスのアプリケーション・セキュリティ・テスト>

アプリケーション・セキュリティ・テストの領域で、当社はガートナー社からNo.1の評価を頂いている。当社のサービスの中から、本日はマネージド・セキュリティ・テスト・サービスについてお話しする。こちらのサービスの特徴の1つ目は定額・固定スコープのメニュー型サービスであることだ。2つ目はタイムボックス型のテストであり、基本的にテストが終了するまでの期間を明確に設定できる。3つ目として、インドにある当社SIGラボでテストを実施する。ラボには約300名のコンサルタントが在籍しており、セキュリティの専門家によるテストを受けられる。

具体的なサービスメニューは、DAST(Web脆弱性スキャン)、PT(Webペネトレーション・テスト)、MAST(モバイルアプリ診断)、SAST(ソースコードレビュー)、SCA(含有OSS診断)、NST(NW脆弱性スキャン)、PT-API(APIペンテスト)、SDR(セキュア構成レビュー)、CCR(クラウド構成レビュー)などがある。

<ニーズに合ったバンドルを選択可能>

各サービスメニューは3種類のバンドルで提供可能だ。まずアラカルト形式では、それぞれのテストを個別に行える。「3D AST」は、1年ごとまたは6か月間のサブスクリプションで提供する形式だ。期間内は各サービスが使い放題になり、年間通して一貫した量のテストがある場合におすすめだ。「VSTバーチャルセキュリティ・チーム」は、マネージド・サービスをカスタマイズしたい場合に適したバンドルだ。専任スタッフが、担当する企業のテストを一貫して行うため、ある程度のカスタマイズができる。

「3D AST」バンドルは固定価格の年間(あるいは半年間)契約をして頂くことで、マネージド・サービスのすべてのテストが、どれでも実行できる。テスト対象システムやアプリ、テストの種類やテストの深さをその都度選択できる。ただし、一度につき1つのテストのみ実行可能であり、複数を同時並行しての実行はできない。パイプラインにシリアルにテストを詰めて流していくイメージだ。どうしても同時並行で実施したい場合、アラカルトで個別に契約していただくか、パイプラインをもう1つ契約して頂く必要がある。

<テストに必要な日数や実施の流れ>

セキュリティ・テストについて、テスト開始からレポート提出までの標準日数を定めており、例えばペネトレーション・テストは7~10営業日だ。テスト実施の流れは、質問票による情報収集やお客様によるアプリのデモ等、事前作業のあとにテストを実行する。成果物として報告書を提出し、必要に応じてWeb会議による質疑応答やご説明等を提供する。

何をすれば良いかわからないという課題に対しては、スコーピング・コールでお客様の要件に合ったテストの選択を支援する。報告された問題の対応ができないという課題には、わかりやすい修正方法の記載と専門家とのQ&Aセッションにより、脆弱性対応の支援が可能だ。

◆講演企業情報
日本シノプシス合同会社:https://www.synopsys.com/ja-jp/software-integrity.html