ファイルサーバをセキュアに設計するのはすげえむずい

ファイルサーバっていうのは大体どの企業にもあって、まあ適当に設計しても動作する。しかし、ファイルサーバをセキュアに設計するのは存外難しかったりする。ポイントは「環境」「物理」「論理」「経路」「廃棄」の5つだ。

1.環境

環境っていうのはファイルサーバをどこに置くかって話で、まあ大体データセンターにおいておけば問題なかったりするのだけれど、サーバルームにおいておくような場合もある。サーバルームにおいておく場合の問題点は「電源の安定」と「熱の安定」と「耐震性」と「耐犯罪性」になる。

電源の安定って言うのは、データセンターでは問題になりにくい要素で、要は「停電にどう対応するか」という話である。停電に対応するためにはUPSが必要だろうけれども、UPSは「停電時サーバを安全に停止するための時間稼ぎ」装置でしかない。だから常時動作させるようなサーバの場合、サーバルームに置くことが大きなリスク要因となる。

また、停電時には「エアコン」も停止してしまうので、「復電とともに開始してくれるエアコン」でないと「熱の安定」に課題がのこってしまう。復電でサーバだけ立ち上がっちゃうと、そのままサーバが高温になって停止してしまうのだ。さらに言えばエアコンは「省エネおじさん」が大きなリスク要因だ。これを排除するのはなかなか難しい。

耐震性っていうのは「人間」をターゲットにした耐震性と「コンピュータ」をターゲットとした耐震性で大きく異なる。いわゆるオフィスビルの耐震性は「人間」をターゲットにしているので、「コンピュータ」をターゲットとした耐震設計を行っているデータセンターに比べて、大きく劣る。

耐犯罪性っていうのは「悪意のある人間にサーバ持ち出されちゃう」というリスクに対する耐性だ。サーバルームをきっちり監視しており、認証をうけないと物理的にサーバにたどり着けないような環境でない限り、耐犯罪性は0に近づけられない。

なので、ファイルサーバのセキュアな設計の第1としては「データセンターに設置すること」になる。もちろんAWS等のクラウドサービスに頼ってしまうというのも一つの手となる。

2.物理設計

サーバ本体の物理設計とは、どのように冗長するか、どのようにバックアップするかになる。
簡単な冗長から言えば「電源二重化」「HDD二重化」「ファン二重化」があり、少し難しい冗長でいえば、「サーバ自体の二重化」なんてものがある。サーバの二重化を行う場合、ネットワークの二重化や、遠隔地での二重化なんてものも検討が必要になってくるので、設計難度は高い。

さらに言えば、バックアップ設計も重要だ。二重化が「サーバ動作の継続」のため、バックアップは「サーバ丸ごとの破壊」「サーバの論理破壊」に対応するための設計になる。なので冗長とバックアップは分けて実装しなければならない。バックアップのサイズがどれくらいで、どのようなメディアにバックアップするのかしっかり考える必要がある。

なので、ファイルサーバのセキュアな設計の第2としては「冗長化」、第3としては「バックアップ」となる。

3.論理設計

サーバの論理設計とは「アクセス管理設計」と「バックアップ」と「履歴管理」となる。

アクセス管理設計とは「誰に、どのようなアクセスを許すか」ということだ。普通に考えて、経営の秘密情報を平社員にアクセスさせるわけにはいかないだろうし、人事情報を全社員にアクセスさせることもありあないだろう。なので、「どのような立場のメンバー」が「どこにアクセスできるか」ということを設計して、実装する必要がある。場合によっては「アクセスの追跡」情報を保存する必要もあるだろうから、ファイルサーバのセキュア設計において、アクセス管理設計が最も難しいと思う。

「バックアップ」は物理設計と同時に考える必要がある。どのようなタイミングでどのようにバックアップするのか。バックアップ機器の特性とともに考える必要がある。

「履歴管理」とは「あやまって改変もしくは削除してしまったファイルをもとに戻すため、どのようなプロセスを経るのか」というのを考えることである。バックアップから戻すのであれば、バックアップのタイミングと、バックアップから復元できるメンバーを含めて制度設計を行う必要がある。Windowsのファイルサーバでは「ファイル履歴」という機能があって、削除したファイルを復元する機能があるが、これを有効化するかどうかについても検討が必要だろう。

なので、ファイルサーバのセキュアな設計の第4としては「アクセス管理設計」、第5としては「履歴管理」となる。

4.経路設計

ファイルサーバとファイルサーバを使用する人の経路がセキュアであることはとても重要だ。当たり前だが、データセンターまたはクラウドサービスまでの経路がセキュアである必要がある。VPNなどが一般的だ。

なので、ファイルサーバのセキュアな設計の第6は「経路の安全性」だ。

5.廃棄

ファイルサーバはいつしか廃棄する必要がある。サーバ構築時点で暗号化を施しておけば、サーバとHDDを揃えない限りデータ漏洩は発生しない。すなわち、HDD故障時に交換しても、そのHDD内が読めないので心配ないし、サーバ廃棄時には、サーバとHDDを別廃棄すればよい。

なので、ファイルサーバのセキュアな設計の第7は「廃棄時の安全性」だ。

ということで、ファイルサーバのセキュアな設計はすげえ難しいのだ。ファイルサーバの重要度によって、どこまで考えるか異なるだろうけれど、いちど見直してみてはいかがだろうか。