分かりやす〜い
コンピュータ技術情報

TOPに戻る
▼Network
Badtrans.Bウィルスとは?
┣ HTMLメールと
┃ MIMEヘッダ

┣ 5つのパート
┣ HTMLメールを改造する
┗ IEのバグ

Copyright(C) 2001-2002.ugpop. All rights reserved.




■デジタル用語辞典:

■ HTMLメールとMIMEヘッダ ■

皆さんは2002年4月のウィルス被害報告Top10をご覧にな
ったでしょうか?
まだ見ていないという方はこちらで参照できます。

この報告を見ると2位に未だにBadtrans-Bウィルスが入ってい
ます。
昨年の11月頃に流行ったウィルスなのですが対策を行なって
いない人がいる為、根強く生き残っているようです。

何故対策を行なっていないのでしょうか?

このウィルスが感染するのはWINDOWSを使用していて、かつイ
ンターネットエクスプローラを使っているパソコンのみに感染
します。
つまり典型的なパソコン初心者が使用している環境に最も感染
しやすいのです。しかもそのようなパソコン初心者が恐らく数
的には1番多いのです。

パソコン初心者はセキュリティに関してあまり関心が無い方が
多く、ウィルスに感染したとしても気付かずにそのまま使い続
けたりしてしまう場合もあるのです。

と言っても、流石にこれだけBadtrans-Bに対する警告がアナウ
ンスされている状況なので、被害状況は昨年12月の90%超
と比べると大分改善されてきてはいるようです。
2月の2位が未だにBadtrans-Bという事がアナウンスされ、更
に警戒が叫ばれた為、恐らく現在ではもっと改善されているの
ではないでしょうか。

という事でもう問題無いかと思いましたので公表する事にしま
す。



この講座ではBadtrans.Bウィルスがどのように感染、実行され
てしまうのか、その原理を具体的に解説します。

まず、Badtrans.Bウィルスというのは、CodeREDウィルス等と
は異なり、動作開始する為にバッファオーバーフローを利用し
たりなどの複雑な手順を踏みません。
非常に単純な動作原理です。

ちなみにCodeREDウィルスの動作原理について興味がある方は
こちらをご覧ください。
>>> academy001-001.htm

Badtrans.Bウィルスはマイクロソフト社のインターネットエク
スプローラに存在する「バグ」(プログラムの誤り)を利用し
て感染します。

皆さんはHTMLメールという物を利用した事があるでしょうか?
HTMLメールというのは、通常のテキストだけのメールと違い、
いろいろな絵が表示されたり、動画が流れたりするメールの事
です。

このHTMLメールをOutlook ExpressというWindowsに標準で入っ
ているメーラーを使用して見ると、内部でインターネットエク
スプローラのプログラムが起動されます。

このインターネットエクスプローラにバグが存在するのです。

では、どのようなバグなのか具体的に見てみましょう。
まず、HTMLメールに「readme.exe」というプログラムを添付し
て送信してみると、以下の様な文字列が送信されます。

ちょっと長いですがさらっと流し読みしてください。

−−↓ここから−−−−−−−−−−−−−−−−−−−−−−−−
Date: Tue, 26 Mar 2002 16:07:54 +0900
Message-Id: <xxxx.xxxx@xx.xx.co.jp>
From: xxxx <xxxx@xx.xx.co.jp>
Subject: xxxxxxxxxx
To: xxxx@xx.xx.com
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_000D_01C1ADAD.89FB9BC0"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4807.1700
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700
X-UIDL: H1=!!TmR!!Lf1"!f"b"!


This is a multi-part message in MIME format.

------=_NextPart_000_000D_01C1ADAD.89FB9BC0
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_000E_01C1ADAD.89FB9BC0"



------=_NextPart_001_000E_01C1ADAD.89FB9BC0
Content-Type: text/plain;
charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable
 こんにちは


