DevOps

DevSecOps とは

DevOps は開発チームや運用チームだけのものではありません。DevOps アプローチによるアジリティと応答性を存分に利用するのであれば、IT セキュリティもアプリケーションのライフサイクル全体を通じて、重要な役目を果たす必要があります。

なぜ、そう言えるのでしょうか?これまで、セキュリティの役割は開発の最終段階にある特定のチームに隔離されていました。開発サイクルが数カ月から数年にも及んでいた時代にはこれで問題ありませんでしたが、そうした時代は終わりました。効果的な DevOps によって開発サイクルを迅速かつ頻繁に繰り返すことが可能になりますが (ときには数週間や数日単位になる)、セキュリティの実施方法が旧式のままでは、DevOps の取り組みがどれほど効率的であっても台無しになってしまいます。

しかし、コラボレーションを重視する DevOps のフレームワークにおいては、セキュリティは最初から最後まで組み込まれ、その責任も共有されます。これは非常に重要な考え方なので、一部の人々からは「DevSecOps」という用語が作り出され、セキュリティ基盤を DevOps の取り組みに導入する必要性を強調しています。

DevSecOps とは、アプリケーションとインフラストラクチャのセキュリティを、開始時点から考慮することです。また、DevOps ワークフローの速度が低下しないよう、一部のセキュリティゲートを自動化することも必要です。セキュリティ機能を統合するための適切なツールを選ぶことで、DevOps におけるセキュリティ目標の達成を支援できます。とはいえ、DevOps 体制における効果的なセキュリティを実現するには、新しいツールを導入する以上の取り組みが必要となります。そのためには、DevOps がもたらす企業文化の変革をさらに発展させ、セキュリティチームの業務を極力早く統合化することです。


組み込み型の DevOps セキュリティ

呼び方が「DevOps」であれ「DevSecOps」であれ、セキュリティをアプリケーションのライフサイクル全体に重要な要素として組み込むことが理想であることに変わりはありません。DevSecOps の中心となるのは組み込みセキュリティであり、アプリケーションおよびデータの境界として機能するセキュリティではありません。セキュリティが開発パイプラインの末端に留まっていると、DevOps を採用する組織の開発サイクルは長期間に戻ってしまいます。これは本来避けたかった事態です。

DevSecOps で重要なことの 1 つに、DevOps に取り組み始めたときからセキュリティチームを参加させ、情報セキュリティを構築して、セキュリティ自動化計画を策定する必要性があります。また、開発者がセキュリティを念頭にコードを作成できるよう支援する必要性も浮き彫りになります。このプロセスには、既知の脅威に対する可視性、フィードバック、知見を共有するセキュリティチームが協力します。これには開発者向けの新しいセキュリティトレーニングが含まれることがあります。従来のアプリケーション開発ではそれほど重視されていなかったからです。

組み込みセキュリティとは実際にはどのようなものでしょうか。初めて DevSecOps に着手するなら、リスク許容度を決定し、リスク便益分析を実施するのが良い方法です。所定のアプリケーションについてどの程度のセキュリティ制御が必要か、各アプリケーションにとって市場に投入するために速度はどの程度重要か、などを検討します。反復タスクの自動化は DevSecOps にとって重要です。パイプラインでセキュリティチェックを手作業で行うと時間がかかり過ぎるからです。


DevOps セキュリティは自動化される

課題には、迅速かつ頻繁な開発サイクルを可能にすること、大きな混乱を伴わずにセキュリティ対策を運用に取り入れること、コンテナマイクロサービスなどの革新的なテクノロジーに遅れをとらないこと、そして通常別々に作業するチーム間で緊密な共同作業を促進することがありますが、こうした課題はどのような組織にとっても簡単なことではありません。このような取り組みはすべて人間が開始し、組織のコラボレーションのやり取りは人が行います。しかし、DevSecOps のフレームワークでのこのようなやり取りは自動化によって促進されます。

