云安全技术公司OpenDNS近日宣布开发出了一款利用自然语言处理技术的工具原型NLPRank,该工具可实时自动识别出恶意域名(钓鱼网站)以及对高价值目标的攻击。
所谓的恶意(抢注)域名通常用于钓鱼网站,即域名的拼写往往跟我们熟悉的知名网站比较类似。网络罪犯抢注了这些域名后会把网站做得跟知名网站十分类似,一旦用户想访问那些知名网站时输错个别字母(如G00gle.com)就会进入到钓鱼网站。由于界面十分相似,有的用户并不会意识到,于是继续输入个人账户密码等敏感信息从而导致隐私泄露。有的网络黑客则利用用户注重安全的心理,通过各种方式发送一些进行安全更新的提示,而所提供的链接地址采用了跟知名网站貌似很有关系的域名(如adobeupdates[.]com),诱骗用户进入。
传统上,安全软件的解决方案是事后处理。因为域名太多了,恶意域名是无法事先收集完整的,所以通常只有在用户受害后报告才会识别出某些域名是有威胁的。不过OpenDNS的工程师正是利用了这类恶意域名起码刻意与知名网站类似的特点,采用了以往被应用于生物信息和数据挖掘的自然语言处理技术,结合ASN映射和赋权、WHOIS数据模式以及HTML标签分析再加上OpenDNS的全球网络数据,开发出了可实时识别恶意域名的工具原型NLPRank。
OpenDNS的研究人员Jeremiah O Connor首先分析了DarkHotel以及Mandiant APT1两个网络犯罪集团的攻击手段和数据,发现他们的手段都比较类似,就是钓鱼攻击。而且在拿到这些犯罪集团的数据之后,他发现这些钓鱼网站采用的域名都遵循着某些类似的模式,于是萌生了做NLPRank的想法。
这种实时的检测模型包括了一个经常被用来参考做钓鱼网站的流行合法域名字典库(如“java”、“gmail”、“adobe”等),然后将其与钓鱼活动常见的英语单词(如“install”、“update”、“download”)进行比较。接着利用生物信息学里面的序列比对技术对“install-ad0be”这类的域名进行评级,然后评估其被用于钓鱼行动的可能性。比如,某个域名跟知名网站比较类似,NLPRank就会将这个域名的IP地址与知名网站域名对应的IP库进行对比,看看是否属于该知名网站的IP库范围,如果不属于,那么这个域名是钓鱼网站的可能性就比较高。
这种利用自然语言处理技术的实时检测方法应该是一种比较新颖的做法,这不仅在于其实时性,而且钓鱼网站会比较为难,因为如果钓鱼网站希望起名跟知名网站不那么类似来规避被软件识别的可能性的话,用户可能就不那么容易被那样的域名欺骗了。