第4回 ウイルスはなぜウイルスなのか
株式会社フォティーンフォティ技術研究所
技術本部 ソフトウェア開発部 シニアソフトウェアエンジニア
永田哲也
2010/6/14
安全なプログラムとコンピュータウイルスとの違いは何か? スタティック分析エンジンは、そのリサーチから始まった(編集部)
スタティック分析――ウイルスはなぜウイルスなのか
フォティーンフォティ技術研究所 技術本部 ソフトウエア開発部 シニアソフトウエアエンジニア 永田哲也 |
熟練の刑事は群集の中からでも的確に不審人物をかぎ分けられるという――私が担当したスタティック分析エンジンは、正にこういった嗅ぎ分けをプログラムに対して行うものであった。従来のウイルス対策ソフトがパターンマッチングによってウイルスを発見するのに対し、yaraiではヒューリスティックという手法のみで、確実な証拠を得ずして審判を下す必要があるのだ。
ウイルスとそうでないプログラムには違いがあるのか。スタティック分析エンジンのリサーチはここから始まった。そして、このリサーチこそがすべてであった。ウイルスといえども、しょせんは人の手によって作られたプログラムである。ウイルスと一般的なプログラムは「何が違うのか」を徹底的にリサーチをする必要がある。
プロジェクトはゼロからスタートしたため、リサーチ開始当初、実は十分なウイルス検体が社に存在していなかった。手持ちの検体はWebサイトなどから入手できた数万種程度で、少々心もとない。しかしないものは仕方がない。ある分だけで、まずはリサーチを開始する。
ウイルスではないプログラム(正常系アプリケーション)は、Webで公開されているフリーソフトなどを中心に収集。こちらはすぐに数十万種類をそろえることができ、プロトタイプ開発のための分析にはちょうどよい量になった。
ウイルスがやりたいことが見えた
リサーチ開始から1カ月くらいだろうか、ウイルスの実行ファイルタイプの傾向や正常系アプリのファイルの傾向がつかめてきた。ウイルスに圧倒的に多いのは実行ファイルで、その割合は実に90%以上。また、ウイルスの特徴として、自身を解析し難くするために圧縮・暗号化してあるものが多いことも判明した。さらに、開発手法や開発ツール、プログラム構造、想定される動作など、ウイルス特有のさまざまな特徴が見られた。これら傾向や特徴をロジックに落とし込み、スタティック分析エンジンのプロトタイプ開発を進めて行った。
ちょうど同時期、社内の研究開発プロジェクトとして進んでいたWebマルウエアの自動収集システムが完成し、運用が開始された(このシステムは、のちに検出通知機能に関する改良が加えられ、「Origma+」としてリリースされた)。
【関連記事】 「あえて感染」してWeb感染型ウイルスを発見、FFR http://www.atmarkit.co.jp/news/200910/09/ffr.html |
これを機に、社内に膨大な数のウイルスが日々集まるようになった。さらに、世界中のさまざまなセキュリティ企業や研究機関とのパートナーシップが進行し、集まるウイルスの数が爆発的に増えていった。
この時点でスタティック分析エンジンのプロトタイプが完成したため、集まった数百万種類のウイルスに対し、スキャンを試みた。まったくの未分析検体ではあったが、結果90%程度の検出率となり、それまでの研究に一定の成果を確認することができた。
私は検出率のさらなる向上を目指すべく、膨大な数のウイルスコレクションをひたすら分析し続けた。何か特徴と思われる個所があれば即座にロジックを追加し、検出率に変化がないかチェックを繰り返した。
リサーチを進めていくうちに、ウイルスがやりたいことが少しずつ判ってきた。ウイルスの挙動にはある程度特徴があり、その挙動を可能にするプログラムの実装は、プログラムを静的に分析することである程度推測できる。また、ウイルス作者の意図や目的、技術レベルなどを垣間見ることもあった。
また、WinnyやShareなどのPtoPネットワークで大量に発生している暴露ウイルスの検出にも力を入れた。暴露ウイルスの特徴としてビデオファイルなどに偽装していることが多いが、偽装方法に特徴を持っているものも多く、全般的に簡単に検出できるロジックを作成することができた。
フォティーンフォティ技術研究所 オフィスの様子 |
1/2 |
Index | |
ウイルスはなぜウイルスなのか | |
Page1 スタティック分析――ウイルスはなぜウイルスなのか ウイルスがやりたいことが見えた |
|
Page2 誤検出問題――守る側にも変化が必要 |
セキュリティを形にする日本のエンジニアたち 連載インデックス |
- Windows起動前後にデバイスを守る工夫、ルートキットを防ぐ (2017/7/24)
Windows 10が備える多彩なセキュリティ対策機能を丸ごと理解するには、5つのスタックに分けて順に押さえていくことが早道だ。連載第1回は、Windows起動前の「デバイスの保護」とHyper-Vを用いたセキュリティ構成について紹介する。 - WannaCryがホンダやマクドにも。中学3年生が作ったランサムウェアの正体も話題に (2017/7/11)
2017年6月のセキュリティクラスタでは、「WannaCry」の残り火にやられたホンダや亜種に感染したマクドナルドに注目が集まった他、ランサムウェアを作成して配布した中学3年生、ランサムウェアに降伏してしまった韓国のホスティング企業など、5月に引き続きランサムウェアの話題が席巻していました。 - Recruit-CSIRTがマルウェアの「培養」用に内製した動的解析環境、その目的と工夫とは (2017/7/10)
代表的なマルウェア解析方法を紹介し、自社のみに影響があるマルウェアを「培養」するために構築した動的解析環境について解説する - 侵入されることを前提に考える――内部対策はログ管理から (2017/7/5)
人員リソースや予算の限られた中堅・中小企業にとって、大企業で導入されがちな、過剰に高機能で管理負荷の高いセキュリティ対策を施すのは現実的ではない。本連載では、中堅・中小企業が目指すべきセキュリティ対策の“現実解“を、特に標的型攻撃(APT:Advanced Persistent Threat)対策の観点から考える。
|
|