製造業でもより迅速なソフトウェア開発が求められるようになっているが、それと同時にセキュリティも満足させる必要がある。IT業界で広くうたわれてきたDevOpsやアジャイルといった開発手法にセキュリティを組み込んだ「DevSecOps」が求められているのだ。日本シノプシスの松岡正人氏は、DevSecOpsに向けて「シフトレフト」が必要になると説く。
変化の激しいビジネス環境の中、ソフトウェア開発に要求されるのはスピードだ。ビジネスニーズにいち早く対応し、迅速にソフトウェアを提供するためには、DevOps(開発チーム(Development)と運用チーム(Operations)の密接な連携)やアジャイルといった開発手法を取り入れる必要がある。かつて、製造業でソフトウェア開発に携わる組み込みエンジニアなどにとって無縁と思われてきたこれらのDevOpsやアジャイルも、IoT(モノのインターネット)の浸透などもあってもはや無視できない状況にある。
ただし、その際に留意すべきは、ソフトウェアのセキュアな開発だ。近年は開発プロセスで、DevOpsにセキュリティ(Security)を透過的に組み込む「DevSecOps」の重要性が指摘されている。しかし、コンテナ技術などに代表されるクラウドネイティブのソフトウェアに対する需要が増加し、コードベースが複雑化する状況では、ソフトウェアに対して継続的なセキュリティを実装することは容易ではない。
シノプシス(Synopsys)の日本法人である日本シノプシスでソフトウェア・インテグリティ・グループのシニア・プロダクト・マーケティング・マネージャを務める松岡正人氏は、「多くの開発者はDevSecOpsの重要性を理解しているものの、現実は開発者とセキュリティ担当者が密接に連携している組織は少ない」と指摘する。
DevSecOpsを実現するには「シフトレフト」を取り入れることが重要だ。シフトレフトとは、これまで後工程で行っていたセキュリティ確認のプロセスを、開発工程の早い段階に組み込む考え方である。早い段階でセキュリティ上の課題を解決すれば、開発後期の手戻りが低減できるからだ。製品の高機能化に加えて、IoT活用によるクラウドとの連携、ソフトウェアのアップデート機能など、スタンドアロンでの運用しなくなっている組み込みソフトウェアの開発でも、シフトレフトは強く意識すべき課題となっている。
松岡氏は「これまでのように本番環境にリリースする直前でセキュリティテストを実施し、脆弱性を検証するプロセスには限界がある」と指摘する。深刻な脆弱性が見つかった場合、膨大な量のコードを検証し、原因を特定するにはこれまで以上に時間がかかる。その結果、デプロイが遅延し、プロジェクト全体が大幅に遅れてしまう。これではビジネス現場のニーズに対応できない。
こうした課題を解決するには、「要件定義(計画)」「コード」「ビルド(設計)」「テスト」といったソフトウェア開発ライフサイクルにおいて、混入する可能性のある脆弱性を“つぶして”いく必要がある。その“つぶす”作業で重要なのが、「自動化」と「手動」のバランスだ。
脅威モデリングやアーキテクチャリスク分析といった重要度の高い作業は人間が担当し、静的アプリケーションセキュリティテスト(SAST)、ソフトウェアコンポジション解析(SCA)、動的アプリケーションセキュリティテスト(DAST)、インタラクティブアプリケーションセキュリティテスト(IAST)といった、既に解析/テストツールが提供されている分野については積極的に自動化すべきだ。
そして、もう1つ留意すべき点は、「CI/CD(Continuous Integration/Continuous Delivery)」のパイプラインを遅延させないことだ。CI/CDパイプラインとは、継続的インティグレーション/継続的デリバリーを実行するためのグループ化された個別のステップを指す。「CI/CDパイプラインの遅延を防止するには、セキュリティテストと開発のパイプラインを分けるべきだ」(松岡氏)。
Copyright © ITmedia, Inc. All Rights Reserved.