《风控要略:互联网业务反欺诈之路》一万字读后详细总结

《风控要略:互联网业务反欺诈之路》一万字读后详细总结_第1张图片

文/朱季谦(朱镕军)

本书的内容正如书名所述,是为要略而非攻略,即作者站在一个更为宏观的角度,以自身的从业经验对当今风控领域做了一番较为全貌的总结概述。书中的章节内容有精有简,既为要略,那么就无法苛求其内容都足够全面与详细。它更像是一部风控领域的科普类简述作品,在广度上能较好地让读者了解到风控各方面的现状及走向,但若要谈及深度,则多少有种“师父领进门,修行在个人”的感觉。这本书其实有挺多人推荐,一方面是书籍出版时间距离现在很近,一方面则是填补风控业务领域入门书籍的空白,只是通篇读完,好的地方是有,值得吐槽的地方也不少。总而言之,对于像我这样风控小白而言,还是值得翻阅一番。

正如作者在序中所言,读者通过仔细阅读本书,可以对互联网反欺诈的过去、现在和未来有一个系统的认识。

全书总共分为四个部分,第一部分介绍黑产欺诈团伙的运作套路和攻击手段;第二部分是作者总结其在构建反欺诈技术体系过程中沉淀的实践经验;第三部分则为与黑产对抗的实战案例,以及机器学习算法的综合运用;第四部分介绍其对物联网、内容安全、隐私合规等方面的实践和对海外厂商的观察,这更像是一种对风控未来的展望。

在书中的第一部分内容中,又划分为黑产发展态势与黑产武器库概览两章节,其中,黑产发展态势介绍黑色产链的结构与演变,而黑产武器库概览则是介绍主要的欺诈方式与工具,包括虚假号码、代理IP、设备伪造工具。

在黑产发展态势中,重点介绍了目前市场上主要的反欺诈词典术语,包括,垃圾注册、薅羊毛、众包、黄牛/刷单、刷单、套利、空包等,其中有几个术语单从字面上没看懂是怎么一回事,如垃圾注册、空包与众包。

垃圾注册,通俗地理解,如常见的微博买粉、公众号刷阅读刷点赞刷评论,这些都是通过脚本或者其他方式来大批量恶意注册账户实现的,这种行为即为垃圾注册;空包即虚假发送快递、发送空快递或者包裹,用以达到给商家刷单的效果。比较难理解的可能是众包,众包的意思,是由多个独立的个体共同自愿参与完成一项任务,注意一点,共同与自愿是该模式的核心。它属于一种广撒网意义上的外包,与传统外包相比,都是将任务分发到组织之外的人员手里完成,但众包更侧重于开源与自愿上的外包,它面向所有大众,讲究自愿合作共创价值,可以是有偿也可能是无偿,也就是说,一般而言不存在以合同为约束的劳资关系。而传统外包最明显特征是花钱雇佣人员来提供服务,是一种雇佣的劳资关系。

书中拿众包薅羊毛案例来表述该术语:在某微信群中,羊头和羊毛党配合,羊头负责收集线报并同步到微信群内。羊毛党参与活动,他们低价购买商品,直接转售给羊头,羊头借此囤积大量的低价商品,再通过其他线下渠道转售出去。

众包这一模式被作者用在薅羊毛欺诈行为当中来表述,容易给人造成一种错觉,即众包模式与空包、垃圾注册、薅羊毛一样,都是一种恶意行为,实际上并非如此。

众包这一概念,源于对企业模式的一种反思,通俗的说,这是一种有可能颠覆传统企业的创新模式。传统的企业模式,都是以雇佣关系来维持员工与企业的关系。但在众包概念里,更有一种区块链里去中心化的味道,不存在上下级,不存在雇佣关系,更多是一种自愿合作,而合作,讲究的是并肩前行,但前提是,需要有利益驱使,这种利益驱使则体现在多做多得的基础之上。

值得注意的是,众包模式已经出现很多实际落地案例,最常见的如美团骑手、滴滴接单、货拉拉搬家等,它们都有一个相似的地方,即任务由平台发出去,个人通过注册平台app可去领取任务,完成,拿钱。可能很多人并没有意识到,我们平常所点的外卖派送,其背后就存在众包这一创新概念。

我为什么要花那么多笔墨阐述众包这一概念?

