【廉环话特辑】此锦囊请在双十一前一周打开

原创
安全 应用安全
又是一年剁手节,流量订单齐迸发。电商卖家大比拼,几家欢喜几家愁。开场给大家来了首打油诗。是的,今年双十一大促的号角又吹响了,广告铺天盖地,血拼族们对这个节日已经是摩拳擦掌了。我们用脚趾头都能预测到今年又将出现“许三多”,即:许多促销,许多围观和许多订单的景象。

【51CTO.com原创稿件】又是一年剁手节,

流量订单齐迸发。

电商卖家大比拼,

几家欢喜几家愁。

开场给大家来了首打油诗。是的,今年双十一大促的号角又吹响了,广告铺天盖地,血拼族们对这个节日已经是摩拳擦掌了。我们用脚趾头都能预测到今年又将出现“许三多”,即:许多促销,许多围观和许多订单的景象。但是这些巨大的无形冲击的汇集,实际上无论对电商平台的支撑能力还是卖家的处理能力都是全方位的考验。同时,现在网络流氓不但有了文化,也伴随着年年双十一节逐渐成长并磨练攻击技能,而且已经形成了一套完整的攻击协作的生态链。可见,如此严峻的形式已让电商卖家务必爱恨交织了。他们在幻想着能大赚一笔的同时,也倍感压力山大。没办法,自己创造的节日,无论是哭着还是笑着都要跑到终点。

[[175218]]

电商平台,看这里

兵法曰:故知战之地,知战之日,则可千里而会战。

有个电商平台运维的朋友曾坦言:每到十月底,一想到各种爆款、爆买、爆单、爆仓…就有些肉疼,生怕哪个环节出了故障,被卖家们齐声指责:“原来你是这样的电商平台…”。那么如何才能沉着应对流量的井喷、处理海量的订单、保障整个网站系统的安全和稳定呢?让我来给您慢慢拨开这个“洋葱”看看吧。

本人认为安全稳定无非是两个方面:网站系统的平稳运行和攻击发生时的应对。我们先来看看:网站系统平稳运行,它主要依赖于如下方面的综合支撑:

· 稳定的机房物理环境和完备的基础设施保障。无论是自建的还是外包出去的,大家都可以参考类似于GB50174《数据中心设计规范》之类的要求进行自查或要求外包中心提供出详检报告。另外,对于一些要求高且实力雄厚的土豪可自行脑补“同城一主三从”的模式。

· 齐备的网络防护硬件设备和统一且细粒度的网络监控平台。特别是分布式网络环境中,全链路的网络状态监控与分析可以有助于及时发现问题点和瓶颈点,提升问题的定位效率。适当的时候,可以通过人工干预等方式灵活进行网络资源调配。还记得纠正前些时的10月21日,美国东部大面积网络瘫痪事件吗?一天之内,美国主要域名服务器供应商Dyn遭到了三波DDoS的网络攻击,什么Facebook、twitter、spotify、CNN都登录不上去了。简单反思一下,这说明如果你有一个配置好了异地的备用DNS服务器是多么的重要啊!当然,如果您想了解更多网络方面的加固经验,请出门左转,参考一下本网站每周连载的《廉环话--漫谈信息安全设计与治理》,那里有很多实际经验方面的小贴士。

· 大促当天,各种数据势必会雪崩式的猛增,因此硬件方面的扩容、升级,是越早准备越好。当然也要有合理的预估,尽量避免仅仅为了应对这次单次峰值的批量机器采购现象的发生。特别是在存储方面,在云平台服务盛行的今天,可以通过自我容量的现状评估,提前购买和签订云资源的弹性扩容协议。

· 在我们技术中人看来,双十一大促就是一个时间紧、任务急、要求高的IT项目。所以诸如:问题管理、变更管理、发布管理、配置管理等日常项目的管控是统统可以适用的。值得特别注意的是,任何对平台硬件配置和软件程序上的修改都要事先做两轮以上的测试而且是压力测试。具体方法可以借鉴日志收集式的线下压力测试与流量导出式的线上压力测试相结合来实施。正如华为总裁任正非最近说道的“自己做的狗食要自己先吃”那样,通过接近于真实场景的压力测试,很多细节问题会自行暴露出来的。

· 人员支持方面,如果不想让您和您的团队当天有种“感觉身体背掏空”的感觉的话,请务必分配好专人专岗通过监控软件去获取数据量,并掌握趋势曲线,以及必要的时候采取的人工干预限流、链路切换等措施都。整个团队中一起,通过brainstorm或是参考他山之石等方式,提前申请好必要的资源,比如说事先准备一个war room等。

· 结合平时的BCP和DRP制定当天的应急预案,多用“if then, else if then”这样的程序化模式和言简意赅的流程图的表现方式,不要忽略了call tree的定义。当出现事故的时候,人员的应变能力和判断能力可能会现场受限,因此需要人手一份的严格按步骤执行,井然有序的提前先做几次沙盘演习,并查缺补漏排除盲点。

