企业网络中的物联网/连接设备发现和安全审计
今天的企业网络是复杂的环境,不同类型的有线和无线设备被连接和断开。当前的设备发现解决方案主要集中于识别和监控服务器、工作站PC、笔记本电脑和基础设施设备,如网络防火墙、交换机和路由器,因为组织最有价值的信息资产正在这些设备上存储、处理和传输,因此,他们成为安全漏洞和入侵的首要目标。
然而,在过去四年中出现了一种新趋势,攻击者一直将网络打印机和视频会议系统等专门构建的连接设备作为入口点和数据外泄路径。
由于以下主要原因,当前的IT资产发现解决方案无法正确识别这些设备:
- 专有协议通常用于管理和监控资产发现解决方案未知的此类设备。
- 基于代理的资产发现是不可能的,因为大多数连接的设备都是资源受限的系统,其专有操作系统不允许在其上安装discovery Agent软件。
Firmalyzer的物联网脆弱性评估解决方案(IoTVAS)克服了这些限制,并提供:
- 准确识别连接的设备制造商、型号名称、设备类型、设备寿命结束状态、固件版本和固件发布日期
- 实时固件材料清单(BOM)报告,列出每个设备固件代码中的软件组件和库,而无需用户上传设备固件文件。
- 识别设备的公开未知漏洞,包括易受攻击的第三方组件、默认凭据、加密密钥、证书和默认配置问题
- 识别设备的已知漏洞(CVE)
IoTVAS可以作为独立的IoT发现和风险评估解决方案运行,也可以通过IoTVAS REST API集成到现有的IT资产发现、网络端口扫描仪和IT漏洞扫描工具中。
物联网发现与物联网增值服务
IoTVAS根据从设备网络服务横幅中提取的指纹识别设备。设备MAC地址也可以与此指纹一起使用,以提高检测精度,但与其他设备发现解决方案不同,它不是IoTVAS的要求。根据收到的API请求和内部研究,新设备指纹不断添加到IoTVAS指纹数据库中。
在撰写本文时,该数据库包含2300多家设备制造商的50000多个指纹。IoTVAS使用以下网络服务响应和横幅生成指纹:
- SNMP服务的SysDescr OID字符串
- SNMP服务的SysObjectID OID字符串
- FTP服务横幅
- Telnet服务横幅
- 设备主机名
- Raw response of the device webserver(HTTP and HTTPS services)
- UPnP发现响应
- 设备网络接口的可选MAC地址
IoVas需要至少一种以上功能来识别IoT设备。网络服务横幅可以由现有的网络端口扫描程序或IT漏洞扫描程序收集。
在独立模式下,IoTVAS使用轻量级网络服务识别软件,探测目标网络上的设备,以提取上述功能。IoTVAS设备发现功能还可以通过REST API端点集成到现有的安全工具中。
使用IoTVAS进行IoT安全审计
一旦确定了设备制造商、型号和固件版本,IoTVAS就不仅仅是查找与设备和固件版本相关的CVE。IoTVAS使用Firmalyzer专有的固件风险知识库检索固件材料清单和详细的风险分析,包括固件中以下类别的易受攻击的第三方组件:“网络服务”(UPnP服务器、web服务器等)、“加密库”(OpenSSL、GnuTLS等),“Linux操作系统内核”和“客户端工具”(busybox等)。
IoTVAS还提供默认凭证、嵌入设备固件的加密密钥、活动和过期的数字证书、弱加密密钥和证书以及默认配置问题的列表。这些深入的信息使安全管理人员能够主动检测网络中的高风险连接设备,并在这些设备受到危害之前启动缓解措施。通过消除对部署在企业网络中的各种物联网设备进行手动固件下载和固件二进制分析的需要,这也自动化了组织中物联网和嵌入式设备的BOM清单清册过程。
与设备发现功能类似,IoTVAS固件风险评估也可通过REST API端点访问。
下图显示了IoTVAS SaaS版本中施乐网络打印机的风险评估报告,包括固件BOM和软件组件的漏洞详细信息。
图1-IoTVAS SaaS中的设备风险详细信息页面 |
IoVAS API使IT安全解决方案提供商和SecOps团队能够将IoVAS发现和IoT风险审计功能集成到其现有工具和产品中。例如,Firmalyzer为NMAP扫描器开发了IoTVAS插件,使其能够在扫描目标网络时准确发现和审计IoT设备。
下一个示例显示了IoTVAS NSE脚本如何使NMAP能够准确检测制造商、型号名称、企业打印机的固件版本,以及已知的CVE和固件风险。固件风险分析揭示了“root”和“postgres”默认帐户以及“intFTP”帐户的凭据、过期证书和带有弱指纹算法(MD5)的证书的列表,以及允许远程root登录的SSH守护程序的默认配置。
图2-NMAP的IoTVAS插件 |
要开始使用IoTVAS API,请注册试用API密钥。API文档页面包含一个大摇大摆的UI,允许您在浏览器中直接评估IoTVAS端点,而无需编写任何代码。