FFFTP騒動とセキュリティ
- Jan 31 2010
昨日Twitterで話題になっていたので触れてみます。あらかじめ断っておきますが、僕は専門家じゃないですし、一般的なインターネットユーザーと同程度の知識しか持っていません。ですから、これから書くことは、僕がこの件を受けて調べたレポートみたいなものだと思ってください。
事の発端は、以下のような記事が公開されたことです。
FFFTPは非常に優れたフリーのFTPクライアントでした。本当に感謝いたします。 しかし、 Version 1.96d [2008/9/23]を最後に更新停止されており、レジストリに ID/Password/接続先 を書き込むため、現在 8080系のマルウェアによって、感染と同時に窃取される危険性があります。 これまでの使用実績に感謝しつつ、ソフトをアンインストールし、以下のレジストリを必ず消去してください
8080系のマルウェアというのは、最近ニュースなどで見かける「ガンブラー」というウィルスのことです。これに感染した場合、レジストリに記録されているFTPサーバーのID/Password/接続先 を悪意ある第三者に渡してしまう危険性があり、それによりウェブサイト改ざんなどの危険性もあります。
こういう記事を受けて、ほとんどのFFFTPユーザーが取る行動は、他のクライアントソフトに乗り換えることでしょう。しかし、パスワードを盗まれる危険性というのは、なにもFFFTPに限った場合ではありません。
ほとんどのFTPクライアントソフトには、パスワードを保存する機能があります。FFFTPの場合、それをレジストリに保存しますし、FileZillaの場合はxmlファイルとして保存します。つまり、その場所を突き止められると盗み出されてしまうということです。更にいえば、そういう危険性というのは、なにもFTPクライアントソフトに限ったものではありません。
そんな状況の中、なぜFTPクライアントが、そのなかでもFFFTPが話題に上ったのかというと、実際にガンブラーによる改ざんが確認されたからです。FFFTPは日本にかなりの利用者がいるので狙われたのでしょう。猛威をふるっているマルウェアに狙われているという点で、FFFTPの危険度は他よりもかなり高いものになります。
しかし、マルウェアは日々進化していますから、今後FFFTP以外が狙われる可能性がありますし、既に狙われているかもしれません。大事なのは、FTPクライアントソフトにパスワードを保存しないこと、そして、より安全な通信方式を使うことです。(もちろん、マルウェアに感染しないための対策も大切)
FTPという方式は、通信するときに情報を暗号化せずにそのまま送信します。つまり、その通信情報を何らかの方法で取得されてしまうと、IDやらパスワードやらがバレバレになってしまいます。マルウェアに話を戻すと、FTPによる通信を監視し、通信があった場合にそれを盗み出すという動作も考えられます。
これを改善したのが、SFTPやFTPS、SCPといった通信方式です。(ちなみに、FFFTPはこのどれにも対応していません。そのため、今回の件が起こる前から乗り換えを勧められていました)このなかのどれを使えばいいかは、利用しているサーバーの対応状況によって違います。参考までに、僕の場合、利用しているXREAが(FTP以外では)FTPSにしか対応していなかったので、必然的にこの方法を採ることになりました。また、これらの方式に対応しているクライアントソフトとしては、FileZillaやWinSCPが人気のようです。
さて、また少し話を戻しましょう。先に述べたとおり、保存したパスワードが盗まれてしまうリスクはFTPクライアントに限ったものではありません。どう対策すればいいのでしょうか。答えは簡単、コンピュータにパスワードを保存しなければいいのです。そうすれば、セキュアな通信でやりとりされている限り、パスワードが漏れることはありません。(ログイン情報を管理しているサーバーが陥没したら漏れますが)
とはいえ、ウェブで利用するサービスごとにパスワードを記憶することは大変ですし、サービスを利用するごとに手動で入力するのも相当な手間です。現実的にはかなり厳しい選択になるでしょう。そうなると、どこかに妥協点を見いださなければいけません。セキュリティが低下するリスクと、利便性を得られるメリットを天秤にかけて、リスクを受け入れられる点を探すのです。パスワード管理ソフトは信じる、でもウェブブラウザは信じない、みたいに。
あるいは、共通のパスワードを使うことにして、それを記憶(紙にメモ)しておくというのも考えられます。もちろん、ただ同じパスワードを使うだけだと、あるサービスのパスワードで他のサービスにログインできる、という危険がありますから、一工夫しなくてはいけません。たとえば、サービス固有の情報(ドメインとか)の2桁目を共通パスワードの8桁目に挿入、3桁目を2桁目に挿入、といったルールを作り、それも一緒に記憶するのです。万全を期すなら、(そして記憶力に自信があるなら)そういうルールを複数組み合わせましょう。先ほどのルールに加えて、.jpドメインなら5桁目に”Y”を、.comドメインなら9桁目に”e”を、みたいに。そうすれば、それぞれ違うパスワードを使うことになり、一つのパスワードが漏れると芋づる式に他のサービスのパスワードもバレる、という危険をある程度回避できます。
ただし、いずれにせよ、キーロガーといわれる、キーボードからの入力を監視、記憶するプログラムが仕組まれていた場合、そこからパスワードが漏洩する危険性はあります。これに対する対策としては、セキュリティボードとよばれるソフトウェアキーボードを使う方法があります。毎回これで入力するのが面倒なら、やっぱりパスワード管理ソフトを使うことにして、そのマスターパスワードをセキュリティボードで入力する、というあたりが妥協点でしょうか。(ソフトウェアキーボードを標準搭載したパスワード管理ソフトってないんでしょうかね?)
長々と書きましたが、今回の件は僕がセキュリティについて考える良いきっかけになりました。もちろんまだ知識はぜんぜん足りませんし、この記事にもいくつも穴があるでしょうから、そういう箇所を見つけたら、ぜひ指摘をお願いします。


「まさか俺はハックされないだろ」的な考えが一番いいぜ。
僕もそんな感じだったんですけどね。去年、わりと酷いマルウェアに感染して再インストールを余儀なくされたので、ちょっと気をつけるようになりました。