如何科学合理薅FreeBuf活动“羊毛”
作者:admin | 时间:2018-3-2 09:19:19 | 分类:黑客技术 隐藏侧边栏展开侧边栏
过年前FreeBuf推出一个叫“网藤杯智能安全机器人养成计划”的活动,刚开始以为是一个养蛙类型的活动,研究过后发现,这是一个上传数据拿奖品的活动,看着礼品还挺诱人的,作为薅羊毛专业户,我必须吐槽一把了……
看看奖品还有点小心动:
这个活动主要就是上传三种类型的样本:暗链、恶意URL、WebsShell通信样本,系统对样本进行判定并给予一定的分值积分,积分还可以用来抽奖。
从规则中规定的三种提交样本得分来看,提交暗链样本能获得分数是最高的。那当然要从回报最高的下手了!哈哈,自行构造大量的样本刷分不就薅羊毛了。
暗链是一种被广泛利用的网站攻击方式。通常,黑客们利用重定向机制快速跳转等多种方式,将链接颜色与背景色设置相同,使用低像素文字等手段达到链接隐藏的目的,把含有色情、诈骗等内容通过暗链植入被攻击网站的网页。被植入暗链的网页不仅对于网站本身的信誉形象产生负面影响,更严重扰乱了搜索引擎排名机制,同时也会给网站造成额外的性能开销与负担。
然而当进入提交页面测试后发现,这个活动的系统会对提交的暗链会先进行真实性和规则格式的审核,貌似一定条件下的暗链样本数据才能通过并给予判定得分,而批量构造的暗链是很难通过的。目测这样的设计应该是为了限制刷分。
很多人说暗链样本难找,我提交的暗链数量也有20多个,在此分享下我找暗链的方法。我认为很多人找不到暗链的原因主要是两方面,第一是信息搜索途径不对,第二就是对暗链理解有偏差。
先说说搜索途径,我所收集暗链样本数据是通过各安全论坛和谷歌获取到的,特别是一些安全论坛社区的样本提交或恶意网站交流板块,多关注说不定就能搜集到了。
暗链大多是一些淫秽色情和博彩的链接内容,政府网站被植入较多,可以直接通过搜索引擎搜一下,然后看看这些网站的源码中是否有隐藏的代码,但如何准确找出暗链核心代码,也是个技术活,这就是接下来要说的。
暗链技术实现解析
只有深入了解才能准确辨别找到是否暗链样本,只有正确找到暗链核心代码提交才能保证样本正确。下面我就罗列几个暗链实现方式。
1、 通过更改颜色实现隐藏
拿我找到的实际样本为例。这是一个政府类网站(某市教育信息网)被植入博彩类暗链,被植入暗链代码如图所示。
从代码中可看出是通过将color设置为#FAFAFA”达到页面隐藏效果,网页在浏览器中显示如下。这种方式属于比较低级的,反选后即可看到隐藏内容。
2、 利用display:none隐藏。
下面是我找到的南京某公司电子商务平台被植入大量淫秽暗链的代码,暗链是通过display:none达到隐藏目的。
3、 将position位置属性设置成负数,则链接无法显示在可见页面之内
下图是我找到的真实样本,也是某个政府类网站被植入了博彩相关暗链。
还有一些其他的暗链植入方式,比如跑马灯方式隐藏、通过遮盖层隐藏等高级方式。比较惭愧这类样本没有找到。特别是后期,暗链样本提交多了,系统的识别能力提高,再提交这些简单的暗链样本后,智力分很低了。要是能找到比较新奇的暗链构造网页比如提到的跑马灯之类肯定又能那高分了。这类样本难遇到了,又不能真的去黑一个网站做植入。
再说说其他两个类型样本,webshell的样本构造起来很麻烦需要录制流量包做真实攻击,像我这样懒人觉得太麻烦,并且样本得分竟然不是很高?得吐槽下,可能是主办方为了防止刷分数吧。
恶意URL的提交还是很方便的,网上可找到的现成资源也很多,提交的人也很多,我猜目前大部分提交的样本都是这一类的。刚开始我也提交了很多恶意URL样本,的确靠这个得了很多分,但后期要是还提交从网上找的样本就不行了,智力分越来越低,或者被告知样本重复。看来这个机器人确实智判断能力在提高,不能轻易糊弄它了。
样本对抗研究
在提交数据的时候,我也很好奇这个智能机器人的识别模型原理,耐不住手痒,自然是要研究一番的。
我尝试对这个智能识别模型做攻击,类似于样本对抗的方式对模型做欺骗。在已有样本上我通过修改参数内容,改变代码格式,做代码混淆处理等方式生成新的恶意URL样本,然后提交。开始阶段这种方式提交的样本能够正常获得体力值,智力值得分也很高,也就是说这个方法是有效的。但这样做了两天后我就发现,经过这样处理的样本智力分非常低,或者被提示样本重复。应该是识别模型被优化了或是真的学习到了攻击模式。
本打算再做些深入的样本对抗测试,但测试几个发现这个样本提交活动最前端应该有一个基于规则等传统的样本鉴别引擎,只有被鉴别为符合要求的样本才会导入之后的机器人中,所以这种模式下,对抗样本根本无法通过。从这几个维度看,这个活动设计上确实能很好的防止作弊、样本对抗等行为,但这样是不是也限制了能收集到的样本多样性呢?
不管使用什么方法吧,收集大量样本,然后一顿提交就好,有技术基础的就自己构造些新样本试试运气。反正只要提交的合格样本多,分数会慢慢提上去来的。不过要是一心为了iPhone X,就要动动脑筋了。
关于抽奖
积分拿到手了,到抽奖环节了,我去,我除了第一次抽,中了件T桖之后,后面7次,全是谢谢惠顾……难道是我人品太差?不过还好第二天我人品爆发?抽中了3个。
这里讲一点我的发现,似乎每天上午的时候抽奖成功率高,不得不让我怀疑这个抽奖功能是不是每天指定抽走多少,抽完了,后面都是谢谢惠顾?如果是这样,也太落后了吧。
三种功能研究下来之后其实越后面越难找,从薅羊毛的角度来说,和其他金融公司相比浪费的时间太多,不过找样本的过程其实还蛮好玩的,同时我发现了窍门,提高分数应该这几点就够了,第一点就是尽量提交样本分布类型少的。第二点,要多提交复杂不易被识别的样本才行。
给官方的建议
撇开薅羊毛,我觉得主办方的思路有问题,这种活动对于技术研究人员其实更想要的是技术反馈,比如我提供一个数据同时能给我一个数据也还给我,这样对于我的价值就比较大,或者可以我提供一段时间后,汇总给我一个报告之类的。
希望官方可以多站在我们用户角度上面多去想想我们真正的需求,这些奖品就能打动我?虽然奖品这种东西你硬要送给我,我还是会勉强考虑考虑的。
*本文作者:斗笠君999