セキュリティに特化した組込み Linux 受託開発
組込み機器のセキュリティ問題に対処するために、世界中で様々な規格が提案されています。例えば、IEC 62443-4-2、ETSI EN 303 645、NIST SP800 シリーズ、UN-R-155、欧州サイバーレジリエンス法 (CRA)、そして日本のセキュリティ要件適合評価及びラベリング制度 (JC-STAR) などです。
産業機器のための規格 IEC 62443-4-2 では、以下が基本要件として示されています。
- 識別および認証制御 (Identification and authentication control)
- 利用制御 (Use control)
- システムの完全性 (System integrity)
- データの機密性 (Data integrity)
- データフロー制御 (Restricted data flow)
- イベントへのタイムリーな対応 (Time response to events)
- リソースの可用性 (Resource availability)
本ページでは、IEC 62443-4-2 の基本要件に対して、Linux におけるサイバートラストでの実装例を示します。
IEC 62443-4-2 に関連した Linux での実装例
識別および認証制御
この要件には、人間、ソフトウェア、デバイスの識別と認証などが定義されています。また、アカウントの管理や認証の強度なども定義されています。
実装例:
- PAM (Pluggable Authentication Modules) によるユーザーの認証
- MFA (Multi-Factor Authentication) によるユーザーの認証
- クライアント証明書を用いたユーザーや機器の認証
利用制御
この要件には、利用権限とアクセス制御、セッション管理、ロックアウト、監査要件などが定義されています。
実装例:
- ユーザーやグループによるファイル操作権限の設定
- ファイルシステムの read-only 化
- SELinux (Security-Enhanced Linux) によるファイル操作権限の設定
システムの完全性
この要件には、通信の完全性、真正性検査、安全な更新、ブート処理の完全性などが定義されています。
実装例:
- 改ざん検知ソフト (EMEliminator、dm-verity など) の実装
- セキュアブートの実装
- ファームウェアアップデーターの実装
データの機密性
この要件には、情報の機密性や持続性、暗号技術の利用などが定義されています。
実装例:
- LUKS (Linux Unified Key Setup) による暗号化
- 証明書を用いた TLS (Transport Layer Security) 通信の実装
- TEE (Trusted Execution Environment) を用いたセキュリティ機能の開発
データフロー制御
この要件には、ネットワークのセグメント化、ゾーン境界の保護、アプリケーションの分割などが定義されています。
実装例:
- 通信帯域の制限
- iptables や firewalld によるネットワーク制御
- VLAN や VPN 機能を用いたネットワークセグメントの分割
イベントへのタイムリーな対応
この要件には、監査ログへのアクセス性、継続的なモニタリングなどが定義されています。
実装例:
- audit によるイベントの記録
- リモートサーバへのログの転送
- SNMP Trap や Fluentd による通知
リソースの可用性
この要件には、サービス停止からの保護、制御システムのバックアップ/復旧・再構築などが定義されています。
実装例:
- ファイルバックアップ作成の実装
- OS やブートローダーの二面化
- ウォッチドッグタイマーによるシステム異常の検出
上記は実装例はあくまで一例であり、サイバートラストではその他ご要望についても承っています。「組込み Linux 開発支援」の詳細につきましては、以下の「お問い合わせフォーム」よりお気軽にお問い合わせください。