シグニチャスキャンに基づいてマルウェア検出を作成しています。私が理解したように、主なアイデアは、スキャンしたファイルの署名をブラックリストの署名と比較することです。 ここで、署名はある種のMD5ハッシュであることがわかりましたが、ファイルからどのように取得できますか?また、他の種類の署名はありますか?
2 に答える
MD5 ハッシュは、ファイルの内容のダイジェストです。MD5 ハッシュのブラックリストがある場合、はい、それらに対してファイルを比較できます。これは、マルウェアをスキャンするための非常に単純で壊れやすい方法だと思いますが、これは間違いなく出発点です。MD5 ハッシュを比較すると、2 つのファイルが正確に同一である場合にのみ認識されるため、これは脆弱です。悪意のあるファイルにランダム性が導入されると、このスキャン方法は役に立たなくなります。
ほとんどの言語には、MD5 ハッシュを生成する標準的な方法があります。C#、VB、および VC++ はMD5クラスを使用でき、PHP にはハッシュ関数 (最初の引数として「MD5」を使用) があり、Java にはMessageDigestなどがあります。
この目的で使用できるハッシュ アルゴリズムは他にも多数あります。MD5 は特定のアプリケーションでは不足していることが示されているため、SHA アルゴリズムはこれらのアプリケーションでは非常に標準的になりつつあります。このアプリケーションでは、悪意のある攻撃が一致を作成しようとすることは予想されませんが、一致を防止しようとするのとは逆に、MD5 を含む任意のハッシュ標準アルゴリズムは、誤検出が起こらないことを合理的に保証するのに十分である必要があります。見られる。
Java でメッセージを掘り下げるには、 MessageDigestを使用できます。javadoc によると、MD5、SHA-1、および SHA-256 をサポートしています。