首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一个黑客的自述:我曾吹响进攻的号角

本来题目是 ,写到一半,觉得这段经历应该对得起这个称号。

黎明前的黑暗

时间要退回到六年多以前,那时候是中国网络安全黎明前的黑暗,钓鱼网站十分猖獗。金山毒霸和 360 安全卫士都适时推出了网购安全赔付的承诺,这些压力大都由反钓鱼项目来承担。

那时候我在金山云查杀项目已经做了四年,从一个刚毕业的大学生做到了开发经理,一直在反木马领域摸爬滚打,见证了国内第一套云安全系统的搭建,现在这套系统依然在运行。

一个偶然的机会,我接手了反钓鱼项目,这个项目只有一个产品经理,一个运营,半个客户端开发和半个服务端开发,加上我,一共是四个人。后来我才知道,友商在反钓鱼上投入的人力是我们几十倍。

唯一的不同是,我直接向 VP 汇报,可以指挥产品、运营、客户端和服务端开发,零沟通成本。上午想到的一个反钓鱼方案,中午就能外网上线,下午看到数据。这是我很久之后才意识到的巨大优势:快速决策

当时,这个项目被诟病的是响应速度慢,后台系统平均需要五分钟的时间,才能完整走完分析和发布流程。当然,每天的分析量是巨大的。

所以,我接手这个项目的第一件事情,就是用了一周时间,重写了反钓鱼系统的分析代码,但是,新的代码并没有上线。随后一年的时间里,我都没有再去写过代码, 因为,在这个过程中,我发现代码虽然有问题,但并非瓶颈所在,我还有更重要的事情要做。

有舍有得

第一个月做了几件事情:

提升响应速度,从五分钟提升到一分钟。这个并不需要修改什么代码,只要捋顺流程,有舍有得。

找病毒分析的同事,逆向了友商的反钓鱼模块,回测我们一周前的检测结果。这个只是做效果对比用,我们也不信任友商的结果。当然友商也在做同样的事情。

开始拦截赌博类网站。由于之前大家对赌博网站是否是钓鱼还有争论,所以就没有拦截这类网站。我接手之后就直接拦截掉它们了。

前三点,说白了,是产品的各种数据好看了。但还远远没有达到我理想中的效果。

由于人手匮乏,很多事情我们都没有办法去做,不得已舍弃了很多。比如:

之前叶博士带领了一个算法团队,做了机器学习拦截赌博类钓鱼网站的尝试,现在看非常具有前瞻性,那时候是 2010 - 2011 年。但是误报比较高,因为没有人力来做工程上的处理,只能舍弃。

不少钓鱼网站用了加密代码的方式躲避字符串规则的匹配,应对的方法应该是调用浏览器引擎跑出来真实的页面。同样没有人,也放弃了。

仿冒网站一般使用图像相似度对比的技术来处理,比如假冒的银行和淘宝网站。不出所料,我们也放弃了。

技术上是没有什么投入了,那怎么去拦截钓鱼网站呢?

置之死地而后生

被动的检测钓鱼网站,我们已经没有任何优势了。不如死了这条心,对钓鱼网站从防守转向进攻!进攻的策略很简单:提高钓鱼网站的欺诈成本,让它们从空手套白狼变为入不敷出。

有时候,没有选择往往能倒逼出真正正确的选择。

具体怎么做,就要对不同的钓鱼网站类型做针对性的分析了。由于人手问题,我们只聚焦在前三种危害最大的钓鱼网站上:淘宝、机票和火车票。

把拦截速度降低为零秒

我们第一个分析的就是淘宝类钓鱼。常规的技术流派就是分析页面特征、和淘宝官网的相似度等等。作为没有技术的野路子,我们做的第一件事,就是分析受害者的被骗过程。

得益于功能,我们不仅可以从技术上得到整个欺诈过程,还可以和用户直接交流,就像还原案情一样。通过这些分析,我们发现,如果我们不能在骗子和用户的第一次交流,还没有建立任何信任时,就弹出警告,低价的诱惑就会让用户上当受骗。

有点儿犯罪心理学的味道。

更进一步,骗子是如何取得用户的初步信任的呢?他会发送一个类似 taobao.com 的网址,比如 。由于淘宝商品的 URI 特别长,用户不会看的很仔细,这样的域名足以以假乱真。

所以,针对淘宝钓鱼,我做了一个大胆的决定:放弃所有内容检测,对于某些免费的顶级域名,在外网直接开启 host 级别的黑正则匹配。也就是说,只要你的域名长得像淘宝,并且是类似 , 这样的后缀,会被直接判定为钓鱼网站,这个的响应时间为零秒。

这个简单的规则,效果出乎意料的好:实时拦截,零误报,并且只用持续维护就能一直保持超高拦截率。

这种不按常理出牌的方法,也给监测我们检出率的友商带来了一些困扰。

封死传播渠道

用进攻手段拦截淘宝类钓鱼网站,让我们尝到了甜头,信心大增。枪口马上开始对准受骗金额大、检测难度高的机票类钓鱼。

这类钓鱼网站的特征并不明显,大部分还可以提供真实的机票代理资质,反钓鱼运营的同事也被欺骗,人工加白过这种钓鱼网站。如果经验丰富的人都没法判断,机器又怎么能够分辨出来呢?

要攻击钓鱼网站,零误报是首要条件,也是信心的来源。所以当务之急是要找到一种方法,可以百分之百的分辨出,钓鱼网站使用的真实机票代理资质,是否真正属于它。

魔高一尺,道高一丈。虽然需要查询航协的网站并且人工二次确认,但对于攻击的前提 — 零误报,我们已经胸有成竹了。剩下的就是找到一个关键点来进行拦截。

同样的,我们完整还原了几个被骗案例,发现了一个惊人的相似点 —搜索引擎的机票推广藏污纳垢,尤其某狗搜索尤为猖獗,用户大都是通过这个渠道被骗的。

封住这个传播渠道,机票钓鱼就会白白付费但没有任何收益。谨慎起见,我写了一个脚本,监测了几个搜索引擎的机票推广,每天人工验证。意料之中,这些推广除了正规的旅游网站外,无一例外都是钓鱼的。

事不宜迟,机票反钓鱼也放弃了内容检测,直接在外网开启非白即黑模式:如果是来自某狗搜索的机票广告推广,不在白名单的,直接报黑。

拦截效果立竿见影,但很快就收到一封某狗浏览器的邮件,质疑我们误报:我们拦截他们的 100 多个机票推广,友商只拦截了其中 30 个。从中可以看出两个问题:机票钓鱼当时有多猖獗,以及这个拦截方法有多有效。

没过多久,某狗浏览器就中断了和我们的商业合作,很快我司自己的浏览器也进入了秘密开发阶段,这都是后话。

瓶颈在人

反钓鱼是在和犯罪集团在斗智斗勇,对方人数众多,并且有强大的金钱利益驱动。作为一名黑客,只能通过技术手段,以及心理、经济等非技术层面的分析,来进行拦截。这个模式的瓶颈很明显,那就是人,人离开了这个反钓鱼系统,效果就一落千丈。

有没有一劳永逸的方法?这也是我一直在思考的问题。火热的 AI 能否解决这个问题?我觉得很难,最多是提高了拦截种类和降低了人工投入,说到底还是防守

在我看来,只有进攻才有可能让钓鱼网站销声匿迹。当年熊猫烧香作者被抓,国内就少见恶意的感染性病毒了。而国内安全公司掌握的钓鱼罪证丰富而且确凿,却鲜有耳闻因此铃铛入狱者,可能还是在防守的位置待久了。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171220G0PCIF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券