Gumblarの件、簡単な覚書

河本孝之(KAWAMOTO Takayuki)

Contact: takayuki.kawamoto@markupdancing.net

ORCID iD iconORCID, Google Scholar, PhilPapers.

First appeared: 2010-02-15 23:15:35,
Modified: 2012-03-12 17:50:20,
Last modified: 2022-01-31 16:16:12.

[2022年の追記] 10年以上も前の記事を再公開する理由について説明する責任はあろう。もちろん、情報セキュリティ上の脆弱性にかかわる情報は、一時的に対策が適用されて被害を軽減できることも多いが、しかし過去に流行した攻撃のパターンや「ベクトル」どころか、過去に使われたツールがそのまま再び使えてしまう脆弱性が作りこまれてしまう場合もある。そのため、こうして再び過去の話題についても、それなりに業務として対処した事例でもあるし、参考までに公表し続ける意義もあろう。とりわけこの国は、情報を隠すことがセキュリティだという原始時代の思い込みをかかえたまま、ウェブ・コンテンツの制作や代理店業務どころか IT ベンチャーの起業やシステム開発にすらに携わっている人が過半を占める IT リテラシーの後進国だ。

[2012年の追記] 2010年1月8日と2010年2月15日に公開した文章を再掲載する。現在は一般論として支持していない「セキュリティ対策」も書いてあるが(例えば「パスワードを頻繁に変更する」というのは、マネジメントの観点から言うと、概して「他人に行わせる対策」としては逆効果になる場合が多い)、文章としてはそのまま掲載した。ただし、現在の自分が間違っていると思う対策をそのまま注釈もせずに再掲載するというのは道義に反していると思うので、いまの時点で「これは間違っていた」と思う点には [再掲載時の注釈] を追加してある。その他、細かい字句を修正したが本筋には大きな影響がない。

I

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

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

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

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

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

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

こういった文字列でソースを検索してみるのがよいでしょう。テキストエディタの 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 を使っていますが、自分でサイドバーに追加したコードなら、検知されても「無いはずのコード」かどうかくらいは分かる筈です。

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

*2012 [再掲載時の注釈] もちろん、僕らの仕事は防衛だけではなく、情報セキュリティ事象やインシデントが起きた場合の対処も含みます。不都合が起きないようにすることだけが「対策」であるという発想は、昨年の震災、津波災害、原発事故に際して「放射線ママ」と呼ばれる人たちの言動が示すように、「100%の安全」といったヒステリーを社会システムに求める結果となり、ちょうど教育において「親」を自称する連中があらゆる義務を教師に押し付けてきたのと同じ結果、つまり単なる全体の品質低下(自分の義務を果たしていない人間が権利の名において他人の足をひっぱる社会)をもたらすだけです。とは言え、上記で書いたように「発生した場合の対策」が「発生を防ぐための対策」よりも大きいわけではありません。

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

*2012-2 [再掲載時の注釈] 上記のリストで “*2012-2” と付けたものは、それぞれ現在は僕が支持しない対策です。個別に論じませんが、不十分であったり、特定の方法でしかなかったり、理由はいろいろあります。

*2022 [再掲載時の注釈] また、“*2022” として追加したものも、ほぼ security theatre(セキュリティごっこ)の類であり、IE 以外のブラウザを使おうが Google で検索しなかろうが、そのていどで対策になるような時代は終わっています。

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

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

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

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

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

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

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

*2022-2 [再掲載時の注釈] また、既に僕が在籍している会社でも5年以上は前から WinSCP で ssh を使ったファイル転送をするのが当たり前になっていますし、大規模なクライアントのサーバなら公開サーバへ直にファイルをアップロードしたりせずに、ステージングのサーバへ VPN 接続を確立したうえで scp over ssh にてファイルを転送してから、公開サーバへコンテンツをプッシュするという方式になっていると思います。

