现在的系统攻击手段层出不穷,系统攻击过程如图7-1所示,特点可以总结为发现系统漏洞,再利用漏洞进行攻击,从而达到非法目的。攻击方式大都具有一个特点,就是使用机器人(程序)来模拟人类的行为进行攻击。所以,只需要能够识别出访问系统的是机器人还是人类,就可以采取相应的防御措施。
图7-1 系统攻击过程
这就要说起图灵测试,图灵测试由艾伦 · 麦席森 · 图灵提出,目的是验证一台机器是否具有人工智能。首先将测试者与被测试者隔开,由测试者不断地提出各种问题,由被测试者来回答问题。如果在相当长时间内,测试者都无法根据这些回答判断出对方是人类还是机器人,那么就可以认为这个机器是具有人工智能的。
而对于系统的防御来说,需要做的是逆向的图灵测试,就是由计算机程序出题,考察访问者是否为机器人。如果判定访问者是机器人,则拒绝访问;如果是人类,则可以访问。
所以,这些问题必须具有一个特点,就是人类可以比较轻松地回答,但是机器人却不容易回答的问题。机器人擅长计算,不擅长抽象问题的解答,因此这类问题主要集中在图像、语音、语义、视频识别等领域。
这些问题主要以验证码的形式体现,包括字符图形验证码、点选式图片验证码、语音验证码、滑块验证码等。
系统攻击的种类和特点
系统攻击的种类很多,常见的攻击方式有恶意注册攻击、灌水攻击、刷票攻击、暴力穷举攻击、爬虫攻击、短信/邮件接口攻击、接口重放攻击、篡改攻击等,它们的特点如下。
(1) 恶意注册攻击:通过机器人大量注册某系统用户,再使用这些用户去发布各种违法违规信息,或者领取新用户的注册奖励等。
(2) 灌水攻击:在论坛和资讯类网站中时有发生,利用网站漏洞进行大量的发帖、留言、发广告等,损害网站名誉,占用公共资源。
(3) 刷票攻击:例如,12306网站刷票,不断地去查询某一个批次的车票,然后自动下单,购买车票。
(4) 暴力穷举攻击:对系统的用户名和密码进行不断地尝试,直至匹配到用户名和密码为止,达到窃取用户信息、盗用账号的目的,或者利用设计漏洞扫描用户信息等。
(5) 爬虫攻击:反复抓取其他网站的公开资讯、文章等信息,对网站造成巨大压力。或者模拟用户登录,爬取用户私密信息。
(6) 短信/邮件接口攻击:利用各个网站暴露在外网的获取验证码接口,模拟短信请求,发送海量短信或邮件。(7)接口重放攻击:截取客户端与服务端的请求数据,然后进行大规模的重复调用。
(8)篡改攻击:截取客户端与服务端的请求数据,然后对数据进行修改,以伪造的数据请求服务器。