这是在 MD5 中创建病毒签名的好方法还是在 SHA1 或 SHA256 中更好,为什么?
文件的 MD5 散列是创建防病毒程序的有效方法吗?
逆向工程
安全
散列函数
恶意软件
2021-07-08 16:42:07
4个回答
从长远来看不是。
当新的恶意样本在野外出现时,文件的某些部分的散列仍然用于快速推送数据更新,以尽快保护客户端。
但是现在的恶意软件是非常多态的,所以散列很容易被打败。
样本的详细分析通常需要数周或数月的时间,之后将进行更通用/启发式的检测,可以覆盖之前通过哈希检测到的样本,因此哈希签名会逐渐从数据库中删除。
单独使用任何形式的散列都不是开发 AV 解决方案的好方法。虽然哈希对于通过网络查找已知样本的实例很有用,但启发式和行为 AV 系统更有可能保护主机免受感染。
这正是防病毒程序的工作原理。嗯,一部分。请检查这个答案。
问题是,MD5 散列虽然很快,但已被破坏并且已经产生了冲突(不同的输入产生相同的 MD5 散列)。SHA1 和 SHA256 更好,因为它更难(但可能,如上一个答案所述)找到冲突,即找到产生相同 SHA 哈希的不同文件。
最后,用于恶意软件检测的散列是一种非常糟糕的方法,因为它很容易被击败(多态恶意软件、恶意软件构建器等)。尽管如果您只是在探索事物,那么是的,这是创建防病毒程序的有效方法。
其它你可能感兴趣的问题