例の個人情報入りUSBメモリ紛失事案をストレージの機能で防ぐことはできたのか？

# はじめに
　兵庫県尼崎市民の個人情報入りUSBメモリ紛失事案<sup>[1]</sup>の発生・発覚（2022年6月23日）から一か月以上経過しました。

　事案規模（個人情報件数）の大きさや第一報後に次々に明らかになる内容など色々な意味でセンセーショナルであり、自治体での事案としては2019年末に発覚したHDD転売による個人情報流出事案<sup>[2]</sup>以来に大きな注目を浴びている事案だと思います。

　尼崎市はすでにこの事案に関する調査委員会を設置済です。尼崎市から調査委員会への諮問内容には「原因の検証」だけでなく「再発防止策に関する事項について」も含まれていますので、この委員会で十分な調査が行われ、建設的な提案が行われることを期待します。いち技術者として調査報告書の内容にはとても興味があります。

　発覚から一か月経過してこの事案が話題に上ることもほぼなくなりました。次は上記調査委員会の調査報告が答申された時にクローズアップされるのかもしれません。

　この手の話題は定期的にインシデントを振り返ることが重要です。そこで「今回の事案をストレージの機能**だけ**で防ぐことはできたのか？」と考えてみたのですが……結論から言うと「**無理**」そうです。ただこれでは思考停止なので、私はセキュリティの専門家ではありませんが、ストレージの視点で色々考えてみました。

# まとめ
* この事案の直接的な原因は人間系だと考えられる
* ストレージの機能を上手く利用することで人間系の関与をできるだけ削減することは可能

# 直接的な原因は人間系
　尼崎市はこの事案に関するWebページ<sup>[1]</sup>の中で、原因について下記のように意見を掲載しています。これはあくまでも市がWebサイトに掲載した文章であり上記調査委員会による調査結果（答申）ではありませんのでご注意ください。

> 主に次の3点と考えております。<br><br>
> 1. 受託者は、委託者の事業所外でのデータ処理の許可は得ていたものの、受託者の関係社員個人が電子記録媒体で個人情報データを運搬するという具体的手法についての許可を本市から得ていなかった。また、本市が受託者に対し、持ち出す際に許可を得るべき旨を徹底していなかったこと。
> 2. 個人情報データを保存した電子記録媒体を運送会社のセキュリティ便などを使用せず、個人で委託者の事業所外に持ち歩いたこと。
> 3. 委託者の事業所外でのデータ移管作業終了後、その場で速やかにUSBメモリー内のデータ消去を行わなかったこと。また、速やかに帰社せず、当該USBメモリーを所持したまま、飲食店に立ち寄り、食事や飲酒をし、結果、USBメモリーが入ったカバンを紛失したこと。
>
> _尼崎市Webページ「個人情報を含むUSBメモリーの紛失事案について」<sup>[1]</sup>より引用_

　全体的に、「取扱者（業者）が定められた通りに取り扱えば起きずに済んだ」という見解に読めます。

　しかし、人間系がシステムセキュリティの一部を構成している以上、人間系の関与度合いもインシデントの発生確率や発生時の影響（被害）の大きさを左右しますので、「委託者の事業所外でのデータ処理を許可」した尼崎市側の責任も小さくはありません。

　その意味では、「原因の検証」での「システム設計時に行われた（はずの）リスク分析結果とそれに対する対応の検証」が大きなポイントになるはずです。

　次に、報道などによると、詳細な使用技術や運用は明らかではないものの、データ持ち出しにあたりパスワード保護や暗号化は適用されていたようです。つまり可搬媒体の紛失などを想定した情報漏洩リスク低減措置は講じられていたようです。

　とはいえ、人間系の話ですので操作者が悪意を持ち操作すれば想定した効果が得られない措置です。例えば、パスワードを設定した本人が悪意を持つ場合です。容易に推測できるパスワードを設定する、そもそもパスワードを設定しない、などが行われてしまう可能性があります。

# リスク低減方法案
　まず可搬ストレージが介在する前提でどのような方法があるか考えてみました。ここでは「**極力人間が介在しないようにする**」ことと「**端末認証を行う**」の2つを説明します。

## 極力人間の介在を減らす
　上で指摘したように、人間の介在を増やせば増やしただけリスクが増えます。逆に言えば、可能な限り人間の介在を減らせばリスクを低減できます。例えば、「USBメモリに設定するパスワードを自動生成しかつ操作者の目に触れないようにする」という方法が考えられます。

　この方法には以下のようなメリットがあります。

1. パスワードを人間が覚えなくて良いので最大限複雑なパスワードを設定可能
1. 設定されたパスワードをデータ運搬に係わる人間が知らないのでその人間の攻撃によるリスクを低減可能
1. 万が一紛失してもパスワードが十分に強固で漏洩リスクを低減可能

　もちろん、パスワードの代わりに公開鍵暗号方式などを使用する方法も考えられます。

![パスワード設定から人間の介在を除去する方法](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439683/451a8f0d-33ac-2ebc-0c78-6ee8cd8c97f9.png "パスワード設定から人間の介在を除去する方法")
図：パスワード設定から人間の介在を除去する方法

