昨天的开篇一发,看到大家的讨论,我第一反应是“完了调子起高了”。与其说我在告诉大家我们做了什么,不如说我在告诉大家如何理解技术的发展,有可能看懂的人做出来了比我们做得更好,我们目前的技术梯队应对那些高度还有一定的困难和周期。
fofahub是一个围绕资产仓库开展工作的平台,它的地基就是资产仓库。我认为两个事实是:一)资产暴露面(攻击面)是网络攻防的第一步,是攻防双方对决的基础;二)资产的梳理工作只完成了攻防流程中很少一部分工作,如果让我拍比例,也就工作量的20%。换句话说,资产很重要,所以变成了兵家必争之地,但是单纯靠资产并不是打赢战争的决定性因素,必要但是不充分,所以还有大量的其他工作。资产充其量只是一个元数据而已,对数据的分析和利用才真正决定了最终的价值,元数据也是价值之一,只是跟用户理解的价值还相差比较大。比如说对于漏洞利用流程而言,资产是地图,漏洞利用是过程,这里漏洞利用也未必是最终的价值输出,还可能有敏感数据分析等,或者导出到其他系统。
用户通常希望的最终价值就是交钥匙工程,比如你帮我搞定不要让坏人进来了,或者你帮我打击这个犯罪团伙。这里很容易陷入误区,比如假如双方无法对“打击”进行准确一致的定义,那么大概率你是不可能完成交付的,它是找到人?还是进入到犯罪人员的服务器?还是提取违法犯罪的证据?另外,在没有所谓的工具化之前,正常是怎么做的打击?是不是网络安全专家利用现有的技术就能完成工作?假如已经有其他替换方式,那么现在的痛点是速度慢效率低,还是说成本太高?还是压根就是我们假想出来的需求?
通常来说,技术是辅助,痛点和需求是先于产品存在的,那些痛点其实就是场景。一直生活在冰川的爱斯基摩人是无法想象在撒哈拉沙漠徒步时快中暑的感觉的。场景无法臆断,你只有去体会了才能真正地感同身受。在家做菜的同学们会理解一种场景,你切肉的刀要和砍骨头的刀不一样,一个要锋利一个要厚重,同样是刀,切菜的和野外生存的刀又不一样。所以我们现实生活中经常看到两种现象,一种是我给你一个产品,干什么都用它;另一种是你用起来不顺手,干脆这样你给我钱,我帮你做好。这就变成了要么是提供了体验很差的产品,要么是通过堆人头的服务来补齐。无论哪一种,都是不可持续发展的陷阱,我会把这种情况理解成“技术尚不成熟或者技术无法完成”。
在资产梳理过程中,这几年我看到的是,大家对于资产全面性的要求很高,不能有遗漏,但凡有遗漏就很可能输在起跑线上。所以网络空间测绘/easm/caasm等蜂拥而上,维度越来越多,数据量越来越大,尤其是一旦涉及到资产对应的业务属性,事情就变得越来越复杂。国内和国外大体上发生了一点不同,国内的产品在效果交付的压力下大量安排了人工,国外的比较而言则选择了走自动化流程。这是一个典型的选择难而正确的事情,还是选择简单但是错误的事情的案例。
技术不是万能的,技术无法代替用户的感受,所以我认为技术应该做好自己的本分工作,那就是在核心能力成熟之前,不要过早的尝试去替换用户的决策链。一个简单的例子就是,在人工智能成熟应用的前提下,不要尝试去帮资产打业务属性标签,要么效果惨不忍睹,要么全部在耗费人工。人工服务多了利润就少了,研发投入就少了,在客户并发量大的情况下质量就低了,客户不满意了,预算下降了,毛利很低了,工程师的工作量就更大了……怎么看都是一个恶性循环,几年后大家都放弃了这个市场。我们总是尝试用廉价劳力苦力的勤奋去掩盖我们在思维上和技术上的不足。
关于资产仓库,首先给它做个定义:任何网络攻防或者网络运维的前提是记录了完整的可访问的资产列表,它是以IP为纬度,结合了域名证书端口协议等其他元数据属性。IP会对应很多其他属性,包括开放的端口,上层的协议和应用。每一个网络安全的技术入门都是从端口扫描开始的,每一个攻防都是先用一个文档记录目标网络的IP和域名开始的,大家不断地重复重复再重复,工作了二十年,就重复了二十年,能力的区别在于是否写了大量的脚本调用了不同平台的数据。稍微夸张一点的说:很多网络安全技术人员的人生,就是积累资产仓库的人生。开发人员的职业生涯从第一个代码仓库开始,安全技术人员的职业生涯从第一个资产仓库开始,何其相似。
不过目前,资产仓库的梳理存在几个很明显的问题:一是不够自动化,就像上面说的,好坏取决于工程师的脚本能力和数据调取能力,所以大家首先变成了爬虫专家;二是很难应对变化,比如今天刚梳理完扫描完,明天上线了新的域名开放了新的端口,一段时间不更新就很容易大量的不准确,你也不可能每天拿大带宽天天对着网络轰炸;三是数据没有整理,没有高可用的网络服务,协同成本高。
如果有一个资产仓库系统能够大数据量的自动完成元数据的聚合,能够监控目标网络完成更新,并且通过webhook实时推送,那么我们可以想想,每一个人每一次能省下来几十分钟的时间,每一年能省下多少专家时间,能产生多少新的价值输出啊?所以fofahub实现的第一部分基础功能就是资产仓库,我们完成如下几个核心功能:
一)用户定义想要关注的资产范围,可以是域名,可以是IP,可以是证书;
二)从fofa库里面自动导入所有被关注资产的元数据,并以IP进行聚合展示;
三)未来只要fofa更新了被关注的资产数据,都会实时同步到资产仓库中;
四)支持定义了webhook的资产仓库,在发生资产变动的事件时,完成实时通知,可以执行自己的业务处理流程;
五)提供与fofa兼容的元数据查询语法,在你的资产仓库中,你可以任意发挥;
里面我们做了一些很有用的小细节,比如自动提取目标的企业图标,还比如自动推荐可能被遗漏的资产线索,这里不展开说了,我们来简单看几个小演示视频。
资产仓库的创建与自动化导入:
资产仓库更新事件的webhook通知:
资产仓库更新的workflow回调:
到这里,我们把20%的工作就完成了,当然这只是开始,未来的更复杂也是更重要的工作留到下一篇介绍。由于资源有限,目前开放邀请码的机制,邀请码激活的可以生成三个新的邀请码,未来等稳定了我们会正式放开。
今天先给大家送上5个邀请码,请笑纳:
Q1JP4YGIQ55ITL26F0ME7O
DJVKW0H4GALJ1S85RKVR63
GNSISQR2GKEKYBM3NKOCFI
3LR5Y2D8A6JCDA32FVCQ1C
LGGDFXOP0BFVKLF8RWLCJ6
ZOM5VJOIUYQQU9RN2GC881
携邀请码的任何fofa注册用户都可以访问网址进行体验:https://hub.fofa.info