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

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

1.環境

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

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

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

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

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

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

2.物理設計

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

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

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

3.論理設計

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

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

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

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

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

4.経路設計

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

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

5.廃棄

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

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

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

0.4GHz病が発症した

最近よく遭遇するPCの障害に「0.4GHz病」というのがある。大体ノートPCで発生するのだけれど、突然PCの動作が重くなり、タスクマネージャを確認すると、CPUの動作速度が0.4GHzまで落ちているという現象だ。

調べてみると、いろんなPCで発生しているらしい。原因は異なるんだろうけども。

要は「CPUの過熱によって強制的にCPU速度が抑えられてしまう現象(サーマルスロットリング)」だ。まずは会社のPCで稀に発生するため、調査してみた。現象発生時にCoreTempで確認すると、大体CPU温度80度前後で速度低下が発生している。まあサーマルスロットリングで間違いないと思われた。しかし、熱がこもるような環境ではないし、PCに負荷をかけているわけでもない。多分UEFI周りの不具合だろうけれど、簡単な対策として、アルミすのこをPCの下に敷くことで、さらに熱がこもらない環境にした。結果、現象が軽減された。アルミすのこは「吸気の温度を下げてくれる」「吸気孔をふさがない」ので、サーマルスロットリングの頻度が低い場合に効果があることがある。

その後、同僚のPCでも「0.4GHz病」が頻発していることがわかったが、ほとんどのPCがディスプレイを閉じた状態*1で使用していた(映像は外部モニタに出力)。ノートPCの熱設計は、ディスプレイを開けること前提なので、基本的にディスプレイ閉めておくことは論外なのだ。まあ、これもディスプレイを開けるように指導することで現象が軽減したが、なぜかディスプレイを開けることをかたくなに拒否する連中がいて、ノートPCを裏返したりしていたようだ*2

しばらくすると、メーカーがUEFIで対応したようで、過熱が発生しなくなり、0.4GHz病は完全に解決したのであった、

さて、4か月ほど前に個人的に購入したノートPC「Dynabook P1ーS6PPーBL」でも0.4GHz病が発生するようになってしまった。まあ、間違いなくUEFIの問題だろうけど、この類の問題は解決に非常に時間がかかることはわかっているので、回避策をいろいろ使ってみた、

UEFIアップデート
現象悪化、より頻発するようになった

②ドライバ更新
Intelのドライバ(GPU)を更新してみるが現象変わらず

③アルミすのこ
本来ウサギを冷やすアルミすのこ。若干ましになるが、ほぼ意味がない。

④ファンの掃除
まったく意味がない。というよりもまだ4か月なので、ほこりがたまっていない。

⑤ノートPC冷却台
若干ましになるが、ほぼ意味がない。

⑥CPUのシリコングリース塗り替え1
症状悪化(AS-05A)

⑦CPUのシリコングリース塗り替え2
症状変わらず(ARCTIC MX-4)

⑧CPUのシリコングリース塗り替え3
症状若干改善(JP-DX1)

Windowsの電源オプション設定
CPUの使用率MAXを「90%」に変更

電源オプション

症状改善、ほぼ現象発生せず。

⑧と⑨の組み合わせで症状が劇的に改善することとなった。CPUを酷使するようなアプリは使用していないので、取りあえずUEFIが改善されるまでは、このままの設定にしておこうと思う。

とりあえず、0.4GHz病で悩んでいる方は、回避策として①~⑤を試したうえで、⑨をためしてみるといいんじゃないだろうか。とはいっても⑨の設定が可能かどうかはPCに依存する気がするので、できるかどうかはわからないけれども。

*1:クラムシェルモード

*2:PC裏の通風孔を最大限活用する方法

古いiPhoneを初期化した

会社支給のiPhone6Sを使用していたが、ようやく更新になった。

データを移行し、SIM入れ替え後、iPhoneのリセット機能にて「すべてのコンテンツと設定を消去」を行おうとすると、iPhoneの追跡情報(iPhoneを探すの端末情報)の削除が行えず、固まってしまった。

これは、おそらくApple側に登録されているiPhoneの情報(SIM有り)と現状の端末情報(SIM無し)が食い違うことから発生していると考えられる(完全に想像だけれども)。

この場合、一度Apple側の情報を更新してしまえばいいので、消去したい端末側でchrome等の適当なアプリケーションをインストールすればよい。Apple側の端末情報が更新されてしまえば、リセットできるようになった。

ものすごく抽象的な話

某氏に聞いた話が面白かった。

A社の某製品(以下製品A)の品質が非常に低いので、当社は取り扱いたくないのだが、当社が取り扱わなければならないB社の製品(以下製品B)が製品Aを必要としており、その関係上どうやっても当社で製品Aを取り扱わなくてはならない。

製品Bのメーカー内でも、製品Aの品質の悪さが問題となっているようで、今後どうしましょうかといった会議があって、それに参加したそうだ。製品Bは品質は悪いものの、対応している環境が多い。製品Bは「今時そんな環境使うなよ」という環境を使用しているため、製品A以外に選択肢がないのだそうだ。

当社的には結論は見えていて「製品Bの環境をスタンダードな環境に変更するしかない。」という根本的なものだ。
しかし、一般的に根本的な解決策は膨大な一時コストがかかる。まあ、案の定だましだましやっていくしかないという結論にたどり着いたようだ。

