- クラウドコンピューティングとは何ですか?›
- クラウドコンピューティングコンセプトのハブ›
- セキュリティ、アイデンティティ、コンプライアンス›
- アプリケーションセキュリティとは?
アプリケーションセキュリティとは?
アプリケーションセキュリティとは?
アプリケーションセキュリティ (AppSec) は、開発するアプリケーションのセキュリティプロパティを設計、構築、テストするプロセスです。AppSec には、組織がセキュリティリスクを軽減し、セキュリティインシデントを防止し、セキュリティインシデントから迅速に回復するのに役立つプラクティス、ツール、およびテクノロジーが含まれています。アプリケーションセキュリティ検査を採用することで、デプロイ後を含むソフトウェア開発ライフサイクル (SDLC) 全体にわたってセキュリティ問題の防止、特定、修正に役立ちます。
アプリケーションセキュリティはなぜ重要なのでしょうか?
アプリケーションのセキュリティは、アプリケーションが期待どおりに動作することを保証するためのソフトウェア開発プロセスの重要な部分です。アプリケーションが社内専用であるか、顧客製品として製造されているかにかかわらず、アプリケーションのセキュリティは重要です。
主要なアプリケーションセキュリティプラクティスに従うことには、次の利点があります。
ユーザーからの信頼を高める
アプリケーション内で発生するセキュリティインシデントは、ビジネスに対するユーザーからの信頼に影響を与え、ブランドの評判にも影響を与える可能性があります。アプリケーションのセキュリティに重点を置くことで、このような可能性を防ぎ、ユーザーのロイヤルティを高めることができます。
規制コンプライアンスをサポートする
コンプライアンスフレームワークを満たすソフトウェアアプリケーションを開発している組織は、これらの製品がコンプライアンスを維持できるように懸命に取り組む必要があります。たとえば、アプリケーションが一般データ保護規則 (GDPR) を満たしている場合、すべての新機能も GDPR に準拠している必要があります。
事業運営を維持する
組織内のアクティブな脅威により、業務が停止する可能性があります。ソフトウェアアプリケーションがセキュリティインシデントの原因ではないことを確認することで、事業運営を可能な限り円滑に進めることができます。
機密データを保護する
個人識別情報 (PII) や個人のビジネス情報などの機密データがアプリケーションを通過します。アプリケーションのセキュリティを優先することで、不正アクセスを防ぎ、データ漏えいを防ぐためのセキュリティ対策を講じることができます。
DevSecOps におけるアプリケーションセキュリティとは何ですか?
アプリケーションセキュリティは、より広範な DevSecOps プログラムのコアコンポーネントです。
DevSecOps は、人、プロセス、テクノロジーという 3 つの基本柱に基づいて構築されています。DevSecOps は DevOps に基づいており、開発者 (Dev)、セキュリティプロフェッショナル (Sec)、運用チーム (Ops) 間のコラボレーションを促進して効率的かつ安全なソフトウェアを構築するための専用のツールとプロセスが含まれています。DevSecOps は、ソフトウェアを構築しているすべての人にセキュリティに関する共通の責任を持たせる文化の変革をもたらします。
これらの 3 つの柱は、自動化と継続的なセキュリティ検査を通じて連携し、強力で安全な、進化し続ける開発プログラムを作成します。
人: セキュリティ第一の文化とコラボレーション
DevSecOps では、組織は、セキュリティがセキュリティチームだけの責任ではなく、全員の責任であるという、セキュリティ第一の文化を構築する必要があります。開発者は開発するアプリケーションのセキュリティを所有し、運用チームは実行中のワークロードとインフラストラクチャのセキュリティを所有し、セキュリティチームは組織のセキュリティを所有します。この協調的なアプローチにより、運用、セキュリティ、開発の各チーム、および組織全体にわたって、セキュリティの所有権が明確になります。
セキュリティの文化
役割、部門、プログラム全体にセキュリティの文化とマインドセットを組み込むことは、アプリケーションセキュリティの重要な部分です。組織全体に浸透したセキュリティ文化には、セキュリティチャンピオンプログラム、共同のセキュリティ設計レビュー、インシデント後のレビュー、継続的な改善のための学習プロセスなどの可視性が組み込まれています。
ロールベースのセキュリティトレーニングを頻繁に行う
開発者、セキュリティ、運用チームなど、ソフトウェア開発ライフサイクルに関わる個人やチームにトレーニングを提供する必要があります。AppSec セキュリティトレーニングには、セキュアコーディングプラクティス、脅威モデリング、脆弱性管理、コードのコミットやセキュリティ検出結果に基づく学習などが含まれます。
SDLC の早い段階でセキュリティを組み込む
セキュリティは、構想段階という早い時点からアプリケーション設計に組み込む必要があります。これには、製品チームがセキュリティ要件を定義してユーザーストーリーや承認基準に組み込むことができるように支援する脅威モデリングや設計レビューが含まれます。
プロセス: 自動セキュリティ統合
アプリケーションと機密データを保護するには、アプリケーションセキュリティプロセスを確立することが不可欠です。明確で透明なセキュリティガイドラインにより、開発者はコード内のセキュリティ問題を軽減し、機能的なアプリケーションセキュリティ制御を実装できます。
Policy-as-Code フレームワーク
組織全体として、開発ライフサイクル全体を通じてセキュリティ要件を定義し、自動的に適用する必要があります。これには、セキュリティ構成を定義する運用チーム向けの Infrastructure as Code (IaC) テンプレートが含まれます。これらのテンプレートは、デプロイ前にアプリケーションのセキュリティを自動的に検証するのに役立ちます。
自動セキュリティチェック
自動セキュリティ検査では、継続的インテグレーションと継続的デプロイ (CI/CD) パイプラインのあらゆる段階にセキュリティチェックが組み込まれています。これらには次のものが含まれます。
- 品質ゲート: ソフトウェア製品が特定の段階で満たさなければならない品質レベル。たとえば、脆弱なコンポーネントや古いコンポーネントがないことを確認するために、アプリケーションが本番環境に入る前にすべてのライブラリを最新の状態にする必要があります。
- バグバー: アプリケーション内のセキュリティ問題の閾値レベルです。たとえば、セキュリティ上の脅威の可能性を排除するために、リリース前にソフトウェアに「高」以上のセキュリティ脆弱性があってはなりません。
- 品質チェック: テストとスキャンを行い、品質ゲートとバグバーをチェックします。
- 継続的なコンプライアンススキャン: システムおよび組織統制 2 (SOC 2)、ペイメントカード業界データセキュリティ基準 (PCI DSS)、GDPRなどの標準を自動的にチェックするスキャナー。
リアルタイムのセキュリティ監視と対応
DevSecOps プロセスでは、自動インシデント対応ワークフロー、自己修復機能、継続的なセキュリティポスチャ評価を作成して組み込むことができます。これらのワークフロー内に、リスクが低く複雑度の低い検出結果に対する自動修正を追加できます。その他の検出結果については、開発者やチケットシステムに自動フラグを送信できます。
インテリジェントなリスク管理
アプリケーション内のセキュリティリスク管理では、自動リスクスコアリングを使用してセキュリティ検出結果に優先順位を付けます。このリスクスコアリング評価は、各脆弱性のビジネスへの影響と悪用可能性に基づいています。このプロセスでは、開発者の注意が必要な重大な脆弱性が浮き彫りになります。
適応型セキュリティ保護と緩和
成熟した DevSecOps プログラムを実施している組織では、各アプリケーションのセキュリティを個別に適応させることができます。プロジェクトリーダーとインテリジェントシステムは、アプリケーションコンテキスト、ユーザーの行動、および新しい脅威に基づいてセキュリティ要件を動的に調整できます。このプロセスにより、新しいセキュリティ要件は、新規および既存のソフトウェア開発プロジェクト全体で繰り返し使用可能になり、自動化されます。
テクノロジー: クラウドネイティブなセキュリティオートメーション
最新のアプリケーションでは、従来のテクノロジーとクラウドネイティブなテクノロジーと AI 主導の自動化を使用してセキュリティを強化しています。
自動セキュリティ検査
標準のソフトウェアセキュリティ検査は、プロジェクト全体に展開する必要があります。これらの自動テストには以下が含まれます。
静的アプリケーションセキュリティ検査 (SAST)
静的アプリケーションセキュリティ検査は、既知の脆弱性についてコードベースをスキャンします。
動的アプリケーションセキュリティ検査 (DAST)
動的アプリケーションセキュリティ検査は、実行中のアプリケーションの脆弱性をスキャンします。
対話型アプリケーションセキュリティ検査 (IAST)
インタラクティブなアプリケーションセキュリティ検査では、ユーザーの操作に基づいて実行時にコード出力を調べます。
ソフトウェア構成分析 (SCA)
ソフトウェア構成分析は、オープンソースの依存関係に脆弱性がないかスキャンします。
コンテナとインフラストラクチャのセキュリティ
コンテナとインフラストラクチャのセキュリティでは、ソフトウェアが実行される基盤となるコンポーネントのセキュリティが考慮されます。このインフラストラクチャ管理では、次のようなセキュリティ対策を組み合わせることができます。
- ランタイム保護付きコンテナセキュリティスキャン
- 継続的な構成監視のためのクラウドセキュリティ体制管理 (CSPM)
- 認証情報をローテーションしてハードコードされたシークレットを排除する自動シークレット管理プラットフォーム
- 侵入テストとその他のライブテスト
ゼロトラストアーキテクチャ
ゼロトラストアーキテクチャでアプリケーションを設計すると、権限に基づくソフトウェアの脆弱性を減らすのに役立ちます。ゼロトラストアーキテクチャのコンポーネントには以下が含まれます。
- ID ベースのアクセス制御によるネットワークマイクロセグメンテーション
- 通信のサービス間暗号化によるサービスメッシュセキュリティ
ゼロトラストアーキテクチャは、分散型アプリケーションとクラウドベースのアプリケーション全体にセキュリティポリシーを適用するのに役立ちます。
AI を活用した脅威の検出と分析
組織は機械学習 (ML) アルゴリズムを使用でき、行動分析はアプリケーションのセキュリティをさらに強化できます。
たとえば、AI と ML サービスは、内部からの脅威や異常なアクセスによって示される侵害されたアカウントなど、異常なパターンをリアルタイムで検出するのに役立ちます。これらのサービスは、脆弱性の関連付けと優先順位付けを通じてアラートの数を減らすのにも役立ちます。
セキュリティを継続的に統合するには
DevSecOps と同様に、アプリケーションセキュリティには継続的なプロセスとしてアプローチする必要があります。AppSec を変化する脅威やビジネスニーズに適応させることで、アプリケーションセキュリティプログラムが常に有用で最新の状態に保たれます。
継続的なフィードバックループを実現するにはさまざまな方法があります。
- セキュリティ KPI、平均修復時間、セキュリティ負債などの項目をアプリケーションポートフォリオ全体で追跡できるリアルタイムダッシュボード。これらのダッシュボードには、優先順位付けと改善に役立つ自動セキュリティメトリクスが表示されます。
- 定期的なセキュリティレトロスペクティブ、セキュリティログ、およびフォローアップアクションを含むインシデント後のレビューを通じて実施される継続的な改善ループ。
- AppSec へのセキュリティ投資は、ビジネスリスクの軽減とセキュリティ投資収益率 (ROSI) の計算に基づいて優先順位を付ける必要があります。
ソフトウェアプログラムの継続的な適応ガードレールは、ビジネスの成長に合わせて規模を拡大するのに役立ちます。プログラムを評価して進化させることで、新たなサイバー脅威から継続的に保護することができます。
重要なアプリケーションセキュリティプラクティスにはどのようなものがありますか?
開発者はこれらの方法を使用して、ソフトウェアアプリケーションを不正アクセスやその他のリスクから保護できます。
コードセキュリティ
静的および動的なコード分析は、アプリケーションが完全なソフトウェアリリースに達する前に脆弱性を特定するための基本です。開発チームは、自動セキュリティ検査ツールを開発ワークフローに直接統合して、ソースコード、コンパイル済みアプリケーション、実行中のシステムにセキュリティ上の欠陥がないかスキャンします。
これらのアプリケーションセキュリティツールは、一般的な脆弱性を検出します。たとえば、ウェブアプリケーションのセキュリティでは、テストに SQL インジェクション、クロスサイトスクリプティング、および安全でない構成を含める必要があります。モバイルアプリケーションのセキュリティ検査では、テスト時のセキュリティ上の考慮事項には、デバイス上のストレージテストが含まれる場合があります。これらのツールは、開発者に実用的な修復ガイダンスを提供しながら、脆弱性を浮き彫りにすることができます。
たとえば、開発者は Amazon Q Developer コードレビューや Amazon Inspector Code Security を使用して、コードレビュー中にセキュリティの脆弱性やコーディングのベストプラクティス違反を自動的に特定し、アプリケーションのセキュリティ体制を改善するためのインテリジェントな推奨事項を提示します。
依存関係の管理
サードパーティのライブラリとオープンソースコンポーネントは、既知の脆弱性とライセンスコンプライアンスの問題により、重大なセキュリティリスクをもたらします。組織は、アプリケーションで使用されるすべての外部コンポーネントを可視化するために、包括的な依存関係スキャンおよび管理プロセスを実装しています。
これらのプロセスには、自動脆弱性検出、ライセンスコンプライアンス監視、およびセキュリティパッチによって依存関係が最新の状態に保たれるようにする安全な更新メカニズムが含まれます。
たとえば、開発チームは Amazon Inspector Code Security を使用してコードとコンテナイメージの依存関係に脆弱性がないか継続的に評価し、修正ガイダンス付きの詳細な検出結果を自動的に生成します。
インフラストラクチャのセキュリティ
クラウドインフラストラクチャの設定ミスは、最新のアプリケーションにおけるセキュリティ侵害の最も一般的な原因の 1 つです。
チームは Amazon Inspector Code Security を使用して継続的なモニタリングと自動修復を実装し、クラウドリソースがライフサイクルを通じて安全な設定を維持できます。これには、セキュリティグループルール、暗号化設定、アクセスポリシー、および組織のセキュリティ標準への準拠の検証が含まれます。
AWS Config を使用して、セキュリティのベストプラクティスに照らして AWS リソース設定を継続的に監視および評価し、逸脱を自動的に検出して修正ワークフローを起動してコンプライアンスを維持することもできます。
継続的インテグレーションと継続的デプロイ
最新のアプリケーションは、CI/CD パイプラインを使用してクラウドにデプロイされます。アプリケーションをデプロイする際のリスクを軽減するために、チームは AWS CodePipeline などのサービスを使用できます。CodePipeline はセキュリティスキャンサービスと統合して、デプロイプロセスのあらゆる段階で継続的にセキュリティ検証を行うことができます。これには、自動静的コード分析、依存関係の脆弱性スキャン、コンテナイメージのセキュリティ評価、デプロイ前のコードとしてのインフラストラクチャのセキュリティレビューが含まれます。
AWS CodeBuild はサードパーティのセキュリティツールと統合して、アプリケーションの構築とテスト中に包括的なセキュリティ検査を実行できます。さらに、AWS CloudFormation Guard でコードとしてのポリシーを実装すると、インフラストラクチャのデプロイが自動的にセキュリティ標準に準拠するようになります。これにより、安全でない構成が本番環境に移行するのを防ぎ、すべてのデプロイ段階でセキュリティの一貫性を維持できます。
AWS はアプリケーションのセキュリティ要件をどのようにサポートできますか?
AWS Cloud Security は、プライベートネットワークとパブリックネットワークのアプリケーションセキュリティを強化するためのリソースを組織に提供します。セキュリティチームは、AWS のネットワークおよびクラウドアプリケーションセキュリティサービスを使用して、安全なアプリケーションの作成、コードとインフラストラクチャの脆弱性の特定、ワークロードのコンプライアンスの評価などを行うことができます。アプリケーション、ネットワーク、ホストレベルでセキュリティのベストプラクティスを適用するかどうかにかかわらず、お客様のセキュリティ要件をサポートするサービスを提供します。
- Amazon Inspector を使用すると、Amazon EC2、AWS Lambda 関数、Amazon Elastic Container Registry (Amazon ECR) 内のコンテナイメージなどの AWS ワークロード全体と、コードリポジトリなどの AWS 以外のリソースや継続的インテグレーションおよび継続的デリバリー (CI/CD) ツール内のソフトウェアの脆弱性や意図しないネットワークへの露出をほぼリアルタイムで検出できます。
- Amazon Q Developer は、公開された認証情報やログインジェクションなど、検出が難しい脆弱性がないかコードをスキャンします。Amazon Q Developer は、1 つのステップでアプリケーションコードに合わせた修正方法を自動的に提案するので、ユーザーは自信を持って修正を速やかに受け入れることができます。
- AWS WAF は、ウェブアプリケーションのインシデントを最小限に抑えるのに役立ちます。AWS WAF では、ボットトラフィックを制御するウェブアプリケーションファイアウォールのセキュリティルールを作成し、SQL インジェクションやクロスサイトスクリプティング (XSS) などの一般的な攻撃パターンをブロックすることができます。
- AWS Security Hub は、重大なセキュリティ問題に優先順位を付け、規模に応じた対応を支援して環境を保護できるようにお客様を支援します。シグナルを相互に関連付け、実用的なインサイトへと充実させることで重大な問題を検出し、効率的な対応を可能にします。
今すぐ無料アカウントを作成して、アプリケーションセキュリティの向上を開始しましょう。