Gumblarの件、簡単な覚え書き

2010-01-08 01:41 / scribbles

昨今また流行しはじめた Zlkon とか GENO とか Gumblar と呼ばれる迷惑なものについて。多重レイヤーなり、それなりの詰め将棋的な突っ込みをされるときりがないわけですが、ひとまずざっと覚え書きです。

もちろん当社でも広告代理店さんから「それなりの」注意などが来ておりますが、会社によって色々です。「現在、サイトが汚染されていないことを証明し、制作体制の安全性も説明せよ」というのが最も重いタスクですが、これはまぁ昨年他社が制作していてやられた会社さんなので仕方ないでしょうね。かと思えば放置という代理店さんもありますし、色々です。特に、よく話題に上がってくるようになった「Gumblar」について、おおまかな説明は UnderForge of Lack で「Zilkon, Gumblar問題に関して」というページがあります。また、情報セキュリティの担当者であれば、本日 JPCERT から「Web サイト改ざん及びいわゆる Gumblar ウイルス感染拡大に関する注意喚起」というメールが配信されてきているはずです。

さてウェブサイトの確認ですが、手っ取り早くチェックしたいなら、C|Net でも言及されている Unmask parasites のサイトで簡易スキャナが公開されています。また、ローカルでは QuickTime や JRE、Flash Player のバージョンも最新版にしておく必要があるため、JVN のチェッカ(Java Web Start)などを利用しましょう(ちなみに Secunia のチェッカは Flash のバージョン検知も間違ってるしスキャンがいつまでたっても終わらないので無視)。あと、国内ではセキュアブレインさんの gred というサービスがあります。こちらはターゲットにしたページのリンク先も見てくれるので、更に細かいチェックができますね(*)。

* KDDIの調査によると、ウィルスに感染してページが改竄される事例は、トップページよりも寧ろ下の(深い)階層であることが多いようです。そのため、入力したページだけを検査していると思われるチェックツールを使う場合は、下の階層のページも含めて多数のページを確認する必要があります。

もう少し手間をかける場合は、まず運用・受託の対象サイトからソースを引っ張り上げましょう。自分のマシンが感染しているかもしれないと想定するなら、FTP アクセスではなく、いわゆるホームページ・ダウンロードツールとか、リンクをたどってくれるものがよいでしょう。僕は Firefox の ScapBook アドオンで、サイトのサイトマップのページからスタートしてリンクをたどってもらってダウンロードしました。ひとまず、ダウンロードするのは、.html, .htm, .css, .js のようなファイルです。.php はダウンロードしてもソースは見られませんから、動的にページを出力しているなら出力されたソースとして引っ張り上げればよいでしょう。ダウンロードツールの利点は、ディレクトリを再現せずに重複したファイルはリネームしてフラットに保存してくれるオプションが使えることです。逆に言うと、そういうオプションがないダウンロードツールは使いづらいので、ScrapBook なり Irvine なりを使いましょう。

ローカルにページを落としてきたら、それらに対して一斉にスキャンをかけます。というか、セキュリティソフトを使っていたら、ローカルへダウンロードしたり閲覧した時点でアラートが出ると思いますから、実はダウンロードできている時点で部分的にスキャンはしているわけですが、ひとまずスキャンの方法を検討しましょう。UnderForge of Lack と、Unmask parasites のブログをそれぞれ参照すると、ソースに忍び込ませてある不正なコードの特徴として幾つか分かります。

  • eval
  • unescape
  • base64

こういった文字列でソースを検索してみるのがよいでしょう。テキストエディタの grep 機能(僕が使っている xyzzy にはディレクトリを指定する grep 機能があります)で、マッチしたファイル名をリストアップするのもいいですし、PHP でファイル名を配列へ格納してから一つずつ readfile() して preg_match() するのもよいでしょう。