· 在程序代码开发方面,一般做法都是前端只做展示,不进行逻辑处理。因此页面上的一次链接点击,在后端可能会产生几十次的RPC调用,Web、服务化、缓存、消息队列、DB…因此任何一个环节出了故障都可能导致剁手党们用脚投票,从而转投它商。有过开发经验的小伙伴都知道在开发高并发系统时,可用“三宝”来保护系统,即:缓存、限流和降级。一般顺序是:先有缓存这个常态机制,后有限流来应对高并发和瞬间流量对系统的强大冲击,与此同时,按需降级来实现网站的有损服务而不是不提供服务哦。

◆ 缓存:可以利用浏览器的缓存、CDN缓存、服务端应用的本地缓存、缓存服务器集群的一致性哈希以及服务端分布式缓存的多级缓存化机制来提高缓存的命中率,并减少带宽消耗。

◆ 限流:可以限制瞬时并发数、限制总的并发数(比如数据库连接池、线程池)、限制时间窗口内(如每秒)的平均速率、限制远程接口调用速率、限制消息队列的消费速率等。另外还可以根据网络总连接数和流量、服务器CPU或内存的负载等方面来进行限流。

◆ 降级:可以根据系统日志里规定的级别,如一般、警告、错误、严重错误等来定义,自动或人工的相关设置,实现对页面、读操作、写操作的降级。毕竟是双十一的抢购当天,很多用户实际上都已经把货品放入了购物车,所以在真实情况下一般不会再去花时间浏览商品的详情页上的推荐内容甚至是评价之类的信息,所以完全可以把商品详情内容以及评价暂时不予加载和展示给买家,所以这对购物流程是不会产生明显影响的。

针对不同种类的限流和降级,页面显示也可有所不同。可以是将买家导流到排队页面、等一会重试的排队页面;也可以直接告知买家没货了;亦或为“活动太火爆了,稍后重试”的错误页面。总之,丢卒保车总要好过全军覆没。

常言道:“上医治未病”,我们再来看看攻击发生时的应对,这里主要着眼的是网站程序代码的方面。

· 入境检测

◆ 对输入的网站请求进行实时分析(包括各个特征字段,post-process分析等)。

◆ 检测在用户填写并提交到网站上的信息内容里是否包含恶意的链接(挂马)。

◆ 打开HTTP审计日志并分门别类写到不同的文件中。

◆ 只记录有意义的请求,也就是说可以适当忽略如图片文件之类,被攻击的危险性相对较低且没有参数的请求。另外,在日志中应屏蔽掉如登录密码、信用卡等敏感数据,并集中到中央日志服务器上,以免被非法获取。

· 分析请求

◆ 对请求体里的类型(Content-Type)进行勘察,识别出畸形请求体(特别是XML类型)。

◆ 别请求是否进行过多次编码,甚至是为了增加伪装性的畸形编码。

◆ 检测是否有异常的浏览器请求头部(如host,user-agent,accept)信息和顺序(比如不同浏览器的host位置不同)。

◆ 检测是否有多余的参数,丢失的参数,重复的参数名,异常的参数长度和参数字符集等。

◆ 借用现成的或是构建自己的黑名单(RBL)来识别恶意IP地址。

· 请君入瓮

◆ 添加蜜罐端口,来检测是否有可疑的流量。

◆ 在页面上添加假的HTML注释、假的表单隐藏字段、以及假的cookie,这样既可误导攻击者也可在这些数据被修改时联动报警。

◆ 针对网络爬虫,添加虚假的robot.txt的Disallow条目,以诱惑访问disallow的目录,并记录以便分析。如果有时间和经历的话,甚至可以制作一些假的认证机制和页面。

· 出境检查

◆对输出的页面数据添加额外的哈希值,以避免被中间人篡改。

◆ 检测异常的响应头部。比如:网站响应的网页面上频繁出现HTTP 4XX或5XX的错误,则可能是攻击者通过发来的有问题请求或处理来对网站进行扫描和侦查。另外,攻击者通过操纵Apache的.htaccess文件,以HTTP 3XX的响应,把请求重定向到恶意网站。

◆ 检测响应头部和响应体是否信息泄露,这一点技术上有必要,但实际上对于双十一请求量大的时候就要做好检测的优化了,不然会影响响应速度。另外,这种检测多适用于文本内容,而对于MIME类型的二进制格式也可能会有误报或漏报。

◆ 检测页面标题是否被变更,页面大小是否有偏差。因为当Web页面被篡改时,最终的页面可能比正常小得多;而当攻击者成功进行了SQL注入攻击并对数据进行大量拉取时,页面则又会大很多。所以可以设置上限和下限的阈值。当然,此检测也可能会误报,比如有商品的详情页面随着评论的迅速增加而递增。还是上述观点:双十一当天应该不会出现该情况,因为大家抢购还来不及何谈评论?