因为当把黑产链整体结构了解完之后,会发现众包这一概念在整条产业链里充当极其重要的角色,如书中提到的打码平台——其落地理念就是众包模式:平台上聚集大量想在网上赚钱的劳工,当攻击者在拿到验证码的图片后,就上传给打码平台,打码平台会把图片下发给这些劳工,由他们随机领取任务来解答,然后把正确答案返回。

可以说,这一创新模式,某种意义上很值得研究学习。

关于黑产方面的描述,作者更多是站在羊毛党这类团伙欺诈手段上来详细展开,比较遗憾的是,其他如电信欺诈黑产,则简单地一笔带过,但作者在文中却这样写道:“在现实世界中还有一类更加凶残的黑产团伙——电信诈骗团伙。这类黑产团伙的危害远远超过上文所说的羊毛党类黑产。”

至于如何危害以及有哪些手段,作者没有详细探讨。或许就像水墨画里的留白手法一般,只指明一个方向,但点到为止,剩下的,就靠读者慢慢在实践当中探索与总结。

书中用一组数据反映出这条成熟黑产链背后的成员年龄分布,其中在18岁至24岁的参与者占比竟超过50%。这个年龄段的人,可以说都是互联网的原住民,他们大多都很有想法,也更加了解互联网世界。但就是这样一群人,在金钱的驱动下,其分工已经变得越来越细,专业化程度不断提升。他们同样广泛地使用大数据分析、深度学习以及人工智能等新技术,这时,技术就变成一把双刃剑,意味着,道高一尺可能魔高一丈。黑产在精细化的同时,也将逼着风控向精细化方向发展,但究竟如何发展?这是一个暂无明确答案的问题。

第一部分的内容,作者以一句“不少看似正规的互联网企业为了获得极速的成长,甚至会主动引入黑产生态的流量”当做最后结尾。这是很值得玩味的一段话。拿一个简单案例来说明,即一新兴的电商app,可能为了提高流量,故意给羊毛党开一个口,主动引来羊毛党,这样一来,平台用户量就一下子上来了,进而用户活跃数据报表就丰满好看了。

只是这样的做法是好或坏,我无法去做评判。

 

前面主要都是第一部分的内容阅读思考,若要以一种读到无字的地方要比有字的地方多的理念去深入研究,大概是可以扯出更多读后理解,但没有必要,因为整本书的核心干货在第二部分与第三部分。这两部分内容更多是作者的一种经验总结,它提供给我最大价值在于,是把以前实际做过的但不知道其业务作用的地方都有一个较好的领悟。通俗地打个比喻,就是在制作一个药物的过程,我负责的只是其中一个很小的环节,可能只是负责是把药植物碾碎,虽身在其中,但不知道所参与制作的药物成型之后究竟有何作用,直到有一天,突然看到相关的药物说明书,才恍然明白,原来当初参与制作的药物,是通过这样的方式用来治疗感冒的。

在第三部分的反欺诈体系建设章节中,作者根据经验与教训提出一套贯穿事前、事中、事后的动态防控理念。事前是针对前端风险的识别,事中是建立基于账号、设备和黑产情报的三维立体风险模型与智能决策机制来防控欺诈交易,事后则是沉淀案件与溯源。针对这一套动态防控理念,作者总结出一个三层的反欺诈防控体系,包含终端风控层、分析决策层和数据画像层,其中,还有一个威胁情报体系贯穿这三层。根据其提供的插图可知,其实这三层就是事前、事中、事后这三块的具体技术实现。

《风控要略:互联网业务反欺诈之路》一万字读后详细总结_第2张图片

这套三层反欺诈防控体系可以说是书中第三部分的总纲领,就像是小说创作里常说的大纲,而后面的内容则是在大纲的基础上,分门别类地去细化完善。第三部分内容除去反欺诈体系建设一章外,另有八个章节,其中设备指纹、生物探针、智能验证码这三章节属于防控体系当中的终端风控层,其中最重要一环是设备指纹;决策引擎系统、实时指标计算、风险态势感知属于分析决策层,这是各种数据、规则和模型汇总计算的中心;最后名单体系属于数据画像层,包括黑产攻击事件、黑手机号名单、IP画像、设备画像等;欺诈情报体则属于贯穿三层的威胁情报体系的内容。