この話が指し示すのは、「根本的な問題を解決しない製品は足下を見られる」ということだ。

まず間違いなく、「根本的な解決をした場合のトータルコスト」と「だましだましやっていく場合のトータルコスト」を比較するような人はいない。もしいたとしても、比較して一時コストの支出を判断できるような立場にない。なので、だましだましやっていくしかないんだろうなと思ったのであった。

多分、課題に対して根本的な解決を選択できるような人は超人で、超人がこの世では富豪になっていくのであろう。

結論:
そういえば昔こんな話を島耕作で読んだなと思い検索したら、あっさり見つかったのでGoogleすごいな。
http://otoko3biki.blog17.fc2.com/blog-category-8.html

ストレージ暗号化の功罪

暗号化っていう技術がある。極単純化すると、データを一定のルールに基づいて変換し、「ルールを知る人にしか復元できない」ようにする技術だ。

ここでいうルールは「変換するアルゴリズム」だけの場合もあるけれど、アルゴリズムだけの場合、アルゴリズムがバレてしまえば「この世にある、このアルゴリズムを使用したすべての暗号データ」を復元できてしまう。よって「アルゴリズム」と「鍵となる値」に分けることが多い。こうしておけば鍵となる値を知る人にしかデータを復元できないのだ。

技術としての暗号化は、他人にデータを読み取られないためという防御としての機能だけれど、近年は攻撃手法としての暗号化が目立つようになってきている。ランサムウェアというコンピュータウィルスは「勝手にデータを暗号化し、暗号化ルールの買い取りを要求する」という手法で攻撃を行う。目から鱗というか、すごいことを考えるやつがいるものだと思ったのだった。

暗号化の危険性というのは確かにあって、暗号キーを紛失してしまうと、だれもデータを復元できなくなってしまう。ということは、暗号化キーの保存方法こそが、暗号化の主体者にとっての生命線になるはずだ。なので、そこの設計が悪いと、暗号化の不具合によって大量の被害者が出てしまう。

Windowsのストレージ暗号化機能はbitlockerという機能の一部で、これは本来Professional以上のエディションでなければ利用できなかった。しかし現在は、Homeエディションであっても暗号化だけはできるようになっているようだ。しかしHomeエディションでの暗号化には問題がある。「ほとんどの場合、ユーザが意図的に暗号化しているわけではない」ということだ。なぜならPCメーカーが勝手に暗号化しているから。意図的に暗号化していないので、ユーザは暗号化キーの存在を意識していない。意識していないので、いざ暗号化キーが必要になった際に、暗号化キーがどこにあるのかわからないのだ。

というわけで↓こんな問題が発生しているが、もちろんMSの問題であって、MSハゲろと思う。
https://forest.watch.impress.co.jp/docs/news/1433528.html
だけれどもPCメーカーは、せめて「初回起動時に暗号化の警告と説明くらい出せよ」と思う。今回はMSの不具合トリガーだからMSに責任追求できるかもしれないが、PC自体の不具合(TPM、ストレージ等の不具合)で複合できないような場合、PCメーカの責任でユーザデータロストすることになっちゃうよ、と。

自宅内無線LANを調査した

最近、自宅内の無線LANが非常に重い時がある。まあ、環境の変化*1が原因だろうと思い、調査してみることにした。

昔、Windows無線LAN調査といえばinSSIDerというツールが定番だったが、結構前に有償になっていた。まあ、有償であれば購入すればいいわけだが、一回だけ使用するツールにお金をかけられないなと思い、調べてみると、いまはWindowsWifiを調査するのであればWifi Analyzerというツールが一般的な様であった。Microsoft Storeからの入手なので安心感もある。
apps.microsoft.com

そんなわけでWifi Analyzerをインストールして実行してみる。
近所の2.4Ghz帯の無線LANは、結構すごいことになっていた。

2.4Ghz帯の無線LAN状態


チャンネルがまんべんなく使用されている。私は13chを使用しているので重複していないが*2、1chや11chは地獄のようだ。そして13CHはおそらく11chの影響を受けてしまう。なので、無線LANが遅いときは5Ghz帯に逃げるようなことをよく実施している。

5Ghz帯を確認してみたところ、やはり5Ghz帯は閑散としているが、チャンネルがかぶっていたのでW56規格に逃げてみたところ、以下のように100chに逃げることができた。

5Ghz帯

W56規格の無線LANは、屋外でも使用可能だ。これでいいかなと思ったが、まれに100chの別APを検出することがあるようだ。であるなら、2019年から使用できるようになった144chに移動しようと思ったが、なんと我が家の無線ルータは
①古くて144chに対応していない(笑)
②そもそも5Ghz帯はチャンネルが選択できない(規格しか選択できない)
ということが判明した。

ということで、無線ルータを買い替えることにした。
個人的に無線ルータは旧NECアクセステクニカ製しか信用していないので↓これを発注してみたのであった。
kakaku.com

まあ、無線LANが不調な時は
①端末再起動しろ
②無線ルータの電源をOFF/ONしろ
③無線ルータのファームウェアを更新しろ(めっちゃ重要)
④無線環境を調査しろ
⑤2.4GhZ帯で逃げられるなら逃げろ
⑥5Ghz帯に逃げろ
⑦無線ルータ買い替えろ

となりますのでご査収いただきますようよろしくお願いいたします。

*1:近所の無線LANとの衝突

*2:13chは国内使用可能だが海外で使用できないことが多い