※注意:本記事での「シグネチャコード」はセキュリティ分野のものを指します。
この記事を読んでほしい人
- 応用情報の勉強でシグネチャコードに疑問を持った人
- ウイルス対策ソフトウェアの基礎的な仕組みを知りたい人
はじめに
応用情報の勉強中に↓
初めて聞いた言葉だったので、生成AIなどを使って調べました。
(改めて)シグネチャコードって何?
シグネチャコード(シグネチャ)はマルウェアを特定するためのパターンのことです。具体的には、マルウェアの「プログラムの特定部分」だったり「ファイル全体のハッシュ値」だったりします。
例えるなら、マルウェアの「指紋」や「DNA」のようなものです。他の正常なファイルとは異なる独特の特徴を持っています。
どうやってマルウェアを検出するか
大きく2つのステップに分かれています。
- シグネチャデータベースの作成
- ファイルスキャン
シグネチャデータベースの作成
まず、セキュリティ研究者や分析者が、新たなマルウェアを解析し、シグネチャコードを抽出します。これらをデータベースに登録し、我々のPCに定期的に配信されます。
警察が犯罪者の顔写真や指紋をデータベースに登録するようなものです。新しい犯罪者(マルウェア)が見つかるたびに、その顔写真(シグネチャ)が登録され、我々のPCに送られてきます。
なお、シグネチャデータベースはパターンファイルとも呼ばれます。
ファイルスキャン
ウイルス対策ソフトウェアは、我々のPCにあるファイルをスキャンします。この際に、ファイルのデータがシグネチャデータベース内のシグネチャと一致するか照合します。
-
一致した場合:
そのファイルはマルウェアと判断され、警告が示されます。 -
一致しない場合:
既知のマルウェアとは判断されず、正常なファイルとして扱われます。
シグネチャコードによる検出の弱点
すでにピンときた方もいるかもしれませんが、この方法では既知のマルウェアしか検出できません。まだ発見されていない新種のマルウェア(ゼロデイマルウェア)には対応できないという弱点があります。
現在のウイルス対策ソフトウェアでは、シグネチャコードによる検出に加えて、ファイルの挙動からマルウェアを判断するヒューリスティック分析や振る舞い検知などの技術も組み合わせています。
最後に
生成AIに例えてもらいながら勉強すると、理解度がグッと上がりますね!
