In this article
プロダクトセキュリティとアプリケーションセキュリティの違いとは?
アプリケーションセキュリティという言葉は、以前からよく耳にするようになりました。独自のWebアプリケーションを開発・保守する組織が増えるにつれ、開発プラクティスに沿った方法でアプリを保護することの重要性は、年々高まっています。
しかし、アプリケーションは単独で存在するわけではありません。多くの場合、開発者はより大きなプロジェクト、つまりプロダクトの一部としてアプリケーションを構築します。そのため、新たなセキュリティ分野としてプロダクトセキュリティが注目されています。
アプリケーションを構成するコードの保護にとどまらず、プロダクトセキュリティでは、プロダクトのライフサイクル全体(複数のアプリやシステムを含む場合があります)を通じて、物理面と仮想面の両方からセキュリティを確保します。この2つの分野を組み合わせることで、個々のアプリを保護するアプリケーションセキュリティと、より広範なソフトウェアおよびハードウェアを対象とするプロダクトセキュリティから成る、包括的なセキュリティ対策を実現できます。
この記事では、プロダクトセキュリティとアプリケーションセキュリティを比較し、それぞれの目的、範囲、リスク、対策、課題を解説します。
主な違い | プロダクトセキュリティ | アプリケーションセキュリティ |
目的 | プロダクトを安全に設計、開発、提供する | ライフサイクル全体を通じてアプリケーションを保護するためのツールとプロセスを導入する |
対象範囲 | ハードウェアとソフトウェアを含む、プロダクトのライフサイクル全体を対象とする | アプリケーションと、それがやり取りするデータやシステムの保護に特化する |
リスク | 物理的な改ざん、サプライチェーン攻撃、ソフトウェアやファームウェアの脆弱性 | マルウェア、ハッキング、インジェクション攻撃、データ侵害 |
対策 | 脅威モデリング、侵入テスト、コードレビュー、セキュリティアップデート | セキュアコーディング、認証・認可制御、入力検証、暗号化、脆弱性テスト |
課題 | セキュリティと使いやすさ・利便性の両立、進化する脅威や脆弱性へのコネクテッドデバイスの対応、組み込みデバイスの保護 | 継承された脆弱性、サードパーティやオープンソースの脆弱性、DevSecOpsの導入、適任者の確保、集中管理ツールの不足 |
アプリケーションセキュリティとは?
AppSecでは、自社開発コードとサードパーティコードの両方を保護します。アプリケーション、そのデータ、そして連携するシステムを深く掘り下げて対策します。エンドツーエンドでセキュリティに取り組むAppSecは、現代の開発に不可欠です。開発者が安全にコーディングするために必要なリソースを提供し、自動化ツールやアジャイルプラクティスを通じてDevSecOpsの実践にも貢献します。AppSecの技術やプロセスには、次のようなものがあります。
脆弱性テストには、次のような手法があります。
静的アプリケーションセキュリティテスト(SAST)では、開発の初期段階で静的な自社開発コードを検査し、脆弱性を検出します。
ソフトウェア構成分析(SCA)では、オープンソースコンポーネントに既知の脆弱性やライセンス上の問題がないかを監視します。
開発者向けの自動コードチェックやセキュアコーディングのトレーニングを通じて、セキュアコーディングを実践します。
認証・認可制御によって、アプリケーションが他のシステムと連携する方法を保護し、アプリの内部にアクセスできるユーザーを制限します。
稼働中のアプリを守る対策には、次のようなものがあります。
入力検証により、稼働中のアプリがユーザーから許可された入力のみを受け付けるようにします。
暗号化により、稼働中のアプリケーションを通過するデータを保護します。
動的アプリケーションセキュリティテスト(DAST)では、「外側から内側へ」フロントエンドへの攻撃をシミュレーションし、稼働中のアプリの脆弱性を検査します。
アプリの開発とデプロイに関するセキュリティアップデート。
プロダクトセキュリティとは?
ProdSecでは、プロダクトの設計、開発、提供を保護します。プロダクトが連携するすべてのソフトウェアとハードウェアが対象です。ProdSecの機能には、次のようなものがあります。
脅威モデリングにより、組織全体にわたるセキュリティ脅威を特定します。対象には、すべてのアプリ、システム、業務プロセスが含まれます。
侵入テストでは、ビジネスにおける外部公開範囲のあらゆる脆弱性(物理面と仮想面の両方)を明らかにします。
絶えず変化する脅威環境に組織全体が対応できるよう、包括的なセキュリティアップデートを実施します。
同僚によるコードレビューを通じて、ソフトウェア開発全体のセキュリティを強化します。
プロダクトセキュリティとアプリケーションセキュリティの5つの主な違い
プロダクトセキュリティとアプリケーションセキュリティを初めて比較すると、非常によく似ているように見えるかもしれません。どちらも、定期的なセキュリティアップデート、セキュアコーディング、脆弱性テストなどのベストプラクティスを重視します。また、テストなどのセキュリティタスクを定期的に実行するため、自動化ソリューションも活用します。
共通点はあるものの、プロダクトセキュリティとアプリケーションセキュリティは、目的と対象範囲が異なります。測定するセキュリティ指標や対応するリスクも異なり、それぞれにメリットとデメリットがあります。ここでは、両者の主な違いを5つ紹介します。
目的
AppSecの主な目的は、エンドツーエンドのツールとプロセスを導入してアプリケーションを保護することです。開発中の各アプリを保護し、デプロイ後もそのセキュリティレベルを維持することに重点を置きます。
一方、ProdSecでは、すべてのソフトウェア(アプリなど)とハードウェアを含む、プロダクトのライフサイクル全体を通じて保護します。AppSecが個々のアプリケーションに注目するのに対し、ProdSecはプロダクトに関連するシステム全体を対象とします。
対象範囲
AppSecはSDLC全体を通じて各アプリケーションを保護し、接続されたデバイスやシステムも対象とします。ProdSecは、プロダクトに含まれる個々のアプリだけでなく、プロダクトのライフサイクル全体を網羅します。
リスク
AppSecのプラクティスは、悪意のある攻撃者によるアプリへの侵入や、インジェクション攻撃やマルウェアを介したデータ侵害を防ぎます。ProdSecは、物理的な改ざん、サプライチェーン攻撃、既存のソフトウェアやファームウェアの脆弱性など、より大規模な攻撃からシステム全体を守ります。
対策
AppSecはアプリごとにセキュリティ対策を講じ、セキュアコーディング、認証・認可制御、入力検証、暗号化、固有の脆弱性テストと指標などのベストプラクティスに重点を置きます。ProdSecは、脅威モデリング、侵入テスト、コードレビュー、セキュリティアップデートを実施し、システム全体を保護します。
課題
アプリケーションセキュリティもプロダクトセキュリティも重要ですが、完璧なアプローチではありません。それぞれの導入には、さまざまな課題が伴います。
多くのAppSecソリューションには集中管理ツールがなく、継承された脆弱性の特定が困難です。このように分散したアプローチでは、複数のチームにDevSecOpsを導入することも難しくなります。さらに、AppSecの専門家は不足しがちなため、セキュリティの抜け漏れにつながるおそれがあります。ASPMソリューションは、さまざまなAppSecテストツールのデータを統合して脆弱性の優先順位付けや修正に必要なコンテキストを提供し、この課題を解決する手段として登場しています。
ProdSecにも特有の課題があります。対象範囲が広いため、使いやすさを損なわずに細かなレベルまでプロダクトセキュリティを実装するのは困難な場合があります。進化する脅威や脆弱性に合わせて、プロダクトセキュリティプログラム全体を最新の状態に保つことも容易ではありません。さらに、組み込みデバイスを含むすべてのデバイスを保護するのは難しい場合があります。
包括的なセキュリティ対策にProdSecとAppSecの両方が必要な理由
これまで見てきたように、ProdSecとAppSecは異なる領域を対象としており、別々の分野として捉えるべきです。AppSecは開発中および本番環境のアプリをきめ細かく保護し、ProdSecは企業のプロダクトエコシステム全体を守ります。どちらも組織のセキュリティに不可欠です。
プロダクトとアプリケーションのセキュリティを実現するSnykの次のステップ
Snykは、AppSecとProdSecの重要性を理解しています。Snykのソリューションは既存の開発ワークフローとシームレスに連携し、開発者がIDEから稼働中のクラウド環境まで、コードやサードパーティ依存関係に潜むセキュリティ脆弱性を特定して修正できるよう支援します。
Snykによるアプリケーションセキュリティ
Snykは、脆弱性データベースとコードセキュリティのナレッジベースを活用したAppSec向けの複数のソリューションを提供しています。
脆弱性を自動で解析する静的アプリケーションセキュリティテスト(SAST)
オープンソースコンポーネントの脆弱性を発見・修正するソフトウェア構成分析(SCA)
開発・ビルド時にIaCテンプレートを保護するInfrastructure as Code(IaC)セキュリティ。コードに沿ったセキュリティフィードバックと修正案を提示します。
Snykによるプロダクトセキュリティ
Snykの製品スイートには、ProdSecを支援する次のようなツールも含まれています。
稼働中のWebサイトとバックエンドサービスの脆弱性スキャンおよび修正。
コンテナとワークロードの脆弱性を検出して自動修正し、安全なベースイメージを提案するSnyk Container。
基本的なSCA機能にとどまらず、アプリだけでなくプロダクト全体にわたるライセンス上の問題や脆弱性を検出するオープンソースセキュリティ。
構成スキャンと修正を、IDEから稼働中のクラウド環境まで実施します。コードからクラウドまで一貫したルールセットとポリシーエンジンにより、デプロイ前後のセキュリティとコンプライアンスを自動化します。
セキュリティツール | プロダクトセキュリティ | アプリケーションセキュリティ | 両方 |
✓ | ✓ | ✓ | |
✓ | ✓ | ✓ | |
✗ | ✓ | ✗ |
詳しく見る:SnykのAppSecおよびProdSecソリューションが開発ワークフローとシームレスに連携し、プロダクトのライフサイクル全体にわたって開発者がセキュリティ脆弱性を特定・修正できる仕組みをご紹介します。