Assimilation Project(AP,同化项目),是指在无需明显增长集中化资源的情况下,发现和监视未知规模网络上的基础设施、服务及相关设备的解决方案。
有关IBM AS/400中小型多用户商业计算机系统超高可靠性的段子还挺多的。其中流传最广的一个版本是:某天,一位IBM维护工程师到客户那里维护一台AS/400服务器,倒霉的接待员工根本不知道那名维护工程师在说啥。最终,该系统在一个隔离空间中被找到了,它已经在那里默默扛起业务数年,完全被人遗忘,无人打理。
从可靠性视角看,这简直太棒不过。从安全角度看,根本就是噩梦。它代表的是美国前防长拉姆斯菲尔德臭名昭著的“未知的未知”论调——有些事,我们不知道我们不知道,比如在缺乏证据表明,伊拉克政府向恐怖组织提供大规模杀伤性武器的情况下,英美还是攻打了伊拉克。
阿兰·罗伯森,开源开发者,高可用性专家,常问人需要多长时间才能发现他们的服务中有哪些是未受监管的。典型的答案落在3天到3个月的范围内。讽刺的是,逆命题(当前提供了哪些服务)却很好回答,因此分清所提供的服务清单与未受监管的服务列表之间的差异应该是很容易的。但,正如前文所述例子显示的,要找出都有哪些服务在运行,并不总是那么容易的,想知道这些未受监管的服务是否配置良好,就更不容易了。
幸运的是,罗伯森正在研究该问题的解决方案,以开源项目AP的形式。AP可对你的系统执行详尽的服务发现和入库动作,并存储结果数据以便查询。一旦数据被收集,AP会将系统当前状态与一组IT安全最佳实践进行对比。默认使用数据交换标准协会(DISA)/美国国家标准与技术研究所(NIST)的安全技术实施指南(STIG),但也可定义自己的或选择适合自身情况的最佳实践。
罗伯森还写了一系列博客文章指导用户怎样快速启动和运行AP:
- 15分钟获得更好的安全
- 1小时获得更好的安全
- 半天得到更好的安全
15分钟那篇引导你通过简单几步下载自动化安全脚本来安装AP及其依赖项。推荐在以root用户运行之前花点时间看一下脚本,也多花不了几分钟。
AP依赖于高性能图形数据库Neo4j,因此,下一步就是启动数据库、核心服务和库存代理。几分钟之内,发现和收集就完成了,可产生单个系统的快照。示例如下:
大红框醒目地显示出该系统没遵从 DISA/NIST STIG 安全配置建议。
此时,可开始对数据库进行一系列查询,查看还有其他什么发现。输入 assimcli query list 命令,可得到可用查询的完整列表。要查看与系统互动的IP完整列表,发出 assimcli query allips 命令。示例结果如下:
从结果中显示的 CADMUS COMPUTER SYSTEMS 可以推断出测试用例运行在一台VirtualBox虚拟机上。剩下的条目能看出测试用例的系统十分简单,定义的主机名极少,纳米探针代理运行了极短一段时间。一个产品网络会有大得多的IP列表,相关信息也丰富得多。只要有新的IP在网络中出现,列表就会新增一条,因此该列表会随时间长大。这是发现你现有服务的第一步。AP能从这一个系统扩展到监视你所访问的所有系统。
罗伯森系列文章的第三部分里,他描述了如何远程安装纳米探针代理到你网络中的其他系统中。纳米探针会向CMA服务器发送收集到的配置数据,这样你就能像上文描述的一样,可视化你网络中提供的服务了。短期内,不止你网络中的系统和服务,甚至它们的配置及距离你理想配置的差距,都能被显示出来。
此处可再引用一句拉姆斯菲尔德的名言:“你与现有系统对战,而不是与可能想要或希望拥有的系统对战……” AP提供了一种方法,可确保知晓自身确实拥有的东西。
本文转自d1net(转载)