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以降も同じようにして見ていくとなんとなく分かると
思いますが、続きの説明は次回に行ないます。
▲このページの上へ 続きを読む→