DevSecOps:定義とディープダイブ

DevOpsをアプリケーションセキュリティへと拡張

「日本の脅威レポート」

DevSecOpsとは何でしょうか?

DevSecOpsとは、エンジニア、セキュリティチーム、その他の指導的立場の人たちが協力して、従来のDevOpsサイクルに重要なセキュリティの基礎を適用することです。

更に詳しく説明すると、DevSecOpsは、DevOpsのコンセプトを継承したものであり、すべての従業員とチームがセキュリティに責任を持ち、セキュリティを犠牲にすることなく、効率的に意思決定を行い、実行に移す必要があるという考え方を徹底させています。新しいコードをより早く本番環境に投入することは、しばしば新しいビジネスの原動力となる目標ですが、今日の世界では、この目標とセキュリティへの対応のバランスをとる必要があります。

DevOpsとは何でしょうか?

DevOpsとは、チームがより良いコードをより早く発行することを可能にする一連の方法論(人物、プロセスおよびツール)のことです。それは、ソフトウェア配信の自動化をサポートし、展開するうえでのコストを削減するために設計されており、チーム間のコラボレーションを可能にします。DevOpsムーブメントは、高レベルのコミュニケーションとコラボレーションを促進する一連のプロセスにより、開発、品質工学および運用チームを結びつけるコラボレーションの文化ならびに機敏な関係を確立しました。

DevSecOpsの主な目的と利点は何でしょうか?

特に、開発チームとセキュリティチームの協力体制を早期に構築することで、長期的には多くの利点を得ることができます。DevSecOpsは、企業が様々な部門の業務効率の向上を組織に経験させるきっかけとなります。これは、DevSecOpsを導入したことによる直接的な改善であり、セキュリティチームの迅速な対応、コードの脆弱性の早期検知および製品の信頼性の向上を伴うものです。

何よりもDevSecOpsによって、企業はより速く安全性の高い製品を消費者に提供できるようになります。後発のセキュリティ対策を施す際の行き詰まり感が減れば、製品開発サイクルにおける他のセグメントで、DevSecOpsエンジニアが改善を行うための時間を確保できるという大きな相違点が生じます。このような利点を考慮すると、開発プロセスにDevSecOpsの原則を導入する企業や組織が増えている理由がよくわかります。

なぜアプリケーションセキュリティをDevSecOpsサイクルに組み込むべきなのでしょうか?

Webアプリケーションは、様々な理由で攻撃者の主要な標的となっています:

1. ビジネス用に公開されており、簡単にアクセスできます。企業は、最重要資産を保護するために、ファイアウォールやネットワークセグメンテーションに依存しています。アプリケーション(そして最終的にはウェブアプリケーション脆弱性)は、お客様にご利用いただくためにインターネット上に公開されます。そのため、他の最重要インフラストラクチャと比較して到達しやすく、悪意のある攻撃者は、合法的に要求されるトラフィックとして覆い隠されることが多々あります。

2. それらは、膨大なデータへ通じるキーを保持しています。Webアプリケーションは、データベース、共有ファイルおよびその他の重要な情報源と頻繁に通信しています。それらは身近に存在する形となるので、もし侵害された場合は、このデータ(最も価値のあるものが多い)に簡単にアクセスできます。クレジットカードのデータ、個人を特定できる情報(PII)、社会保障番号、専有情報などは、アプリケーションからわずか数歩先のところにあります。

3. アプリケーションへの侵入は比較的容易です。攻撃者がウェブアプリケーションをオートフォーカスし、悪用可能な脆弱性を発見できるツールがあります。

特に、アプリケーション脆弱性の多くはソースコードから発見されるため、ウェブアプリケーション セキュリティ テストは非常に重要です。動的アプリケーションセキュリティ テスト(DAST)は、実行状態にあるウェブアプリケーションをスキャンして、通常はソースコードの修正が必要なセキュリティ上の欠陥である脆弱性を検出する主要な手法です。これらのDASTスキャンは、開発者が実際に悪用可能なリスクを特定し、セキュリティを向上させるのに役立ちます。

真のDevSecOpsの考え方においては、ソフトウェア開発ライフサイクル(SDLC)の初期段階で、開発者やテスト担当者に余剰時間を取らせることなく、Webアプリケーションスキャンを実装することが可能であることを理解させることが重要です。動的アプリケーションセキュリティ テストが普及し始めた頃、セキュリティ専門家は通常、ソフトウェア開発ライフサイクルの最後の段階においてテストを実施していました。これでは、開発者の不満が募り、コストも上昇し、スケジュールの遅延が生じてしまいます。DevSecOpsにおいては、その実施段階は開発ライフサイクルの最後ではなく、最初となります。

DevSecOpsマインドセットの導入について

DevOpsと同様に、パートナーシップとのコラボレーションがDevSecOpsのすべてです。セキュリティチームと開発チームが協力し、相手チームが直面しているリスクを理解することは非常に重要です。セキュリティテストをSDLCに統合する効果的な方法については、以下のようなものがあります。

  • 継続的な統合ソリューションを使用して、アプリケーションが稼働される前に、セキュリティテストが簡単かつ自動的に実施されるようにします。
  • アプリケーションセキュリティソリューションが、開発チームおよびQAチームが使用する課題追跡ソリューションへ不具合を自動的に送信するように、課題追跡を導入します。
  • 自動化とテストを活用して、セキュリティテストをさらに効果的なものにします。

アプリケーションセキュリティをSDLCの早い段階で組み込むことには多くの利点があります。セキュリティの脆弱性を他のソフトウェアの不具合と同じように扱えば、開発者やテスト担当者がリリースに向けて作業しているときに早期に発見することができ、コストと時間の節約につながります。