In this article
アプリケーションリスクに対するセキュリティカバレッジと管理を実現
現代のアプリケーションは、自社開発のコードと数え切れないほどのオープンソースパッケージを組み合わせた、複雑なエコシステムです。コンテナイメージとして提供され、APIを提供・利用し、Infrastructure as Codeのテンプレートを通じて設定・デプロイされます。AIの影響力が増すにつれ、このプロセスはさらに複雑化し、スピードも加速しています。組織は、アプリケーションポートフォリオに潜む「未知の未知」という広範な脅威に直面しています。この課題は深刻でありながら、過小評価されがちです。
こうした構造はイノベーションとスピードを後押しする一方で、セキュリティの前提を根本から変えます。アプリケーションのコンポーネントがこれほど多く、動的で相互に結びついているとき、どうすれば確かな可視性と管理を維持できるでしょうか。多くのセキュリティチームにとって、率直な答えは「大きなギャップがある」です。
全体を把握できていないと、ソフトウェア開発ライフサイクル全体や、利用するさまざまなテクノロジーに危険な「死角」が生まれます。開発ライフサイクルの特定の段階で既知の脆弱性への対処に重点を置く従来のセキュリティ対策だけに頼るのでは、ますます不十分になっています。管理されていないリポジトリに機密データが含まれているケースや、脆弱なベースイメージなど、こうした「未知の未知」は、対処されないリスクとなります。今日のアプリケーションセキュリティを効果的に管理するには、全体像を把握し、理解し、保護する力が必要です。
死角:未知の脆弱性が潜む場所
セキュリティにおける「死角」とは何でしょうか。組織のソフトウェアエコシステムのうち、可視性が欠けている領域を指します。こうした領域は、発見されていない脆弱性が潜む温床となります。死角にはさまざまな形があります。
レガシーアプリケーション:現在も稼働しているものの、積極的な更新や監視が行われていないシステムです。安定していると思われていても、古い未修正の欠陥や、サポートが終了したライブラリを抱えている可能性があります。
シャドーIT:確立されたセキュリティ手順に従わずに開発されたプロジェクトやツールを指します。未承認のベンダーやクラウド環境が関与している可能性があり、こうした取り組みは十分な監督を受けていないのが一般的です。
忘れられた資産:更新頻度の低いコードリポジトリや見落とされたコンテナイメージも、攻撃の侵入口となる可能性があります。
実際、見えないものは保護できません。未知のまま管理されていない資産は格好の標的となり、「未知の未知」がビジネスにとって深刻な、対処されないリスクとなるのです。
包括的なカバレッジを実現する3つの柱
事後対応から脱却し、潜在する脅威に効果的に対処するには、包括的なアプリケーションセキュリティカバレッジを実現するための基盤を構築する必要があります。
1. あらゆる資産を可視化する
存在を把握していないものは保護できません。まず、ソフトウェアエコシステム全体をマッピングし、継続的に追跡して、すべての資産を把握することが重要です。つまり、コードリポジトリ、パッケージマニフェストファイル、コンテナイメージ、クラウド構成、API、実行環境のアプリケーションインスタンスなど、アプリケーション資産すべてをカタログ化します。
このインベントリには、各資産の所有者や基盤となるテクノロジーなどの詳細とコンテキストを記録します。特に重要なのは、そのビジネス上の背景と重要度です。どのアプリケーションが重要なのか、機密データを扱うのかを理解することは、効果的なリスク管理に欠かせません。
例を見てみましょう。

組織の832件の資産(リポジトリやアプリケーションなど)のうち、コンプライアンス要件を満たしているのは376件、つまり45%にすぎないことがわかります。これは、資産の55%がSAST(静的アプリケーションセキュリティテスト)やSCA(ソフトウェア構成分析)の制御によるスキャンを受けていないことを意味します。シークレットとコンテナのスキャンについても、同様の数値が確認できます。
このレベルの詳細な情報は、セキュリティチームがカバレッジを把握するうえで必要です。また、すべての資産に同じセキュリティ制御が必要とは限らない点も重要です。そのため、自社のワークフローに合わせて細かく調整したポリシーを実装することが不可欠です。
2. インテリジェントなセキュリティポリシーを確立する
全体を明確に把握できれば、画一的なセキュリティ制御から脱却し、自社固有のリスク許容度やビジネスニーズに応じたポリシーを定義できます。これらのポリシーでは、ビジネス上の重要度や資産の種類に基づいて必要なセキュリティ制御を明確に定め、セキュリティカバレッジを徹底します。
たとえば、ビジネス上重要な「クラスA」の資産には、テスト用途のみで本番環境にデプロイされない、重要度の低い「クラスD」の資産よりも厳格なスキャンと監視を義務付けるポリシーが考えられます。
こうしたポリシーは、セキュリティカバレッジのギャップを特定し、適切な制御で保護されていない資産を明らかにするうえでも重要な役割を果たします。また、重要なアプリケーションに適切なレベルの注意と精査が行き届くようにします。
この例では、PCIなどの特定のタグを検索して、機密性の高い顧客データを扱う重要なアプリケーション(資産)を最初に特定するポリシーを設定します。

