製品/サービスのライフサイクル全体にわたる脆弱性管理の重要性と、具体的なテストサービスとは?【JapanSecuritySummit 2023 日本シノプシスセッションレポート】
近年、二重脅迫を目的としたランサムウェア攻撃やサプライチェーン攻撃が急増している。こうした攻撃が成功すると、自社の直接的なダメージはもちろんだが、間接的にも他社へも影響を与えて、ビジネス機会を損失したり、ブランド力や信用の失墜をもたらす。そこで日本シノプシス合同会社 ソフトウェア・インテグリティ・グループ マネージング・プリンシバル 大森健史氏が「製品/サービスのライフサイクル全体にわたる脆弱性管理」をテーマに同社のソリューションについて紹介した。
悪質・巧妙化するサイバー攻撃に対して、各国で規制強化が始まる
昨今、ソフトウェアの脆弱性に関わる脅威や、ソフトウェア・サプライチェーンを突く攻撃がIPAの調査で浮上しています。たとえばサプライチェーンの攻撃例では、ストリーム処理用のJavaScriptパッケージ「event-stream」の依存関係にあるライブラリにマルウェアが仕込まれるという手の込んだ手口がありました。また2020年にはSolarWinds社のITパフォーマンス監視システム「Orion」にマルウェアが仕込まれ、ソフトウェア・アップデート時に自動配信され、米国の連邦政府機関を含む3万以上の官民組織が影響を受けました。これを機に米国で国家のサイバーセキュリティの向上に関する大統領令が発効されました。
その中の規制である「EO14028 Section4(e)」では、ソフトウェア・サプライチェーンのセキュリティ強化として、セキュアなソフトウェア開発環境の整備、セキュア・ソフトウェア開発プラクティスへの準拠、信頼できるサプアイチェーンの維持、定期的な脆弱性チェック、SBOMの提供、脆弱性開示プログラムへの参加などが呼びかけられています。
一方、EUではIoT関連のデジタル要素を持つデバイスが、サプライチェーン全体やライフサイクル全体を通じて安全であることを保証する「CRA」や、金融関係に対するICTのリスク管理やサードパーティリスク監視に関するルールを定めた「DORA」が発効されました。ほかにも、人命に関わる分野で非常に強い規制がかけられています。たとえば、医療関係では「IEC81001-5ー1」、自動車では「ISO/SAE 21434」「UN-R155」「UN-R156」といったものが挙げられます。
ソフトウェア開発ライフサイクルにおけるセキュリティの取り組み
では、このような動きに対して、実際にどのようなセキュリティ対策に取り組めばよいのでしょうか? ここからはソフトウェア開発ライフサイクル「SDLC」(Software Developmemt Lifecycle)の観点から見ていきます。SDLCでは「計画」「実装」「ビルド」「テスト」「リリース」「デプロイ/提供」「運用監視という一連のプロセスがあります。
まず計画段階では、セキュリティ要件を決め、脅威を可視化して、設計段階で脅威モデリングやリスク分析を実施します。次に実装段階でコーディングする際に、IDEに統合する形で静的解析を行います。ビルド段階ではコード・レビューのツールで静的解析を実施し、脆弱性をチェックします。SCA(Software Composition Analysis)により、どんなOSSがあるかを確認し、包括的なソフトウェア部品表のSBOM(Software Bill of Materials)を作成することで、直接的あるいは間接的な依存関係やライセンスなどの一覧をチェックします。
ビルドでの検査後は、テスト段階のセキュリティ・テストになります。IAST(Interactive Application Security Testing)といった動的解析や、脆弱性スキャン、ファジングテストなどを行います。このとき脅威モデリングをしてリスクを明確にしたうえで、ハイリスクな部分がミチゲート(軽減)されているかを確認します。リリース段階では、セキュア構成レビューを実施します。構成面ではクラウド環境での設定ミスによる情報漏えいなどが考えられます。これは脆弱性ではなく、構成の問題になります。
その後にデプロイ/提供段階になりますが、ここではペネトレーション・テストを行うとともに、セキュリティ運用における運用SBOMを策定します。あとは運用監視として、サービス・保守終了まで継続的なスキャンをしたり、バグ・バウンティで報奨金を与えて外部からバグを見つけてもらったり、レッド・チームによってインシデントを含めた対応能力を強化したりします。そのほか脆弱性もしっかり管理しておきます。
このようなセキュリティへの取り組みは、従来までは、なるべく前倒しで行う「シフト・レフト」の考え方に基づいていました。しかし最近では「シフト・エブリウェア」に代わってきています。これは「SDLCの適切な時期に、適切な情報(コンテキスト)に特化したテストを行って、問題を炙り出すもの」です。前倒しだけでなく、後ろ倒しで実施する場合もあります。たとえば構成レビューなどは、本番環境にデプロイする状況にならないとレビューの意味がないからです。脅威モデリングは1度で終わるものでなく、必要な段階で何度もやることが大切です。
ライフサイクル全体にわたる脆弱性管理を考慮する場合は、特に市販後のセキュリティが大切になります。そのためコンポーネントの特定から入り、それに対する脆弱性の特定とセキュリティ診断を行い、自社におけるリスク判定を実施します。ここで人に依存せずに、CVSSやNISTなどの客観的な基準を持つことが重要です。そのうえでトリアージを実施し、脆弱性に対応していきます。もちろんパッチ適用は大切ですが、最もやるべきことの1つとして、製品サービス利用者に向けた回避策などの情報公開があります。
カスタム開発ではSBOMを作成しても使い回しはないので、それよりもOSS/OTS/商用ソフトウェアで効果を発揮します。何か脆弱性があった場合に迅速に対応できます。何のためにSBOMをつくるのか、脆弱性情報の入手や対応のために必要であることを意識しましょう。
シノプシスのマネージド・セキュリティ・テスト・サービスとは?
では、このような課題に対し、当社ではどのようなサービスを提供しているのでしょうか? さまざまなソリューションの中でも、特にテスト領域での豊富なサービスメニューを取りそろえています。以下に各種サービスを示します。
まずWeb脆弱性の自動スキャンをかけて擬陽性がないレポートを提出する「DAST」があります。自動ツールだけでなく、マニュアルツールで複数の脆弱性テストを組み合わせたい場合や、ECサイトのように一連のロジックベースでの遷移でバグがないか、あるいはアクセス権限なども見たいときに、ペネトレーション・テスト「PT」を用意しています。モバイル系のアプリ診断の「MAST」は、静静的/動的テストを組み合わせてAndroidやiOSや各サーバー側の脆弱性を発見するサービスです。
またソースコードレビューの「SAST」は、自動でコードの脆弱性を特定して排除するサービスです。OSSライブラリのセキュリティなどをワンタイムスキャンで検査する「SCA」や、ネットワーク脆弱性スキャンサービスの「NST」、ライトなAPIの脆弱性を特定するペンテストサービスの「PT-API」、アーキテクチャ・デプロイ・DevSecOpsのセキュリティ評価と設計問題を特定するセキュア構成レビューの「SDR」も用意しています。
ここまでは現在提供中のサービスですが、パイロットサービスとしてモバイル系のバイナリコードのハイリスク対策用の簡易モバイル診断サービス「MAST-E」や、クラウドサービス実行時の構成や認証などのセキュリティをチェックするクラウド校正レビュー「CCR」、コアセキュリティ対策にフォーカスした差分ペンテストの「Incremental PT」もあります。このように、当社ではライフサイクル全体にわたり、セキュリティ対策を支援しています。
これらのサービスは、お客様のニーズによって3つの形態で提供されます。まず「ア・ラ・カルト」は、サービスを1つずつチョイスしていただくものです。それに対して「3D AST プリケーション・セキュリティ・テスト」は、前出のテストサービスがサブスクリプション形態で1年間、あるいは6ヵ月にわたり使い放題になります。また「VSTバーチャルセキュリティ・チーム」は、マネージドサービスをカスタマイズし、お客様に専任スタッフがオンラインで張り付いて、柔軟にサービスをカバーするものです。
ちなみにサブスクの3D AST アプリケーション・セキュリティ・テストは、すべてのテストを適用でき、テストの深さも、その都度選択できますが、1度につき1つのテストだけという制限が付きます。つまりテストのパイプラインを1本購入し、その中にシリアルで、いくつかのテストを詰めていくイメージです。したがって複数のパイプラインで同時並行してテストを実行することはできません。
テストの流れは、事前にお客様環境を調査し(アプリのデモ実施など)、どこまでテストするのか範囲を決めます。その上でスケジュールを調整し、テストアカウントの発行、ファイアウォール/WAFなどの設定を変更してもらいます。そのあとにテストを実行し、レポートを提出します。報告時には、電話による説明会(Q&A)を実施し、専門家が分からない点を解説します。
標準の各テスト期間(テスト開始からレポート提出まで)は、Web脆弱性スキャンで3営業日、ペネトレーション・テストで7~10営業日、モバイル・アプリ診断で7~12営業日といった目安になります。
Webアプリのコードが変更されても大丈夫! 本番環境でテストを行うサービスも
ここまでのサービスはテスト環境で実行するものでしたが、当社ではもう1つのサービスとして、本番環境でテストを行う「WhiteHat Dynamic」も用意しています。
本サービスの大きな特徴は、セキュアなDevOps環境を確立するときに、本番環境で完全な可視化ができる点でしょう。またAIや機械学習を利用して、検査結果の優先順位を自動化する「インテリジェント・レメディエーション」や、1ヵ所に対して継続的にオンデマンド・スキャニングを繰り返し、脆弱性を自動的にチェックできる点も特徴の1つです。もちろん本番環境をダウンさせることなくテストできます。本サービスでは、世界最大の専門家チームである「TRC」(Threat Research Center)が、運用監視における継続的なスキャンや検証を担当しますので、安心してご利用下さい。