我们不知道我们不知道:用同化项目做网络安全

简介: 本文讲的是 我们不知道我们不知道:用同化项目做网络安全,Assimilation Project(AP,同化项目),是指在无需明显增长集中化资源的情况下,发现和监视未知规模网络上的基础设施、服务及相关设备的解决方案。

本文讲的是 我们不知道我们不知道:用同化项目做网络安全,Assimilation Project(AP,同化项目),是指在无需明显增长集中化资源的情况下,发现和监视未知规模网络上的基础设施、服务及相关设备的解决方案。

有关IBM AS/400中小型多用户商业计算机系统超高可靠性的段子还挺多的。其中流传最广的一个版本是:某天,一位IBM维护工程师到客户那里维护一台AS/400服务器,倒霉的接待员工根本不知道那名维护工程师在说啥。最终,该系统在一个隔离空间中被找到了,它已经在那里默默扛起业务数年,完全被人遗忘,无人打理。

image

从可靠性视角看,这简直太棒不过。从安全角度看,根本就是噩梦。它代表的是美国前防长拉姆斯菲尔德臭名昭著的“未知的未知”论调——有些事,我们不知道我们不知道,比如在缺乏证据表明,伊拉克政府向恐怖组织提供大规模杀伤性武器的情况下,英美还是攻打了伊拉克。

阿兰·罗伯森,开源开发者,高可用性专家,常问人需要多长时间才能发现他们的服务中有哪些是未受监管的。典型的答案落在3天到3个月的范围内。讽刺的是,逆命题(当前提供了哪些服务)却很好回答,因此分清所提供的服务清单与未受监管的服务列表之间的差异应该是很容易的。但,正如前文所述例子显示的,要找出都有哪些服务在运行,并不总是那么容易的,想知道这些未受监管的服务是否配置良好,就更不容易了。

幸运的是,罗伯森正在研究该问题的解决方案,以开源项目AP的形式。AP可对你的系统执行详尽的服务发现和入库动作,并存储结果数据以便查询。一旦数据被收集,AP会将系统当前状态与一组IT安全最佳实践进行对比。默认使用数据交换标准协会(DISA)/美国国家标准与技术研究所(NIST)的安全技术实施指南(STIG),但也可定义自己的或选择适合自身情况的最佳实践。

罗伯森还写了一系列博客文章指导用户怎样快速启动和运行AP:

  1. 15分钟获得更好的安全
  2. 1小时获得更好的安全
  3. 半天得到更好的安全

15分钟那篇引导你通过简单几步下载自动化安全脚本来安装AP及其依赖项。推荐在以root用户运行之前花点时间看一下脚本,也多花不了几分钟。

AP依赖于高性能图形数据库Neo4j,因此,下一步就是启动数据库、核心服务和库存代理。几分钟之内,发现和收集就完成了,可产生单个系统的快照。示例如下:

image

大红框醒目地显示出该系统没遵从 DISA/NIST STIG 安全配置建议。

此时,可开始对数据库进行一系列查询,查看还有其他什么发现。输入 assimcli query list 命令,可得到可用查询的完整列表。要查看与系统互动的IP完整列表,发出 assimcli query allips 命令。示例结果如下:

image

从结果中显示的 CADMUS COMPUTER SYSTEMS 可以推断出测试用例运行在一台VirtualBox虚拟机上。剩下的条目能看出测试用例的系统十分简单,定义的主机名极少,纳米探针代理运行了极短一段时间。一个产品网络会有大得多的IP列表,相关信息也丰富得多。只要有新的IP在网络中出现,列表就会新增一条,因此该列表会随时间长大。这是发现你现有服务的第一步。AP能从这一个系统扩展到监视你所访问的所有系统。

罗伯森系列文章的第三部分里,他描述了如何远程安装纳米探针代理到你网络中的其他系统中。纳米探针会向CMA服务器发送收集到的配置数据,这样你就能像上文描述的一样,可视化你网络中提供的服务了。短期内,不止你网络中的系统和服务,甚至它们的配置及距离你理想配置的差距,都能被显示出来。

此处可再引用一句拉姆斯菲尔德的名言:“你与现有系统对战,而不是与可能想要或希望拥有的系统对战……” AP提供了一种方法,可确保知晓自身确实拥有的东西。

原文发布时间为:六月 29, 2016
本文作者:nana
本文来自云栖社区合作伙伴安全牛,了解相关信息可以关注安全牛。
原文链接:http://www.aqniu.com/learn/17228.html

相关文章
|
2月前
|
Java Spring
【编程笔记】在 Spring 项目中使用 RestTemplate 发送网络请求
【编程笔记】在 Spring 项目中使用 RestTemplate 发送网络请求
107 0
|
2月前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
129 7
|
15天前
|
机器学习/深度学习 人工智能 计算机视觉
好的资源-----打卡机+Arm+Qt+OpenCV嵌入式项目-基于人脸识别的考勤系统-----B站神经网络与深度学习,商城
好的资源-----打卡机+Arm+Qt+OpenCV嵌入式项目-基于人脸识别的考勤系统-----B站神经网络与深度学习,商城
|
1月前
|
安全 生物认证 网络安全
信息打点-红蓝队自动化项目&资产侦察&武器库部署&企查产权&网络空间
信息打点-红蓝队自动化项目&资产侦察&武器库部署&企查产权&网络空间
|
1月前
|
缓存 JavaScript API
【vue实战项目】通用管理系统:封装token操作和网络请求
【vue实战项目】通用管理系统:封装token操作和网络请求
21 0
|
2月前
|
前端开发 JavaScript Java
Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)五(前端页面
Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)五(前端页面
Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)五(前端页面
|
2月前
|
JavaScript Java 测试技术
Java项目基于ssm+vue.js的网络类课程思政学习系统附带文章和源代码设计说明文档ppt
Java项目基于ssm+vue.js的网络类课程思政学习系统附带文章和源代码设计说明文档ppt
23 0
|
2月前
|
运维 网络协议 Linux
2023年河南省中等职业教育技能大赛网络建设与运维项目比赛试题(一)
2023年河南省中等职业教育技能大赛网络建设与运维项目比赛试题(一)
|
2月前
|
安全 数据管理 测试技术
网络安全与信息安全:防范漏洞、加强加密与提升安全意识深入探索自动化测试框架的设计原则与实践应用化测试解决方案。文章不仅涵盖了框架选择的标准,还详细阐述了如何根据项目需求定制测试流程,以及如何利用持续集成工具实现测试的自动触发和结果反馈。最后,文中还将讨论测试数据管理、测试用例优化及团队协作等关键问题,为读者提供全面的自动化测试框架设计与实施指南。
【5月更文挑战第27天】 在数字化时代,网络安全与信息安全已成为维护国家安全、企业利益和个人隐私的重要环节。本文旨在分享关于网络安全漏洞的识别与防范、加密技术的应用以及提升安全意识的重要性。通过对这些方面的深入探讨,我们希望能为读者提供一些实用的建议和策略,以应对日益严峻的网络安全挑战。 【5月更文挑战第27天】 在软件开发周期中,自动化测试作为保障软件质量的关键步骤,其重要性日益凸显。本文旨在剖析自动化测试框架设计的核心原则,并结合具体案例探讨其在实际应用中的执行策略。通过对比分析不同测试框架的优缺点,我们提出一套高效、可扩展且易于维护的自动
|
2月前
|
Linux 开发工具
【项目--Hi3559A】如何在Hi3559A上运行自己的yolov3模型(修改类别、网络结构)
【项目--Hi3559A】如何在Hi3559A上运行自己的yolov3模型(修改类别、网络结构)
28 0