这部分的业务知识点,除了生物探针、智能验证码,其余都或多或少在实际工作当中有所接触或者听闻过。

接下来,把书中提到的三层反欺诈体系当做读书笔记梳理总结下。

一、终端风控层

  • 设备指纹:书中对设备指纹的步骤阐述主要有两步,一是采集设备硬件信息,即使每台移动设备成为唯一ID,这个ID生成后不会因用户设备的日常使用而改变;二是为每一台移动设备生成风险标签,标记该设备潜在的业务风险,供分析决策使用。书中提到了相关生成原理,可以简单概述为:通过手机操作系统和浏览器厂商预留的客户端设备API,可收集到设备当中非用户隐私范围的特征属性并将其加密上传到云端,然后通过后台的算法分析为每台设备生成唯一设备ID来标识这台设备。作者用一张流程图描绘了该生成原理的流程,如图所示:

《风控要略:互联网业务反欺诈之路》一万字读后详细总结_第3张图片

这些特征属性参数在不同的操作系统上有所差异,书中主要概述了Android设备指纹参数、iOS设备指纹参数、Web设备指纹参数这三种,参数图示如下:

《风控要略:互联网业务反欺诈之路》一万字读后详细总结_第4张图片

图-Android 系统中比较稳定的设备参数

《风控要略:互联网业务反欺诈之路》一万字读后详细总结_第5张图片

          图-iOS 系统中比较稳定的设备参数

        《风控要略:互联网业务反欺诈之路》一万字读后详细总结_第6张图片

        图-浏览器比较稳定的设备参数

  • 基于用户行为的生物探针:采集智能终端设备(如手机、电脑等)的屏幕操作轨迹数据、传感器信息等数据综合建模,再通过机器学习、特征模型,区分出操作业务是自然人还是自动化工具。例如用在登录场景,采集到用户在终端设备的行为数据,如按压力度、手持设备仰角、手指触面、屏幕滑动和鼠标轨迹等日常使用习惯,可以生存专属的用户画像,相当于这一系列行为,可以生成一个专属用户的唯一生物ID。简而言之,就是基于用户习惯的一项技术。只是,让我存疑的地方是,既然是习惯,难免都可能有所改变,毕竟,对于自律很强的人而言,养成一个习惯或者改变一个习惯,都比较容易,那么,这样的用户画像,如何能在变化中保持唯一呢?

 

  • 智能验证码:验证码的本质其实是一系列绝大部分人类能够解答,但机器无法解答的问题。在我们日常登录软件平台过程中,验证码已经是基本必需的,但阅读本书之后,我才了解到,原来那种普通填写字母数字的验证码,早已经很落后了,甚至可被黑产轻易破解。现阶段衍生出很多新型的智能验证码,包括音频、视频、图文理解、语义理解、空间(2D/3D)旋转、逻辑推理、智能无感验证码等。拿12306分流抢票系统中根据文字提示点击对应实物图片的验证,就算是图文理解里一种,另外还有滑动图片到某个位置的,都算是新型的智能验证码。书中提到黑产破解验证码的一些方式,其中有一个很关键的黑产解码平台,即前文提到过的打码平台,就是专门用来破解验证码的。

作者在书中给出几种对抗黑产破解验证的方案,这些方法难以被打码平台和AI破解,值得参考了解:

    1. 新的验证类型;
      • 使用GAN(对抗生成网络技术)来无限生成各自色彩斑斓的鸟,验证的问题可以是“这个鸟的某个部分是什么颜色”。
      • 空间(2D/3D)旋转验证的方式,设计需要拖动及旋转到XX角度才出现正确答案的逻辑。
      • reCaptcha第二代验证码

 

    1. 基于用户行为的生物探针技术;

 

    1. 多维度赋能;

该方法是在攻击者获取验证图片步骤前,增加检测手段,如检测用户的设备环境是否存在异常、是否为模拟器、有无安装作弊工具,除此之外,还给验证码加入其他防控维度,包括归属地、是否设备黑名单、IP画像等等。

在如何设计一款优秀的验证码方面,作者给出了一些参考意见,智能验证码类型包括滑块验证、图文点选、空间旋转、空间推理等,在实际设计中都遵从三个原则:对人容易、对机器难、有趣好玩。

总而言之,就是在有效防护的同时具备良好的用户体验,最理想的状态是,对正常用户无感,对异常用户弹框验证。