◆ 检测动态内容是否被变更,主要监控页面上javascript,iframe,image以及超级链接的标签数量。

◆ 检测是否存在源代码的泄露,比如:用户在网址后面添加入?-s之类特殊字符,是否会反馈网页的源代码?

◆ 检测网址返回的错误信息提示里所包含的网址结构等信息。

当然还能列举更多,但相信如果能切实做到上述对程序的管控,效果就已经是杠杠的了。其实有“业界良心”的电商平台都已经做到了。所以说,并不存在什么“人无我有,人有我精”的大技,您要做到的就是“跟紧了,别掉队”,不要成为攻击者眼中的“肉鸡”。最后提醒一点的是:万一真的出了故障,信息公开方面要及时。在这个迅速传播发酵的时代,如果你还想遮遮掩掩的话,那就基本上可以狗带了。

若是卖家,往下看:

兵法曰:善守者,敌不知其所攻!兵者诡道也!

您也许会说:“我只是一个在平台上开小网店的卖家,别跟我整那些诗和远方,告诉我一些眼前能达到的小目标吧。”好,切克闹!在你开启节日自嗨模式之前,请先认真阅读如下几点:

· 凡事预则立,是的,卖家也需要有应急预案,不用太复杂,主要是确定发生各种可能事件优先级,自己和小伙伴们多演练演练。还是那句话,“能动手就别吵吵”。

· 双十一当天你可以全天不吃不喝,但是如果突然停电or跳闸,那就再多的订单也你也处理不了,所以为了防止哭晕在厕所的情况发生,给自己的笔记本电脑的电池充满电是必要的(对,首先你要有个笔记本)。愿意自备UPS的土豪朋友请自便。

· 另外一个“万万没想到”的事情就是突然断网了。所以你需要准备一个有充足流量套餐的无线MIFI,当然如果能插入电脑的USB,那就更完美了。

· 人常说:“华佗无奈小虫何”,如果出现买家在地址栏内填写一个QQ号、微信号、或是电话空号、甚至是敲诈商家等这些很low的伎俩时,只要符合上述恶意场景的特征,作为商家的你就可以在订单管理页面直接关闭付款订单,对,就这么简单直接粗暴!

· 正所谓林子大了什么鸟都有是事实那样,如果你的小店在遇到恶意张贴小广告的评价,请及时选中广告评价,到评价管理页面迅速点击屏蔽哦。

· 常言道:防火防盗防同行,防盗图工具。还有些买家一言不合就跟你玩重复订单和恶意退款。所以在全程监控各个订单的支付状态的同时,也要多留意电商平台以及自己的管理端,查看是否有预警消息,及时处理,以免后续带来一系列的损失。

· 如果你还是个图样图森破的菜鸟的话,老司机有时候会玩出 “订单分组,聚类订单”之类的花样,以及关闭库存回写功能,以避免商品在多平台上超卖的“特效”。过节前,你好好研究一下吧。

骚年,哥唠唠叨叨说了这么多,就是希望您在即将到来的非常时期,在为剁手党们提供美好的网购体验的同时,能从容应对各种可能性突发事件。上面是从电商平台和卖家两个视角出发,列出了的大促之前的各种技术准备以及当天的各种应对策略。虽然谈不上值得“熟读并背诵全文”,但有道是“技不压身”,希望您能get到大概要点。也许您会说这些全是套路。对的,正所谓“知易行难”,关键还是在于您是不是认真的去做到了。最后希望用尽洪荒之力的你,能在11月12日傲娇的哼出那首“我得意的笑”,而不是去翻唱那首新歌《蓝瘦,香菇》。

【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】

责任编辑:蓝雨泪 来源: 51CTO.com
相关推荐

2016-11-15 17:19:11

网络安全技术周刊

2021-03-11 09:00:00

IT防疫网络

2021-03-24 09:00:00

IT管理运营

2021-03-17 09:00:00

IT管理设计

2021-02-07 10:24:05

IT架构防疫

2021-04-19 09:00:00

运维IT企业

2021-04-29 09:00:00

IT系统安全

2021-04-08 09:00:00

IT运维运营

2021-02-23 09:00:00

IT管理运营

2021-02-21 09:00:00

IT运维运营

2017-09-07 15:55:14

2017-06-02 09:21:48

2017-07-07 01:06:29

2017-06-15 10:58:52

2015-11-13 19:06:01

2017-05-22 20:10:11

2016-12-15 09:46:15

信息安全资源治理廉环话

2016-09-29 10:56:32

信息安全人员治理安全管理

2017-08-07 14:59:06

2017-01-12 08:51:41

点赞
收藏

51CTO技术栈公众号