CDN的工作示意图如下:
S1: 为源服务器 ,托管在IDC公司
C2-C7: 为CDN服务器(Proxy & Cache),由CDN公司提供
U2-U7:为访问用户
在没有使用CDN的情况下,所有用户直接访问源服务器S1,用户请求IP在服务器S1上记录,并可以通过防火墙等软件判断是否有网络攻击行为,如果有,直接阻断访问者用户IP。
如果使用CDN后,用户U2-U7访问网站时,通过智能DNS判断,将用户引导到相对应网络的C2-C7节点服务器上,如果有缓存,则直接使用节点服务器上的文件,如果没有,由C2-C7服务器请求S1,并返回给用户,从而加快访问速度。
当使用CDN后,用户访问IP就记录到节点服务器上,而S1源服务器上记录的IP是C2-C7的CDN节点服务器ip。CDN默认是并不缓存动态程序的,如asp,aspx,php,jsp类地址。
上图:黑客恶穷举管理员地址、后台目录、数据库、上传文件、漏洞文件等。(CDN节点服务器上日志)
当黑客恶意穷举管理员目录、上传文件、后台地址、漏洞文件等时,源S1的防火墙和一些策略明知道是恶意请求,却不能阻断,因为所有的用户都是直接访问的CDN,而S1源服务器却只知晓节点服务器ip,却不知道用户直接ip,要阻断只能阻断用户所在地区和网络环境的节点服务器,这样一来,将大量断网。
上图:源服务器上看到的攻击IP是来自节点服务器的(源服务器IIS日志),明知道是攻击却不能阻断。
由此可见:
面对这类穷举的方式,只要时间足够多、字典足够大,而服务器又事实存在,可能就会选成安全威胁;同时,大量动态地址穷举,CDN并不会缓存,而是直接代理访问,如此一来,就会大量消耗服务器资源,可能导致服务器阻塞。。而同时,源服务器针对直接用户的IP屏蔽策略却不能启用。面对此等情况,只能被动挨打。
故解决此办法,只能在前端服务器,也就是CDN节点服务器上部署策略,而CDN大多由第三方提供,对用户并不透明,大量用户在同时使用同一节点 ,策略的安全阀却不容易设置,这个度非常难以控制。。而且目前市面上的CDN也并没有此相关功能。
CDN后,网站再受到DDOS攻击时,可以有效的防止源服务器受到攻击而中断正常访问,但此前提是牺牲大量流量。加上CDN目前并没有做好有效的防盗链,图片及下载文件被盗链后,流量急剧上升。。但目前商用CDN几乎都是按流量和请求数计费的,从而需要付出更高的代价,而此却不是站长可以控制的。