セキュリティシフトレフト
文責:石川陽一
"セキュリティシフトレフト"はなぜ重要か
ソフトウェアが完成したあとにセキュリティの課題が見つかると、そのための対応に追われたり、リリースが遅れたりと良いことがありません。
できる限り早い工程でセキュリティの課題を見つけ出す技術と文化を、DevSecOpsあるいはセキュリティのシフトレフトと言います。
サイバー攻撃はいっそう増加傾向に
コンピュータセキュリティの情報を収集し、サイバー攻撃のインシデント対応の支援、コンピュータセキュリティ関連情報の発信などを行うのは一般社団法人JPCERT/CCです。図はJPCERT/CCが、四半期に1回公表しているインシデント報告件数の直近年の推移です(2022年は9月まで)。
いつの時代もサイバー攻撃は一定数あるものの、COVID-19が始まった2020年からさらに急増しており、2022年も過去最高になると見込まれています。
ここで集計されるサイバー攻撃は、ウィルス感染や標的型メール攻撃等さまざまなタイプを含みます。従ってWebサービスに対する攻撃に限ったものではありませんが、業種限らず世界中から攻撃を仕掛けてくることが一般的になっています。このような現代としては、システム開発や運用において脆弱性を作りこまないように取り組むことは、必須ではないでしょうか。
サイバー攻撃がより少なかった頃の一般的な対応
こういったサイバー攻撃が日々大量に起こる前時代は、システム開発を終えてから脆弱性検査を行い、弱い部分が発見されたら修正手当てをして、リリースすることがよく見られていました。このような対応では、開発を終えてからまたなおすことになるので、非効率なことが多く発生してしまいます。
たとえば、テストのし直しであったり、開発やテスト、脆弱性検査等の人員の確保が大変になったりといったことです。
また、開発のサイクルが短期間化し、頻繁にWebサービスやアプリケーションのリリースを行っていく傾向が強まる現在では、システムを作り終わってから脆弱性検査という流れでは予定を立てるのも厳しくなります。
そこで必要になってくるのがセキュリティ関連のシフトレフトの考え方です。
セキュリティシフトレフトとは
システム開発の工程は左から右に記載されることが多くあります。工程の最初の段階から、セキュリティに関する考慮を行うように工程を前倒して移行することを「セキュリティシフトレフト」と呼びます(簡略化して「シフトレフト」と呼ばれることもあります)。
シフトレフトに関する取り組み等は以下のような例があります。
- 専任のセキュリティチームによる最新動向等に基づくレビュー
- 定期的な脆弱性診断の実施
- ソースコードの自動的セキュリティチェック(静的解析・動的解析)
- 自動テストの中で脆弱性検査機能を含むものの適用
- 開発者へのセキュアなコーディング方法の教育やガイドライン作り
- 開発企画段階におけるセキュリティレビューの実施
クライテリアのプラクティスやアンチパターン等を参考に、開発に関するセキュリティ面の必要性を認識することが第一歩です。そして各社毎に早い段階でのセキュリティの取り組みをどのように実施していくか、関係者で話し合い推進していくことがオススメです。サイバー攻撃なくなることは考えにくいため、システム開発においてセキュリティを考慮することは避けられません。