セキュリティの不備で医療データがサイバー犯罪者に盗まれる危険性があることをマカフィーの研究者が指摘
長期に渡り保存される医療データは、サイバー犯罪者にとって格好の標的です。ハッキング活動には膨大な時間と労力がかかるため、経験豊かなサイバー犯罪者は、投資から見込める利益に基づいて攻撃を画策する傾向にあります。医療データにアクセスできた犯罪者は、かなりの報酬を手にしているようです。ある売り手はインタビューの中で、「具体的に…のすべての記録を欲しがっている人物がいる」と述べており、その取引額は10万米ドルにも達したと言います。
エコー検査で妻のお腹にいる我が子の美しい4D超音波映像を見ている時、画面に「データを画像に保存中」というメッセージが表示されました。大抵の人は気にも留めないと思いますが、私はサイバー犯罪者が医療産業を狙っていることについて研究しているため、なぜ超音波写真をファイルに保存しないのか不思議に思いました。そこで、医療用画像の撮影と潜在的なセキュリティ リスクについて詳しい調査を行うことにしました。その結果は、とても気掛かりなものでした。最終的には、各種攻撃経路を統合することで、画像から他人の身体部位を再現した3Dモデルを作成することができてしまったのです。
1.PACS
大抵の病院や医療研究施設は、画像のアーカイブや通信システムにPACSを利用し、施設内のさまざまなシステムやクラウドを介して、超音波、マンモグラム、MRIなどの画像にアクセスできるようにしています。
以下の図に描かれているように、PACSシステムは、ワークステーション、画像撮影装置、画像取得ゲートウェイ、PACSコントローラー、データベース、アーカイブ機能など、さまざまな要素から構成されています。
画像撮影装置で超音波やMRIなどの画像が作成され、画像取得ゲートウェイにアップロードされます。医療施設で使用される画像撮影設備の多くはセキュリティがベストな状態にはなっていませんが、画像のデジタル変換を可能にするために、ネットワーク内に画像取得ゲートウェイが設置されています。画像に患者のデータを加えて診察に役立てられるよう、このゲートウェイが、病院の情報システムに接続(HL7プロトコルを使用)するサーバーとしての役割を果たしていることもあります。
PACSコントローラーは、各種要素間のトラフィックをすべて調整する中央装置です。最後に、データベースとアーカイブ システムがあります。このシステムが、すべての画像に名前を付け適切に短期または長期保存することを担保しています。
大規模なシステムの場合は、さまざまな場所に複数の画像撮影装置や画像取得ゲートウェイが設置され、各要素がインターネットで接続されている可能性があります。調査を行う過程で、世界では、必ずしもセキュリティが導入されているわけではない、無料かつオープンソースのPACSソフトウェアが、数多くの小規模な医療行為に使われていることがわかりました。
インターネットに接続されているPACSサーバー数は、インターネットに接続される特定種のコンピューターを見つける検索エンジン「Shodan」を使った検索方法によって異なります。TCP 104で接続するサーバーもあれば、HTTP TCP 80やHTTPS TCP 443を使用するサーバーもあります。簡単に検索を行ったところ、1,100以上のPACSが、推奨されるネットワーク セキュリティ対策や仮想プライベート ネットワーク(VPN)を取り入れることなく、直接、インターネットに接続していることが判明しました。
調査の極めて初期段階から、「IE6サポートのみ」というメッセージや、ActiveXコントロールや旧Java対応などのフレーズに行き当たり、私たちは不安になりました。これらの多くは、多数のエクスプロイトが存在し、攻撃されやすい製品なのです。たとえば、あるPACSでは、パラメーターをひとつ変更すると、エラー ページが表示されました。これは、アプリケーション開発者が、攻撃者によるコード注入やアプリケーション データの漏えいにつながり得る不具合を防ぐために、適切な入力による基本動作確認を実施したかどうかを調べるための初歩的なテストです。このテストから、システムを感染させるためのヒントを得ることができます。
スタックトレース ダンプから、40種類の脆弱性が含まれるApache Tomcatのバージョン7.0.13が使われていることが判明しました。
DICOM(医療におけるデジタル画像と通信)ポートTCP 104と通信している場合は、サーバーのバナー情報を取得し、レスポンスを得ることができます。クエリしながら、各種レスポンスを記録しました。その1つがこちらです。
\x02\x00\x00\x00\x00\xbe\x00\x01\x00\x00ANY-SCP FINDSCU \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x151.2.840.10008.3.1.1.1!\x00\x00\x1b\x01\x00\x00\x00@\x00\x00\x131.2.840.10008.1.2.1P\x00\x00>Q\x00\x00\x04\x00\x00@\x00R\x00\x00″1.2.826.0.1.3680043.2.135.1066.101U\x00\x00\x0c1.4.16/WIN32
FINDSCUという文字列は、PACSシステムのクエリに使えるfindscuツールを表します。DICOM規格は、クエリ/読み取りサービスに3種類のデータ モデルを定義します。各データ モデルでは、C-FIND用、C-MOVE用、そしてC-GET用に1つずつ、ユニークIDが割り当てられます。各モデルに3つなので、全部で9つのユニークIDが存在します。先ほどのバナー情報からは、そのうち2つのIDを読み取りました。
- 2.840.10008.1.2.1: データ送信に “Explicit VR Little Endian(明示的VRリトル エンディアン)” の値を定義するユニーク トランスファーID
- 2.826.0.1.3680043.2.135.1066.101: 実行クラスを表す値
バナー情報に含まれる “1.4.16/WIN32” という別の値は、実装バージョンを表します。医療用サーバーの場合、これはXAMPPのバージョン、つまりApacheとMariaDB、PHP、およびPerlを表します。このサーバーは、一般的に9つの脆弱性が認められているApache 2.4.9を実行しています。
別のケースでは、脆弱性を探す必要すらありませんでした。管理用インターフェースは完全にオープンで、認証情報なしでアクセスできました。
つまり、画像にアクセスすることが可能なのです。
2.脆弱性
高価な業務用PACSシステムだけでなく、小規模な医療機関や医療行為向けには、オープンソースや少額で使えるPACSも提供されています。これらのシステムを調査したところ、不安は的中しました。あるウェブ サーバー/クライアントのシステムでは、サーバーを初めて起動する際に認証情報の変更を強制しないため、デフォルトの「管理者/パスワード」が使用されていました。問題はそれだけではありません。
- クライアントとサーバー間のトラフィックが暗号化されていない
- クリック ジャッキング
- クロスサイト スクリプティング(反射型)
- クロスサイト スクリプティングがクロスサイト リクエスト フォージェリとして保存される
- 文書オブジェクト モデルベースのリンク操作
- 管理者用アカウントの遠隔作成
- 情報の開示
この多くが、OWASPの最も重大なウェブ アプリケーション セキュリティ リスクのトップ10ランキングにランクインしており、消費者向け製品では対処されるべき深刻な不具合とされています。
この脆弱性について、責任を持って開示作業を行った後、該当ベンダーにも報告しました。ベンダーから脆弱性調査の協力を得られたため、現在、問題の是正に向け、適切な対策が講じられています。
インターネットから医療用画像を取得する方法は他にもたくさんありますが、これほど多くの時間や労力を使って脆弱性の調査を行うべき理由は何でしょうか。
3.医療用画像の形式
医療の世界では、用途に合わせて、さまざまな画像形式が使われています。形式ごとに要件や、使用される設備、プロトコルなども異なります。たとえば、以下の形式が使われています。
- NifTi Neuroimaging Informatics Technology Initiative
- Dicom Digital Imaging and Communications in Medicine
- MINC Medical Imaging NetCDF
- NRRD Nearly Raw Raster Data
一部の検索エンジンから、オープン ディレクトリやFTPサーバーを検索したところ、数千もの画像(ほとんどがDICOM形式で、完全なMRIスキャン画像もありました)を収集することができました。1例をご紹介します。
DICOM形式は、サイバーセキュリティが重要な要素となる前の1980年代に登場しました。この規格形式には、患者名、ステーション名、病院など、詳しいタグ リストが含まれています。すべてがメタデータとして、画像に含まれています。
テキスト エディタで画像を開くと、以下の画面が表示されます。
このファイルには、DICMという、DICOMファイルであることを示すプレフィックスが付けられています。このファイルの他の文字列(現在は難読化されている)には、病院名、都市、患者名などの情報が含まれています。
医療保険の携行性と説明に関する法律(Health Insurance Portability and Accountability Act)は、DICOMファイルのメタデータの削除や匿名化など、医療用画像撮影ワークフローの安全を義務付けています。オープンなソースやディレクトリから読み取ったファイルを調査したところ、大多数の画像からこのメタデータが消去されていませんでした。たとえば、以下のメタデータからは、(難読化された)個人特定可能な情報(PII)を抽出できました。
4.脆弱性とメタデータを合成する
潜在的な脆弱性とメタデータを合成して、テスト シナリオを作成し、ダミー患者の膝のX線写真などの情報を脆弱なPACSサーバーにインストールしました。
調査の初期段階に収集した脆弱性情報を利用し、PACSサーバーにアクセスするための攻撃を仕掛けました。アクセスに成功すると、ダミー患者から画像をダウンロードし、一連の画像のメタデータの「膝」という部分をすべて「肘」に改ざんしました。
その画像を保存し、サーバーにアップロードしました。ダミー患者の記録を確認すると、変更は適切に反映されていました。
5.身体部位の再現
医療用画像撮影の世界には、3Dなど、さまざまな角度から画像を検証、可視化できるソフトウェアが大量に存在します。一連の画像を取得し、3Dソフトウェアのデモ版を使用して、脊椎、股関節、膝などの3Dモデルを完全に再現しました。顔の一部を再現できたケースもあります。
私たちは、プライバシーの保護を重視しているため、以下の例(一連の股関節の画像)はソフトウェアに付属するデモ ファイルから取得したものです。
注目する部分を選び、高さを調節した後、股関節の3Dモデルを生成しました。
3Dモデルの生成に使用したアプリケーションには、他の3D描画プログラムで使われるデータ形式にモデルをエクスポートできる機能があります。実際にエクスポートした後、3D描画プログラムにデータをインポートし、ファイルを3Dオブジェクトやプリンターに多いSTLという形式に変換しました。
つまり、オープン ディレクトリから取得したファイルを3Dモデルに変換し、3Dプリンターで実体的なモデルとしてプリントすることに成功したのです。
6.結論
医療用画像撮影システムのセキュリティ状態について調査を開始した時点で、身体部位の再現まで行うとは思ってもいませんでした。PACSサーバー システムに古いソフトウェアが多数使われていることや、そのソフトウェア自体にもたくさんの脆弱性が確認されていることが懸念されます。今回調査を行ったオープンソースのベンダー数はそれほど多くはありませんが、専門のハードウェアやソフトウェアにアクセスしていたら、どれほどの発見があったのでしょうか。
デフォルトのアカウント、クロスサイト スクリプティング、ウェブ サーバーの脆弱性などが原因で、システムにアクセスされる可能性があります。私たちの研究から、システムに侵入できれば、データや画像は永続的に改ざんできることが証明されました。
2017年5月、あるレポートが、人工知能を使えば、画像からその人物の寿命を割り出せる可能性があると主張しました。犯罪者がこの情報を取得し、それを基にゆすりを行ったらどうなるでしょうか。
診断や治療のために医療データを素早く共有したり、医療用画像を保存する必要性があることは理解しています。医療機関が研究のためにオープン ディレクトリで画像を共有する際は、細心の注意を払い、少なくとも画像からPIIデータを消去するべきです。
PACSを使用している機関は、セキュリティ機能についてベンダーまでお問い合わせください。共有システムが適切に保護される適切なネットワーク デザインを取り入れてください。外部システムに接続する場合は、内部セキュリティだけでなく、VPNや二要素認証を取り入れることも検討してください。
※本ページの内容は、2018年3月11日更新のMcAfee Blogの内容です。
原文: McAfee Researchers Find Poor Security Exposes Medical Data to Cybercriminals
著者: クリスティアーン・ビーク