针对该原则,作者阐述了一款智能验证码的设计原理:通过持续对用户的终端设备、网络环境和生物行为等非敏感特征进行风险检测、关联分析,并引入行为生物识别算法,实时判断当前用户是否存在风险、对应的风险程度,根据用户配置的策略进行风险决策。智能验证码提供自动智能预判处理机制,例如,用户无风险一键通过,用户有风险则根据不同风险等级弹出不同难度的验证码进行挑战。同时,用户可以根据实际情况需要选择不同的验证类型、验证素材、验证语言、验证策略等。

以上就是终端风控层的内容,主要核心就是事前进行前端风险识别,提高防控能力。

 

二、分析决策层

  • 决策引擎系统

整本书我最想吐槽的,应该就是决策引擎系统这一章了。

决策引擎系统应该反欺诈的灵魂所在,但很遗憾,本书中关于决策引擎方面的内容,略过于精简,没能给稍有经验的读者带来较好新鲜干货,但仍存在一点参考价值。

这块内容主要阐述决策引擎系统的特点,其核心是规则引擎,而规则引擎又包括规则可视化管理、规则推送、规则执行等模块。

决策引擎规则管理界面的创建和管理同样是具备可视化界面,根据书中插图可以看出,其规则管理是居于策略下的,如下图所示,该批量规则属于“异常登录_安卓”该策略下,而策略是否又在策略集底下,书中没有明确说明,根据插图,可看出,其策略底下包含了规则管理与指标定义两个tab类型。

《风控要略:互联网业务反欺诈之路》一万字读后详细总结_第7张图片书中给出了三种不同规则引擎的实现方案,包括以Apache Groovy 为代表的脚本引擎,以Drools规则语言为代表的开源规则引擎,以ILOG 为代表的商业规则引擎,相应的介绍图示如

《风控要略:互联网业务反欺诈之路》一万字读后详细总结_第8张图片

 

 

  • 实时指标计算

在对业务事件的实时风险决策判断中,无论是基于专家规则还是风控模型,都需要依赖这类对一定时间范围数据进行回溯加工的变量,这些变量称为指标。把实时返回计算结果过程称为实时指标计算。这里的低延迟包含两个维度:一个维度是最新的事件被指标统计在内的延迟,另一个维度是计算结果的响应时间延迟。在反欺诈业务中,作者列举了一些常用的指标类型,如:《风控要略:互联网业务反欺诈之路》一万字读后详细总结_第9张图片

这些指标计算都可以统一抽象出几个固有特征:时间窗口、事件、主属性、副属性、计算逻辑的组合。

因此,以上的常用指标可以抽象出如下图所示:

《风控要略:互联网业务反欺诈之路》一万字读后详细总结_第10张图片

  • 风险态势感知

风险态势感知系统主要起到风险预警的作用,主要用于快速发现现有风控系统的防御盲区,预警线上逐渐失效的防控策略,根据实际对抗效果不断对风控系统进行完善。实现该感知系统主要有三种方案:

    1. 基于统计分析的方法;

主要分为对核心风险事件数据分析与核心业务数据分析。其中,核心风险事件数据是风控系统运行过程产生的数据,如日调用量、拒绝率、拒绝变化率、审核率、字段获取率等,简单点的说,这些都算日常反欺诈调用统计报表里的数据。先前我曾参与过白骑士反欺诈调用统计报表相关的开发,虽知道如何实现其统计逻辑,但这些数据背后具体能分析出些什么风险信息来,我是不甚了解的。这次阅读书中这块有关统计分析的内容,在一定程度上,算是给我扫了一下数据分析的盲区。如调用量的分析,若其突然大幅度波动时,往往意味着,虚假黑产流量的增加;风控数据字段的获取情况,则能从侧面反映出当前系统有无发生风险等,其余举一反三,都可从一个数据当中,分析其背后暗含的信息量。另外,核心业务数据分析,则是指业务自身的核心数据,如电商、直播过程产生的业务数据,以电商业务为例,预警业务数据包括可收货地址分布、店铺分布、商品类目分布、IP分布等,简单打个比方,如收货地址都分布密集在一个范围很小的地域,那么,这数据背后就有可能是团伙欺诈作案。

    1. 基于无监督学习的方法;

