検索
特集

クラウドネイティブな組込ソフトウェア開発の在り方とは?IoTセキュリティ

MONOistはオンラインセミナー「開発変革セミナー 2024 秋〜製造業特別DAY 組み込みセキュリティ〜」を開催。本稿では「クラウドネイティブな組込ソフトウェア開発とMLSecOpsへの進化」と題して日本クラウドセキュリティアライアンス(CSA)代表理事の笹原英司氏が行った基調講演の一部を紹介する。

Share
Tweet
LINE
Hatena

 MONOistは2024年11月15日、製品開発における組み込みセキュリティの重要性などを訴えるオンラインセミナー「開発変革セミナー 2024 秋〜製造業特別DAY 組み込みセキュリティ〜」を開催した。本稿では「クラウドネイティブな組込ソフトウェア開発とMLSecOpsへの進化」と題して日本クラウドセキュリティアライアンス(CSA)代表理事 関西支部セキュアDevSecOps/サーバレスWG リーダーの笹原英司氏が行った基調講演の一部を紹介する。

サーバレス環境が開発環境に普及

photo
日本クラウドセキュリティアライアンス 代表理事の笹原英司氏

 クラウドネイティブな環境を活用したソフトウェア開発が普及し、従来の組込ソフトウェア開発についても変革が求められている。笹原氏はMONOistで「海外医療技術トレンド」の連載を行っているが、セッションでは、医療機器をはじめとする製造業のDevSecOps導入やソフトウェア部品表(SBOM)を活用した脆弱(ぜいじゃく)性管理の事例を紹介した。

 笹原氏はまず、米国の医療機器業界の動向について説明。医療機器製品の開発においても、バリューチェーンエコシステムや米国FDA固有識別番号(UDI)、医療機器安全性行動計画、医療機器向けトータル製品ライフサイクル、技術モダナイゼーション行動計画(TMAP)、IMDRF(国際医療機器規制当局フォーラム)による医療機器サイバーセキュリティ向けSBOM原則など、製品開発においてサイバーセキュリティ対策を求める規制化が進んでいる様子を紹介した。笹原氏は「医療機器業界特有の動きもあるが、こうした動きがさまざまな業界で進んでいるということを頭に入れておく必要がある」と訴える。

 さらに、製品のIoT(モノのインターネット)化が進む中、製品開発においてもサーバレスアプリケーションの活用が広がり、製品に組み込まれるソフトウェアのセキュリティ対策を行うとともに、これらの開発環境に対するセキュリティ対策の必要性が高まっている。

 2024年7月には、CSAが「クラウドコンピューティングのためのセキュリテイガイダンスv5」を出した。v5は前バージョンに比べて大幅にページ数が増えているが、増えた内容の多くがセキュリティに関するものだという。笹原氏は「開発環境や開発したソフトウェアを含めて一気通貫でセキュリティを確保する仕組みが必要だ。セキュリティ対策も含めてなるべく開発者がインフラを気にすることなく、コードを書くことに集中できるように環境が重要となる」と考えを述べる。

 これらのセキュリティ対策においては、サードパーティーサービスとAPI、脆弱な依存関係、設定ミス、機能向けの過剰特権IAM(アクセス管理)などが課題になっている。脆弱な依存関係については、サーバレス環境では外部のライブラリに依存しており、これらのライブラリには脆弱性や悪意のあるコードが含まれている可能性がある。ライブラリの確認など、外部環境のセキュリティ対策を考慮する必要がある。

 サーバレスでの開発環境ではFaaS(Function as a Service)が定着しているが、固有のセキュリティ対策として、ステートレスな特質、イベント駆動型セキュリティ、CPS(クラウドサービスプロバイター)の依存関係などの事項が上げられる。CPSとの依存関係については、利用可能なセキュリティ対策がCPSの提供内容によって定義されることが多いため、共有責任モデルを理解し活用することが重要になる。「CPC(クラウドサービス利用者)は自分たちのコードとデータのセキュリティに焦点を当てる必要があり、CSPがどのセキュリティ面を担当し、CSCにどの責任があるかを知ることが大切になる」と笹原氏は述べている。

 IAMに関しては、最小特権アクセス、キメ細かいアクセス制御、コンテキストに応じた認可、不可変インフラストラクチャと秘密管理、IAMポリシーのレビューと更新などがベストプラクティスとしている。

クラウドネイティブアプリケーションの開発とセキュリティ

 クラウドネイティブアプリケーション開発とセキュリティについて、セキュアソフトウェア開発サイクル(SSDLC)の流れをフェーズごとにみると以下のような流れとなる。

  1. セキュアデザインとアーキテクチャ
  2. セキュアコーディング
  3. 継続的なビルド、統合およびテスト
  4. 継続的なデリバリーとデプロイ
  5. 継続的なモニタリングとランタイム防御

 この他、デプロイメントパイプラインの各ステップは以下のようになる。

  1. ソースコード
  2. サーバ構成
  3. イメージ構成
  4. バージョン制御リポジトリ
  5. 継続的インテグレーションサーバ
  6. セキュリティテストと強制
  7. マスターイメージ
  8. 手動または自動化された受け入れ
  9. 本番(生産へのデプロイ)

 CSAでは「DevSecOpsの6つの柱:セキュリティ、開発、運用の統合による再帰的セキュリティの実現」(2019年8月7日)として集団的責任、コラボレーションと統合、実践的な実装、コンプライアンスと開発の橋渡し、自動化、測定、監視、報告および行動という項目(柱)を打ち立てている。

 SSDLC全体を通じたプロアクティブなセキュリティ対策としては、統合開発環境(IDE)の中では、静的アプリケーションセキュリティテスト(SAST)を実施し、次にソフトウェア構成分析、セキュリティ単体テスト、次に動的なアプリケーションセキュリティテストの流れになる。また、最終的な生産の部分ではWebアプリケーションファイアウォールやランタイムアプリケーション自己保護(RASP)を使って攻撃の監視と防止を行う。

≫その他の「IoTセキュリティ」の記事はこちら

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る