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

TOPに戻る
▼Virus
Code REDウィルスとは?
┣ マイクロソフトの説明
┃ とIIS機能

┣ アプリケーションソフ
┃ トは機能の寄集め

┣ 呼出・復帰時に行わ
┃ れる事

┣ 復帰の場所を変え
┃ てみると・・

┣ 感染したCode R
┃ EDは何を行うか

┣ 異常データをサーバ
┃ ーのバッファに格納

┣ プロセッサの保護機
┃ 能

┣ ウィルスの場所を特
┃ 定する

┣ウィルスコードを実
┃ 行する

┣ CodeREDの正体1
┗ CodeREDの正体2

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




■デジタル用語辞典:

▲このページの上へ

■ Code REDの正体 Part2 ■

今回はCode REDの正体を明かす講座の第2回目です。
前回のウィルスコードを逆アセンブルにかけたものを紹介しま
す。

実はこのIIS機能のセキュリティホールは、eEye Digital
Security(サードアイデジタルセキュリティ)という会社により
発見されたものです。
この会社はセキュリティ関連のソフトを販売しているようです
が、ホームページ上で各種セキュリティホールの紹介も行って
います。

このホームページ上でCode REDの情報も入手出来、逆アセンブ
ルにかけた結果もダウンロード出来るようになっています。
(逆アセンブル結果は現在ダウンロードできないようです。)
(また、ウィルスが動作開始するまでの経緯は書かれていませ
ん。主にウィルスが動作開始した後の詳細情報が書かれてあり
ます。)

以下がeEye Digital Securityのホームページアドレスと各種
ダウンロードページのアドレスです。(全て英語)



eEye Digital Securityホーム
>>> http://www.eeye.com/

各種セキュリティホール紹介ページ
>>> http://www.eeye.com/html/Research/Advisories/index.html


Code RED解説ページ
>>> http://www.eeye.com/html/Research/Advisories/AL20010717.html


Code RED II解説ページ
>>> http://www.eeye.com/html/Research/Advisories/AL20010804.html


このメルマガは「初心者に分かり易く」というコンセプトが
ある為、アセンブリコードの解説は行いません。

アセンブリコードが多少でも分かる方は、初心者ではなく、
寧ろ高度な技術を持った方です。そういう方は自分でどんど
ん解析していって下さい。

高度な技術を持った方はこのメルマガでは見捨てます。^^;)

あくまで初心者の為の講座です。

と、偉そうな事を言っておいて、実は自分が分からないだけ
だったりして・・・。^^;)



Code REDウィルスに関する講座は今回で最後となりました。
この講座を通して一番言いたかった事があります。

実は前回の質問コーナーにあった事がすごく大切な事だった
のです。

特にプログラマーの方。

あるバッファの情報を別のバッファにコピーする時、そのバ
ッファがユーザーが入力するものだったり、インターネット
から送られてくるデータを格納する物である場合、必ず「長
さチェック」を行って下さい。

具体的に書くと分かりにくくなる&悪用する人が出てくる為、
今まで具体的に書く事は避けてきましたが、ここだけは具体
的に書かせてもらいます。

悪い例)
char a[10];
char b[20];
strcpy(a, b);

bという20個のバッファをaという10個しか入らないバ
ッファにコピーしています。
これだけでバッファオーバーフローが発生してしまいます。
このプログラムを実行するとプロセッサの保護機能が動作し、
強制終了されます。

この悪い例は次のように書き直すべきです。

良い例)
char a[10];
char b[20];
if (strlen(a) >= strlen(b)){
strcpy(a, b);
}


コピーを行う前に長さチェックを行っています。
たったこれだけでバッファオーバーフローは発生しなくなる
のです。ひいては、ウィルスに感染する可能性も非常に低く
なるのです。

さらに言うと、strcpy自体を使うべきではありません。
コピー処理を行う関数にはstrncpyという文字数を指定してコ
ピーしてくれる関数もあります。
こちらを使うように習慣付けるようにしましょう。

WINDOWSでプログラムを組む方は比較的初心者の方が多い為、
たったこれだけの事でも抜かしてしまう事が多いのです。

ユーザーが入力する、またはインターネットから送られてく
るデータの長さチェックを行うようにプログラムを作ってい
ない方。後でそのプログラムがウィルスに感染してしまった
ら、ウィルスの作成者と同じ位攻められるのは、他でもない
プログラムの作成者、あなたなのですよ。



参考文献:ハッカープログラミング大全
     http://www.eeye.com/



←前へ戻る    ▲このページの上へ