DevSecOpsとシフトレフトのセキュリティを実現する方法
これら問題の解決には、DevSecOpsで対応する。これは開発、運用のフェーズ全体に亘りアプリケーションセキュリティを統合するものだ。「通常はセキュリティと開発のスピードは相反するものですが、DevSecOpsはこれら2つを実現するものになります」と川原氏は言う。
もう1つ、セキュリティ対策を開発工程の最初のほうに持ってくるシフトレフトでの対応が重要だ。「コードを変更したその場でタイムリーに脆弱性を潰すことで脆弱性をゼロにしながら開発を進め、手戻りゼロで開発を完了させましょうというのがシフトレフトの概念です」と川原氏。DevSecOpsとシフトレフトで、セキュリティを堅牢化させながら開発を高速化できると説明する。
これを実践するには、コードを変えたらその場でセキュリティチェックを行い、タイムリーに対処し脆弱性をゼロ件に抑える。次にプロジェクトで利用するオープンソースソフトウェアの脆弱性を、継続的にモニタリングして対策し続ける。最後に、開発されたソフトウェアに徹底したセキュリティチェックをかける。
タイムリーに脆弱性を取り除くには、静的アプリケーション解析(SAST)手法が使われる。オープンソースソフトウェアの継続的なモニタリングには、ソフトウェア・コンポジション解析(SCA)で対処する。開発したもののチェックには、動的アプリケーション解析(DAST)を使う。これらを補足するものとして、シークレットスキャンやIaC(Infrastructure as Code)スキャンを適宜組み合わせる。
SASTは、コードだけを見てセキュリティを解析し、例外が発生するものやSQLインジェクションが起きるような問題のあるコードを発見する。これを日々のコード開発の中に取り込み、脆弱性を毎日潰す。SCAはソースコードを解析し、利用しているオープンソースソフトウェアを発見する。発見したオープンソースに脆弱性が報告されていれば、安全なものにバージョンアップするかそのオープンソースを利用しないなどで対処する。
DASTはアプリケーションに対し、外部からさまざまな攻撃を行いそのレスポンスから脆弱性を発見する。「これらをCI/CDのパイプラインに入れることで、アプリケーションのセキュアなリリースが可能になります」と川原氏は言う。シークレットスキャンは、ソースコードにハードコーディングされたパスワードなどの資格情報を見つけ、不適切な資格情報の取り扱いを抑止する。IaCスキャンはインフラ構築における不適切な設定などを発見し、インフラ面の安全性を担保する。
フォーティネットではFortiDevSecで、これら5つの対策を可能にしている。FortiDevSecは、簡単に導入できる統合型のアプリケーションセキュリティテストツールで5つのスキャンに1つのツールで対応する。たとえばSASTとSCAが別々のツールだと、それぞれの導入とメンテナンスに手間がかかり使い方も憶えなければならない。FortiDevSecで運用を最適化し、SaaS型なので管理サーバーを立てて管理する必要もない。セッションでは実際にFortiDevSecでスキャンをする様子がデモで紹介された。見つかった脆弱性は1つの画面で一覧でき、危険度などに応じ適切な対処方法を判断できる。
DevSecOpsでは、運用フェーズでのアプリケーションのリアルタイムな保護も重要だ。FortiWebは動いているWebアプリケーションを脅威から保護するもので、アプリケーションを稼働させながら機械学習を活用して未知の脅威にも対応する。これでOps部分のセキュリティ対策も強化することができる。「FortiDevSecとFortiWebを組み合わせることで、本当の意味でのDevSecOpsを実現できます。是非とも今回紹介した手法を使って、アプリケーションセキュリティを実現させて欲しい」と川原氏は言い、セッションを締めくくった。
今すぐeBookをダウンロード!