脆弱性は技術的負債、開発プロセス全体で適切なセキュリティ施策を
さらに松岡氏は、コンテナ内のアプリケーションについても、CI/CDパイプラインにセキュリティテストを組み込むなど、開発プロセス全体でセキュリティ施策を展開するべきと言及する。
日本シノプシスが毎年公開する「オープンソース・セキュリティ&リスク分析レポート」(2021年版)によると、17業種、1546の商用コードベースを監査した結果、全体の85%に4年以上前の古いオープンソース依存ファイルが含まれており、84%から1つ以上の脆弱性が発見されたという。これら脆弱性が悪用されて情報漏えいに至った場合、対応などを含めて発生する費用総額の平均は386万ドルに及ぶという試算もある(IBM Securityおよび調査会社Ponemonの「Cost of Data Breach Report 2020」より)。
脆弱性は、いわば技術的負債だ。米テキサス大学のハーブ・クラスナー教授がまとめた調査レポート「CPSQ」(Cost of Poor Software Quality)の2020年版では、低品質なソフトウェアに内在する技術的負債に起因するコストは約1.31兆ドルで、増加傾向にあると指摘されている。アクセンチュアが2019年に実施した年次調査レポート「Cost of Cybercrime Study」では、技術的負債となるLOC(コード行数)はグローバルで1兆6550億コードに上り、約1.3兆ドルのコスト負担に換算できるという。
「セキュリティは、ソフトウェア開発ライフサイクル全体に関わる課題だ。CI/CDパイプラインにセキュリティテストを含めることで、コード開発の早い段階から脆弱性を見つけて対処できる」(松岡氏)
こうして見ると、コンテナはモノリシックなアプリケーションと異なる環境で動作するが、セキュアに保つためのテストや技術はアプリケーションで実施してきたものが基本的にそのまま使える。ポイントは、プロセスの違いを理解し、どのプロセスで何を実施するかを整理し、適用することだと松岡氏は述べる。
「コンテナアプリケーション開発のベストプラクティスは、Dockerのサイトで公開されている。こうした情報を、セキュアな開発や運用のベースラインとして採用し、リスク軽減に取り組んでほしい」(松岡氏)