「シフトレフト」セキュリティに移行するための4つの実践的なステップ

Aug 13, 2019
1 minutes
... views

This post is also available in: English (英語) 简体中文 (簡体中国語) 繁體中文 (繁体中国語) 한국어 (韓国語) Português (ポルトガル語(ブラジル))

現代のコンピューティングが始まって以来、セキュリティは、ソフトウェア開発からかけ離れた存在でした。最近の脆弱性に関する調査でも、このことは分かっています。ただし、過去5年間の公開されているすべての脆弱性のうち、76%はアプリケーションに由来するものでした。このように、攻撃者の狙う対象が大きく変わったことから、セキュリティを開発に組み込むべき時代が到来したと言えます。これを実現するための最善のアプローチが、シフトレフト セキュリティ戦略です。

シフトレフト セキュリティの定義 

「シフトレフト」セキュリティを非常に簡単に説明すると、「開発プロセスの可能な限り早期の段階にセキュリティ対策を移動させること」を意味します。最新のCI/CDにおいては、一般に、以下の図1で示されている8つのステップを踏みます。シフトレフト セキュリティは、サイバーリスクを低減するだけでなく、コスト削減の意味でも効果的です。IBMのSystem Sciences Instituteによると、セキュリティ問題に設計段階で対処しておけば、実装段階で対処する場合と比べ、コストを6分の1に削減できます。同じ調査で、セキュリティ問題にテスト段階で対処する場合には、コストが15倍まで膨らむケースもあるということも判明しました。

これらの各段階にセキュリティを意識的に組み込むには、まず、戦略を明確に定義するところから始める必要があります。

図1: CI/CD

ステップ1: 貴社のシフトレフト セキュリティ戦略を定義する

どのようなジャーニーでも、最初のステップは、どこを目指すかを定義することです。これはたとえるなら、チームのために可能な限り最も鮮明な絵を描くことで、成功のイメージをつかんでもらうのと同じです。この戦略文書に含めるべき重要な項目は、ビジョン、担当分けや責任範囲、マイルストーン、評価基準などです。戦略文書は時間をかけて成熟させていくべきものであり、完璧なものを作ろうとして時間をかけすぎないことが大切です。長期的に繰り返し見直していくことが不可欠です。

 

ステップ2: 貴社の中で、ソフトウェアがどこでどのように作られているかを把握する

恐らく、シフトレフト セキュリティの実現を目指す取り組みの中で最も手ごわい課題の一つは、貴社の中で、ソフトウェアがどこでどのように作られているかを把握することでしょう。貴社の規模に応じて、このタスクは簡単な場合もあれば、困難を極める場合もあります。

本ステップの目標は、最初に組織全体を見渡した後で、社内でソフトウェアを扱う全体的な流れを文書化することです。中~大規模の企業では、マクロ レベルからスタートし、次に個別の事業部門へと掘り下げていくのがよいでしょう。各事業部門で独自のソフトウェア開発プロセスやツールを持っている可能性が非常に高いと言えます。このフェーズで特定するべき主要な項目としては、誰がコードを開発するか(人)、開発用のラップトップから本番環境へどのように流れるか(プロセス)、そしてこのプロセスを実現するためにどのシステムを利用するか(テクノロジ)が挙げられます。これは「CI/CDツールチェーン」と呼ばれることもあります。昨今では間違いなく、ソフトウェア開発の大部分が、パブリック クラウドで行われているでしょう。

 

ステップ3: セキュリティの質と防壁を特定し、実装する

品質保証は、ソフトウェア開発ライフサイクルの一部であり続けてきました。しかし今まで、ソフトウェアの質には、セキュリティは含まれていませんでした。この点は変えていかなければいけません。そして、上記のステップを踏んでいれば、これに取り組むための準備ができているはずです。ソフトウェア開発の各ステップは、フィードバックを提供し、セキュリティ問題を探すための機会でもあります。有能なセキュリティ チームは、小さく始めるものです。まずシンプルかつ効果的なツールを開発チームに提供し、日常的な開発ルーチンの一部として使ってもらうことから開始します。このようなツールの一つが、最近、パロアルトネットワークスによってオープンソース化されました。つまり、無償で使えるということです。

 

ステップ4: セキュアなコーディングを可能にするため、開発チームを査定し、継続的にトレーニングする

シフトレフト セキュリティ戦略に移行するジャーニーの一環として、第一に、コーディングの大部分を行う担当者が、セキュアなコードを作るようにしなければなりません。担当者の現在のスキルを評価する客観的な測定基準や、スキルを長期的かつ継続的に向上させる計画がなければ、これを実現するのは困難です。ある調査によると、開発者の19%は、「OWASP Top 10のことをよく知らない」とのことで、この領域を見逃すべきではありません。これを裏付けたのが、DevOpsサービス プロバイダのGitLabが最近発表した調査です。同調査によると、プログラマーの70%はセキュアなコードを書くことが期待されていますが、自社のセキュリティ プラクティスが「良い」と考えているプログラマーは25%にとどまりました。

 

シフトレフト セキュリティの概要

開発を構築、展開、実行のフェーズに簡素化した2つのシナリオを見ていきましょう。シナリオ1では、セキュリティ無しに開発が始まります。ソフトウェアの質は、ランタイムの最中にのみチェックされます。このケースでは、通常、脆弱性が見つかった場合、結果的にセキュリティ部門と開発部門の間で不穏な会話が交わされることになります。

しかしシナリオ2では、セキュリティ チームは、自組織内で開発プロセスについて理解することに時間をかけます。また、セキュリティ プロセスおよびツールをCI/CDに組み込む作業も行うため、結果としてセキュリティの質に関する防壁を自動化できます。

結論

上記の4つのステップを実施すれば、シフトレフト セキュリティを実現するだけでなく、セキュリティと開発を統合するために、確実な道を歩むことができます。貴社がクラウド ジャーニーの一環としてシフトレフトに移行する際は、セキュリティ制御を自動化し、API駆動型にすることが重要です。セキュリティ チームは、パロアルトネットワークスのPrismaを利用すれば、DevOpsとCI/CDパイプラインのセキュリティを確保し、まさに上記を実現することができます。


Subscribe to the Blog!

Sign up to receive must-read articles, Playbooks of the Week, new feature announcements, and more.