引言
扫描行为往往会触发大量安全告警,这些告警会干扰运营人员对“高危告警”的查找,这使得扫描识别成为安全运营的一大需求。而扫描行为看似简单,但是在告警数据中却体现出复杂的攻击模式,检测起来并不容易。《扫描识别》分为上、下两篇文章,上篇主要介绍扫描行为,包括类型、特征、检测所需考虑的因素、可能的干扰行为等,下篇依据扫描行为的特点,介绍基于安全告警数据的扫描检测方法。
一、为什么要进行扫描识别
在系列文章《数据透视篇》中我们提到,安全设备每天产生的告警数据在千万量级,虽然经过一定的过滤操作,可以过滤约90%的误报(详见《数据透视篇》),剩余告警仍然在百万量级,仍然达不到“可运营”的需求。剩余告警中,包含大量的攻击行为,而由扫描行为触发的告警数量往往占绝大多数,因此对于扫描触发的告警进行有效识别、聚类可显著提升运营效率,减少“待研判”告警数量。
扫描识别不仅可以大幅减少“待研判”告警数量,更近一步,可以满足运营人员对于“攻击分类”需求,在互联网中,充斥着各种各样的攻击尝试,而只有少量的可能对系统造成影响的攻击才会引起运营人员的重视、采取应急措施,在这种背景下,就需要对攻击行为进行一定的分类,辅助运营人员对攻击的严重程度做出判断。
二、扫描面面观
本小节从类型和拓扑两方面对对扫描行为做较为全面的介绍,并且分析影响扫描检测精度的干扰行为。
2.1按类型分类
扫描分为主机扫描和网络扫描,主机扫描是在主机上扫描一些本地信息,不产生网络流量,暂时忽略;网络扫描是基于网络的远程服务发现和系统脆弱点检测的技术,大致可分为:
- 端口扫描。目标是获取目的主机的端口开放情况(TCP、UDP),探测TCP端口开放技术包括:全连接扫描(TCP connect)、半连接扫描、FIN扫描、ACK扫描、NULL扫描、XMAS扫描、TCP窗口扫描(其中全连接扫描(TCP connect)、半连接扫描 为可靠的扫描方式,其他的不可靠);UDP扫描直接发送UDP包到对应端口即可;
- 服务扫描。扫描完开放端口后,一般还会进行服务扫描,检测端口上运行的服务类型和版本,基本原理是针对不同服务使用的协议类型,发送响应的应用层协议探测报文,检测返回报文,从而判断目标服务类型和版本,一般的,扫描器会构建特征库进行匹配。
- 操作系统扫描。由于各种各样的原因,如:对RFC理解不同,没有严格执行规范,些实现了一些可选特性,对TCP/IP协议做了改进等,不同操作系统对于TCP/IP协议的实现细节各不相同,以IPID的变化为例,Linux是随机变化的,早期window是递增的,某些打印设备或交换设备是固定不变的,不仅是IPID,FIN、TCP窗口、DF标志等等字段都可以作为判断依据,这些字段的组合也会被用于构建特征库集成到扫描工具当中;
- 弱口令扫描。在该过程中,攻击者使用字典中的字符串探测需要进行远程用户认证的网络服务(如SSH,TRLNET,FTP,SMB等)的用户名和密码。
- 漏洞扫描。指针对特定应用和服务查找目标网络中存在的漏洞,常见的漏洞扫描器包括nessus、OpenVAS等。
- Web漏洞扫描。Web服务是互联网中最重要、最复杂的服务,在安全领域广受重视,几乎所有的漏扫工具都会有专门的Web扫描模块。Web漏扫的目标是扫描web漏洞(可参考OWASP的安全漏洞列表),不过目前来讲很多漏洞的自动化发现还存在瓶颈(如:文件上传漏洞、CSRF等等),大多数Web漏扫一般只扫描已经披露的漏洞,或者扫描sql注入、XSS等比较容易发现的漏洞类型。
一般来讲,上述扫描行为都在在安全设备中留下大量的告警信息,将这些扫描行为找出、甚至细化到各种不同的子类别中,将提升安全运营的效率。
2.2按拓扑分类
按照扫描源和被扫描对象的物理拓扑,扫描行为可以分为[1]:
- 一对一扫描。这种行为比较常见,典型案例就是渗透测试人员对目标系统进行信息收集,表现为同一IP对(sip,dip)在短时间内触发大量告警。并且根据扫描类型的不同,触发告警也有很大差异,如弱口令扫描,触发的告警类型单一,但是告警载荷中username和password字段会快速变化;而漏洞扫描,触发的告警类型众多,肉眼即可分辨。由于这种扫描会比较深入,有时候也称之为“纵向扫描”
- 一对多扫描。由于扫描资源、扫描时间是有限的,有些时候会对某些IP(如同一网段)做批量扫描,如:渗透人员对内网机器测试某个漏洞是否存在。这种行为表现为同一源IP对多个目的IP触发同一种或同几种类型的告警。这种扫描对每个机器发送的数据包都不是很多,有时候也称之为“横向扫描”或者“专项扫描”
- 多对一扫描。这种扫描也被称之为“分布式扫描”,是攻击者隐蔽扫描行为的一种手段。表现为大量的主机以相同的策略扫描一个网络或者主机。
2.3干扰行为分析[2]
做扫描识别的目标是准确地发现恶意扫描,交于运营人员进行后续操作。这里就涉及到两点,第一是“恶意”,实际上,扫描只是搜集信息的一种行为,本身并不一定是恶意的,学术界和工业界往往会因某些原因(如完成科学研究、网络空间引擎(如shodan)、网络存档(Internet Archive)行为)发起扫描行为,这些扫描行为并不会对企业造成危害,理论上可以忽略;第二是“扫描”,扫描行为在告警上最直观的感受就是在短时间内触发大量告警,可是在网络空间内有大量的行为与之类似,造成干扰,需要设计更加精确的算法将这些行为与扫描行为分离。
在所有的干扰行为中,最明显的属于搜索引擎的爬虫行为[2]。搜索引擎会爬取目标网站的资源数据,当这些数据比较敏感时,就会触发告警。如图1所示,百度爬虫每天会触发大量安全设备的告警,且告警类型众多,图2为告警的payload样例,可以明显看出“User-Agent”字段中包含有“Baiduspider”的标志。实际上,除了百度,其他各大厂商(如google,bing)的爬虫也会触发大量告警。这些爬虫行为虽然与扫描行为类似,但严格意义上讲并不属于扫描行为,需要从算法上将两种行为区分开来。
图1. 百度爬虫触发的告警样例
图2. 百度爬虫触发的告警payload样例
三、扫描检测需要考虑的告警字段
在第二节中我们提到扫描在类型上、拓扑上均有不同细分,为了覆盖尽可能多的扫描行为,我们需要考虑尽可能多的关联字段,同时,为了与一些干扰行为做区分,还需要考虑一些特殊字段。具体来说:
- 为了满足扫描行为在拓扑上的差异,需要选择“sip”,“dip”字段,从而观测是一对一、一对多、还是多对一的扫描类型
- 为了符合扫描的基本特性(短时间内触发大量告警),需要选择“timestamp”字段,判断告警产生的密集程度。
- 为了检测不同类型的扫描,需要针对性的选择不同字段,如:对于漏洞扫描,该行为会触发大量不同类型的告警,“log_message”字段就需要考虑;对于弱口令扫描,需要提取“payload”字段中的用户名和密码信息,若payload为密文(如ssh登录),则从网络侧告警中无法检测;对于Web漏洞扫描,需要对考虑“q_body”,”r_body”字段,对请求体和响应体做一定的解析处理
- 为了过滤大量的干扰行为,如爬虫、正常用户登录、web渗透测试等。需要考虑许多其他字段:‘r_body’中的响应码,爬虫一般会扫描已经存在的资源,而扫描行为一般扫描攻击者自己想要的资源,大概率不存在,一般会触发“4XX”响应码;q_body中URL的文件类型,爬虫一般访问一些静态资源,如图片、视频类型(.jpg, .mp4等),而扫描一般访问可以进行渗透或者获取重要信息的资源,如 php文件、asp文件、mdb(数据库)文件等;
四、总结
本文对扫描行为做了整体介绍,包括特点、类型、拓扑等方面,并且分析了对扫描检测精度产生主要影响的干扰项,从而进一步介绍进行扫描检测需要考虑安全告警数据中的哪些字段。在考虑这些字段的基础上,设计精细的算法便可进行扫描检测了,关于扫描检测中使用的具体算法,将在下期文章中介绍,敬请期待。
参考文献
[1] Bhuyan M H, Bhattacharyya D K, Kalita J K. Surveying portscans and their detection methodologies[J]. The Computer Journal, 2011, 54(10):1565-1581.
[2] Li X, Azad B A, Rahmati A, et al. Good bot, bad bot:Characterizing automated browsing activity[C]//2021 IEEE symposium on securityand privacy (sp). IEEE, 2021: 1589-1605.
关于天枢实验室
天枢实验室聚焦安全数据、AI攻防等方面研究,以期在“数据智能”领域获得突破。
内容编辑:天枢实验室 童明凯 责任编辑:王星凯
本公众号原创文章仅代表作者观点,不代表绿盟科技立场。所有原创内容版权均属绿盟科技研究通讯。未经授权,严禁任何媒体以及微信公众号复制、转载、摘编或以其他方式使用,转载须注明来自绿盟科技研究通讯并附上本文链接。
关于我们
绿盟科技研究通讯由绿盟科技创新中心负责运营,绿盟科技创新中心是绿盟科技的前沿技术研究部门。包括云安全实验室、安全大数据分析实验室和物联网安全实验室。团队成员由来自清华、北大、哈工大、中科院、北邮等多所重点院校的博士和硕士组成。
绿盟科技创新中心作为“中关村科技园区海淀园博士后工作站分站”的重要培养单位之一,与清华大学进行博士后联合培养,科研成果已涵盖各类国家课题项目、国家专利、国家标准、高水平学术论文、出版专业书籍等。
我们持续探索信息安全领域的前沿学术方向,从实践出发,结合公司资源和先进技术,实现概念级的原型系统,进而交付产品线孵化产品并创造巨大的经济价值。