主要有特征抽取,建立连通图,群组聚类。

    1. 基于欺诈情报的方法;

 

三、数据画像层

该层主要以风险数据名单体系建设为主。名单,包括白名单、灰名单和黑名单。名单的价值在于把业务系统中曾经出现过、较高风险的数据按照一定分类进行存储,提供给不同场景中的业务团队做风险参考,每一条名单数据都表示它曾参与过某次风险行为,因此,具有较高的准确性。

作者在书中总结出名单体系的设计思路:

  1. 明确哪些数据可用于建立名单,确定名单数据的主键;

在互联网反欺诈业务中,常见的几种名单主键是:手机号、身份证、银行卡、IP和各类设备标识。

  1. 需要明确标签的类别;

标签可以指向一种明确的风险,如建立一个“刷单的手机号黑名单”,这样的标签直接指向一种特定类别的风险(如刷单这种具体的风险)。标签也可以指向一种风险相关的特征,还是以手机号为例,如果建立的是“虚假号码”的手机号名单,则不直接指向具体风险结果,而是表示和特定类型的风险(如刷单、薅羊毛)相关性非常高。

  1. 名单体系的生命周期;

绝大部分名单数据都有时效性,如果不能及时更新维护,其价值在一个特定时间点之后会迅速衰减。另外,数据自身特性或数据背后的某些因素发生了改变,也可能会导致该名单数据快速失效。关于名单体系的生命周期维护,书中提出一种比较有意思的参考方案,即从名单数据命中率变化来确定其生命周期,据作者表述,这是一种成本较低的方式。主要有两种分析命中率从而确定名单生命周期的方法:一是选定一批虚假号码作为样本,持续观察这批数据在决策中命中率是如何变化的。找到较为合适的一个时间跨度,作为虚假号码名单数据的有效期;二是从近一年的事件中,提取所有的手机号数据,和全量的已知虚假号码进行比对,然后追溯命中部分名单数据的入库时间和最后更新时间,进而计算出虚假号码的命中率情况。两种区别主要在于,前者需要较长的时间周期才能得出结论,后者在短期内就能给出结论。

  1. 名单体系质量管理;

名单数据一般用在注册、登录和体现等相对重要的业务环节,这样就意味着,若造成误杀往往会引发比较严重的影响。反过来思考,若想提高名单体系的质量管理,其实质就是降低名单的误杀。然而如作者在书中所言,误杀率评估相对比较难做,且不同数据情况不同。作者使用的误杀评估方法,是收集策略效果情况、客户投诉等多方面因素综合量化评估其变化趋势。这个方法比较抽象难懂,我暂时也没有理解里面涉及的原理。

四、威胁情报体系

该体系通俗理解,就类似一个间谍,打入到黑产团伙当中,去收集分析黑产团伙使用哪些资源和技术手段,包括但不限于获取“刷单”、“薅羊毛”等黑产攻击事件细节、黑产新型的作弊工具及黑产使用的各类资源信息,简而言之,就是知己知彼,最后经过情报分析,再有的放矢地做出应对措施。

作者根据自身经验总结了欺诈情报体系的建设思路:

  1. 情报采集;

通过卧底黑产网络、监控黑产论坛等方式进行情报采集,主要包括数据情报、技术情报和事件情报采集。数据情报主要是手机号、IP、设备及邮箱账户等数据采集,沉淀出相应的黑名单数据;技术情报是获取某种欺诈技术的详细信息,包括原理、用途、危害等;事件情报则是捕获某些即将发生、正在发生或者已经发生过的欺诈事件信息。

  1. 情报分析;

将各个渠道收集的原始数据信息,包括文本、图片、音视频文件甚至代码片段等,通过自动化或者人工运营的方式进行分析。其中,作者表述其公司已基本实现文本类情报的自动化分析,同时,给出了相关的分析思路:第一步,先进行智能分析,即在提炼过程中,运用分词算法、关系抽取、词性标注、实体识别等方式,对目标实体词汇进行识别、关联、清洗,最后提炼出目标风险信息;第二步,是进行风险预警,即将提炼出的风险信息,再进一步完善风险的描述(如识别语句中的黑化,还原欺诈方式,掌握黑灰产的破解思路如何绕过平台,预估参与本次活动的人数,造成的损失等)。最终向用户输出结构化的完整预警信息,便于用户进行快速决策。