Unmask parasites のブログでは、典型的な Gumblar のコードを紹介して、unencode や function を含む文字列をスキャンするように推奨していますが、サイトで Google Analytics のコードをページのフッタなどに挿入している場合は、unencode でスキャンすると全てのページが引っかかってしまいます。また、”(function(” のような文字列も、jQuery のようなライブラリを使っていれば誰でも書く文字列なので、マッチさせる条件としては緩すぎるでしょう。幾つかの条件を論理演算子で組み合わせる方がよいのではないでしょうか。例えば、”eval” または “(function(” にマッチして、なおかつ “replace(/>/g” にマッチするとかです。それから、もう少し詳しくスキャンする場合は、base64 のようなエンコードをかけて危険なコードを難読化・隠蔽している場合があります。そのため、JavaScript 部分だけを抜き出して、化けようとお構いなく一律にデコードしてからスキャンするといった処置が必要でしょう。

もちろん、サイトで iframe を使っていないことが明白なら、iframe タグ(加えて、デコードして “iframe” という文字列になる JavaScript コード)を独立の判定条件としておくのが好ましいです。一部のブログパーツでは iframe を使っていますが、自分でサイドバーに追加したコードなら、検知されても「無いはずのコード」かどうかくらいは分かる筈です。

感染が判明した際の手順は、いちおう企業秘密ということになります。既に文書化して最大手の広告代理店さんにもレクチャーした内容と同じなので、このサイトでは公開できません。まぁ情報セキュリティの担当者を名乗っていて、サービスやサーバを停止させる職責あるいは決裁権があれば誰でもやることです。それから、上記は具体的に実施したことも含んで書いていますが、企業で情報セキュリティを担当している人たちが遂行している仕事の殆どは「防衛のために情報セキュリティマネジメントシステムを運用する」ことですから、この記事で書いている技術的なあれこれは、僕らの仕事の一部でしかありません。

で、どうすればいいのかという話ですが、「間違いだらけのGumblar対策」や「NCSIRTアドバイザリ」を参考にしてみると、以下のような対策が考えられます。

  • FTPアカウントのパスワードを頻繁に変更する。
  • FTP(ポート)アクセスの IP アドレスを制限する(リモート側にファイアーウォールを設置していない場合は、共用の安いものでもよいので導入を検討する)。
  • FTPアクセスするマシンを社内ネットワークで孤立させる(逆に言うと社内の他のマシンからの感染を防ぐ)。
  • 変更管理システムを導入してソースの変更ログを取る。
  • 全社レベルで OS, Office製品, ブラウザ, Adobe Reader, Adobe Flash Player, JRE, QuickTime, Skype, RealPlayer それから ActiveX ベースで動作する IE のプラグインなどを最新版にアップデートする。
  • セキュリティソフトを導入していなければ導入する。ウィルスの定義DBも最新にしておく。
  • 必要なスタッフ以外は、ブラウザの JavaScript や Flash の動作を無効にする。もちろん、Adobe Reader の JavaScript も無効にする。
  • Firefox を使っている場合は、WOT, RequestPolicy などのアドオンを導入する。
  • DNS サーバに OpenDNS を指定する。
  • FTP設定のパスワードを平文で保存するようなソフトは使用をやめる。
  • IE で Google 検索しないようにする。

ひとまずこれくらいは思いつきますが、他にも Wireshark などで通信を監視したり、正直言って「セキュリティ対策」と名のつくものを幾らでも挙げられるでしょう。

それから、このような話題でいつも上がってくるのが「どの対策が嘘でどれが正しいのか」というものです。ここぞとばかりにセキュリティ関連のサイトを論評する意見が出てきますので、ひとまず色々なところを検索して参考にするのもよいでしょう。実際、IT系のニューズサイトで書かれている記事の中にも、かなり酷いものがあります。

一般のユーザさんがセキュリティソフトすら入れていないという前提に立てば、あたかもセキュリティソフトが有効であるかのように「セキュリティソフトを使いましょう」と書くのは仕方ないのかもしれませんが、そういうユーザさんは JavaScript を有効にしたり FLASH サイトを見たいがために、自分で調べて有効にしてしまうかもしれません。であれば、セキュリティソフトを薦めると同時に「なぜセキュリティソフトを導入すべきなのか」を併記しなければならないはずです。もちろん、クソ Ajax やヘタレ DynamicHTML が大流行の昨今にあって、JavaScript を無効にしろとか FLASH なんて見られなくてもいいと言うのは困難ですが、リスクがあると分かって閲覧するのと、「セキュリティソフトや OS を更新している」という点だけで安心しきってしまいモラルハザードに陥るのとでは、やはり大きな開きがあると思います。

次に、「フォーティネット、Gumblarウイルスについての調査結果と7つの対策手順を公開」という記事を検討してみましょう。ウィルスに感染している恐れがある場合は、パスワードを盗まれないように以下の対策でパスワードを運用するように勧めています。

  • プレーンテキストでパスワードを保存しない
  • FTPSなどのセキュア通信を利用する
  • ウイルス対策ソフトの更新を行う
  • OSやアプリケーション、特にブラウザとプラグインを最新版に更新する
  • 作業終了後はログアウトする
  • ゲートウェイセキュリティを導入する
  • 信頼できないウェブサイトや人にパスワードを渡さない

企業では、ネットワーク接続が部署(あるいは規模によっては全社)で共有されていることが多いため、社内の誰かのマシンが知らずにウィルス感染していると、LAN あるいは Windows ワークグループを跨いで他のマシンにも感染が広がってしまう可能性があります。そもそもセグメンテーションすらしていないのはどうかと思われますが、ありていに言ってルータをコマンドラインで設定できるような専任のネットワークエンジニアがいる会社など、国内の「会社」と呼ばれる事業所の 0.1% 以下でしょう。したがって、ネットワーク環境を全社で共有しており、LAN 側でルータにぶら下がっている全てのマシンがお互いにネットワーク接続しうる状態を仮定する方が現実的です。

フォーティネットさんが掲げる7ヶ条の対策は、社内の誰のマシンが感染していても、全員が上記の手順を守っていれば、ファイル(PDFやウェブページ)をアップロードする際に、汚染されたコードが混入する確率を下げられるということです。そもそもブラウザで Flash や JavaScript を使っているサイトに訪れたり、知らない会社からメールで送られてくる営業資料の PDF を漫然と開いている限り、Gumblar に限らずウィルス感染を防ぐことはできません。それにしても、上記の7ヶ条を一般的な企業の会社員が読んで、そうする理由も含めて理解できるのでしょうか。機械的に上記の手順を社内に強制できる会社ならともかく、情報セキュリティに関しては個々の従業員が「なぜそうするのか」を理解していない限り、ただの意味不明なルールであればルール破りの動機付けを残してしまうでしょう。

一つめの「プレーンテキストでパスワードを保存しない」という項目は、FTP ソフトであればパスワードをレジストリに暗号化して保存するものを使うということです。プログラムと同じフォルダや My Documents 直下に .INI ファイルで保存するものなら、なおさら暗号化した状態で保存されていなければなりません。そして、社内の情報セキュリティ担当者が真っ先にやることは、社内で FTP ソフトを使っている人がどれだけおり、各人がそれぞれのソフトウェアについてパスワードの保存形式を知っているかどうか尋ねることです。ウェブサイトの制作・構築にかかわる企業の場合、FFFTP や FileZilla のようなフリーソフトとか NextFTP のようなシェアウェアを使っていることが多いと思います。

条件が許されるなら WinSCP のような ssh 接続のソフトを使うでしょうが、昨今ではナショナルクライアントでも月額数千円のレンタルサーバを使うていどの予算しかもっていないので、セキュア通信でファイルをアップロードすることは難しくなってきています。そのくせ、末端の制作プロダクションには「ウィルス感染しない社内体制であることを証明せよ」などと滅茶苦茶なことを言ってくるので(「お前が平文のメールに FTP パスワードを書いておいて、そんなことよく言うな」という広告代理店さんやナショナルクライアントの「自称ウェブ担当者」を相手に、我々は仕事をしています)、日ごろから自社の情報セキュリティについてチェックする項目を整えておくとよいでしょう。それを運用するのが ISMS/PMS 責任者の仕事でもあります。なお、それらのチェック項目は、いま述べたように従業員としての職務内容なので、当サイトのごとき個人サイトで開示することはできません。なんでもかんでも書いてるように見えると思いますが、いちおうコントロールはしてるんですよ(笑)。

コメントがあればどうぞ

monthly archives

yearly archives

archive

microformat (vCard)

KAWAMOTO Takayuki

Mr. KAWAMOTO Takayuki
also known as philsci
(birth day: Sep 20 1968)
live in Osaka city, Osaka, Japan.

promotions

accounts

banners