条件が許されるなら WinSCP のような ssh 接続のソフトを使うでしょうが、昨今ではナショナルクライアントでも月額数千円のレンタルサーバを使うていどの予算しかもっていないので、セキュア通信でファイルをアップロードすることは難しくなってきています*2022-3。そのくせ、末端の制作プロダクションには「ウィルス感染しない社内体制であることを証明せよ」などと悪魔の証明を要求してくるので、日ごろから自社の情報セキュリティについてチェックする項目を整えておくとよいでしょう。それを運用するのが情報セキュリティの責任者の仕事でもあります。なお、それらのチェック項目は、いま述べたように従業員としての職務内容なので、当サイトのような個人サイトで詳細を(いまのところ)開示することはできません。なんでもかんでも書いてるように見えると思いますが、いちおうここで書けることと書けないことは区別しています。

*2022-3 [再掲載時の注釈] この傾向は2022年でも同じですが、昨今はクラウドでサーバのインスタンスを安く建てて運用できるので、僕がサーバを構築して好きに設定できるので、皮肉なことにファイルのアップロードでは WinSCP を使うのが当たり前になっていたりします。もっとも、比例して私の人件費もバイト代以下なので、もうシステム関連で利益なんて出ません。ウェブ・コンテンツやオンライン・アプリケーションの制作・開発事業は、ほぼ事業継続性がないと思います。

冒頭に戻る

II

Gumblar をはじめとするウェブコンテンツとしての攻撃コードは、多くの場合に難読化されるようになりました。例えば WebSense には難読化された Gumblar のコードが挙げられています。なお、このブログ記事が2009年5月の公開であることにも着目すべきでしょう。日本では微笑ましいことに2010年が明けてから騒いでいるわけですが、既に昨年の3月には発見されており、やがて5月になると感染が拡大していたのです。加えて、Google Trends で検索した結果をご覧いただくとはっきりするように、Gumblar だけを取り上げてじゃんじゃか騒いでいるのは、殆ど日本人だけです(当サイトもその一つですが)。

(1) で述べた内容の繰り返しになりますが、Gumblar に感染しないようどうにかしたいという発想で情報セキュリティ対策を行うのは愚策です。世の中にはマルウェアやサイバー攻撃手法が数多くあって、常にどこかで誰かが Gumblar よりも強力な未知のウィルスに感染したり、あるいはどこかのサーバが攻撃を受けたりしています。一種類のマルウェアだけに対策を講じようとするのは、山の土砂崩れを手で持てる長さしかない鉄柵だけで防ごうとするようなものです。しばしば情報セキュリティの分野ではチェーンに喩えて語られる指針ですが、個人から企業や自治体に至るまで、それぞれの利用範囲で「情報セキュリティ全般」の対策を十分に講じておくことが大切でありましょう。

個人や企業あるいは自治体がそれぞれ十分な対策を採るべきだとは言っても、自宅や事業所のルータとして高価なアプライアンス機器を何十万~何億もかけて実装すべきだと言っているわけではありません。寧ろそのような出来合いの「ソリューション」をむやみやたらと求める「シャブ漬け体質」では、会社に数千万の機器を導入したところで、会社以外の場所ではセルフ・マネジメントができなくなってしまい、モラルハザードに至るかもしれません。情報セキュリティの目的は、天下り式のマネジメント規格やブラックボックスの機器を単に「導入すること」ではなく、あくまでも個人あるいは各団体の経営陣から新入社員やアルバイトに至るまで、情報セキュリティに対する自覚を「醸成すること」にあると思うのです。

ダニエル・デネットの言い回しを借りるなら、情報セキュリティに「スカイフック」はありません。自治体の助成金が目当てで単なるカスタム Linux を売りさばいているだけのセキュリティ企業、あるいはマイナーな国内雑誌に投稿する論文の材料として暇つぶしに作っているような「ソリューション」をショウケースに飾っているだけの、大企業の名前を頭にぶら下げたどこかの子会社だけでなく、セキュリティソフトを専門に開発している企業、あるいは情報セキュリティ専門のコンサルタントに至るまで、かような人々が我々を何の心配もない安全圏に引っ張り上げてくれるなどというのは幻想でしかありません。我々は、このような企業も含めて、みんなであれやこれやと試行錯誤しながら一歩ずつ進んでいるというイメージの方が正しいでしょう。ときとして我々を先導している(と、何の根拠もなく言い立てるだけの IT コンサルも虫けらのようにいるわけですが)人々すら、草むらを出た瞬間に谷底へ落ちたり(笑)、毒蛇に襲われたりするわけです。

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook