What's News
- 2010/01/29
コンピュータTips/OpenSolarisOS/Linux UserのためのOpenSolaris入門 - Linux UserのためのOpenSolaris入門
- 2010/01/24
日記/2010-01-24 - 2010年1月30日、OpenSolaris 勉強会 for びぎなーずで、(私が)Linuxユーザ向けのセッションやることにしました。
- 2009/01/16
日記/2009-01-16 - このブログへの接続がなかなか出来ない方へ。IPv6にリーチできない値が入っていませんか?
- 2008/09/01
コンピュータTips/OpenSolarisOS/IPS(pkgコマンド)の利用方法 - OpenSolarisのIPS、pkgコマンドの利用方法。逆引き的なTips集。一覧。
最近の日記 †
Gumblar(ガンブラー)を考えてみる †
そしてftpは生き残る †
少し話題には乗り遅れた感がありますが、
とはいえ、そのものについて今更説明するのも面倒なので、Gumblarについてはこちらを参照の程。
さて、所々でGumblarが流行ったからといって、ftpを使ってるから悪いんだという旨の書き込みを見かけます。sftpを使えばいいとか、なんとか。ちょっとそれは局所を見過ぎているかなと思います。
先ず1つめに、そもそもなぜWEB会社がftpを使っているのかを考えてみます。
私が2001年に会社を設立した頃、ftpはその時期ですでに過去のプロトコルだと思っていました。理由はNATです。ftpはポートを複数使うこともあって、厳密にルータらしくftpをNAT越えさせるのは困難です。最近のルータは頑張っていて、IPの層を越えてftpらしき物はパケットの中をみるのでほとんど問題はないのですが、元々の役割的にはIPの中身を開いてアレコレするのはルータの役割ではないはずです。
加えて、ftpのようにパスワードを暗号化せずにで流す感覚が考えられない。VPNが張れないなら、最低でもOne Time Password、あるいはftpsでいきたいところです。これとて流れるコンテンツは暗号化されていませんから不十分です。
それに比べるとsshはとても便利で、シェルログインできるだけでなく、scp、sftpすればファイルをセキュアに転送ができます。これさえ使えば、ftpなんて過去のプロトコルはいらないだろうと思っていたのです。
ところが、この仕事を始めて同じくWEBデザイン会社とつきあい始めてびっくり。WEB屋さんは、「ftpのIDとパスワードを教えてください」と聞いてくるのです。
なぜでしょう?
WEB会社には得意とするジャンルによって、様々な人材がいます。とりわけデザイン力が強いところは、むしろ紙媒体(パンフレット)をセットに売り込むところも多く、そう言うところにはSEがいないことがあります。そもそもWEB制作会社の商流は次の様に流れていきます。
- 広告代理店が受託する。
- WEB会社がデザインなどを作る
- WEB会社がお気に入りのWEBホスティングやレンタルサーバを選び、サイトのアップロードまでおこなう
当然、システムが入ったりすると、ウチの様な会社がデザイン会社とパートナーシップをとって、サーバ周りまで色々包括的にやることが多いのですが、WEB系の商流の王道は大体こんな感じで、これはそれなりにうまくできた物で、大変良く機能します。
問題があるとすれば、クライアントの担当者からサーバという物が見えていないことです。クライアントの担当者が「セキュリティしっかりしてね」と広告代理店に言ったところで、実際問題技術の問題は分かるはずがないわけで、せいぜいWEB会社に「お客様はセキュリティを強く気にされてます」と、念を押すだけです。これは仕事の役割としては、正しい。
ぶっちゃけ、情報セキュリティってのは、 「「全体の」情報の入と出を押さえること」だと思います。
広告代理店さんにとっては、なにせ信用できる良いWEB会社とパートナーシップを取っているはずですから。 そしてWEB会社はセキュリティっていっても、 「○○という大手レンタルサーバ会社の月々3000円のWEBホスティングのプランにセキュリティも万全って書いてあるし」・・・等々。
WEBホスティング会社からすると、そりゃあ月々3000円のプランであっても、「セ キュリティは危ないです」って書くわけないですよね(笑)均一的なサービスで、 どこまでがセキュリティなのかは、WEBホスティング会社は知りませんしね。
WEB会社も、この時勢では割と予算ギリギリのほとんどデザイン費だけでやってるから、 そんなことまで面倒見切れないのでしょう。言われたって予算が出なければ仕事ではありません。もちろん、安いサーバ使った方が自分の利益も増えます。当然のことです。
念のためいうと、この商流に異を唱えているわけではありません。 それぞれが互いの得意としてる能力を信じ合って、割合うまく回るスキームなのです。
難しいのは、自分がやってる仕事に使う道具がどのような仕組みでできてるのか、 本当に分からない時代になってきたということです。 はさみが何で切れるのか全く分からないのに、切れるという事実だけで裁縫屋をしないとならない時代なのですよ。
このような商流で、上場してたりする結構大手のWEBサイトが作られていたりするのです。もし問題が起き始めたら、話が大きくなるのは、誰でもわかりますよね?
あなたが発注側のWEB担当者ならば、もう少し隅々まで気をつかって予算を使うという逃げ道もあるわけですが・・・。
次の1面を。
多くのWEBデザイン会社に人気の、WEBデザインツールとしてAdobeのDreamweaverがあります。このツールが非常に良くできていて、デザイナーじゃないですが、実は私も使っています。 かつてはコンペディタとして、Adobe GoLiveがありましたが、AdobeとMacromediaの合併で事実上消えゆく運命です。他にもIBMのホームページビルダーがあるのですが、どちらかというとWEBデザイン会社ではなくて、個人の方に人気がありますよね。 最近はMicrosoftがExpression WEBをやろうとしてますけど、牙城を崩すのはなかなか難しいでしょう(これについては下記のどこかで触れます)。
さて、Dreamweaverはftpでサイトのアップロード(+デプロイ)までします。優れているのは、「テンプレート」と言う名前のデザインフレームや、ライブラリ(サイト上の色々な箇所に使われているもの)の保存。それどころか、またソースコードレポジトリの様に、チェックイン、チェックアウトができ、過去のページのいくつかが保存できたりします。
これらはftpでアップロードされ、WEBホスティング用サーバのどこかにftp経由で置かれます。何処に置くかは概ね決まってるので、特別な.htaccessを書かないと、直打ちでそれらが丸見えのサイトも当然あります。 一応念のために言っておくと、これらをテストサーバとして別の所に置くことが、推奨されていますが、上の商流からどうなってるかは想像してください(笑)
さすがに、全部本番機に置くのもまずいだろう?ってことで、自分用のテストサーバを用意し、そこに全てを入れて作成した後、必要なファイルだけを本番機にアップロードを行います。じゃあどうやって、本番機にファイルをアップするの?と言うことになったとき、ffftpなどのftpソフトをつかうことになるのですね。それでこの問題に繋がると。
結局デザイナーにとってのDreamweaverとは、エンジニアでいう
- Eclipse / NetBeans / emacs / vim ...
- cvs / svn / git / hg ...
- diff / windiff ...
- rsync / scp
- Maven ...
- 等々
を、兼ねているのです。凄いソフトです。
エンジニアはプロジェクトを完遂するために、数千、数万ものキーを叩きます。だから少しでもキータイプ数が少なくなるように、様々なツールを工夫して選んでいます。
これと同じように、デザイナはプロジェクトを完遂するために、数千、数万のマウスをクリックしていて、少しでもマウスの移動量を減らしたりクリック数を減らすためにツールを工夫して、選びます。その結果、市場構造が選んだ物が、Dreamweaverだったりするわけです。
つまりDreamweaverのこの機能を明日から使うなというのは、明日からemacs使うのやめてねとか、明日からEclipse使わないでねとか、明日からrsync使わないでねとか、明日からgit使わないでねという程にインパクトがあることなのです。
このように、多ジャンルの人が使ってるソフトのインパクトを理解せずに、「○○使ってるから悪いんだよ」と言ってしまうとすると、解決策を出さなすぎであり、局所的になってしまうのではないでしょうか?*1
今回、「ftp(ffftp)を使うなと言う言葉」に踊らされたかわいそうなWEBデザイナーは多いと思いますが、実際問題、下記のような報告も出ています。
PC内のFTPアカウント情報を盗み出すマルウェア、JPCERT/CCが注意喚起
この中のソフト一覧だけ引用すると、下記のソフトがGumblar、その亜種のマルウェアに狙われたそうです。
- ALFTP 5.2 beta1
- BulletPloof FTP Client 2009.72.0.64
- EmFTP 2.02.2
- FFFTP 1.96d
- FileZilla 3.3.1
- FlashFXP 3.6
- Frigate 3.36
- FTP Commander 8
- FTP Navigator 7.77
- FTP Now 2.6.93
- FTP Rush 1.1b
- SmartFTP 4.0.1072.0
- Total Commander 7.50a
- UltraFXP 1.07
- WinSCP 4.2.5
今回、偶々、ガンブラーやその亜種で、著名なftpクライアント達が狙われました。
仮にftpを使わなくなったとしても、この問題回避は一時的です。
パスワードを自分のパソコンに保存する限り、「難読化のレベルがどの程度か?」という話でしかないのです。あとは、マルウェアを作る側の気合いと根性だけです。貴方のftpソフトが、貴方のかわりにサーバにパスワードを送信する以上、貴方のパソコンに感染したマルウェアがftpソフトのかわりにパスワードをもらうことは可能です。
また今回、たまたまDreamweaverは含まれておりませんでした。Dreamweaverでftpを使うユーザは多いと思いますが、狙われたらDreamweaverのsftp機能*2を使っても同じことです。
脅威は去っていないし、一言で片づけられる問題ではない、WEB業界にとって恐ろしい問題です。
Gumblarに、どう向き合うべきか? †
嘘みたいな話で恐縮なんですが、たまたま去年の8月頃、私が某銀行さんに提案したシステムでは、このようなマルウェアを予見していました。
何故かというと、ここ最近「サーバ側にウィルス除去ソフトを入れること」というRFPが、公共案件では出てくることがあり(これはこれで良いことではあると思いますが)、その意味を(WEB会社から)聞かれることが多かった為です。
実は良く読むとほとんどWindows Serverを使う場合のことを指していることが大半なのですが、UNIXのWEB系サーバにウィルス除去ソフトを入れる価値は無いわけではなくて、ファイルアップロード機能があるサイトではウィルス除去ソフトがあると良いですし、WEB制作会社が感染してサイトにインパクトを与える物をアップロードする可能性からも、防御できます。
上記で記すような商流を知っていたので、あり得ない話ではないなあということで提案に盛り込んだわけです。
仕組みはありきたりでシンプルです。
- テストサーバ兼ステージングサーバを用意する
- WEBデザイナーはDreamweaver等でファイルをアップロードする。
- アップロードするファイルに対してウィルス除去ソフトを走らせる。
- safeだった場合、シグネチャを作る。
- シグネチャと共に、ステージングサーバからWEBサーバにコピーする。
- シグネチャを元に、WEBサーバで改竄検知をする。
まあこんな感じです。
実際に私がした提案は、Solaris10のコンテナ機能とZFSを使っていたので、加えて、
- 仮想サーバの外からウィルススキャンの実行
- ZFSによるスナップショットの作成
- 仮想サーバの外からシグネチャの作成(Solaris10の標準機能BART)
- 仮想サーバの外から公開用の仮想サーバへ同期
- WEBサーバのコンテンツエリアはリードオンリーファイルシステムにし、仮想サーバにマウントする。
という形で設計をしました。具体的にはもっと細かい所まで踏み込んで設計したのですが、Solaris10の固有機能を使うと、本当にセキュアなWEBサーバの構築ができます。
この方法であれば、今回のGumblarやその亜種にような脅威から、WEBサイトだけは守ることができます。ただ、残念ながらZEROデイではない場合のみです。
今回は予算の問題ではなく別の問題で流れたのですが、 普通の案件でぶち当たる問題は、「このようなステージングサーバを用意を、一体誰の予算でやるのか?」ということです。
クライアントか?WEB制作会社か?それともレンタルサーバ業者か?
クライアントで無いとすれば、それは共用になります。
共用であるなら、このようなものを共用で管理しても良いのか?という問題も残ります。
脅威は終わらない †
結果として業界が狙われたような形になった今回の騒動ですが、脅威はやはり続くとは思います。上記の様な方法で逃げることはできても、別の脅威はのこります。
これを書いてる最中も、こういうマルウェアが出回ったら、業界で首を吊る人が出てきてもおかしくないなーとか、色々考えるとホントに恐ろしいんですよ。
それにしても、陰鬱とした時代になってきたものです。
zfsでシンプロビジョニングの夢は見れるのか? †
たまには、うちみたいな業者じゃないと分からない様なネタをだしてみます。
下記は、とあるものうち、無作為にざっくりと抜粋したものです。
| CREATION | VOLSIZE | USED |
| Thu Apr 23 20:12 2009 | 20G | 2.95G |
| Wed Mar 18 15:25 2009 | 32G | 4.59G |
| Wed Mar 18 15:25 2009 | 32G | 21.1G |
| Wed Mar 18 15:25 2009 | 32G | 4.59G |
| Wed Mar 18 15:25 2009 | 32G | 18.4G |
| Wed Mar 18 15:26 2009 | 32G | 16.0G |
| Wed Mar 18 15:26 2009 | 32G | 2.84G |
| Thu Mar 19 5:49 2009 | 32G | 1.71G |
| Wed Mar 25 15:38 2009 | 32G | 22.7G |
| Thu Apr 16 5:23 2009 | 20G | 3.21G |
| Fri Nov 27 1:40 2009 | 10G | 1.87G |
| Thu Sep 10 3:01 2009 | 20G | 11.3G |
| Tue Sep 15 11:26 2009 | 10G | 1.13G |
| Mon Sep 28 20:58 2009 | 20G | 9.78G |
| Tue Oct 20 15:00 2009 | 10G | 175M |
| Fri Nov 6 17:58 2009 | 10G | 589M |
| Fri Nov 6 17:59 2009 | 40G | 3.69G |
| Fri Nov 6 17:59 2009 | 40G | 3.13G |
| Fri Nov 6 18:07 2009 | 40G | 1.14G |
| Thu Jan 21 10:01 2010 | 32G | 8.13G |
| Thu Jan 21 10:01 2010 | 32G | 1.96G |
| Thu Jan 21 10:01 2010 | 32G | 239M |
| Thu Jan 21 10:01 2010 | 32G | 9.75G |
| Thu Nov 12 19:44 2009 | 10G | 1.90G |
| Wed Aug 5 19:02 2009 | 10G | 1.80G |
| Thu Nov 26 21:07 2009 | 10G | 1.49G |
| Wed Nov 11 18:19 2009 | 10G | 2.27G |
| Fri Mar 13 6:20 2009 | 2.00G | 2.00G |
シンプロビジョニングとは、こういうものです。リンク先でお茶を濁します(笑)
要するに、ホストへ見せかけだけ大きなディスクだと設定しておき、実際には利用してる量のみしか実ディスクを使っていないという技です。この方法だと、本当に足りなくなってから増設すればいいとかそう言う話しになるのだけれども、実際問題みんなが同時に突然100%つかったらどうするね? 問題とか、そう言う琴もあって恐ろしさがあります。
そしてこれは、iSCSIのターゲット(ディスク)側の出力です。
イニシエータ(ホスト)側に見せているボリュームサイズ(VOLSIZE)に比べて、実利用量(USED)とはこんな物です。
個々はユニークなディスクで、中にはOpenSolarisのコンテナとユーザエリアがあります。仮の名前を付けるのも面倒だったので、無作為に抽出したものを作成日毎に並べてみました。
実際のボリューム作成方法の例は、
zfs create -s -V 32GB -o shareiscsi=on pool名
と言う感じ。
またホスト側は、切り出されたディスクをiSCSI経由でマウントして「ZFS」で利用しるので、当然一番気になるのは「Copy On Write」の部分だと思います。
Copy On Writeでは、利用している部分が徐々に変わっていくため、実際にシンプロビジョニングしても、使っているウチにすぐに一周してしまったりして、MAXまで利用してしまうのではないかと考えておりました。だから実際にはシンプロビジョニングはあまり効果は無いのかなと思っていたのですが、こうやって1年弱経って見てみると、思ったよりも利用率は少ないようで、Internetサーバはこんな物なのかなぁと思います。
ということで、業者らしい、たまには役に立つ情報を 
このBlogの顧客層からは、全然お客さんがないようで(汗)むしろ社内でプライベートクラウド作ってみるような層の方が多いのかしら。
たまにはお客さんになってくださいな(笑)
本日のOpenSolaris勉強会 †
結構たくさんの方にお集まり頂き、ありがとうございました。
もう少し違いについて書きたかったのですけどね。
今回のレジュメ、資料はこちらのページをご覧くださいませ。
OpenSolaris勉強会 †
自分としたことが、リンクを張っておくのを忘れてました
参加表明忘れてた方はお早めに・・・
しっしかし・・・ †
いっ色がぁ・・・・・!
添付ファイル:
*1 それこそ、以前私がBlogで書いた話に繋がります。目的がただ人に下げたいだけで、本来の解決(実利)をとろうとしていないからです
*2 実は公開鍵に対応していないのですが・・・




