今すぐ可能なセキュリティ強化 : 脅威に対抗できる DevOps プラクティス
DevOps プラクティスを導入している組織では、セキュリティのベストプラクティスを遵守すると開発スピードが低下するという誤解があるため、多くの場合、セキュリティチームは蚊帳の外に置かれがちです。Fastly が Enterprise Strategy Group (ESG) Research と共同で作成したレポート「転換期を迎えた Web アプリと API のセキュリティ」によると、すべてのアプリケーションと環境全体にわたってセキュリティに関する責任を一元化していると回答したのは、調査に参加した組織のうちわずか4分の1でした。
しかし実際には DevOps プラクティスにセキュリティを組み込むことは十分可能です。この記事では、セキュリティを邪魔なものとして扱うのではなく DevOps プロセスに取り入れることで、DevOps プラクティスのメリットを最大限に活用する方法をいくつかご紹介します。
継続的なデプロイには潜在的脅威の可視化が必要
DevOps の鍵となるのは、チームのイノベーションを促進し、リリースのスピードを加速させ、より優れたプロダクトやエクスペリエンスをより迅速に顧客に提供することを可能にする継続的なデプロイモデルです。
しかし、オープンソースやクラウドネイティブのコンポーネントやフレームワークの採用により、アプリケーションセキュリティの重要な部分において可視性の欠如がますます深刻化しています。例えば平均的なアプリケーションのコードベースの70%がオープンソースコードで構成されており、90%近いケースで、4年以上前に期限が切れていたり、過去2年間に開発が全く行われていないコンポーネントがソフトウェアに使用されていました。その結果、潜在的な脅威に気付かない可能性が高まることは明らかです。
そこで、システムを保護すると同時に、セキュリティ、DevOps、開発の各チームに脅威や脆弱性に関するインサイトを提供できるツールを活用する必要があります。可視性を高めるということは、セキュリティのテレメトリをチームに提供し、すでに利用している DevOps ツールやセキュリティツール (Jira、PagerDuty、Slack、Splunk など) を通じてそのデータにアクセスできるようにすることであり、それらのテレメトリを確認するためにわざわざ別の管理コンソールにログインする必要がないということです。
統合ソリューションで適切なセキュリティ環境と迅速な修正を実現
静的アプリケーション・セキュリティ・テスト (SAST) や動的アプリケーション・セキュリティ・テスト (DAST) といった一部のセキュリティツールでは、開発環境にあるコードベースのスナップショットを検証します。しかし、コードベースは本番環境にリリースされるまでに変更される可能性 があるため、WAF ルールが古いコードベースのスナップショットに合わせて作成されている場合に誤検知が発生することがあります。DevOps で求められるスピーディーなソフトウェアサイクルを考えると、これは大きな問題です。
前述の ESG の調査によると、Web アプリケーションと API のセキュリティツールが1日に通知する平均53件のアラートの内、45%が誤検知であることが分かりました。結果的に、75%の組織が実際の攻撃への対応にかかる時間と同等もしくはそれ以上の時間を誤検知への対応に費やしています。
このように誤検知のアラートが大量に発生すると、大半のアラートを無視し、調査することを躊躇するようになり、その結果、開発部門とセキュリティ部門の間に摩擦が生じます。このような摩擦を減らしてセキュリティ負債を増やさないためにも、開発者が信頼できるセキュリティツールを使用し、DevOps のパイプラインに組み込むことが重要です。
また、社内の各開発チームの多くが、それぞれ独自のアプリケーションスタックを構築しています。しかし残念ながら、そのような状況は開発・運用環境の拡散に繋がり、これらの環境が複数のクラウドプロバイダーにホストされていることがよくあります。そのため、アプリが運用されているあらゆる環境と、開発者が使用するパイプラインの両方で効果的に機能し、可視性を提供できるセキュリティツールが必要不可欠です。
エッジベースの DevOps サービスに重点を置いている企業では、セキュリティ機能をコードとして実装することで、開発者はセキュリティを DevOps パイプラインのすべてのステップに組み込むことができます。
豊富な API を提供し、さまざまな開発言語をサポートするだけでなく、既存の DevOps パイプラインとツールチェーンに完全に統合可能なエッジサービスをお薦めします。このようなサービスを利用することで、開発、ステージング、本番用のさまざまなアプリケーション向けに適切なセキュリティ環境を構築し、時間のかかる誤検知への対応に悩まされることなく、本番用アプリケーションに修正やパッチを迅速にプッシュできるようになります。
DevOps ネイティブのセキュリティツールで自動化を実現
検出やテストだけが自動化されるべきセキュリティプロセスではありません。自動化の範囲をテストからデプロイ、攻撃の検出、さらにレスポンスへと拡げていく必要があります。
データ流出に関して言えば、1分と10 - 20分では影響が大きく異なります。そこでセキュリティを自動化すると、機械と同じスピードで対応することが可能になります。現在、攻撃は自動化されていることが多いため、防御も自動化しないと対等に闘うことはできません
次世代 WAF やテストの自動化ツールなどのセキュリティツールを選ぶ際は、デプロイごとにコードベースや導入方法に変更を加える必要なく、開発インフラストラクチャやクラウドネイティブのコンポーネント (Kubernetes や Envoy など) に統合できる DevOps ネイティブのツールを選ぶことで、必要なレベルの自動化を実現することができます。このようなツールをデプロイすることによって、アプリケーションのパフォーマンス速度やトラフィックのモニタリングに加え、攻撃や異常なアクティビティの検出や対応も自動化できるようになります。
パフォーマンスを犠牲にすることなく開発者が作業に集中できる統合ソリューション
コードの作成、デプロイ、環境に関する決定権を持つ比較的小さな開発チームを複数抱える大企業では、それぞれのチームが独自のバージョンのツールセットを所有し、さまざまなソフトウェアコンポーネントを使用しながら、異なる開発プロセスを確立していることがよくあります。
このように異なる開発環境が社内に存在することで複雑性が増し、そのような環境やその中で構築されるソフトウェアを保護することがはるかに難しくなります。開発環境を簡素化し、それぞれのチームが使用している複数の DevOps プロセスを共通のサービスとして統合することで無駄を削減し、複雑性を最小化できるだけでなく、企業のアプリケーションポートフォリオをより完全にカバーできるセキュリティテストや設定変更を行うことが可能になります。
優れた信頼性とパフォーマンス、セキュリティを兼ね備えたプラットフォームを開発者に提供することで、開発者はアプリケーションの開発に専念できるようになります。常にインフラストラクチャの管理に追われている開発者は、作業を早く終わらせることに気を取られてセキュリティを犠牲にしてしまうことがあります。
柔軟性をサポートすることは大切ですが、認証やデータの暗号化、ロールの管理など、セキュリティに関する重要な作業を行うのに、すでにセキュリティ機能が組み込まれている共通のインフラストラクチャを使用することで、開発者はセキュリティについて心配する必要がなくなります。
DevSecOps のプラクティスをデジタルトランスフォーメーション戦略に組み込むことが重要
事業部門のチーム、開発者、アプリケーションセキュリティの担当者は皆それぞれの問題、インセンティブ、優先課題を抱えています。しかし、効率的に機能する DevOps 組織を形成するのであれば、これらのチーム全員が文化的な違いを乗り越え、DevOps プロセスにセキュリティを組み込み、ビジネスをサポートできる体制を整える必要があります。
従来、セキュリティチームは開発チームの意見をほとんど考慮せずに 特定のセキュリティポリシーを強制的に適用してきました。一方、開発者にとってのインセンティブは機能するコードを迅速に作成することであり、セキュリティに関する目標は無視されがちです。そのため、両チームが協力し合って達成可能なセキュリティの実現を促す文化を構築しながら、顧客により優れたプロダクトやエクスペリエンスを提供することに注力し続ける必要があります。DevSecOps の導入はその第一歩として最適です。
ESG のレポートをぜひダウンロードしてください。最新のセキュリティトレンドや企業が現在直面している課題についてご紹介します。