　しかしこの方法を使用しても、紛失もしくは盗難されたUSBメモリが攻撃者の端末で解析されてしまう可能性が残ります。

## 正規端末かどうか認証する
　上記のような「攻撃者の手による解析の脅威」からデータを守るには、例えば「パスワードの解除や暗号化されたデータの復号を行う端末（ホスト）を何らかの方法で認証する」という方法が考えられます。

　具体的には、パスワードを設定した場合は正規端末でのみそのパスワードが利用可能（正規端末のみでパスワード解除可能）にする、などです。

![正規端末かどうか認証する方法](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439683/903a736b-783e-8b0e-fbb5-15fd97bb6806.png "正規端末かどうか認証する方法")
図：正規端末かどうか認証する方法

　この方法を適用すると、攻撃者が自身の（攻撃用）端末に接続してアクセス制御解除や暗号化データの解読を試みることができません。

# 利用可能なストレージの機能は？
　上記「人間の介在を減らした場合のパスワードの工夫」と「端末の認証」のうち、前者の「パスワードの工夫」はいくつかの方法で実現可能です。

　今回の事案で用いられたUSBメモリの場合は、特に「業界標準」のようなものはなく、パスワード入力用のキーが付いた製品やUSBメモリを端末に挿入すると内蔵のソフトウェアが動作してパスワードの入力を求めるものなど様々な製品があります。

　USBメモリから対象を広げて、一般的なストレージとしてのSSD例えばSATA SSDやNVMe SSDの場合は、標準化された方法が存在します。

　以前[この記事](https://qiita.com/ken-yossy/items/c2b0b8c389327b50d587)で説明した通り、SATA SSDであれば"ATA Security Feature Set"と呼ばれる機能もしくはTrusted Computing Group (TCG)が定めるOpalやPyliteなどのSSC (Security Subsystem Class)に対応していればパスワードロックが可能です。NVMe SSDであれば、TCG OpalやPyliteなどのSSCに対応していればパスワードロックが可能です。

　最近のSATAもしくはNVMe SSDであればコンシューマ製品でも上記機能をサポートしていることが多いです。パスワードの設定は、ATA Security Feature Setを利用する場合はBIOSやSSDメーカー配布ソフトウェアで行う方法が、TCGのSSCを利用する場合はTCGの機能を操作する専用ソフトウェアで行う方法が一般的です。

表：パスワードロックに利用できる機能と利用に必要なもの
![パスワードロックに利用できる機能と利用に必要なもの](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439683/62c43bee-c62a-0026-a411-7ae027b89913.png "パスワードロックに利用できる機能と利用に必要なもの")

　一方、ホスト（端末）認証は、システムの規模や制約に基づいて最適な技術や機能を組み合わせて実現されます。

　例えば、ある端末を正規端末として届ける際に人間で言う「指紋」のようなものを登録しておいて、ロックの解除や暗号化されたデータの復号を行う際にその指紋を「誰か」が照合して正規端末であることを確認する、などです。

　この仕組みを実現するにあたり、上記照合する「誰か」がストレージでないのであればストレージに特別な機能は必要ありません。一方、上記「誰か」がストレージである場合つまりホストを認証するのがストレージである場合、認証に関する仕組みをストレージが備える必要があります。

![ストレージでホストを認証する仕組みの例](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439683/5152be74-77c9-7a1c-aa37-0a8c7b9606ed.png "ストレージでホストを認証する仕組みの例")
図：ストレージでホストを認証する仕組みの例

　私たちが店頭などで簡単に入手可能なUSBメモリのようなストレージはこのような機能を備えていません。

　つまり、可搬媒体を使用してかつ外部に持ち出すような運用をする場合はその運用に必要な機能を備えたストレージをきちんと選定して調達しなければならないことを意味します。それだけコストをかけなければならないのです。

# おわりに
　今回の記事では、2022年6月に発生・発覚したUSBメモリが絡んだセキュリティ事案を取り上げて、システムのセキュリティを向上させるためにストレージの機能をどのように活用すれば良いかを考えてみました。

　セキュリティインシデントは、その規模や話題性などに依存するもののある程度の期間が経過すると話題に上らなくなり忘れられてしまいます。今回の事案はストレージが関与しているということで、ストレージ技術者としては定期的に振り返りたいと思います。

# References
[1] 尼崎市、「_[個人情報を含むUSBメモリーの紛失事案について](https://www.city.amagasaki.hyogo.jp/kurashi/seikatusien/1027475/1030947.html)_」、2022年7月26日閲覧
[2] piyolog、「_[ 「世界最悪級の流出」と報じられた廃棄ハードディスク転売事案についてまとめてみた](https://piyolog.hatenadiary.jp/entry/2019/12/07/091332)_」、2019年12月7日（2022年7月26日閲覧）
[3] piyolog、「_[全市民の個人情報を保存したUSBメモリ紛失についてまとめてみた](https://piyolog.hatenadiary.jp/entry/2022/06/24/005044)_」、2022年6月24日（2022年7月26日閲覧）

# ライセンス表記
<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="クリエイティブ・コモンズ・ライセンス" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />この記事は<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンス</a>の下に提供されています。