暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【CMDB】闲聊企业信息资产库

端茶送水杂货铺 2020-03-19
318


点击蓝字关注我们

应用之道

存乎一心





笔者步入工作的第一个任务就是梳理公司的资产,那时还并不清楚CMDB这个概念。笔者一开始采用自己开发脚本(调用Nmap 接口)获取端口信息 + 人工复核的方式收集自家企业互联网资产信息,但随后越来越多的问题暴露出来。比如,资产扫描仅花了2小时,信息核对和补充却要花上数个月。过了不久其它同事就接手了我的工作,我便也没有再关注这方面的事情了。直到最近我又被动的参与了公司一个新的信息资产项目,于是想着借由本篇文章梳理一下我在「CMDB」这个问题上栽过坑……本篇仅为「闲谈」,想到什么写什么。文章不带任何立场,仅提供一些个人想法,欢迎各位大佬前来交流!



前言



配置管理数据库的英文全称为Configuration Management Database (CMDB)。CMDB造了千千万万个,几乎每家公司都希望自己造个CMDB,实际情况却是,每家公司都感觉自己的CMDB不够用、不好用。笔者所碰到的相关问题大体上可以总结成以下几点:

  • 「过去资产」陈年烂帐算不清

  • 「现有资产」亡羊补牢搞不定

  • 「未来资产」得过且过可不行


01

CMDB的困境


功能臃肿效果差


企业寄托太多希望于CMDB,CMDB也被当成了万能的解决方案,以至于CMDB功能臃肿,复杂度高,造成最终的使用体验是非常难用,而且使用维护的成本巨大。有的时候CMDB用到运维人员最后竟然发现——还是Excel比较好用!



目标需求没想清


CMDB存在大量冗余并不意味着它不会缺失信息。比如笔者所从事的信息安全行业,并不关心主机服务器的物理位置等信息,而比较关心这些机器对应什么应用,这些应用又由谁来维护。但涉及到应用的信息CMDB不一定有记录。需求如果不清楚,一股脑的啥都要最后可能却是啥都得不到。


数据错误很严重


CMDB并不能做到完全自动化。试想我们这个时代还在指望着人工智能能够比肩人类,又怎么奢求CMDB率先达到这个水平。既然涉及到人工参与,那必然会带来一系列问题。比如,人员信息不对称导致录入出错,人员管理不规范导致信息更新迟缓……


02

改变从改名开始


随着云计算技术的发展,传统思维建设CMDB将会变得越来越复杂。如果想要有所改变,就要先跳出过去建设CMDB的思维,CMDB的本质就是资源配置与管理,不要再添加一些杂七杂八的功能。所以建议工程师干脆叫它“信息资产库”,让一切“尘归尘,土归土”。



03

面向场景重构思路


建设信息资产库要遵循一个原则:先有使用的场景,再来管理场景所需要的资源。


什么是场景


简单说来,场景是一组“人、事、物”的组合,是特定的人对特定的物完成一系列的管理动作。面向场景的可视化,就是要深入分析人和事的需求,并在此基础上对物以及物之间的关系做可视化。


如何设定场景


基于用户的岗位角色(最直观的就是部门职责)进行分类细化。比如,网络运维、服务器运维、机房运维、安全运维等等。各个岗位之间的需求是不同的,他们的关注点是不同的。



举个例子,安全运维人员关注应用的网络流量信息和应用维护信息,而不太关注物理机的位置信息。设备运维人员关注点却刚好相反。针对安全运维人员的用户场景就应该是他们在“企业遭受攻击”时第一时间需要核查的资产信息。


03

人工自动化并重


信息资产库建设人员可以使用基于自动化+人工辅助的手段来构建信息资产库的体系,通过数据集成为场景提供更加丰富的运维信息,再提供异常反馈界面让用户自行修正,最后通过数据分析提高资产库信息整合的能力。


自动发现


自动发现是提升配置数据质量的重要手段,最常见的做法还是全网扫描。但这种方式虽然人工投入,但往往带来其它负面问题:

  • 探测出大量没有用的细粒度信息。

  • 由于扫描范围极大,扫描频率不可能很高,致使数据更新不及时。

  • 大型企业内部网络环境复杂,区域管控严格,很难做到全网扫描。

  • 全网扫描很可能在某个角落引发安全或性能问题,而运维工程师却并不知道。

实际上我们可以怎么做?运维工程师应该以场景为单位自动发现信息资产。比如,“负责检测互联网攻击”的安全运维场景下,只需要关注互联网可访达的资源。对这些资源进行扫描的范围远远小于全网环境,因此可以有更高的扫描频率、更个性化的扫描内容和更小的扫描风险。此外,利用特定场景还能使用更多的资产发现方式。同样是在“负责检测互联网攻击”的安全运维场景下,运维工程师就可以利用安全设备中的外部攻击信息,从而主动发现扫描遗漏的信息资产。


人工补充


自动发现无疑是降低维护成本的一种有效方式,但仅仅靠此技术却无法确保一个信息资产库信息的有效性。因此还是需要标准化的流程和人工维护。梳理标准化的流程是人工运维的重要一环。比如,信息资产的初始化就需要网络管理人员按照标准化流程登记分配,信息资产用途发生变更就需要资产运维人员主动录入……


众测反馈


大量事实证明,构建100%准确的信息资产库既不可能也无必要。企业只需要建立起一套有效的反馈机制,让用户在使用过程中发现数据问题时能够方便反馈并及时修正即可。


样例一:谷歌地图修正措施


以Google Maps为例,它的每个城市地图的生产流程基本是这样的:首先基于GIS数据构建出一个城市的概要地图,并辅以人工修正(谷歌内部成为Hand-Massage),然后进行地图的数据丰富(引入街景、路况等信息),并在使用时提供一个反馈界面。只要每个城市都这样做,那么就能得到一张准确的国家地图。每个国家都这样做,就能得到一张准确的全球地图。


每个场景关注的要点并不完全相同,但仍然可能存在交叉重合。只要各个场景的信息资产数据都做到自洽,那么每个场景都会变得准确,进而得到一个相对准确的整体企业信息资产库。


当然,对于用户个人而言,他一般只会关心自己的场景准确就好啦。



智能分析


这里所说的智能分析仍然是建立在“数据资产”这一基础上所进行的合理、有节制的开发。这一步往往不是必须的,但它很可能提高信息资产库的整合能力。


如今各种新的技术层出不穷,或许能够给信息资产库的构建带来新的活力。比如,笔者现在所参与的“基于图计算的资产管理”项目。虽然目前前景不明,但仍然可以作为一次探索信息资产库建设的积极尝试。




应用之道

END

存乎一心


 

本文作者:Bingunner


一位头发浓郁的信息安全工程师

爱摄影/爱数码/爱跑步的经济学人死忠粉

文章转载自端茶送水杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论