安全なオンラインバックアップを考える

Webインフラ関連のトレンド
ウェブホスティング企業で起こったランサムウェア騒動
 今回のトピックは、オンラインバックアップについてです。このトピックでコラムを書こうと思ったのは、韓国のウェブホスティング企業NAYANAのランサムウェア騒動がきっかけです。ことの顛末について、WEBの情報をもとに簡単にまとめてみます。

 NAYANAは現地時間6月10日に攻撃を受けたと、韓国のインターネット振興院(KISA)に通報しています。Trend Microによると、ハッカー集団がランサムウェア「Erebus」を使用してNAYANAが管理していたLinuxサーバ153台を攻撃し、約3400に及ぶウェブサイトのデータを暗号化し身代金を要求したとしています。


出典:http://blog.trendmicro.com/trendlabs-security-intelligence/erebus-resurfaces-as-linux-ransomware/

 Erebus(エレボス)は、ギリシャ神話に登場する冥界(死者がよみの国(Hades)に入る前に通る暗黒界)の擬人神で、Chaos(カオス)の息子と言われています。イギリス海軍(The Royal Navy)の対Uボート戦に投入されたモニター艦の名称にもなっています(帆船時代からの由緒ある艦名だそうです)。


出典:http://uboat.net/allies/warships/ship/5461.html

 ネットに公開されている情報によると、NAYANAでは2011年に更新が終了したLinux OS(2.64.24.2)が各種のサーバで利用されていました。さらに、NAYANAのWebサイトでは「Apacheバージョン1.3.36」と「PHPバージョン5.1.4」が更新されずに利用されていました。脆弱性が指摘されている古いOSやアプリケーションをそのまま利用していたことになり、さまざまな脆弱性が存在していた可能性があります。

 NAYANAの事例で注目すべきポイントは、オリジンサーバが乗っ取られただけでなく、バックアップを含めてデータを復元できない状況に陥ってしまったということです。つまり定期的にとっているバックアップがオンラインバックアップだと、バックアップ先も攻撃の対象に含まれる可能性があるわけです。

 「WannaCry」、「SAMSAM」、「PETYA」、「HDDCryptor」のようなランサムウェアは、攻撃先に合わせてどんどん亜種が誕生してきます。どうすれば同じような被害に合わずに済むのでしょうか?そこで今回は、オンラインバックアップをいかに安全にとるかを考えてみたいと思います。
安全にオンラインバックアップってできるの?
 何も考えずにオンラインバックアップの手法を考えると、OSで用意されているバックアップコマンド(tar/dump)を使ってバックアップを取る方法、ファイルシステム全体をMirror(ミラー)する方法、ファイルコピー(ftp/scp)や同期のためのコマンド(rsync)を転用する方法、バージョン管理ツール(git/rcs)を利用する方法などが考えられます。また、オンラインストレージにファイルをコピーする単純な方法も一般的に利用されています。これらの方法では、いずれもオリジンサーバとバックアップサーバとの間でネットワーク接続性が必要で、マルウェアの感染ルートとしてもこのネットワークが使われてしまいます。
 そのためマルウェアの感染を防止する上で、単純にネットワークを接続するだけでは不十分であるということになります。オンラインバックアップの安全性を確保する上で「最小権限の原則」を適用し、できるだけ単機能のサービスとして実装するようにしましょう。次に、安全性を確保するための設定について考えてみます。
安全性を確保するための設定
◆オンラインバックアップの記録先へのアクセスを制限する
 ・IPフィルタリングの機能などを用いて、バックアップで利用するプロトコル(監視のプロトコル)以外の通信を制限する
 ・アクセス可能な時間を制限する方法とも組み合わせが可能
 ・コマンドの実行権を厳しく設定する(あるいはコマンドそのものを改変して実行制限を加えます)

◆書き換えが行えないファイルシステムを利用する
 ・HDFSなどのライトワンスファイルシステムを利用する方法
 ・UnionFSなどを利用して過去のファイルはreadonlyでマウントし、最新差分だけをファイルシステム的に透過的に取り扱う方法
 ・書き込み完了後に書き込み禁止にする(ファイルシステム脆弱性には対応できないことがある)
 ・バージョニングファイルシステムやジャーナルファイルシステムを利用する
 ・過去バージョンを記録しておくことで復元できるようにする
 ・過去のバージョンを改変されないように運用する必要がある

 擬似的に書き換えが行えないファイルシステムを作成する方法として、書き込み先のファイルシステムのディレクトリプロテクションで-w-の設定をする方法があります。この方法をとれば、ファイルエントリの書き込みはできるものの、書き込んだファイル名の確認ができなくなるため、バックアップとして記録するファイル名の一部を乱数化するなどの工夫をすることで、上書きやファイルの削除を防止することが可能です。バージョニングファイルシステムやシャドーコピーなどと組み合わせると安全性はかなり高まります。

 書き込むファイルシステム(ディレクトリ単位)とバックアップを参照するファイルシステム(ファイルシステム単位)を分離して、参照するファイルシステムはreadonlyでマウントする方法も考えられます。UnionFSなどと組み合わせると、オリジンサーバ側では普通のファイルシステムへの書き込みのように見えるので、この方法も運用的には楽に思えます。

◆L3化してセグメント分離を徹底する
 ・攻撃者による事前調査、感染、被害の拡大を軽減するために、ネットワークのセグメント化を行い、必要に応じてエンドポイントでのプロトコルフィルタやIPフィルタの設定を行う
 ・ネットワークセグメントを通過する攻撃を監視するためにIPSやFirewallを導入する

◆記録先を複数にする
 ・同じOSアーキテクチャにしない(異なる攻撃手法が必要になる)
 ・記録方法を記録先ごとに変更する(同時に改変する困難さを上げる)

 実際の攻撃を検知する必要もあります。特にログの記録システムもオンラインバックアップと同様の手法で改変されない仕組みを実装する必要があるでしょう。
最後に
 オンラインバックアップは最後の砦です。サーバとエンドポイントを最新の状態に保つ(必要なパッチはきちんと適用する)、ネットワークの定期的な監視、侵入や感染の兆候を検出するためのイベントログの解析など、普段からセキュリティに対する意識・対応を徹底しておくことは言うまでもありません。

 安心してインターネットで情報共有・情報提供を行うために、RASIS(Reliability Availability Serviceability Integrity Security)を確保したWEBサービスおよびオンラインバックアップの方法を考えてみてください。手に負えない場合には、アクセリアにおまかせを!

■関連ページ
【アクセリアのサービス一覧】
 ・サービスNAVI

小林 和真

アクセリア株式会社 取締役
奈良先端科学技術大学院大学 客員教授
慶應義塾大学政策メディア研究科 特任教授
制御システムセキュリティセンター 顧問
情報通信研究機構 短時間研究員
ファットウェア株式会社 代表取締役社長