セキュリティ対策とDevOpsを効率的に加速する「シフトレフト」の実践法とは?【デブサミ2022夏】
【D-2】シフトレフトがゴールなの?セキュリティだってプロダクティビティで勝負!
開発プロセスの上流側でセキュリティ対策を行うことで、迅速な開発を実現する「シフトレフト」。デベロッパーならではのアプローチを使えば、より効率的に行うことが可能となる。開発者が実装するセキュリティ対策や効果的なプロセス改善などについて、Snykのシニアソリューションズエンジニアの相澤俊幸氏が解説する。
セキュリティのシフトレフトはコード化とlaCによって前進する
ソフトウェアテストに関するバグ修正の相対的コストは、開発フェーズが後工程になればなるほど指数関数的に増えていく。逆に言えば、早いタイミングで修正しておけば、簡単に修正することができる。それを示したのが、以下の図である。
設計時の修正コストを1とすると、コーディングのタイミングではそれが5倍になる。統合テストのタイミングでは10倍。受け入れテストになると15倍、リリース後だと30倍になるというわけだ。
セキュリティや脆弱性に関しても、同様の傾向があると相澤氏は指摘する。
「セキュリティのシフトレフト、つまり早いタイミングに開発の上流側でテストを行い、脆弱性対策をとることでコストが削減できる。さらに、生産性向上や迅速な開発が実現できるのです」(相澤氏)
セキュリティのシフトレフトは、本番もしくはクラウドランタイムで行ってきた作業を上流側で行う。つまり、CI/CDでスキャンを行うキットと連携し、コーディングのタイミングで実行すればコストが下がり、効率的になるというのだ。
「シフトレフトを行う場合、脆弱性をスキャンして修正するのは開発者です。そこでこのプロセスを、SnykではDeveloper Securityという言葉で提唱しています」(相澤氏)
ここで相澤氏は視聴者に向けて、2つの質問を投げかける。
- laC(Infrastructure as Code)はセキュリティツールか?
- laCツールを導入すれば、シフトレフトは実現できるか?
これには正解があるわけではなく、あくまでも認識であると前置きしながら、相澤氏の回答は以下である。
1の回答:セキュリティツールと言ってよい
laCとは、これまでGUIやCLIで設定していたものをコード化することであり、laCのソースファイルは一般的にテンプレートと呼ばれている。つまり、「再現性を高める」「ミスを減らす」効果を求めて使っている人が多く、コードで管理していれば、問題が発生したときも後で確認することができる。セキュリティを高めるという意味では、laCはセキュリティツールと言えるのではないだろうか。
2の回答:実現するわけではない
laCは、シフトレフトを実現するための必要条件。セキュリティのシフトレフトをする上では、まずコード化されていなければコード化する必要がある。つまり、コード化することによって、本番に適用する前にスキャンすることができるというわけだ。
では、脆弱性スキャナーにはどのようなものがあるのか。相澤氏はクラウド時代のアプリケーションに潜むリスクを、氷山に例えて説明した。
まず、表層となる一番上のアプリケーションのコード、2番目が上のカスタムコードから呼び出されるオープンソースのライブラリ。そしてモダンなアプリケーションの場合、これらはコンテナとしてパッケージ化されるコードが3番目。それらをクラウドにデプロイするときにインフラとなるInfrastructure as Code(laC)が4番目となる。
これらのコードベースにはすべて脆弱性が混入されるリスクがあり、スキャンする対象となる。さらに、オープンソースで提供、または無償で使えるツールも紹介された。
例えば、アプリケーションのカスタムコードでは、Snyk Code、GitHub CodeQL、SonarQubeなど。オープンソースのライブラリであれば、Snyk Open Source、OWASP Dependency-Check、GitHub Dependabot。コンテナはSnyk Container、Aqua Trivy、AWS ECR Basic Scanning。laCについては、Snyk Infrastructure as Code、Bridgecrew checkov、Aqua Trivyなどである。
「シフトレフトはTest early, test often。スピードに加え、頻繁に行うということを考えると、自動化するツールを導入することは非常に大事です」(相澤氏)
この記事は参考になりましたか?
- Developers Summit 2022 Summer レポート連載記事一覧
- この記事の著者
-
馬場 美由紀(ババ ミユキ)
エンジニアとテクノロジーが好きな編集・ライター。エンジニア向けキャリアサイト「Tech総研」「CodeIQ MAGAZINE」、Web技術者向けの情報メディア「HTML5 Experts.jp」などでライティング、コンテンツディレクション、イベント企画などを行う。HTML5 開発者コミュニティ「h...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
