no-image

ウイルス対策ソフトの仕組みの種類をまとめた

使っているコンピュータを守るために使われるのがウイルス対策ソフトであるが、それがどういった仕組みのプラグラムが組まれているのか、つまりどんな風にしてウイルスの検知をしているのか気になったのでまとめる。

コンペア方式

こんぺあ、コンペア・・。
compareですな。

まっさらな状態のファイルと少し経ってからの状態のファイルの中身を隅々まで比較して、異なる点があるかどうかを探す手段のこと。

例えば、2017/2/28に作成したファイルを誰も編集していないのに、1年後の2018/2/28に比較して異なる点があれば、そのファイルにウイルスが感染した可能性が高いとわかるという感じだ。

だからこれは新しく誰かから受け取ったファイルにウイルスがあるかどうかってのはわからないし、比較するファイルの量が多ければ多いほど時間がかかってしまうというデメリットもある。

チェックサム方式

チェックサムっていうのはデータ列を整数値の列とみなして、これを何らかのルールに則って幾つかの数字に分割し、それら数の総和を検査要データとして付属させることで、もともとのデータが送信されたときなどに、誤りがないかどうかを確かめる誤り検出方式の一つである。
以下のサイトが簡単ですごくわかりやすい。

例えば

1234

ってデータを送るときにですね。

10(=1+2+3+4)

って値もくっつけてやるのです。
※この値自体を「チェックサム」と呼ぶこともあります。

データを受け取った方は自分で

1+2+3+4

を計算してみます。

この計算結果がチェックサムの値「10」と一致すれば「あぁ、多分このデータはあってるね」と判断できる訳です。
逆に計算結果の値がチェックサムの値と一致しなければ「あれ?このデータおかしくね?壊れてる?」と判断できますね。

このようなチェック方式が「チェックサム」です。

チェックサム (checksum)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
上のサイトでは10進数の4桁の数字を1桁ずつ足して行っているが、これが例えば16進数8bitずつだったりするルールがその場その場である。
これは誤り検出方式の中でもすごく単純なもので信頼性も低い。
しかし、原理が簡単で用意に実装できることや、計算コストも低いことから広く普及している誤り検出方式である。
wikiによれば単純計算で99.5%以上の精度はあるようだ。

よってこれもコンペア方式と同様に、以前の状態のチェックサムを利用して以後の状態のものを検査することでウイルス感染の可能性を調べることができる。
しかし、これも同様に受け取った時点で感染していればどうすることもできない。

パターンマッチング方式

これはウイルス対策ソフトの最も一般的なウイルス検出方法らしい。
上2つの新規ファイルが感染していたら対抗できないものとは違って、以前に発見されているシグニチャをデータベース化した定義ファイルに従って、対象のファイルに同一または類似しているシグニチャがないかどうかを確認し、あればウイルスに感染していると検出するものである。
シグニチャっていうのはここでは既知ウイルスの特徴パターンのデータのようなもののこと。
性能の良いウイルス対策ソフト、というか性能が良いというのを売りにしたいウイルス対策ソフトは巷でバンバン作られる新しいウイルスのシグネチャを集めてそれを新しいデータとしてそのソフトをアップデートしないといけないわけである。
だから、セキュリティ対策ソフトはよくアップデートされたり、「常に最新版にしましょう!」と言ってくるのだ。

逆に言えばその定義ファイルに登録されていないパターンのウイルスを検出することはできないので、新しいウイルスが登場してその存在が知られて、その情報が定義ファイルに登録されるまでは効果がないわけだ。

ヒューリスティック方式

heuristicというのは、経験則や試行錯誤など自身で問題解決を図ることを意味する。
ウイルスが取るであろう挙動を予め登録しておき、実行ファイルの挙動などを分析し、一般的なプログラムではあまり見られないようなおかしな挙動を探索し、ウイルスによるものだと類推する。
上のパターンマッチング方式とは違い、パターン照合をするわけではないので、未知のウイルスや亜種などにも対応することができる。
ただし、あくまでも類推なので誤検出する場合もあるし、暗号化されていたりすると検出に手こずる場合がある。

ビヘイビア方式

ビヘイビアってのはbehavior。動作とか挙動って意味ですね。
ヒューリスティック方式には前述したような静的ヒューリスティック方式と、仮想化環境を用意して、そこで不審なプログラムを実際に動作させて検出する動的ヒューリスティック方式というのがある。
この動的ヒューリスティック方式がビヘイビア方式とも呼ばれるのだ。
いま実行しているプログラムのビヘイビアを監視して、不審な処理を行っていないかを調べるもののこと。
不審な処理ってのは例えば、データの異常なほどに書き込んでたり、通信料が増加したりなど。
静的ヒューリスティック方式での検知が難しいステルス技術を使った暗号化型や多形態型、自己改変型のウイルスにも対応できる。

しかし、プログラムを実行してしまう危険性や、ウイルスが仮想環境を識別するとウイルスを正確に検出できなくなってしまうなどの問題がある。

参考文献

IPA 独立行政法人 情報処理推進機構:情報処理技術者試験:受験申込み:平成29年度春期案内書PDF
ウイルス対策ソフトの仕組み<情報倫理・セキュリティ<Web教材<木暮仁
チェックサムとは|サムチェック|checksum : 意味/定義 – IT用語辞典
用語解説辞典|【公式】NTTPC
セキュリティ・キーワード – パターン・マッチング:ITpro