《风控要略:互联网业务反欺诈之路》一万字读后详细总结_第11张图片

以上,就是作者总结出的反欺诈风控系统的构建思路,阅读的过程当中,结合先前的一些实际经验,可对这部分内容重新做一遍梳理理解,更好地了解到,工作当中业务相关的原理。

第三部分内容主要是实战案例,分为机器学习算法使用与互联网反欺诈实战。机器学习算法章节包括了特征工程、模型选择、模型训练以及工程化和业务落地。这部分内容比较抽象难懂,我只是简单地过了一下。在阅读过程中,有一个地方让我比较有印象,就特征工程里的特征维度,我原以为在机器学习中,获取到的特征应是越多越好,然而,作者在书中指出,实际操作中并非特征维度是越多越好,因此,特征维度较多的数据样本,通常需要先进行降维处理。通俗的理解,应该就是剔除非主要特征,保留主要的特征,就有点类似二八原则的感觉。

特征工程的降维方法,书中提到了两种,一是经验直觉法,也就是依赖个人经验来剔除样本的冗余特征;二是统计分析法,是一种从统计分析学角度考虑的方法,包括缺失值剔除、低方差滤波、高相关滤波等方法。缺失值剔除可以简单理解为,在一堆样本当中,若大部分样本是没有该维度数据的,那么该维度的特征是可以被剔除;低方差滤波可以理解,若某一特征维度几乎没有变化,即一直保持近乎同样的状态,那这样的特征维度也是不必要的,可以被剔除忽略;高相关滤波则是存在高度相同的特征维度时,只取其中一个特征作为验证即可。

在书中,提到了几种降维算法,包括PCA、KPCA、PCR。

模型选择包括决策树、随机森林、K-Means、神经网络、卷积神经网络、递归神经网络和图计算,作者在书中用一种图来概括表达:

《风控要略:互联网业务反欺诈之路》一万字读后详细总结_第12张图片

本部分内容另外一章是互联网反欺诈实战,作者在书中提到了几种反欺诈实战案例,包括垃圾注册风险识别、批量登录风险识别、“薅羊毛”风险识别、裂变拉新作弊风险识别、“任务”作弊风险识别、恶意退单风险识别。这些内容都具备一定的参考意义,可从中收获一些规则策略的设计与部署以及运营监控实现思路。当然,这些都只是作者个人的经验总结,不可能都通用,当做学习参考即可。

书中的第四部分,取名“新的战场”,应是作者对未来风控的一个展望与关注。这部分内容主要包括物联网时代的风控、内容安全与合规、风控与数据合规使用与海外风控公司介绍。

内容与数据安全方面,更多是从数据规范化方面阐述,整体比较枯燥,可以理解成,风控领域已经从野蛮生长进入到一个合法合规的时代,在这样一种大环境下,更需要注重法律规范。

物联网风控方面的阐述,作者似乎在预测着风控时代一个更大市场规模的出现,物联网打通虚拟和现实世界,这就意味着,黑产的攻击不再局限于虚拟网络,其攻击可能会影响到终端用户人身安全,甚至社会稳定,这就意味着,物联网时代的风控,任重而道远。

作者在书中提到,物联网面临的安全注意在“云、管、端”层面,即物联网的云端平台、网络通信和终端设备。针对这些层面可能面临的威胁,作者提出了一套物联网安全风险控制体系建设思路,同时,就类似反欺诈体系一样,物联网安全体系中同样需具备一套安全风险态势感知系统。物联网风控相关内容与实际工作的金融风控有较多差异,且暂未有成熟和广泛的落地实际,故可做了解即可。

在本书中,最后一块内容是海外风控公司的介绍。这部分内容看似无关紧要,其实同样存在一些值得探索的东西在里面。因为我们所在的这个世界存在各种各样的信息差,而信息差的获取,在某种程度而言,就是一种优势,很多人就是靠着信息差大发横财。书中提到的海外风控公司,是否存在一些与国内不一样的东西,同样是值得去了解下的。

读完这本书,或多或少是有所收获的,但这样的收获其实还是浮于表面,若要有更加深入的理解,还需在漫长的实践当中,不断积累与反思,才可能有更加深刻的理解与掌握。

毕竟,冰冻三尺非一日之寒。

 

 

 

你可能感兴趣的:(程序员的散文,安全)