文/罗子渊 杨加 李笑难 吕洁 马皓
作为校园网络安全的重要一环,电子邮件在为师生的学习和工作带来便利的同时,也经受着越来越严重的安全挑战。校园邮箱账号面临的安全威胁主要包括以下三个方面:一是传统的暴力破解或者低频试探攻击[1]。考虑到部分用户会使用安全系数较低的弱密码,此类攻击仍然具有不小的威胁性;二是钓鱼邮件等社会工程学攻击,通过一定的技术手段伪造邮件头中的相关信息或者绕过邮件系统的安全认证[2],攻击者可以极大程度上隐藏自己的真实身份,达到以假乱真的效果;三是使用其他网站或应用泄露的密码进行“撞库”攻击,如果用户的多个不同账号使用了相同的密码,则很有可能遭受“撞库”攻击。
一旦校园邮箱账号被攻破,带来的危害是多方面的:首先,账号内所有邮件以及相关的个人隐私和其他重要信息将被攻击者轻松获取。如果用户在校园网的其他系统中使用了和邮箱账号相同的密码(或者各个系统使用了统一身份认证),会使得攻击者在攻破邮箱账号的同时也获得了这些系统的登录凭证,导致更严重的信息泄露。其次,这些被盗的邮箱账号经常被攻击者用来发送垃圾邮件或钓鱼邮件。这不仅会给被盗账号自身带来严重影响,还可能会对其他正常账号的使用造成影响。这是因为现在的邮件系统普遍采用了DNS黑名单(DNS black list)[3],如果被盗账号发送了大量垃圾邮件,接收方邮件服务器很可能会自动将校园邮箱服务器的IP加入DNS黑名单,从而限制或者拒绝来自该服务器的邮件,从而影响所有本校邮箱账号的正常使用。此外,攻击者还可以借助被盗账号的身份作为掩护,针对高价值的特定目标发动鱼叉式钓鱼攻击,或者将病毒、木马等恶意软件通过邮件附件进行传播。一旦这些恶意软件通过内网传播,将严重威胁整个校园网的安全。
目前与校园邮箱相关的研究主要集中于垃圾邮件/恶意邮件的识别和分类,而对被盗邮箱账号进行检测的研究相对较少,所提出的检测方法主要包括基于登录地域信息的检测方法[4],基于MUA访问活动的检测方法[5],基于DSN状态码的检测方法[6],以及基于网络拓扑的检测方法[7]。还有一些研究将异常检测作为切入点,基于大数据分析[8]或者知识图谱[9]进行邮件异常行为检测,进而发现被盗账号。总的来说,现有的这些研究更多地关注正常账号与被盗账号在行为等方面的区别,却较少关注校园环境下邮箱用户所表现出的独有特点,以及如何针对这些特点更有效地进行被盗账号检测,而这正是本文研究的重点内容。
本文以北京大学邮件系统部分账号为研究对象,从校园邮箱的用户组成和行为特点出发,分析了正常账号与被盗账号在发信目标邮箱上的区别,提出了一种基于特定群发行为的被盗账号检测算法。在此基础上,本文又分析了被盗账号在登录行为上的共同点,探索了借助已知被盗账号去检测更多被盗账号,提出了一种基于登录IP的被盗账号检测算法。
本文的主要贡献有两点:一是针对校园邮箱账号的发信行为特点,提出了一种基于特定群发行为的被盗账号检测算法并应用于北京大学校园邮件系统,经过近4个月的试运行,结果表明该算法检测效果好,精确率高,能够发现系统原有检测方法有所遗漏或未能及时发现的被盗账号;二是提出了一种基于登录IP的被盗账号检测算法,能够通过已知被盗账号进一步找出更多的被盗账号,并通过实验验证了该算法的有效性。
校园邮箱的用户以在校师生为主,组成较为单一。校园邮箱的使用也多围绕在校的学习和工作进行,比如师生之间的交流、教职工之间的通知、国内外学术交流等。因此,校园邮箱账号所发邮件的目标邮箱往往具有一定的特点,而这一点也是现有的相关研究有所忽视的地方。我们根据学校邮件系统日志统计了2021年1月1~7日期间发送邮件数量超过10封的账号(共计1914个账号),并从这些账号中随机抽取了30个账号作为样本,统计了每个账号发给不同类型目标邮箱的邮件占全部发送邮件的比例,如表1所示。接下来,我们基于该结果结合相关账号的具体发信日志进行了研究分析。对于样本账号中超过半数的账号而言,其主要发信目标邮箱均为本校邮箱(pku.edu.cn和stu.pku.edu.cn);另有将近半数的样本账号因用户的学习和工作涉及较多国内外学术交流,主要发信目标邮箱为国外各高校或研究机构的邮箱(对应表1中“其他”列)。绝大部分样本账号发信给QQ、163、Gmail等商用邮箱的比例都很小,仅有两个账号的主要发信目标邮箱为QQ邮箱,但比例均未超过70%。进一步分析后确认,这是由于这两个账号的用户因实习和求职原因与公司相关人员有较多邮件往来导致的。
表1 30个正常账号发给不同类型目标邮箱的邮件所占比例
校园邮箱账号被盗之后,往往被用于发送垃圾邮件,从而使得被盗账号表现出与正常账号明显不同的发信行为。我们发现很多攻击者偏好将QQ邮箱作为垃圾邮件的目标邮箱。2021年1月1日至7日期间,共有11个校园邮箱账号因发送垃圾邮件而被邮件系统管理人员确认为被盗账号。这些账号的发信目标邮箱中QQ邮箱的比例均达到了99%以上,并且发信行为具有明显的群发特征,即短时间内给大量不同的邮箱发送相同或相似标题的邮件。由此可见,正常校园邮箱账号与被盗账号在发信目标邮箱上存在明显不同,这可以作为检测被盗账号的一个重要依据。
本文提出的基于群发行为的被盗账号检测算法如下:
1.选取检测区间。
2.提取检测区间内所有账号的发信日志,记为L={l1,l2,...,ln},其中li为账号accounti的发信日志,且1≤i≤n,n为检测区间内有发信记录的账号总数。li中的每条记录包括发信时间time,目标邮箱账号accountdst,以及邮件标题title,记为{time, accountdst, title}。
3.对每个li∈L,计算li中记录的总条数(即账号accounti的发信总次数)c1、accountdst以qq.com为域名的记录条数c2、以qq.com为域名的不重复accountdst个数c3。令T为li的所有记录中出现的不重复title的集合,Tqq为所有accountdst以qq.com为域名的记录中出现的不重复title的集合,计算Tqq中的元素个数c4。
4.如果同时满足以下所有条件,将li对应的accounti加入S:
(1) c2/ c1≥v1
(2) v2≤c3≤v3
(3) c2/ c4≥v4
(4) T∩Tqq=∅
其中v1、v2、v3、v4均为预设的阈值。
5.集合S即为算法检测得到的被盗账号集合。
集合S即为算法检测得到的被盗账号集合。
上述算法的核心是基于被盗账号向QQ邮箱群发垃圾邮件的行为进行检测,阈值v1反映了账号的发信行为中目标邮箱是QQ邮箱的比例。但由于校园邮箱用户基数大,存在少量与其他账号有较大行为差异的正常账号。因此上述算法中不单考虑了目标邮箱的类型比例,还使用了多项其他指标和筛选条件,目的是进一步提高算法的精确率、降低误报率。主要包括以下三个方面:
(1) 部分校园邮箱用户会给某一特定的QQ邮箱发送大量材料,或者自动转发邮件,从而导致其校园邮箱的发信目标中QQ邮箱的比例较大,但均为该特定QQ邮箱。设置阈值v2,即目标QQ邮箱不重复数量下限是为了减少对这种情况的误判。而部分校园公开课或者类似性质的官方邮箱会给大量不同的QQ邮箱发送课程通知等内容的邮件,其数量通常在103~104这一规模。设置阈值v3,即目标QQ邮箱不重复数量上限是为了减少对这种情况的误判。
(2) 部分在校学生,特别是大量低年级本科生依然习惯于将QQ邮箱作为自己的常用邮箱,导致部分校园邮箱用户(比如学生助教)确实需要与大量QQ邮箱进行邮件往来。但这种邮件往来多以作业提交和回复为主,一般不涉及通知类消息(考虑到部分学生查看新邮件的频率较低,课程通知更倾向于使用教学网或微信群等更便于查看的渠道发布),因此很少出现群发行为。设置阈值v4是为了确保被检测账号给相当数量的目标邮箱发送了相同标题的邮件(这种情况大概率为群发行为),从而减少对于正常邮件往来的误判。
(3)除了上文提到的校园公开课通知,一些教职工或者单位部门也可能会给非本校邮箱群发会议通知等内容。这类通知的发送数量相对较少,可能无法通过阈值v3加以筛除。但此类发信目标邮箱中往往包含有QQ、163、sina等多种类型的邮箱,而上文提到的被盗账号仅会针对QQ邮箱群发垃圾邮件。因此可以通过算法中的检测规则(4),即目标为QQ邮箱的邮件标题与目标为非QQ邮箱的邮件标题没有交集,来减少对于此类情况的误判。
上述检测算法于2021-03-03至2021-06-30在北京大学校园邮件系统投入试用(因部署环境调整的原因2021-04-23至2021-05-04暂停检测)。设置阈值v1=0.8,v2=20,v3=200,v4=2,由程序自动于每日上午8时检测前一天0至24时出现的疑似被盗邮箱账号,并由邮件系统管理人员对结果进行人工查验。结果如图1所示。
图1 算法在2021年3~6月期间试用检测结果
考虑到北京大学目前使用的邮件系统已经采用了较为完备的邮件安全解决方案,会根据用户的发信行为,以及与之相关的邮件标题、内容和其他信息进行被盗账号检测,因此在评价本文提出的算法的有效性时,除了使用该算法检测得到的被盗账号数量这一指标,我们还定义了一项名为“额外检出率”的指标:计使用2.2中的算法检测得到的账号数量为c,计其中未被北京大学现有邮件安全系统检测出的账号数量为c’,则额外检出率为c’/c。额外检出率这一指标真实反映了本文提出的算法的实用性,体现了本文提出的算法能否在北京大学现有被盗邮箱账号检测工作的基础上起到查漏补缺的作用。
从图1中可以看出,在长达近4个月的试用中,算法共检测得到442个结果。经邮件系统管理人员逐一人工复查后,发现仅有1个结果为误报,其余441个结果均被确认为被盗账号,算法的精确率达到了99.8%。其中5、6月检测得到的被盗账号较多,这也符合长期以来北京大学邮件系统的实际情况:每到临近毕业期间邮箱盗号活动较为频繁。在额外检出率方面,4个月的平均额外检出率达到了37%,其中4、5月的额外检出率分别达到了50%和52%,表明本文提出的基于群发行为的检测算法在这两个月当中检测出的被盗账号中,有近一半都是北京大学现有邮件安全系统有所遗漏或未能及时检测到的。
以上结果表明,本文提出的基于群发行为的被盗账号检测算法充分考虑了校园邮箱用户的行为特点以及被盗账号的行为特点,针对特定类型的被盗账号具有良好的检测效果,精确率高,额外检出率较高,可以作为北京大学现有邮件安全系统的有效补充,目前已经投入日常运维管理工作使用。
部分攻击者会使用相同或者同一网段下的多个IP攻击多个不同的邮箱账号,导致不同的被盗账号的登录IP具有一定的关联性。因此可以通过已知被盗账号的登录记录找出可疑IP,再通过登录IP进一步检测其他尚未发现的被盗账号。由于被盗账号出现可疑IP地址的登录记录一般早于群发垃圾邮件等恶意行为,所以上述方法还可发现疑似被盗但尚未出现群发垃圾邮件等恶意行为的高危账号。
此外,前文中的实验结果已经表明,即使是目前较为成熟的邮件安全系统也无法完全检测出所有的被盗账号。因此通过已知被盗账号进一步找出更多的被盗账号,从实际邮件系统管理工作角度来说,可以进一步查漏补缺,提高系统整体安全性。
本文提出的基于登录IP的被盗账号检测算法如下:
1. 选取检测区间。
2.提取检测区间内所有邮箱账号的登录日志,统计得到登录次数(包括登录成功与登录失败记录)排名前20的网段(B类网段),记为S={s1,s2,...,s20}。
3.提取检测区间内所有已知被盗账号自确认被盗之日前x天内的登录日志(x为人工设置的参数),记为L={l1,l2,...,ln},其中li为账号accounti的登录日志,且1≤i≤n,n为检测区间内已知被盗账号总数。li中的每条记录包括登录时间time,登录IP地址ip,以及该IP地址对应的B类网段segment,记为{time, ip, segment}。
4.对每个segment∈li,li∈L,若segment∉S且对应物理地址非学校所在地,统计segment在所有li∈L中的出现次数c。若c>v1(v1为人工设置的阈值),将segment加入Sseg,并将与segment属于同一条记录的ip加入到Sip。
5.对于每个segment∈Sseg,提取检测区间内所有在该网段下有过登录行为的账号,加入Sa。
6.集合Sseg为检测得到的可疑网段集合,集合Sip为检测得到的可疑IP地址集合,集合Sa为检测得到的疑似被盗账号集合。
我们选取2021-04-01至2021-04-30作为检测区间,将2.3节中使用基于群发行为的检测算法在该区间内得到的44个被盗账号作为已知样本,设置阈值x=7,v1=3,使用3.1中的算法进行检测,得到2个可疑网段,7个可疑IP地址,见表2。根据这2个可疑网段进一步检测得到了28个疑似被盗账号。经过人工查验相关登录及发信日志,这些账号的具体情况如图2所示。
图2 疑似被盗账号查验情况
经查验,表2中的可疑IP地址均来自一地,有很大概率为同一个攻击者所使用。实验共检测得到18个被盗账号,除了15个已知被盗账号,还成功检测出了3个之前未发现的被盗账号。另有7个正常账号,剩余3个账号没有任何发信记录,无法确认是否被盗。
表2 可疑网段和IP地址
实验证明,基于登录IP的检测算法确实能够发现新的被盗账号,但相比于基于群发行为的检测算法,发现的被盗账号较少。这是因为相比于发信行为而言,登录行为容易受很多因素的影响。一方面,用户可以手动登录邮箱,也可以使用代理客户端自动登录,而自动登录又与用户设置和网络状况等有关;另一方面,出差导致的地理位置变化、使用VPN等原因都有可能导致登录IP所在地发生变化,给检测工作带来不小的影响。
本文以北京大学邮件系统部分账号为研究对象,从校园邮箱的用户组成和行为特点出发,分析了正常账号与被盗账号在发信目标邮箱上的区别,提出了一种基于群发行为的被盗账号检测算法。为了更加全面地检测被盗账号,本文还提出了一种基于登录IP的被盗账号检测算法,可以通过已知被盗账号进一步检测更多的被盗账号。
我们通过真实环境下的试运行和实验分别验证了上述两种算法的有效性,但是依然存在一些改进空间:
1.基于群发行为的检测算法需要人工设置相应阈值才能使用,阈值的设置需要结合学校邮件系统运行实际以及相关经验得出最佳实践,后续可以考虑使用动态阈值,或者减少算法对于阈值的依赖;
2.基于登录IP的检测算法受用户地理位置变动、使用VPN等因素影响较大,后续若能设法排除部分干扰,将进一步提高算法的检测效果;
3.基于群发行为的检测算法和基于登录IP的检测算法分别从两个不同的角度进行被盗账号检测,相互之间的联系不够紧密,后续可以考虑将二者进行结合,从多角度出发进行被盗账号检测。
近年来暴力破解、试探攻击、钓鱼邮件等校园网络安全问题的频发,给相关安全工作带来了严峻的挑战。本文提出的算法充分考虑了校园邮箱账号的行为特点,为被盗邮箱账号检测提供了一种新的思路。