前情提要
前言
对于黑客和企业安全人员而言,最重要的都是信息收集,不同的是,黑客只要知道这个资产(通常指网站、应用或服务)属于该企业即可,而安全人员需要将资产对应到具体负责人。在企业内部CMDB不太成熟的情况下,一套有效的资产信息关联平台就很重要。
相对应常见的信息收集工具,SeMF平台将基础模块的核心放在了资产关联关系上,及时留存各资产和人员的对应关系,共享内部信息(其实主要是解决安全人员变动造成的已知信息丢失,有安全管理经验的人应该深有感触,即便小伙伴很配合的交接工作,但是毕竟不是完整复刻)
一个好的工具分享,不是分享它的功能,而是分享它的用法!
——窃·我也不知道谁说的
数据管理
账号管理: 系统的账号体系使用了RBAC模型,考虑到大多数企业使用了统一认证,系统不提供独立独立的账号管理模块,有需要的朋友可以参考initdata文件进行自定义或者通过django后台进行设置。
人员管理:人员数据对于某些企业来讲是敏感信息,如果拿不到自动化接口,到基础数据模块更新维护就行,虽然我更建议使用接口。
业务线:业务线与其说是资产,不如说是资产的分组,除用于权限管控外,多数情况下用于管理升级,少数情况下可以用来解决具体资产找不到负责人的情况
资产管理:提供了标准的资产管理功能,不多细说,将资产的所有信息汇总,方便展示。当然更重要的是提供各资产全方位的信息关联,如历史漏洞,安全组件,修复进度等等信息。在遇到具体的问题时可以更好的评估资产的安全风险。
风险管理:下章我们细说
以上数据作为独立主体,通过映射关系动态关联,通过接口,可以进行独立维护,也可以进行关联关系维护。更利于数字化管理程较高的企业进行集成。当然,安全部门强势的话,也可以倒逼业务方进行数据化管理(更进一步,改版推广作为公司的CMDB也未尝不可,安全需要的数据高度集中,反正他们的数据数字化程度比你低,你的信息比他们的全)
系统所有的数据主体独立,还有一个好处时可以更快捷的改版,毕竟平台定位是管理框架,如果要适合自己的场景,还需要进一步建设才行。
数据初始化
企业内部安全管理平台,最让人头皮发麻的问题就是数据初始化的问题。这个时候,就是考验安全团队公信力的时候,主要分为两种流派
公信力强的安全团队,直接领导层面下压,让各部门配合收集资产,通过安全接口人、业务负责人、运维负责人等等作为中介,进行资产梳理,然后在后期进行查缺补漏,当然,这样的数据是最准确的(至少短时间内),最大的问题人为统计带来的数据遗漏、更新维护和数据同步问题
公信力弱的安全团队只能充分发挥的自己动手,丰衣足食的传统美德,通过各种子域名爆破,内网扫描技术获取,然后再慢慢的联系业务部门认领。
无论哪种流派,最重要的是他们拿到了自己想要的数据(虽然可能不全),至少对于安全建设有了基础的数据支撑。当然SeMF平台也不能免俗,提供了两种初始化方式相互配合来 进行数据的汇总:
接口模式:平台提供了统一的平台,主要用于与业务方对接,自动化同步数据(当然这个是我们收集资产数据相较于黑客最大的优势),如果业务没有自动化系统,也可以让业务方梳理一次数据,对照平台提供的调用脚本,批量初始化
探测模式:平台提供了自动探测模式,也就是内网资产发现和子域名爆破,但是不建议作为资产的主要来源,因为无法定位到具体负责人。建议作为辅助校验手段,查缺补漏,与业务方提供的数据进行互补。当然,新增资产管理,主要的数据源来自探测模式,同样支持接口对接第三方自动化工具,参考模板写个转接中间件即可。
数据维护
如果说数据初始化让人头皮发麻,那么数据维护绝对让人头疼。
资产信息维护,平台化解决了安全能力的共享和安全人员离职造成的安全能力缺失。但是身在企业,业务方也会有人员的变动,常常出现某资产好不容易找到对应的负责人,结果对方离职了。既然收集信息,那就一步到位。平时工作过程中,更新各业务线,资产、漏洞甚至组件的负责人,应急的适合才能有条不紊。
系统人员是存在状态标识的,如果自动对接了人员数据,定期更新人员状态,就会发现一定时间以后,有些资产的负责人已经离职,系统提供了业务线,资产,漏洞三级负责人,如果初始化维护好的话,资产负责人离职,联系业务线负责人,业务负责人离职,联系历史漏洞修复的具体负责人。如果都离职且找不到人了,那自求多福吧。
当然,重新确认负责人后,可以通过资产交接功能,将该负责人名下的所有资产移交至其他人员,方便简洁,当然,没有自动化对接人员数据话,该功能批量维护也可以节省大量时间。只要平台使用人员达成共识,日常工作中就能解决大部分的资产和人员匹配的问题。
数据共享
看过上一篇的朋友应该注意到了,系统的账号体系和人员是分离的,通过映射关系进行关联,实现动态权限管控,目前支持的数据共享方式两种:
账号分享,系统内置了RBAC的控制模块,通过initdata 可初始化各角色的纵向权限,当然也可以通过给指定账户分配人员管理范围,动态定义资产、漏洞等数据的横向权限,当然在真实安全管理场景中,业务方是不会经常访问该系统,该种方式只能适用于有限的场景,考虑到大多数公司使用了统一认证,多用户模式没有前端页面,只支持后台添加,有需要的朋友可以考虑自定义
动态鉴权共享,系统可以针对某个资产、漏洞生成动态的共享链接,自定义控制链接有效期,且可随时关闭,使用方式可参考云盘类软件的共享链接(咱不支持密码模式,理由,徒增烦恼,有需要的小伙伴,可以考虑自行调整,反正也就改一个函数的问题)
当然,偶尔会有业务方需求查看他们的资产安全现状,但是提供长期有效账号肯定不现实,首先业务方不经常使用,其次,权限回收是个大问题,共享链接很好的解决了,具体数据具体共享,自动回收机制免除后顾之忧。
关于自动同步接口
基础数据模块的自定义接口,使用的是同一套同步机制,举个简单的例子。
我现在需要对接运维的系统获取资产数据,
1.到同步模块中,创建一个资产同步的路由(当然,使用token鉴权可以随时禁用、删除等)
2.自定义中间件:
如果业务方好说话,把路由和调用文档页给他们,他们去对接,定期推送(这种方法主要适用于安全部门研发缺失,把研发工作推给业务,具体怎么操作才能让业务方进行对接,请自行脑补)
如果业务方只提供数据接口,其他一概不管,也不要怕,我们提供了自动同步模板,参照写个周期的调用函数,放到平台的定时任务里,周期同步就行,要做的只是做个数据转换,将对方的数据格式转换成接口参数即可
3.检查数据同步状况,考虑到大家的coding习惯不一样,建议发布后还是要观察观察。
自动同步接口,涉及人员、资产、漏洞等等模块,使用的是同一套同步机制,使用动态路由+伪随机token进行访问控制。如果还是不放心,建议魔改,反正该类接口,只吞不吐,也不用担心信息泄露(你要抬杠说说灌脏数据的问题,建议弃用该类接口)。
Q: 所以说这么多,你的系统不能开箱即用自动化,一键收集企业资产信息
A: 是啊,业务千奇百怪,你要对接的系统也不是固定不变,非定制化的对接肯定是满足不了需求的,所以系统提供了接口和调用模板,具体怎么结合你们的业务,请自行实现(我是不会说我懒的,打死不承认)
Q: 你有说说资产的属性能够动态调整是怎么回事
A:这个也算一个特色吧,因为偷懒不想写太多重复的代码,就将资产的属性和资产的类型进行了绑定,简单的来讲,就是,我后台创建一个资产的分类,拿web应用来讲,它应该有,网站开发框架,组件、漏洞信息,那就给它选择这几个,前台自己渲染展示,隐藏掉端口、等信息,其他类似,而且因为是动态关联,修改的时候不需要改代码,在后台设置即可
Q: 企业的资产有时候很不统一,其实大多数时候,我们的资产除了常规的web、服务器、网络设备之外,还有小程序,APP、还有硬件之类的,是不是没辙了
A: 不是说了可以自定义类型吗,只要能确定key值唯一的,比如说APP,我们就用包名来创建资产,进行关联,属性的话,可以只保留插件、漏洞,或者可以自己加一个属性,比如说版本,系统本身没有限制,就看你怎么用了
Q:说好的文章和系统同步更新,怎么光看文章更新没看到项目更新
A: 前端小哥说要以一己之力重构前端,vue构造全新视觉体验 (嗯,完美甩锅,希望他看见不会打我)
来源:freebuf.com 2020-09-17 18:15:06 by: FallenAngels
请登录后发表评论
注册