現在、 平均的な アプリケーションには 数千もの 構成要素が 含まれています。 組織は コンテナや マイクロサービスを 使った マルチクラウド環境に アプリケーションを デプロイし、 社内チームが 作成した コード、 AIが 生成した コード、 サードパーティが 提供する コードを 組み合わせて 利用しています。
セキュリティチームは、 こうした 複雑な アプリケーションを 安全に 保つと いう 大きな 課題に 直面しています。 特に、 ソフトウェアサプライチェーン攻撃 が 増加するなか、 その 難しさは 増しています。 AI生成コードなどの 新たな 標準的開発手法に セキュリティを 組み込むと 同時に、 開発スピードや ビジネスの 成功も 考慮しなければなりません。
Snykは Black Hat Asiaで セッションを 主催し、 こうした 新たな 複雑さや 課題に 対処する ための ベストプラクティスを 掘り下げました。 この セッションには、 業界の 専門家である Trust Bank Singaporeの CISO、 Jerome Walter氏と、 TASConnect Singaporeの CTO、 Madhi Periannan氏が 登壇しました。
次世代ソフトウェア開発に おける セキュリティ課題に 直面し、 それを 乗り越えた 登壇者たちの 実体験を ご紹介します。
次世代ソフトウェア開発とは何か、AppSecにどのような影響を与えるのか 登壇者に よると、 「次世代」の ソフトウェア開発には、 主に 3つの 特徴が あります。
複雑なアーキテクチャ 平均的な アプリケーションには、 マイクロサービスなど 複数の アーキテクチャ要素が 含まれ、 多数の 外部ライブラリや SaaSプラットフォームと 連携しています。 開発チームは、 迅速かつ アジャイルな アプローチで こうした アプリケーションを 構築します。 この 複雑さに より、 セキュリティチームが 今日の アプリケーションの リスクを 軽減する ことは、 より 困難に なっています。 Walter氏は 次のように 述べています。 「今日の ソフトウェアは、 外部ライブラリや SaaSプラットフォームとの 連携で 構成されており、 私たちが すべてを 管理できるわけではありません。 …… その ため、 ソフトウェアセキュリティに 取り組むには、 インフラストラクチャを 使いこなし、 SaaSや サードパーティ製ソフトウェアを 理解する 必要が あります。」
急速に登場するAIツール 今日の 開発チームは、 GitHub Copilotや Google Gemini などの 生成AIツールを 使って、 コードを より 迅速に 作成しています。 この スピードは ビジネスの 俊敏性を 高める 一方で、 安全な コードも 安全でない コードも 、 かつてない 速さで パイプラインに 流入する ことを 意味します。
複数のクラウド環境や地域にまたがる展開 さらに、 次世代ソフトウェアは 通常マルチクラウド環境で 稼働し、 世界中の 従業員や 顧客が アクセスします。 Periannan氏は 次のように 述べています。 「今日の アプリケーションは、 複数の クラウドや 国々に デプロイする 必要が あります。 そこに 複雑さが 生じます。 異なる 地域に またがる セキュリティを 管理するには、 より 優れた ツールが 必要です。」
次世代アプリケーションのセキュリティに向けて、人・プロセス・ツールのバランスを取る こうした 課題への 対応には、 適切な 人材、 プロセス、 ツールの バランスが 欠かせません。 その 一環と して、 開発チームと セキュリティチームが 責任を 共有する DevSecOpsの アプローチ が あります。 開発チームが 複雑な ライフサイクル全体で 問題を 修正できるように する ことで、 本番環境に 持ち込まれる リスクを 最小限に 抑えられます。 Walter氏と Periannan氏は、 セキュリティに 対する 当事者意識を 育む ための 提案を いくつか 紹介しました。
事後対応ではなく、プロアクティブに取り組む 登壇者に よると、 セキュリティは 事後対応ではなく、 プロアクティブに 取り組む 必要が あります。 Walter氏は、 これは セキュリティを 1日で 完了する 取り組みではなく、 継続的な 道のりと して 捉える ことだと 説明しました。 この プロアクティブな セキュリティへの 取り組みを 始めるには、 「Snykのように、 即座に フィードバックと 分析を 提供する ツールを 導入する」のが 最適だと 述べています。
こうした ツールは、 適切な レベルの フィードバックと 修正ガイダンスを 提供し、 開発者が 問題を 修正できるよう 支援します。 場合に よっては、 パッチの リリースだけでは セキュリティ上の 問題を 解決できません。 その ため、 リスクを 軽減するには、 開発者が アーキテクチャを 見直し、 再設計するのが 最善の 場合も あります。 コードを 最も よく 理解している 開発チームなら、 最適な 修正を 実装できます。
この プロアクティブな アプローチは、 セキュリティチームと 開発チームの 関係 改善に も つながります。 Periannan氏は 次のように 説明しています。 「適切な ツールと 脅威モデルが あれば、 パニックに 陥ったり、 『火消し』に 追われたりせずに 済みます。 これは 開発者に とって 望ましい 状況ではありません。」
プロアクティブに 取り組む方法と して、 ほかにも 次のような ものが あります。
脅威モデリングを 使って 既存の 脆弱性が 及ぼす 潜在的な 影響を 把握し、 リスクの 優先順位付けを 改善する
ソフトウェア開発ライフサイクルの 各段階に おける 修正方法を 特定する
パイプラインの 早い 段階から セキュリティ・バイ・デザインを 重視する シフトレフトの 文化を 育む
開発者を第一に考える Walter氏は、 開発者の 仕事を より 簡単に する ことの 重要性も 強調しました。 「開発者は、 パスワードの ローテーションや パッチの 適用など、 セキュリティ運用に 膨大な 時間を 費やしています。 セキュリティ衛生管理の 一部を 自動化し、 ビジネスに より 多くの 時間を 使えるよう 支援したいと 考えています。」
開発者の 負担を 軽減する 方法には、 次のような ものが あります。
パスワードの ローテーションなど、 定型作業を できる 限り 自動化する
定期的な セキュリティトレーニングや 修正ガイダンスなど、 開発者が 成果を 上げる ために 必要な 情報を 提供する
時間を かけて リスクを 正確に 優先順位付け する ことで、 開発者は 最も 重要な 修正に 集中できる
開発者を 第一に 考える ことは、 開発チームと セキュリティチームの 間に ある 摩擦に 直接 対処する ことも 意味します。 両チームの 関係を 改善するには、 対話を 始め、 開発者が 抱える 課題や 日々の ワークフローなどを 深く 理解する ことが 大切です。 また、 セキュリティチームが 開発者の 時間を 大切にし、 より 良い アプローチを 積極的に 模索している ことを 示す 必要も あります。 重要な アプローチの ひとつは、 脆弱性の 長い リストを 開発者に 送るのではなく、 コンテキストや 悪用 可能性を 踏まえた 正確な リスクの 優先順位付け に 重点を 置くよう AppSecを 進化させる ことです。
複雑なソフトウェア環境でAppSecの成果を測定する セキュリティを 成功させるには、 適切な 指標を 追跡する ことも 重要です。 Walter氏と Periannan氏は、 まず 次の 5つを 測定する ことを 推奨しています。
SDLCに 関わる 全員が トレーニングを 確実に 修了できるよう、 受講状況を 追跡する セキュリティトレーニングの 実施
ファーストパーティコード、 オープンソースコンポーネント、 Infrastructure as Code、 コンテナなど、 開発の 各レイヤーに おける セキュリティテストの カバレッジ。 パイプライン全体で 開発機能の カバー範囲が どれだけ 拡大しているかを 確認できます。
重大度が Criticalまたは Highの 脆弱性を テストし、 組織が 時間の 経過とともに 脆弱性を 削減できているかを 評価する
パッチ適用までの 時間・修正までの 時間を 測定し、 プログラムの 効率が 時間とともに 向上しているかを 確認する
セキュリティ 自動化の 数を 測定し、 セキュリティチームが より 迅速で 効果的な アプローチを 目指している ことを 示す
これらの 指標は セキュリティに 関する ものですが、 ビジネスKPIにも 結び 付けられます。 セキュリティと ビジネス目標の つながりは、 意外に 思えることもあります。 たとえば、 金融業界の ある Snykの お客様は、 Net Promoter Score (NPS)の 向上を 目指すに あたり、 Snykの セキュリティツールを 活用しました。 Snykに よって 脆弱性の 検出と 修正が 効率化され、 チームは 短い メンテナンス期間内に パッチを デプロイできるようになり、 NPSの 向上に つながりました。
Walter氏は さらに 次のように 説明しています。 「修正までの 時間は、 ソフトウェアを 提供する 能力を 左右する 重要な 要素です。 新機能を 提供する ビジネスの 能力にも 直結します。 ソフトウェア開発の アジリティが 高まれば、 パッチ適用の アジリティも 高まります。 明日までに 新機能を デプロイできるなら、 明日までに パッチを 適用できます。 スピードを 上げる ことが セキュリティと ビジネスの 双方に とって 有益だと 理解して もらうことは、 ビジネス側と 建設的に 話し合ううえで 非常に 効果的です。」
Black Hat Asiaのセッション全編をご覧ください 進化する サイバー脅威や 技術の 進歩に 対応し、 アプリケーションセキュリティを 強化するには、 プロアクティブで 開発者に 配慮した 実践に 注力する 必要が あります。 登壇者に よると、 その ためには まず、 いくつかの 考え方を 変えることが 重要です。
まず、 チームは セキュリティを 継続的な 取り組みと して 捉える 必要が あります。 脅威モデリングなどの ベストプラクティスを 一度 実施して 終わりに するのではなく、 セキュリティコントロールを 継続的に 実施し、 監視しなければなりません。
また、 セキュリティチームは、 開発者と セキュリティの 関係に 対する 考え方を 変える 必要が あります。 コードや その他の アプリケーション構成要素を 最も よく 理解している 開発チームは、 問題を 修正する ための 革新的な アイデアや 方法を 持っている ことが よく あります。
次世代ソフトウェア開発に おいて、 セキュリティチームと 開発チームの 強固な 関係を 築く 方法に ついて 詳しくは、 セッション 「 次世代ソフトウェア開発の セキュリティ確保:課題と 解決策 」を ご覧ください。
Play Video: Securing the Next-Gen Software Development: Challenges & Solutions