マルウェア解析の現場から-05 「This program…」 | トレンドマイクロ セキュリティ ブログ (ウイルス解析担当者による Trend Micro Security Blog)(情報元のブックマーク数)

面白いなぁ、「This program cannot be run in DOS mode.」の文字の一部を変数として使ってるとか。

ところが今回解析した「ダウンローダ」に分類できるマルウェア「TROJ_CUTWAIL.SML」がダウンロードした実行ファイルデータでは、この部分の文字列が次のようになっていました(図3参照)。

マルウェア解析の現場から-05 「This program…」 | トレンドマイクロ セキュリティブログ

このコードでは、ダウンロードした実行ファイルデータの81(0×51)バイト目の文字が「z」であるかどうかを調べ、その結果をあるフラグにセットしています。そしてフラグが立っている場合(「z」であった場合)は、以前に実行したプロセスが実行中か(OpenProcess API でオープンできるか)を調べ、実行状態にない場合(オープンできない場合)はその実行ファイルデータを再度実行します。つまり、「This」の「s」の部分を、ダウンロードしたファイルの常時起動要否を示すフラグとして利用しているのです。

マルウェア解析の現場から-05 「This program…」 | トレンドマイクロ セキュリティブログ

Windows上でPEファイルを実行しても MS-DOSスタブプログラムは利用される領域ではないので、本来のプログラムの動作への影響はありません。仮に MS-DOS環境で実行すると改変後の文字列が表示されますが、特にエラー発生するといった支障があるわけでもありません。ではこのように MS-DOSスタブ内の文字列を改変してフラグとして利用しているという事実から我々は何を学ぶことができるのでしょうか。これも結論から述べると、特に新しい学びはなさそうです。このことがすぐに新しいマルウェア検知手法の開発や解析の効率化に結びつくわけではありません。またこのような未使用領域など動作に影響のない部分を改変して意味を持たせる手法自体も、ファイル感染型ウイルスがマーカー(感染済みであることを示す印)として利用するなど、特別に新しいことではありません。現時点では「だから、なに?」と聞かれると、返す言葉は思いつきません。強いて言うなら、「なぜこのようにしたのか」というところから、マルウェア作者のプロファイリングにつながる可能性が考えられる程度でしょうか。

マルウェア解析の現場から-05 「This program…」 | トレンドマイクロ セキュリティブログ

screenshot