一般的にマルウェアの検知は、データベースに登録されたウイルス定義やシグネチャを用いて行われます。アンチウイルスなどのセキュリティ製品は、不審なファイルがこのウイルスデータベースに合致しないかを調べることで、そのファイルが良いか悪いかを判定します。データベースに合致しないファイルは正常と判断し、合致するファイルは悪意があるものと判定します。これは、高度なブラックリストのようなものです。
ところがマルウェアの作者は、こういったセキュリティ製品の仕組みを理解した上で、セキュリティ製品が検知できないようにマルウェアを作ります。アンダーグラウンドの世界では、これを「Fully UnDetectable(FUD)」と呼んでいます。FUDとは、アンチウイルス製品に検知されないことを作者が保証しているマルウェアのことです。
悪意のあるプログラムがFUDであることを保証するために、マルウェアの作者はいくつかの異なる技術を活用します。まず、暗号化ソフトウェアを使ってマルウェアを暗号化します。これにより、アンチウイルスソリューションがファイルの内部をスキャンすることが困難になります。またファイルを暗号化することで、ウイルスデータベースに存在しないユニークなファイルになります。次にマルウェア作者は、マルウェア検査を行う「VirusTotal」と同じ機能を持つ闇サービスを使って、作成したマルウェアをウイルス対策プログラムでスキャンします。彼らはユニークなマルウェアのコピーをランダムに数千個も作成し、セキュリティ製品をバイパスできるものだけを残します。そして最後に、ファイルレス技術やゼロデイエクスプロイトなどの手法を用いて、攻撃が成功する確率を高めます。
ウイルス攻撃の数の多さが、この問題をさらに悪化させています。専門家の中には、1日に100万個以上のユニークなマルウェアファイルが新たにリリースされているという人もおり、これは1秒間に約12個に相当します。またマルウェアの増加に伴い、ウイルス定義ファイルのサイズも大きくなります。多くのアンチウイルスベンダーは、データベースから古いシグネチャを削除しています。中には、6ヶ月以上前の非アクティブなシグネチャをすべて削除しているベンダーもあります。古いウイルスが検知されなくなると、マルウェアの作者は古いウイルスを再び配信します。
また、データベースのアップデート頻度も大幅に増加しています。80年代には、月に1回のアップデートが一般的でした。それが90年代になると、週に1回になりました。現在では、ほとんどのベンダーが1日に数回アップデートを行っています。中には、5分ごとにアップデートを行う製品もあります。
しかし、アップデートの頻度が高くなったとはいえ、ベンダーが新しいウイルスを発見し、分類し、データベースに追加するまでには時間がかかります。そのため追加までに4時間から48時間の遅延が発生するため、アンチウイルスが検知できるようになる前にマルウェアがデバイスに感染してしまう可能性があります。通常のウイルスであればこの遅れは許容範囲内かもしれませんが、ランサムウェアの場合は、インストールされるとすぐにファイルの暗号化を開始するため、致命的な影響を与える可能性があります。アンチウイルスがランサムウェアを検知して削除したとしても、被害がすでに拡大している可能性があります。