この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
最近、安価なVPS(Virtual Private Server)が大量に出回っているのは、読者も知っているだろう。このVPSを使うにあたり、様々な問題が出ていることを知っているだろうか。今回は、そうした、VPSの問題点やセキュリティ上の不備について考えてみたいと思う。
■ 国内のVPS について
まず、国内のVPS事情についてだ。国内には、様々な事業者がVPSを提供している。中には、月々わずか500円足らずで借りることのできるVPSすら存在する。また、VPSでは足らずに、クラウドサービスを利用しているユーザもいる。これらのVPSでは、ディスク容量やCPUの数、スレッド数、メモリサイズなどで、事細かにサービス品目が異なる。
では、実際にいくつかのサービスについてみてみよう。
まずは、先ほど示したワンコインVPSだ。中で稼働しているOSは、Centos 5.5 だ。このサービスでは、同一サーバ上に、数多くのユーザを利用していると推測され、非常に動作が重いのが特徴だ。そこで、処理能力を計測すべく、下記のようなコマンドを実行してみた。
何はともかく、ディスクへの書き込みが異様に重いと感じる。
time sudo yum update
real 6m15.104s
user 0m5.041s
sys 0m0.683s
同様の環境を、比較的高価な別のVPSに用意し、同じ time sudo yum update を実行した結果は、下記だ。このように、非常に安価なvpsは、サービスレベルに難があるように感じられる。
time sudo yum updat
real 1m23.131s
user 0m33.218s
sys 0m19.095s
■ 踏み台に対する考え方
さて、お次はこれらのvpsを利用していると、セキュリティ上の問題がどのように発生しているかをみてみよう。
まず、高速かつ、安定したvpsを設置している同一のセグメントから、大量のsshアタックがやってきた。
49.212.2.xxx (www20109u.xxxxx.ne.jp): 6110 times
49.212.47.xxx (www31424u.xxxxx.ne.jp): 59 times
49.212.97.xxx (www39397u.xxxxx.ne.jp): 1576 times
これらは、すべて同一の事業者が提供しているvpsからのssh atackだ。みてわかるとおり、その数たるや尋常な数字ではない。では、こうした攻撃がなぜ発生しているか?それについて、ひもといていこう。
まず、こうしたssh atack は、管理者が適切な管理をしていないから発生していることは言うまでもない。非常に安価であり、大量にドメインを抱えたり、情報を配信したとしても、誰からも文句を言われない。そう、利用者はレンタルサーバ屋である場合がある。その証拠に、ssh atack をしているIPアドレスにアクセスすると、レンタルサーバ屋の画面が表示されることがままある。次に、何も考えずに、単なるファイル置き場として、お気楽に考えている、素人が設置しているケースだ。この場合は、apache がデフォルト画面であることや、ssh へのアカウントログインで、root が有効であったり、デフォルトパスワードがそのまま有効であることからも、素人がお気楽に使っていると推測される。
こうしたことから、同一のネットワークから、ssh atack が繰り返し行われている状況を踏まえると、比較的簡単にサーバが踏まれてる(侵入されている)事が多いことに気づかされる。
これに対し、安価なワンコインVPSでは、外部からのssh atack によって、システム全体が高負荷になることを恐れ、vpsが提供されて間もない頃に、早々に、このssh atack の回避がシステムアップデートによって行われた。通常、sshのポートは、22/tcpであるが、これを異なるポートへアップデートしたのである。
皮肉なことに、システムが不安定、かつ、遅いワンコインが、現状以上に遅く、不安定になることを恐れ、ssh ポートを変更した。これに対し、システムが安定稼働している比較的高価なシステムにおいては、現在もなお、22/tcp で稼働し、同一ネットワークからssh atackの攻撃にさらされている現状がある。
■ 攻撃に遭わないための対策
では、これらの攻撃に遭わないためには、どうすれば良いのだろうか?
ひとつは、安価なvpsサービスが行ったように、port を変更すればよいように思われる。しかしながら、実際には変更されたportが決まっているのであれば、その決まったportに対して攻撃を行うように変更すれば、同様に攻撃が行われるため、単なるportの変更だけでは、対応のしようがない。そこで、単なるportの変更だけではなく、ssh の鍵交換を設定すれば、仮にport番号がばれようとも、関係なくなる。もし、大量にssh atackを受けて困っているのであれば、こうした鍵交換も一つの方法として、考えてみてはいかがだろうか。
では、こうした動きを、攻撃者視点で考えてみよう。
■ 攻撃者はこう考えているよ
攻撃者は、特定のvpsサービスにログインできれば、その中の情報を調べる。portの開放状態を調べ、traceroute などのネットワークのコマンドを用いて、ネットワークの状態を調べるだろう。ここから、ネットワークの全体像、少なくともセグメントを見極めることができる。こうして、次に行うのは、ssh の辞書アタックだ。同一セグメントに何台のvpsがあるかはわからないが、しつこく辞書アタックを繰り返して行えば、そのうちの1つや2つ、簡単に侵入できるだろう。当然として、ヒットしたパスワードとIDの組み合わせは、他の同一サービス上の、別セグメントに対しても有効であることが多い。
■ まとめ
サーバ毎に管理者IDとパスワードを変更する事は重要なことだ。
快適で安価なvpsはそれだけ、周りに不慣れな管理者が居ることにも繋がる。vpsを借りるなら、相応の管理体制をとり、攻撃者から自分のvpsを確実に守れるようになって欲しい。