0x01 写在最前面
拉勾网在历史上一直都没有可持续建设的安全基础服务,我来了之后一直在梳理和捣鼓,老板也特别支持,对于安全更加期待是可持续化建设的。在这个阶段,快速建立一些有用的东西解决当前的困境,从舒适的环境跑到创业公司本来就是一个挑战自己的过程,从0-1的技术挑战,会比从1-5的挑战深入。这个过程,我相信每个人都经历过。感谢在后期加入我们的 @kyle,还有 @bing,感受到每个人都在成长,感谢公司给的资源。
0x02 第一个客户“大鲲”
对于核心业务,当前比较重点的就是大鲲了,短期项目发布和专家对接,这个涉及到金流的服务目前对于拉勾是最火的一个点,也是攻击者最喜欢的点。(谁不喜欢钱?)
每个创业公司,在上线新业务的时候,都在赶开发进度,安全需求变得可有可无。在这个过程中如果不是有充分的安全技术考量,这事肯定没谱,特别是涉及到金流的时候。大鲲在这个压迫的环境下,见证了安全的成长,并且大鲲是我进入拉勾网之后,第一个“客户”。
在@bing加入后,不止一次看到 @bing 往大鲲那边跑,他也顺利成为了大鲲项目的安全负责人,我也会定期跟大鲲的负责人@vee聊安全的需求,对于安全,@vee一直都很慎重,也特别支持,这里给大鲲的兄弟点个赞。
0x03 服务设计图
面对项目组快速的迭代,这个环节如果安全没有自动化的东西输出,明显是不靠谱的。对于安全自动化,我们内部做了一定的讨论,并且明确的把需要做的东西规划出来,然后就有了现在这个架构。
由于老板是从腾讯出来的,大部分的时候老板更喜欢原生的东西和服务,面试的时候,老板也说过,如果可以,尽可能自己开发,除了迫不得已,且特需要的情况下,我们大部分都采用自建开发的方式(调度器、规则扫描、黑盒扫描等),同时通过阶段性挑战来降低我们的金钱投入,给公司节省一笔不菲的资金。
0x04 规则化
为了保证业务能够长期稳定持续的发展,在开始设计的时候,默认我们就采用规则化,服务化的开发思维,这样就能保证每个人都能负责自己的服务,并且不断的迭代更新,互不干扰。(@kyle 跟 @bing成为了第一波规则的贡献者,也是规则开发的成员)
什么叫规则化?
“规则化”就是建立完整的规则模型,所有的扫描规则都固化成请求,按照某个特定的玩法,存储到db。底层在跑的扫描节点根据需求不断的reload规则,并且根据调度器下发的任务进行扫描。
规则化有啥好处?
"规则化"之后,每个安全人员只需要经过简单的培训,就可以实现10秒写一条扫描规则的能力,甚至有的时候根本就不需要10秒。
规则化比模块化哪个更好?
“模块化”是针对像bat那种安全人员特别密集的环境,他们拥有更高的资源,而且人的技术能力特别强的前提下,模块化更加适合,但是对于我们这种小公司,这玩法完全不行,但是我们也支持“模块化”,只是针对性的模块化,比如延迟注入的攻击模块、盲注的攻击模块之类的。当然,写出来之后需要有一定的开发能力的人才能看懂,但是“规则化”则是智商不低于正常人都能看懂。
服务化我就不解释了,大部分微服务都是这样来的,这个解释就没意思了。
0x05 后续
后续会逐步把扫描之类的东西都写出来,毕竟写东西就是沉淀的过程,可能慢,但是肯定会写。