------=_NextPart_001_000E_01C1ADAD.89FB9BC0
Content-Type: text/html;
charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-2022-jp">
<META content=3D"MSHTML 5.50.4807.2300" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#d8d0c8>
<DIV><FONT size=3D2>こんにちは</FONT></DIV></BODY></HTML>

------=_NextPart_001_000E_01C1ADAD.89FB9BC0--

------=_NextPart_000_000D_01C1ADAD.89FB9BC0
Content-Type: application/x-msdownload;
name="readme.exe"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="readme.exe"

TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAA4AAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4ga
ZGUuDQ0KJAAAAAAAAACTomL518MMqtfDDKrXwwyquNwHqtbDDKq43AaqzMMMqlTfA
−−↑ここまで−−−−−−−−−−−−−−−−−−−−−−−−


上の文字列の中で、最初の5行の説明を以下に示します。

Date: Tue, 26 Mar 2002 16:07:54 +0900←送信日時
Message-Id: <xxxx.xxxx@xx.xx.co.jp> ←メッセージID
From: xxxx <xxxx@xx.xx.co.jp>    ←送信元メールアドレス
Subject: xxxxxxxxxx         ←メールの題名
To: xxxx@xx.xx.com          ←送信先メールアドレス

これらに関しては今回の講座の趣旨とはあまり関係ない部分で
ある為、非常に簡単ですが以上で説明は終わります。

次に、以降の説明を分かりやすくする為に、これらの5行と、
更にメーラーに固有の情報、単なるバージョン情報だったりす
る部分があるので、それらの部分を省略した物を以下に示しま
す。


−−↓ここから−−−−−−−−−−−−−−−−−−−−−−−−
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_000D_01C1ADAD.89FB9BC0"



------=_NextPart_000_000D_01C1ADAD.89FB9BC0
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_000E_01C1ADAD.89FB9BC0"



------=_NextPart_001_000E_01C1ADAD.89FB9BC0
Content-Type: text/plain;
charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable
 こんにちは



------=_NextPart_001_000E_01C1ADAD.89FB9BC0
Content-Type: text/html;
charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-2022-jp">
<META content=3D"MSHTML 5.50.4807.2300" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#d8d0c8>
<DIV><FONT size=3D2>こんにちは</FONT></DIV></BODY></HTML>

------=_NextPart_001_000E_01C1ADAD.89FB9BC0--

------=_NextPart_000_000D_01C1ADAD.89FB9BC0
Content-Type: application/x-msdownload;
name="readme.exe"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="readme.exe"

TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAA4AAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4ga
ZGUuDQ0KJAAAAAAAAACTomL518MMqtfDDKrXwwyquNwHqtbDDKq43AaqzMMMqlTfA
−−↑ここまで−−−−−−−−−−−−−−−−−−−−−−−−


これらの文字列を見ていくと「Content-Type〜」となっている
部分がいくつかある事が分かると思います。
上の例の場合5つあります。
この「Content-Type〜」を「MIME(Multipurpose Internet Mail
Extensions encoding)ヘッダ」と言い、このヘッダがある部分
はそれぞれ別々のパートに分かれているという事を示していま
す。

ぱっと見を分かりやすくする為に、以下にパート毎に罫線で囲
んだ物を示します。


−−↓ここから−−−−−−−−−−−−−−−−−−−−−−−−
パート1
┌────────────────────────────┐
│Content-Type: multipart/mixed;←●MIMEヘッダ      │
│ boundary="----=_NextPart_000_000D_01C1ADAD.89FB9BC0" │
└────────────────────────────┘

パート2
┌────────────────────────────┐
│------=_NextPart_000_000D_01C1ADAD.89FB9BC0       │
│Content-Type: multipart/alternative;←●MIMEヘッダ   │
│ boundary="----=_NextPart_001_000E_01C1ADAD.89FB9BC0" │
└────────────────────────────┘

