こんにちは。日本ヒューレット・パッカードのオープンソース・Linuxテクノロジーエバンジェリストの古賀政純です。前回は米国の医療におけるITの近代化や法規制について簡単に取り上げました。今回は引き続き医療系のIT基盤を取り上げ、医療におけるオープンソースソフトウェア(OSS)やコンテナー基盤導入時の考慮点などについて簡単に紹介します。
医療系OSSのコンテナー化とセキュリティ
医療系のアプリケーションには、設計図が公開されているOSSで提供されているものが数多く存在します。従来は、ベンダーが独自に開発し、設計図が非公開のクローズドソースのソフトウェアが利用されることが普通でしたが、近年はオープンソースで公開されている医療系アプリケーションを採用することも少なくありません。また、規模の大小に関わらず、導入の容易さの観点から、Dockerコンテナー基盤で動かす傾向も見られます。コンテナーの元となるDockerイメージ(コマンドやライブラリーなどをひとまとめにパッケージ化したもの)には、魅力的なアプリケーションを含んだものが数多く存在し、医療系アプリケーションを稼働させる環境が簡単に手に入るのもその理由の一つです。
しかし、Dockerイメージには、セキュリティの脆弱性を含んでいるものも存在します。そのため、コンテナーとして使用する前に、Dockerイメージのセキュリティ脆弱性の検査を行う必要があります。最近は、Docker環境で故意に不正なプログラムをコンテナー内で実行するマルウェアも発見されています。従って、広く配布されている出所不明のコンテナーイメージをチェックせずに利用することは避けなければならず、信頼のおける政府系機関やベンダーによって検証が行われた認定済みのコンテナーイメージを入手し、セキュリティ脆弱性チェックやウィルスチェックを行った上で利用すべきです。また、外部の攻撃者がコンテナーに不正なプログラムを埋め込むことを防止するために、API(Application Programming Interface)を使って外部のプログラムと通信を行う必要がある場合は、暗号化通信の仕組みをアプリケーションに組み込むといったセキュリティ対策も必要です。
※クリックすると拡大画像が見られます
国家医療IT調整室が認定するアプリケーション
医療系OSSにおいては、米国政府機関に認定されたOSSがコンテナーイメージとして提供されているものも存在します。有名なソフトウェアの一つに、医療情報の管理ソフトウェアである「OpenEMR」(オープンイーエムアール)があります。OpenEMRは、米国保険福祉省(HHS)の国家医療IT調整室(ONC:The Office of the National Coordinator for Health IT)に認定されているソフトウェアであり、米国だけでなく世界中の医療機関で利用されています。OpenEMRはコミュニティーで開発が継続されており、コミュニティーが運営するウェブサイトから誰もが無償で入手できます。
OpenEMRは、WindowsサーバーやLinuxサーバーに直接インストールできますが、Dockerイメージも提供されています。ただし、OpenEMRを稼働させるには、コンテナーとしての導入かどうかに関わらず、別途、ウェブブラウザーを使った管理を実現するためのウェブサーバーや各種情報を格納するデータベースサーバーが必要です。従って、それらのウェブサービスやデータベース管理において、その国の法律や医療機関内の一定の規準に基づくセキュリティ管理が可能な人員の確保、運用が必要です。
米国のONCから認定されているOpenEMRは、豊富な現場導入実績を誇るソフトウェアとして認知されていますが、2018年に20個を超えるバグが発見され、医療データの情報流出が危惧されました。現在、不具合は修正されていますが、今後も新しいバージョンに更新されれば、また新たな脆弱性が生まれる可能性もあります。とはいえ、Docker環境であれば、セキュリティ対策済みのOpenEMR入りのDockerイメージをすぐに入手、あるいはカスタマイズしたDockerイメージを簡単に生成できる点は、エンドユーザーや医療系アプリケーションの開発者にとって非常に魅力的です。
Dockerエンジンが稼働するLinux OS(ホストOS)の種類に左右されることなく、新しいOpenEMR環境を短時間で入れ替えてテストできますし、医療施設ごとに異なるサーバー機器が導入されている場合でも、Dockerエンジンさえ動いていれば、ホストOSのバージョンの差異を吸収できるため、別の医療施設へのアプリケーションの移植(新規導入の横展開)のハードルも低くなります。またコンテナーであれば、OpenEMR以外に稼働する余計なOS関連のサービス(OpenEMRとは無関係に、OSそのものが稼働するために必要なプログラム)を極力減らすことができるため、従来の環境に比べてコンテナー内で稼働するアプリケーションや各種サービスの脆弱性対策の工数削減も大いに期待できます。
※クリックすると拡大画像が見られます