钓鱼攻击,指的是一种企图从电子通信中,通过伪装成信誉卓著的法人媒体以获得如用户名、密码和信用卡只明细等个人敏感信息的犯罪诈骗过程。而网钓,则通常是透过e-mail或者即时通信进行,是一种利用社会工程技术。 如何提高网络钓鱼的成功率呢? 这是一个很有趣的问题
在2016年Black Hat USA的议题中,出现了一项有趣的研究: Weaponizing data science forsocial engineering:Automated E2E spear phishing on Twitter,研究的主要内容是使得犯罪活动也可以从大数据和人工智能中受益,而不仅仅是入侵检测之类的防御手段.
社交网络,对于美国人来说,尤其是Twitter,可以方便访问很多的个人数据 (包括),有着友好的API接口,非常多的文字信息,因此是一个应用AI的极好场所。
攻击的第一步是选取目标对象,首先,会利用twitter的API获取一个twitter用户名列表,然后会提取一部分用户特征,例如用户的网名,在线频率,转发或者发表推文的时间、地点与频率,以及位置等信息,根据这些训练一个分类模型,将用户按照被钓鱼概率的大小排序,然后选取一部分被钓鱼概率较高的用户。
其次,攻击者选取了SNAP R网络模型,该模型采用了LSTM和马尔可夫模型,能够对特定用户的推文、评论和转发的内容进行训练,来生成用户感兴趣的话题和内容,然后发送钓鱼推文来入侵被攻击者。
根据文章内容显示,采取上述措施之后,钓鱼推文的成功率最高可达66%,而通过人类手工筛选用户发送,成功率只有45%左右,如果随机发送,成功率最高只有14%。
1.2 恶意软件样本生成 (GAN)
生成对抗网络 (Generative Adversarial Network,GAN) 是非监督式学习的一种方法,通过让两个神经网络只相互博奔的方式进行学习。生成对抗网络由一个生成网络与一个判别网络组成。
生成网络从潜在空间(latent space) 中随机取样作为输入,其输出结果需要尽量模仿训练集中的真实样本。判别网络的输入则为真实样本或生成网络的输出。
其目的是将生成网络的输出从真实样本中尽可能分辨出来。而生成网络则要尽可能地欺骗判别网络。两个网络相互对抗、不断调整参数,最终目的是使判别网络无法判断生成网络的输出结果是否真实。
这项工作很,容易被人想到去隐藏一些攻击样本,使得当前的恶意检测工具失效,来达到黑客入侵的目的,很显然,他们也做到了。
文章: Generating Adversarial Malware Examples for Black-Box Attacks Based on GAN 中就设计了这样的方法(MalGAN),通过MalGAN方法来生成对抗恶意软件样本,逃避现有的检测软件。
他们的实验结果很完美,几乎做到了100%的逃避率,完胜人工队
2.网络防御
2.1 漏洞分析
CGC(Cyber Grand Challenge),这是美国DARPA(国防高等研究计划署)举办的自动网络攻防竞赛。CGC旨在建立实时自动化的网络防御系统只,并且能够快速目大量的应对新的攻击手法,来应对频发的网络攻击,并降低攻击出现到防御生效之间的时间差。
2016年的Defcon CTF比赛上,迎来了漏洞分析领域首次人机黑客的大战,比赛最终由来自ForAllSecure的机器人Mayhem夺得了冠军
利用AI来挖掘漏洞,应该是以后的必然趋势了,因为目前很多病毒的感染性很强,传播速度极快目构造越来越复杂,单凭人类自身以及很难跟上这样的速度,也很难分析出如此复杂的漏洞了,必须要以来自动化的AI工具才行
虽然目前利用AI来挖掘漏洞目前还存在一些例如逻辑漏洞无法检测等等的局限性,但我相信AI在漏洞分析领域的普遍使用是以后的必然事件。
2.2 提高恶意检测器效果
这篇工作出自网络安全四大顶会之一的CCS,即2020年CCS论文《Enhancing State-of-the-artClassifiers with API Semantics to Detect Evolved Android Malware》
文章提出利用将APl语义聚类的方法,来检测不断改进的安卓恶意软件,称为API-Graph的框架使用 APl语义的相似性来增强安卓恶意软件检测器的效果,用来代替之前的人工不断更新。