それでは、何をどのように自動化すべきでしょうか?この質問への答えはガイダンスに記されています。組織は開発と運用の環境全体をじっくりと検討する必要があります。検討対象には、ソース・コントロール・リポジトリ、コンテナレジストリ、継続的インテグレーションと継続的デプロイメント (CI/CD) パイプライン、アプリケーション・プログラミング・インタフェース (API) 管理、オーケストレーションおよびリリース自動化、運用管理と監視が含まれます。

新しい自動化テクノロジーは、アジャイル開発手法の導入を促進し、新しいセキュリティ対策の進化にも一役買っています。しかし、近年 IT 業界で変化したのは自動化だけではありません。今やコンテナやマイクロサービスなどのクラウドネイティブ技術が大半の DevOps 業務で主要な部分になり、DevOps セキュリティはこれに対処しなければなりません。


DevOps セキュリティはコンテナとマイクロサービス向けに構築されている

コンテナによってより大規模で動的なインフラストラクチャが実現し、多くの企業でビジネスの遂行方法が変革されました。このため、DevOps ではセキュリティの適用方法を新しい状況に適応させ、コンテナ固有のセキュリティガイドラインに一致させる必要があります。クラウドネイティブ技術にとって、静的なセキュリティポリシーやチェックリストは有効ではありません。セキュリティは、アプリケーションおよびインフラストラクチャのライフサイクルのどの段階にも連続的に統合される必要があります。

DevSecOps とは、セキュリティをアプリケーション開発の隅々にまで組み込むことです。このようにパイプラインに統合するには、新しいツールを導入するときと同じように、組織全体で新しい考え方が必要になります。この点を考慮して、DevOps チームはセキュリティを自動化し、環境全体とデータ、そして継続的インテグレーション/継続的デリバリープロセスを保護しなければなりません。この目標には、コンテナ内のマイクロサービスのセキュリティが含まれるでしょう。

環境とデータセキュリティ

環境の標準化と自動化

各サービスに付与する権限は必要最低限にして、不正な接続とアクセスを最小限にすべきです。

ユーザー ID とアクセス制御機能を一元化する

厳密なアクセス制御と一元化された認証メカニズムは、マイクロサービスのセキュリティ保護に欠かせません。認証は複数のポイントで発生するからです。

マイクロサービスを実行するコンテナをネットワークから相互に分離する

移動中のデータと保管されているデータの両方があり、両方とも攻撃者にとって高価値のターゲットとなる可能性があります。

アプリケーションとサービスの間のデータを暗号化する

セキュリティ機能を内蔵したコンテナ・オーケストレーション・プラットフォームが、不正アクセスのリスクを低減させます。

セキュアな API ゲートウェイを導入する

セキュアな API によって認可とルーティングの状況がわかりやすくなります。公開される API を減らすと、攻撃対象となる領域を縮小できます。

CI/CD プロセスセキュリティ

セキュリティスキャナーをコンテナに統合する

これはコンテナをレジストリに追加するプロセスの一環とするべきです。

CI プロセスでのセキュリティテストを自動化する

これには、ビルドの一環としてセキュリティの静的分析の実行と、ビルドパイプラインに導入された既知のセキュリティ脆弱性に対する構成済みコンテナイメージのスキャンが含まれます。

セキュリティ機能のテストを自動化して、受け入れテストプロセスに追加する

入力検証テストに加えて、検証の認証と認可機能を自動化します。

既知の脆弱性へのパッチなど、セキュリティアップデートを自動化する

DevOps パイプラインを通じて実行します。管理者が本番システムにログインする必要がなくなり、文書化された追跡可能な変更ログを作成できるようになります。

システムおよびサービス設定管理機能を自動化する

これにより、セキュリティポリシーに準拠でき、手作業によるエラーを削減できます。監査と修復も自動化する必要があります。

ニーズに適した DevSecOps ツール

Management

A simple, agentless IT automation technology that can improve your current processes, migrate applications for better optimization, and provide a single language for DevOps practices across your organization.

Cloud computing

Red Hat® OpenShift® delivers built-in security for container-based applications, including role-based access controls, Security-Enhanced Linux (SELinux)-enabled isolation, and checks throughout the container build process.

DevSecOps についてさらに詳しく知る