新しい IBM Developer JP サイトへようこそ!サイトのデザインが一新され、旧 developerWorks のコンテンツも統合されました。 詳細はこちら

DevSecOpsとは

こんにちは。IBM CloudのAndrea Crawfordです。本日はDevSecOpsについてお話しします。DevSecOpsとはセキュリティーを考慮したDevOpsです。

alt

メリット1: 可観測性

DevSecOpsの第一のメリットは可観測性です。可観測性とは、アプリケーション・デリバリーのプロセス自体がどの程度、観測可能であるかを示すものです。私たちは、ユーザー・ストーリーからコーディング、ビルド、デプロイ、管理、継続的改善までの全行程で起こっていることを理解しているでしょうか?

alt

メリット2: トレーサビリティー

2つ目のメリットはトレーサビリティです。ランタイム環境でどのようなユーザー・ストーリーがデプロイされ、管理されているかを把握し、それを証明できるでしょうか?

alt

メリット3: 信頼

もう1つのメリットは信頼です。要件またはユーザー・ストーリーとして開始された内容が、パイプラインの開始時とデリバリー時で同じであることが保証されるビジネスとIT組織との信頼関係です。

alt

メリット4: コンプライアンス

最後のメリットはコンプライアンスです。医療、公共サービス、政府機関、銀行など特定の業界では、コンプライアンスの重要性がますます高まっています。リリース・パイプラインにコンプライアンスを組み込む必要があり、それを開始時点から計画する必要があります。

alt

ユーザー・ストーリー

DevSecOpsには、サプライ・チェーンやこのパイプラインにおけるさまざまな活動が関係しています。そのうちの1つが、適切なユーザー・ストーリーの作成です。ユーザー・ストーリーはサイズと形式が適切で開発チームが理解しやすいものでなければなりません。

alt

コード・フェーズ

コード・フェーズには別のセキュリティー機能が組み込まれます。テスト駆動開発やペア・プログラミングなどです。これらは固有の目的を持った活動であり、コーディング・レベルで、バグや欠陥が発生するリスクを低減するための新しい方法です。最初にテスト・ケースを記述してからコードを記述することで、テスト・コード・カバレッジも改善できます。

alt

ビルド・フェーズ

ビルド・フェーズにもセキュリティー機能を組み込むことができます。ここではリンティングのように、コードが標準のコーディング・プラクティスに従っていることを確認します。

alt

スキャンの概念も導入し、特に無限ループや未定義変数などをチェックします。これらはまさしく潜在的な脆弱性であり、業務が本番に移行すると非常に望ましくない形で表面化します。

alt

デプロイ・フェーズ

適用可能なデプロイ関連のセキュリティー・プラクティスはほかにもあります。クラウド・ネイティブやクラウド・イメージの登場によって公証サービスなどの利用も進んでいます。このサービスではイメージが変更不可能であることだけでなく、デプロイされるDockerイメージとビルド・プロセスで作成されたイメージが同じであることを確認できます。

alt

管理フェーズ

次の管理セクションには、変更検知などの活動が含まれます。変更検知では、ビルド・フェーズで見つからなかった、ランタイム環境の脆弱性が、稼働環境のランタイム・コンテナーで突然発覚することがないようにします。つまりDevSecOpsとは、このパイプライン全体にわたってリスク軽減活動を組み込む手法です。

alt

セキュリティーを組み込むユース・ケースとは

つまりDevSecOpsとは、このパイプライン全体にわたってリスク軽減活動を組み込む手法です。では、どのようなユースケースでセキュリティーを組み込むのでしょうか?ほぼすべてのユースケースです。

alt

ユース・ケース: 可視化に問題発生

具体的には、パイプライン内でのアプリケーションの進捗状況や、誰がいつ、どのような環境に何をデプロイしているかを可視化できていないケースです。

alt

ユース・ケース: 監査に問題発生

監査で問題が発生した場合に、デリバリーの内容がパイプラインの開始時から変更されていないことを経験的データによって証明できる、つまり最初から最後までの全行程を経験的に追跡可能なケース。

alt

ユース・ケース: ガバナンスの統一に問題発生

ガバナンスの統一に問題があり、このパイプラインを一貫した方法で全社的に使用するケース。

alt

ユース・ケース: リスク緩和策

適切なリスク緩和策を適用して、ソフトウェアをデリバリーするケース。デジタル評価が企業規模で低下するリスクを軽減するために、適切な活動がパイプライン全体を通して行われているかどうかを確認します。

alt

業界標準組織

このようなユースケースにDevSecOpsの原則を導入します。OWASP(Open Web Application Security Project)などの業界標準組織は、ソフトウェア保証成熟度モデルを使用して、これらのパイプライン活動だけでなくガバナンスや構築にも対応し、さらにはここに挙げた安全なコーディング・プラクティスの推奨も行っています。

alt

以上をまとめると、DevSecOpsとはコードやデリバリーに対する、総合的でセキュア・バイ・デザインのアプローチであり、そこには人、プロセス、ツールが関与しています。

最後までご覧いただきありがとうございました。