前言
之前写过一篇用户账户安全策略的笔记,总结了一些在账户安全方面可以采用的方式方法,有一些方法我也不明所以,直到最近网站遭受DDOS攻击,才提醒我又捡起了用户账户安全。
读完本篇笔记,你可以了解机器人的概念,机器人的任务;区别善意机器人与恶意机器人;了解如何阻止恶意机器人;
1. 什么是机器人
机器人是一种设定了特定任务的应用程序,他们通常可以根据事先设定的指令自动运行,无需人们重复操作,而且执行速度又快,所以被广泛应用。
1.1 机器人类型
机器人通常分为以下几个类型:
- 聊天机器人:通过固定的格式对对话进行响应,现在有些AI聊天机器人已经可以通过学习模仿人类讲话,但是在感情方面还是很难做到与人类一样丰富。
- Web爬虫:扫描互联网上的内容
- 社交机器人:在社交媒体上运行
- 恶意机器人:他们的活动包括凭证填充、网页/内容抓取、DOS或DDOS攻击、暴力破解密码、库存囤积、垃圾电子邮件内容、电子邮件地址搜集、点击欺诈等。
2. 善意机器人与恶意机器人
21 善意机器人
善意的机器人是执行有帮助的任务。例如以下的这些:
- 搜索引擎机器人:爬取网页的内容,建立索引,帮助搜索引擎公司运营。
- 版权机器人:爬取网页上需要版权保护的内容如图片、视频、音频等。帮助拥有版权的公司避免损失。
- 聊天机器人:用来辅助客服的工作,他们往往可以事先处理一部分用户的对话,使得客服只需要处理复杂的问题,用户的问题也能最快得到响应。
-
个人助理机器人:常见于个人的设备上,如siri、小爱同学等,根据指令完成指定的动作。
等等。
2.2 恶意机器人
违反网站所有者的意图、违反服务条款、进行非法活动的机器人都是恶意机器人。
他们经常进行以下的操作:
- 撞库:攻击者使用手里拥有的账号和密码进行尝试,如果有刚好符合的就能盗取用户的账号;
- 网络爬虫:可以在几秒钟内下载完所有网页的内容;
- DoS 或 DDoS 攻击:攻击者通过组建僵尸网络指挥僵尸向目标发送请求,导致服务器不堪重负,从而拒绝正常的流量服务;
- 暴力破解密码:使用有可能的密码组合,不停的尝试;
- 库存囤积:常见于电子商务类网站,将有限的库存加入购物车,但是不购买,导致正常用户无法购买,可能还会导致商家判断失误而进行不必要的补货;
- 垃圾内容:常见于论坛类,机器人账号发布无垃圾的评论等;
- 电子邮件地址收集:也属于爬取内容的机器人,专门收集站点上的邮件,做垃圾营销用;
- 点击欺诈:经常发生在需要根据点击量付费的广告上,这类机器人伪装成合法的访问者在网站内点击,消耗广告费用。还有一类叫“水军” [狗头]
- 垃圾邮件机器人:在能够社交的平台上注册账号,通过机器人向别的用户邮箱内发送垃圾信息;
3.防止恶意机器人
3.1 充钱使你强大
有钱的话,扩带宽,能加多少加多少,同时提升硬件配置。
3.2善用工具
阻止机器人重要的一点在于,能够区分正常的用户请求,与恶意请求,然而这些请求看起来极其类似。初步的防护只能限制请求的次数、请求的IP等,大多数企业要自己做到训练用户的行为模型来判断是否是机器人,甚至恶意机器人需要技术团队耗费大量的精力。不如把这些交给专业的团队,甚至一些免费服务就足够我们使用。
3.3 CDN
静态的网站内容分发到多个服务器,用户访问时选择最近的服务器获取资源,提高访问速度的同时,也可以预防DDOS攻击。但是使用了CDN服务之后,要隐藏源服务器的IP,否则攻击者就可以绕过CDN直接攻击源服务器了。Cloudflare是一个不错的CDN服务,可以免费使用,我们的网站一直使用它来做静态资源的缓存,在防护时调整信誉参数,即可挡住信誉分不高的访问,但是还是会导致一些正常用户无法访问。
3.4 验证码
在一些关键的步骤加入机器人校验是有必要的,这样防止机器人恶意调用或者消耗资源。
我们见过很多验证码工具,他们的形式经常如填写数字、识别字母等。在经过一系列调研后,我们网站选择了Google reCaptcha,因为它有一种模式是invisible,一般情况下在后台就进行了验证,用户没有感知就通过了机器人校验,体验较好。只有在有特殊操作触发了机器人风控时才出现可见的验证让用户点击的验证码。