奈良先端科学技術大学院大学 客員教授・慶應義塾大学政策メディア研究科 特任教授の小林 和真氏による、コラム連載を開始。 https://www.accelia.net/column/trend/
「ウェブホスティング企業で起こったランサムウェア騒動」
今回のトピックは、オンラインバックアップについてです。このトピックでコラムを書こうと思ったのは、韓国のウェブホスティング企業NAYANAのランサムウェア騒動がきっかけです。ことの顛末について、WEBの情報をもとに簡単にまとめてみます。
NAYANAは現地時間6月10日に攻撃を受けたと、韓国のインターネット振興院(KISA)に通報しています。Trend Microによると、ハッカー集団がランサムウェア「Erebus」を使用してNAYANAが管理していたLinuxサーバ153台を攻撃し、約3400に及ぶウェブサイトのデータを暗号化し身代金を要求したとしています。
Erebus(エレボス)は、ギリシャ神話に登場する冥界(死者がよみの国(Hades)に入る前に通る暗黒界)の擬人神で、Chaos(カオス)の息子と言われています。イギリス海軍(The Royal Navy)の対Uボート戦に投入されたモニター艦の名称にもなっています(帆船時代からの由緒ある艦名だそうです)。
ネットに公開されている情報によると、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アーキテクチャにしない(異なる攻撃手法が必要になる)
・記録方法を記録先ごとに変更する(同時に改変する困難さを上げる)
実際の攻撃を検知する必要もあります。特にログの記録システムもオンラインバックアップと同様の手法で改変されない仕組みを実装する必要があるでしょう。
・・・ここから先は、アクセリア株式会社で公開中のコラム本編でご覧ください。
本編では、挿絵を交えて詳しく説明しています。
リンク
【小林 和真氏のコラム】
・第1回:米国の家電展示会「CES」で見えてきたCDNとAI、IoTのつながりとは?リンク
・第2回:世界最大の放送に関する総合展示会「NAB」に見る技術のトレンドリンク
・第3回:WEBサービスの安定供給に欠かせないセキュリティ対策とはリンク
・第4回:Interop Tokyo 2017レポートリンク
御社のプレスリリース・イベント情報を登録するには、ZDNet Japan企業情報センターサービスへのお申し込みをいただく必要がございます。詳しくは以下のページをご覧ください。