パート3
┌────────────────────────────┐
│------=_NextPart_001_000E_01C1ADAD.89FB9BC0       │
│Content-Type: text/plain; ←●MIMEヘッダ        │
│ charset="iso-2022-jp"                 │
│Content-Transfer-Encoding: quoted-printable       │
│ こんにちは                      │
└────────────────────────────┘

パート4
┌───────────────────────────────┐
│------=_NextPart_001_000E_01C1ADAD.89FB9BC0          │
│Content-Type: text/html;←●MIMEヘッダ            │
│ charset="iso-2022-jp"                    │
│Content-Transfer-Encoding: quoted-printable          │
│                               │
│<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">│
│<HTML><HEAD>                         │
│<META http-equiv=3DContent-Type content=3D"text/html; =    │
│charset=3Diso-2022-jp">                    │
│<META content=3D"MSHTML 5.50.4807.2300" name=3DGENERATOR>   │
│<STYLE></STYLE>                        │
│</HEAD>                            │
│<BODY bgColor=3D#d8d0c8>                   │
│<DIV><FONT size=3D2>こんにちは</FONT></DIV></BODY></HTML>   │
│                               │
│------=_NextPart_001_000E_01C1ADAD.89FB9BC0--         │
└───────────────────────────────┘

パート5
┌───────────────────────────────┐
│------=_NextPart_000_000D_01C1ADAD.89FB9BC0          │
│Content-Type: application/x-msdownload;←●MIMEヘッダ     │
│ name="readme.exe"                      │
│Content-Transfer-Encoding: base64               │
│Content-Disposition: attachment;               │
│ filename="readme.exe"                    │
│                               │
│TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA│
│AAAA4AAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW│
│ZGUuDQ0KJAAAAAAAAACTomL518MMqtfDDKrXwwyquNwHqtbDDKq43AaqzMMMql│
└───────────────────────────────┘
−−↑ここまで−−−−−−−−−−−−−−−−−−−−−−−−


パート毎に罫線で囲まれているので分かりやすいですよね?

「MIMEヘッダ」が5つあるので5つのパートに分かれている事
がお分かりいただけると思います。

それでは1番最初のパートから説明します。

パート1
┌────────────────────────────┐
│Content-Type: multipart/mixed;←●MIMEヘッダ      │
│ boundary="----=_NextPart_000_000D_01C1ADAD.89FB9BC0" │
└────────────────────────────┘

まず「boundary=・・・」となっている所を見てください。
この「boundary=・・・」の「・・・」の部分は単なるラベルで
す。単なるラベルなので本当は「ONAKAHETTA」とかでも良いの
ですが、この例の場合、メーラーが自動的に付けたラベルであ
る「----=_NextPart_000_000D_01C1ADAD.89FB9BC0」と、無愛
想なラベルが付けられています。

そしてこのラベルですが、実はパート2とパート5を示してい
ます。
パート2とパート5の先頭部分を見てみましょう。

パート2の先頭部分
┌────────────────────────────┐
│------=_NextPart_000_000D_01C1ADAD.89FB9BC0       │

パート5の先頭部分
┌───────────────────────────────┐
│------=_NextPart_000_000D_01C1ADAD.89FB9BC0          │


パート1のboundaryで指定されたラベルと同じ物ですね。
つまり、「パート1のMIMEヘッダはパート2とパート5につい
て説明していますよ。」という事を表しています。

それではパート1の「Content-Type」の部分を見てみましょう。

Content-Type: multipart/mixed;

となっています。
これは複数種類のパートが混合されていますよ。という意味で
す。
つまり「パート2とパート5は、複数の種類のContent-Typeが
混合(mix)していますよ。」という意味になります。

パート1について説明はこれだけです。

パート2以降も同じようにして見ていくとなんとなく分かると
思いますが、続きの説明は次回に行ないます。



         ▲このページの上へ    続きを読む→

▲このページの上へ

▲このページの上へ