シフトレフトセキュリティとは? - パイプラインの早い段階へチェックを移す
シフトレフトセキュリティとは、セキュリティのテストとチェックを開発ライフサイクルの早い段階へ移し、欠陥を安く簡単に修正できるうちに捕捉することを意味します。
ソフトウェアライフサイクルを、左(コードを書く)から右(本番)へ伸びる線として思い描いてください。従来、セキュリティは右で行われていました。すべてが build された後の、遅いレビューやペンテストです。シフトレフトはそれを左へ、コーディング、pull request、CI の中へ移し、問題が早期に表面化するようにします。PR で捕捉されたバグは数分のコストですが、同じバグが本番にあればインシデントのコストになります。
なぜ早いほうが安いのか
欠陥を修正するコストは、見つけるのが遅いほど大きくなります。pre-commit フックで捕捉された secret は何でもない出来事ですが、同じ secret が侵害の後に本番で見つかれば危機です。左へ移すことは、主として、対処が些細なうちに問題を捕捉することにあります。
何が左へ移るか
- commit と pull request での secret スキャン。
- CI での静的解析(SAST)。
- マージ前の依存関係とコンテナのスキャン。
- 通常のコードレビューに組み込まれたセキュリティレビュー。
ツールだけでなく文化である
シフトレフトは、スキャナーを追加するだけのことではありません。開発者にセキュリティのオーナーシップと、それに基づいて行動するための速いフィードバックを与えることです。結果が数日後に別のダッシュボードに現れるなら、誰も行動しません。PR の中で、明確な修正方法とともに現れれば、行動します。
フィードバック速度の罠
シフトレフトは、チェックが速く正確な場合にのみ機能します。commit のたびに走る遅くノイズの多いスキャンは、無効化されます。まさにその行を指し示す、速く誤検知の少ないチェックこそ、開発者が使い続け信頼するものです。
速度を落とさずにシフトレフトする
セキュリティチェックはパイプラインの時間を増やすため、runner が重要です。良いキャッシュを備えた速く分離された runner(Latchkey のマネージド runner のような)はスキャンを迅速に保ち、セキュリティを左へ移すことが、開発者にスキップを促す遅いフィードバックに変わらないようにします。
重要なポイント
- シフトレフトセキュリティは、修正が安い早い段階へチェックを移す。
- secret、静的、依存関係のスキャンが、commit と PR で実行される。
- 文化とツールの両方であり、速く正確なフィードバックが定着の鍵である。