安防领域生态概述
一、安防领域产品
安防领域最为典型的产品是IPC和NVR,这两类产品也最为广泛提及;从整个生态看,安防领域包括摄像头、编码器(DVS)、IPC、DVR、NVR、CMS和解码器。
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。1.1 摄像头
在日常用语中摄像头可以代指模拟摄像头和网络摄像头(IPC),但如果提升到专业术语程度,那么摄像头只指模拟摄像头。
模拟摄像头输出的是模拟信号,通过视频线传输到编码器或DVR上。
1.2 编码器(DVS)
编码器从视频线接收到模拟摄像头传来的视频数据,首先使用AD芯片将模拟信号转换成数字信号,然后对视频数据使用MPEG或H.264等算法进行编码,最后将编码后的数据传到NVR或CMS。
摄像头捕获的原始视频是非常大的,编码的主要目的压缩视频数据大小减轻网络传输和视频存储的负担,压缩的主要来源是去除重复元素、去除非重要元素。
1.3 DVR
DVR集成了编码器的所有功能,所以可通过视频线与模拟摄像头直接连接。除编码器的数模转换和编码功能外,还具有管理配置多个摄像头、存储视频数据等功能。
1.4 网络摄像头(IPC)
人们逐渐发现把编码器功能集成到DVR,摄像头与DVR使用视频线传输
1.5 NVR
1.6 CMS
1.7 解码器
二、组网形态
四、市场状态
五、安防产品安全测试方法论
5.1 关于内网安全还是外网安全的讨论
在运营商等较大的企业,一个网站要么是供所有人都可以访问的外网网站,要么是供企业内部员工登录VPN才能访问的内网网站,前者安全性优先级较后者安全性优先级较低(原先我一直不太明白为什么有内网渗透这个名词,内网渗透和外网渗透能有什么区别,现在想来正是内网安全性优先级较低)。
安防设备更多的只是供个人或组织使用,而不是像一般网站一样作为一种公供服务让所有人使用,所以从组网状态上讲确实更像一种内网服务。但这是一种思维定式,没意识到部署位置其实对内外网的构筑也有影响,普通网站的部置在自己的环境中想怎么折腾都可以,但安防设备部署的位置却一般是在客户的环境中。
如果采购者是园区、学校等倒还好,VPN和防火墙都算是现成的习惯也是现成的,但如果是一个小超市、甚至是个人消费者,你要期望防火墙构筑的内网你要期望强制登录VPN才能访问吗。很多小机构都是直接配上公网IP或者通过NAT映射成公网IP使得自己随时随地都能访问,这也网上可以找到很多摄像头的原因。
所以安防产品的安全,应当定性为外网安全,而不是内网安全。
5.2 威胁模型
所谓威胁模型就是设备对外开放了哪些端口、支持哪些协议。一般来讲我们只关注作为服务端的协议,但严格而言服务端有可能是伪造的所以作为客户端的协议也应考滤。
下面举一些安防设备上的典型协议,其他可针对自己要测试的产品进行细化。
RTSP----Real Time Streaming Protocol,RTSP是通用的网络摄像头视频播放协议。更准确一点讲RTSP完成身份认证和RTP、RTCP协议端口的确认,RTP真正实现视频流的传输,RTCP用于控制RTP传输速率等。RTSP在设计上很多参考了http很容易阅读理解,更多内容可参考“python3实现的rtsp客户端脚本 ”。
ONVIF----Open Network Video Interface Forum,ONVIF是一套国际通用的安防设备通信协议各厂商的产品通常通过实现ONVIF兼容其他厂商的设备,ONVIF主要实现视频传输(本质上该功能还是使用RTSP)、PTZ控制等。ONVIF更多内容可参考“ONVIF协议学习笔记 ”。
GB/T28181----GB/T28181是公安部提出的国标功能对标ONVIF,所谓国标通常就是“充分借鉴”+“我国特色化改造”得出优点不一定更多毛病可能不少的东西,不管怎么说想要参与平安城市和雪亮工程两大项目GB/T28181是必须要实现的。GB/T28181更多内容可参考“Spvmn测试环境搭建及其安全性讨论 ”。
私有协议----各厂商自己制定和使用的协议功能仍是对标ONVIF。另外除了自家私有协议外要特别注意海康私有协议,因为海康是安防领域的领头羊很多客户手上都有海康的产品,其他厂商想要争夺这些客户必须要做好现网设备兼容性,所以或是做为一种竞争优势或是迫于无奈很多厂商都会(部分)实现海康私有协议。
P2P----Peer-to-peer,说P2P现在首先想到的是“个人到个人的贷款”(更清楚一些就是你在APP上点击把钱借出去然后另外一个人在APP上点击把钱借过来),但在早些时候说P2P首先让人想到的是“种子搜索”、“迅雷下载”,然后我觉得很多人到现在都弄不清楚P2P下载和一般的下载有什么区别。其实不管到什么场景下P2P这个词都保持其原本的“点到点”含义,比如贷款就是一个人借钱给另一个人(一般的贷款是从银行把钱贷出来),比如下载就是从一个人的电脑上下载文件到另一个人的电脑上(一般的下载是从服务器下载到自己电脑上)。我们知道没有公网IP的设备是不能直接访问的,让用户在没有公网IP的情况下还能访问到自己的设备的实现技术就是安防领域说的P2P,P2P的实现关键就是以一台有公网IP的设备给没有公网IP的两端(设备端和客户端)做数据转发。从技术原理上讲安防领域的P2P和文件下载的P2P是类似的,或者应该说计机机领域的P2P实现都是类似的,甚至可以说所有P2P的实现原理都是类似的。
设备搜索协议----应该来说设备搜索协议API是相对少的通常归为ONVIF等协议的一部分,但其实ONVIF等其他请求和设备发现协议这部分在技术实现上是很不一样的,前者是单播请求后者是组播请求。最为关键的点是ONVIF的设备索协议只是实现简单的设备搜索和设备应答是没有身份认证的,而有些厂商觉得组播这种东西很好用功能越多客户就越喜欢就和国标制定者们一样自我发挥增加了诸如“修改设备IP”、“开启设备telnet”等功能,但还是没加身份认证。
视频内容分析----
5.3 安全测试方法论
网络安全:
是否设置了一定的策略防范DoS攻击?可参考“拒绝服务(DoS)理解、防御与实现 ”。
主机安全:
串口、ssh、telnet、ftp登录是否需要密码?
是否存在不必要用户、是否存在弱口令用户?
是否使用/etc/shadow而非/etc/passwd?
是否设置安全码?
固件是否加密、使用binwalk是否不能解出?
是否删除不必要且危险的命令?如nc?
使用的内核版本和第三方库是否整理当前使用版本?是否有漏洞追踪机制?是否有补丁追踪机制?是否有更新机制?
当前使用的开源的第三方库,是否可以直接用于闭源?是否可以用于商用?不可以的话有没有重写?字体呢?图片呢?
数据安全(GDPR尤其重视这部分):
数据显示到界面、打印到窗口、输出到日志文件是否已脱敏?
网络通信是否已启用https或使用自己算法加密?
敏感数据是否有明文传输?密码即便启用了https仍不得再加一重密。
敏感数据存储是否已加密?不需要恢复原文的如密码使用单向加密,需要恢复原文的使用对称加密。
密码密钥是否硬编码在代码中?
人脸图片、人脸数据是否加密存储?视频数据是否加密或使用关键帧加密?
应用安全:
威胁模型的协议具象化到接口(API)就是攻击面。
渗透测试到哪都如下一个模型,更多可参考“渗透测试思路总结 ”:
是否只是客户端限制?身份认证功能有没有问题?会话管理有没有问题?访问控制有没有问题?SQL注入?命令注入?XSS?CSRF?文件上传下载?目录遍历?
如果服务端是C/C++实现的那格外要注意畸型参数是否会引发进程挂掉,如参数缺失、参数重复、字符参数改数值、数值参数改字符、参数超长等。这种类型问题适合自己写一个模糊测试工具,测试所有接口、所有参数、所有属性。
APP安全:
APK是否启用混淆?
APK密钥是否存到so文件中?
so文件是否有签名认证以防止重打包?
APP是否符合前面的所述的和安全规范?
