分类:安全研究
众所周知,MD5是一种不安全的哈希函数,但是现在还是在广泛运用,而许多Coder也不清楚它的危害在哪。本文将介绍如何利用MD5的弱点来绕过SD的检测。
2004年,王小云教授等人提出了如何通过差分攻击碰撞出相同的MD5值,文章名称为:“Collisions for Hash Functions MD4, MD5, HAVAL-128 and RIPEMD. Xiaoyun Wang,D”,有兴趣的可以读一下原文,我这种数学渣是读不下去。
通过上述文章的算法,可以实现两个相同MD5值,但不同内容的正常程序与恶意程序。某些安全检测软件通过检测结果,得到正常的程序的MD5值,然后将正常程序的MD5值存到白名单内,以便下次扫描时加快扫描速度。
如图所示,这是两个相同MD5值,但不同SHA256值的程序(1为正常程序,test为恶意程序)
上传到某安全检测网站,得到1的检测结果
然后上传test文件,发现被1覆盖,
由此发现,test可以利用1的检测结果逃避安全检测软件的查杀。
产生相同MD5值的方法可以参考:https://www.mscs.dal.ca/~selinger/md5collision/