次にポリシーによって、これらの資産を「クラスA」または「重要」に分類します。これにより、セキュリティ上の問題に対処する際、重要度の低い資産とは異なる方法で扱い、優先順位を付けられます。
先ほどのポリシーで設定した資産分類を使い、「クラスA」または「重要」に分類されたリポジトリやコンテナイメージを選択して、強制適用可能なカバレッジ制御を定義します。

これにより、重要なリポジトリには毎日のSASTスキャンを必須とし、SCAのスキャン頻度は48時間ごとに設定するなど、異なるルールを適用できます。こうした柔軟なカスタマイズにより、対象を絞ったポリシーで最重要資産に注力でき、自社のビジネスに高度に適合したセキュリティカバレッジ戦略を実現できます。
3. コンテキストを踏まえた優先順位付け
考えられる脆弱性を一つ残らず特定しようとすると、対応待ちの脆弱性が膨大になり、開発者の負担につながることがあります。効果的にリスクを低減するには、実際のビジネスリスクに基づいて修正作業の優先順位を付けることが重要です。そのために、影響を受けるアプリケーションはどれほど重要か、インターネットに公開されているか、脆弱なコードは実際に到達可能か、実行時に読み込まれているか、といったコンテキストを加味します。
これらの情報があれば、セキュリティチームはノイズを減らし、最も大きなビジネスリスクに修正作業を集中できます。コンテキストを活用する効果を、次の例で見てみましょう。

当初、対応待ちの脆弱性は約41,000件に上り、膨大な数でした。アプリケーションが「デプロイ済み」か、「パブリックに公開」されているか、「読み込み済みパッケージ」があるかといった主要なリスク要因を適用すると、最もリスクの高い53件にまで絞り込めます。さらに、先ほど説明した資産分類(「クラスA」や「重要」なアプリケーションなど)や、CVSSスコア、その他の関連する内外の要因を使って、このリストを絞り込むことができます。このように対象を絞ることで、セキュリティチームは最も重要なリスクから優先して対処できます。
プロアクティブなリスク管理へ
可視性、インテリジェントなポリシー、コンテキストに基づく優先順位付けという柱を導入すれば、アプリケーションセキュリティ態勢への取り組み方を変えられます。新たに発見された脆弱性に絶えず対応するのではなく、問題が深刻化する前に、プロアクティブにビジネス全体のリスク管理に注力できます。さらに、開発チームとセキュリティチームがアプリケーション環境を同じ視点から把握し、合意されたビジネスコンテキストに基づいてリスクを理解し、自動化されたポリシーに沿って保護を進めることで、両チームの連携が自然と強化されます。これにより、効果的な修正に向けた明確な共通の道筋が生まれ、ビジネスにとって最も大きな脅威となるリスクに、全員の力を集中できます。
「未知の未知」に真に対抗し、セキュリティの死角をなくすには、取り組み方を変える必要があります。すべてのソフトウェア資産を可視化し、リスクベースのインテリジェントなセキュリティポリシーを導入し、コンテキストに基づく優先順位付けを行うという、基盤となる能力の構築を優先することが重要です。この包括的でプロアクティブなアプローチによって、現代のアプリケーションの複雑さに効果的に対処し、今日の厳しい環境におけるセキュリティリスク全体を大幅に低減できます。プロアクティブなリスク管理への移行は、次のような具体的なビジネス上のメリットをもたらします。
ビジネスの中断とリスクへの露出を最小化
セキュリティ投資を最適化し、コスト効率を向上
規制対応とコンプライアンス態勢を強化
連携とセキュリティ文化を向上
ビジネスのレジリエンスを高め、競争上の差別化を強化
イノベーションを加速し、市場投入までの時間を短縮
現在のセキュリティ対策は、アプリケーション環境全体に潜むリスクを発見し、ビジネスにとって本当に重要な脅威にチームの力を集中させるうえで、十分に機能していますか?
Snyk Essentialsが、チームによるAppSecプログラムの管理と、ビジネス上重要な問題の優先的な対応を支援し、リスクの低減にどう役立つかをご覧ください。