0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

探究海康威视摄像机中的重大漏洞

电子工程师 来源:广州虹科电子科技有限公 作者:广州虹科电子科技 2021-06-01 15:40 次阅读

前言

虹科Vdoo的安全研究团队对领先的物联网产品和安全设备进行了大规模的安全研究,为了提高效率和透明度,此过程设备供应商也参与其中。

这项研究的一部分是研究人员在多家供应商的设备中发现了零日漏洞。这些漏洞我们已经负责任地以最佳方式向供应商披露,并将在披露期限结束后逐步分享。

我们发现易受攻击设备的供应商之一是海康威视。研究团队在海康威视安全摄像机中发现了一个漏洞。攻击者利用该漏洞能成功获取摄像机IP地址,并且使用摄像机的root特权(通过LAN或Internet)远程执行代码。虹科Vdoo负责任地披露了此漏洞(CVE-2018-6414),并与海康威视的安全团队合作解决了此问题。

该漏洞并未在现场得到利用,因此不会对海康威视客户造成任何具体的隐私侵犯或安全威胁。海康威视团队迅速采取了行动,修补了此漏洞,并将其他易受攻击的产品也安装了补丁。

技术概述

摄像机运行Linux操作系统。davinci进程包括摄像机的许多功能,比如Web服务器,并以使用者ID 0特权运行(用户ID名为“admin”,当使用者ID为0时,它有效地赋予了root特权)。摄像头的Web界面基于Embedthis appweb 3 Web服务器,海康威视为其添加了一些代码。

海康威视添加了Web服务器的一些特殊页面来控制摄像机的设置,通常这些特殊页面仅在HTTP身份验证通过后运行,但是其中一些页面不需要身份验证。

在处理对不需要HTTP身份验证的页面的请求的代码中,存在对sscanf的非安全调用,当使用特制请求时,该调用会导致缓冲区溢出,从而损坏内存和导致任意代码执行或进程崩溃。

技术挑战

此漏洞使攻击者可以在相机的固件中执行他们选择的一段代码。当用户使用登录网页登录时,将发送一个POST请求,其中也可以包含GET参数

在解析特定GET参数的代码中,有一个对isoc99_sscanf的调用。该isoc99_sscanf函数类似于已知的scanf函数,但不是从stdin读取它的输入,而是从一个字符串输入。在这种情况下,输入的字符串包含请求查询字符串:

087cd2ac-c288-11eb-9e57-12bb97331649.jpg

函数的格式字符串由参数名称组成,后面连接“ =%s”。这意味着函数期望字符串以参数名称开头,后面连接“ =”,然后将其后的任何字符串读入上图中名为“ s1”的堆栈变量中。这允许我们向堆栈中写入任意数量的字节,%s没有限制。唯一的限制是Web服务器应用于整个URI(包括查询字符串)的限制。

在页面背后的任何逻辑发生之前,首先应用Web服务器的限制,如appweb 3源代码所示(可以在github上查找):

088d44fc-c288-11eb-9e57-12bb97331649.jpg

通过查看相关功能,可以找到海康威视摄像机分配给maxUrl的值:

0899a3a0-c288-11eb-9e57-12bb97331649.jpg

将伪代码与原始代码进行比较时,很容易理解“ v3 [52]”代表conn-》 http-》 limits,并且该值的偏移量是48。当找到用于初始化值的函数时我们将看到该值设置为0x400(这与原始appweb 3源代码中找到的值不同):

08b9a3ee-c288-11eb-9e57-12bb97331649.jpg

当使用GET变量从0x400中减去URI的长度时,我们得到了可以在变量的值中使用的有效负载的限制。我们仍然需要从该值中减去一个字节,因为还检查了URI的长度是否相等。现在,我们可以检查可用字节可以做什么。

回到漏洞的函数,我们将观察堆栈框架并检查其中的“ s1”变量的偏移量。在此特定固件中,变量位于与堆栈起始位置足够近的偏移量处,这意味着我们可能会溢出到堆栈帧的起始位置。但是,在我们检查的某些其他固件版本中,该变量位于堆栈的较低地址,这不允许我们到达堆栈帧的起始位置。在这种情况下,如果通过覆盖驻留在堆栈框架上的变量,漏洞可能仍会部分被利用。

由于调用函数的返回地址位于堆栈帧的起始位置,因此通过覆盖它,我们可以控制接下来要运行的代码(在函数返回时)。

由于攻击是基于%s sscanf格式说明符的,因此我们不能在攻击中使用任何空格,也不能使用NULL字符。这限制了我们,因为代码部分中的所有地址都以NULL字节开头。但是,我们使用了众所周知的技术来克服此限制。

帮助利用此漏洞的一件重要的事是,虽然已将ASLR用于已加载的共享库,但未将其用于固件的主要二进制文件。因此,可以准确知道代码所在的位置,从而使我们可以跳至自己选择的代码段。我们还可以看到没有使用stack canaries,因此我们可以安全地覆盖堆栈的内容,而无需对其进行检查。

完成所有操作后,我们需要选择一个地址跳转至该地址。例如,类似于Foscam PoC,我们选择跳到一段代码来重置设备的凭据,从而使我们能够以管理员身份登录设备。然后,作为设备管理员,我们可以控制任何设置,包括使用自定义固件升级设备的能力。

考虑到此漏洞带来的风险,我们决定不发布PoC,以保护尚未升级其设备的用户免受恶意攻击。

给设备制造商的建议

攻击者很容易发现并利用相机中的不良体系结构导致的漏洞,因此制造商应该检查其设备研发过程中是否存在以下问题:

1.使用不安全的函数。sscanf是一个潜在的不安全函数,尤其是与%s或%[]一起使用时。可以在支持的API中用sscanf_s替换sscanf,或者可以通过添加长度说明符来安全使用sscanf(需要确保长度小于缓冲区长度,应谨慎使用)。

最佳操作是即使在特定情况下也不要使用任何不安全的功能版本,定期使用它们很危险。特别是,建议不要使用sscanf。固件中发现的其他可能不安全的功能包括strcpy(可以替换为strncpy),strcat(可以替换为strncat),sprintf(可以替换为snprintf)等等。

2.主二进制文件缺少ASLR。ASLR已在设备上运行的Linux OS中实现并打开,唯一要做的更改是通过在GCC上添加“ -pie-fPIE”标志来使其与主要二进制文件兼容。使用此功能,攻击者无法猜测他想跳转到的功能地址。

3.缺少stack canaries。这是一个非常简单且重要的安全功能,可以通过在GCC中添加“ -fstack-protector-all”标志来启用该功能,当可执行文件识别出堆栈受到破坏时将崩溃。这将导致短暂的拒绝服务,但至少它不允许攻击者运行其选择的代码。

重要的是要注意此功能可能会导致性能下降,因为对每个功能都检查了stack canaries。如果性能下降使其无法使用,则可以控制stack canaries的创建,并将其设置为仅放在极容易遭受基于堆栈的缓冲区攻击的函数上。这可以通过将“ -fstack-protector”标志与“ --param ssp-buffer-size”一起使用来完成。

4.URL参数应该被清理为仅包含ASCII可打印字符。与ASLR结合使用,将降低该漏洞的利用率。

5.使用对称加密对固件文件进行加密。这使攻击者可以打开固件进行研究。

6.固件文件未经过数字签名。这使攻击者可以重新打包恶意固件,供应商应考虑签署其固件,以防止受到这种威胁。

7.在我们研究的固件中,使用了appweb 3,特别是它的旧版本-长期未维护。如https://www.embedthis.com/appweb/download.html 所述,此版本以及一些较新的版本被称为“寿命终止”,这意味着它将不会获得任何安全补丁。

8.该设备的几乎所有逻辑都包含在一个二进制文件中。当所有内容都在一个二进制文件中时,特权分离就会减少,这会增加攻击面。例如,任何设备功能中可能存在的拒绝服务漏洞都将使主进程崩溃,并且许多设备功能也将遭受损失,而不仅仅是使负责特定逻辑的进程崩溃。将摄像机的逻辑划分为不同的二进制文件可能还会使利用代码执行漏洞变得更加困难,因为进程内存中的可用代码更少,无法跳转。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • GCC
    GCC
    +关注

    关注

    0

    文章

    107

    浏览量

    24837
  • 函数
    +关注

    关注

    3

    文章

    4331

    浏览量

    62594
  • 代码
    +关注

    关注

    30

    文章

    4787

    浏览量

    68589
  • 海康威视
    +关注

    关注

    16

    文章

    426

    浏览量

    73214

原文标题:虹科案例|安全性防护平台-海康威视摄像机中的重大漏洞

文章出处:【微信号:Hongketeam,微信公众号:广州虹科电子科技有限公司】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    浙江电信与海康威签订战略合作协议

    近日,中国电信股份有限公司浙江分公司(以下简称“浙江电信”)与杭州海康威数字技术股份有限公司(以下简称“海康威”)举行战略合作协议签署仪式。浙江电信党委书记、总经理李云庄,
    的头像 发表于 12-23 14:42 101次阅读

    广东电信莅临海康威参观交流

    近日,中国电信股份有限公司广东分公司(以下简称“广东电信”)党委书记、总经理张涛,广东电信副总经理王湘江、政企客户事业部总经理刘志斌,广东亿迅科技有限公司总经理朱培军一行赴海康威总部参观交流,海康威
    的头像 发表于 12-20 15:40 202次阅读

    海康威与多方签署智慧渔业协同创新合作框架协议

    近日,由中国水产科学研究院东海水产研究所(以下简称“东海所”)联合中国水科院渔业机械仪器研究所(以下简称“渔所”)、中国水科院渔业工程研究所(以下简称“渔工所”)、杭州海康威数字技术股
    的头像 发表于 12-16 09:16 290次阅读

    昆仑数智与海康威达成战略合作

    近日,昆仑数智科技有限责任公司(以下简称:昆仑数智)与杭州海康威数字技术股份有限公司(以下简称“海康威”)在北京举行合作框架协议签署仪式。
    的头像 发表于 12-11 10:07 156次阅读

    海康威数字孪生技术助力打造数字化工厂

    这可不是一个特效,而是实际在用的海康威数字孪生技术。
    的头像 发表于 12-06 09:50 195次阅读

    许继电气与海康威签署战略合作协议

    近日,许继电气与海康威就电力智能运检等工业装备场景数字化领域达成合作共识,并签署战略合作协议。许继电气党委副书记、总经理许涛,海康威高级副总裁徐习明出席签约仪式。许继电气科创部主任
    的头像 发表于 11-27 16:00 254次阅读

    海康威推出抗振系列摄像机

    海康威抗振系列摄像机产品的应用,正助力大型起重设备的远程控制自动化建设,打造更为高效、安全的作业环境。海康威将通过这些创新技术,推动港口
    的头像 发表于 11-06 14:44 415次阅读

    浙大与海康威合作再添新成果

    近日,随着“AIoT-Center智慧应用联合实训基地”揭牌仪式完成,全国干部教育培训浙江大学基地(以下简称“浙大干训基地”)、浙江大学继续教育学院(以下简称“浙大继续教育学院”)与杭州海康威数字技术股份有限公司(以下简称“海康威
    的头像 发表于 11-06 14:39 410次阅读

    华东材料与海康威签署战略合作协议

    近日,华东材料有限公司(以下简称“华东材料”)与杭州海康威数字技术股份有限公司(以下简称“海康威”)在杭州签署战略合作协议。双方将重点围绕智慧矿山、智能工厂、智慧港口及商品混凝土领
    的头像 发表于 07-19 11:31 690次阅读

    国网智能与海康威达成战略合作

    近日,国网智能科技股份有限公司(以下简称“国网智能”)与杭州海康威数字技术股份有限公司(以下简称“海康威”)在杭州签署战略合作协议。双方将重点围绕智能巡视系统、智慧工地及输电可视化
    的头像 发表于 06-27 09:34 865次阅读

    海康威助力快递行业场景数字化

      目前,海康威相关技术方案已在快递打包、分拣、装载运输、终端配送、退换货等多个环节开展场景数字化建设,助力企业提升运营管理效率,也给大家带来更好的体验。 快速识别面单信息,快递包裹“不掉
    的头像 发表于 06-20 14:06 1307次阅读

    海康威英国销售逆势增长

    尽管19个月前,英国政府出于安全考虑,禁止在“高风险”政府场所安装来自中国的摄像头,其中就包括知名安防设备制造商海康威的产品,但最新数据显示,这家公司在英国的销售额却呈现出逆势增长的趋势。
    的头像 发表于 06-12 10:08 765次阅读

    东海实验室和海康威签署战略合作协议,携手推进智慧海洋建设

    3月27日,东海实验室与杭州海康威数字技术股份有限公司(简称“海康威”)在舟山签署战略合作协议。
    的头像 发表于 03-29 15:02 1115次阅读

    蜂窝物联:农情监测摄像机,无人值守,记录生长全过程

    和物联网技术,蜂窝物联基于海康威摄像机开发了农情监测摄像机可以远程查看作物长势、病虫害情况、果实成熟度等。为农业作业提供科学依据。 农情监测摄像机
    的头像 发表于 03-04 15:27 505次阅读
    蜂窝物联:农情监测<b class='flag-5'>摄像机</b>,无人值守,记录生长全过程

    海康威摄像机密码重置方法

    经常使用海康威摄像机,如果碰到密码忘记,重试多次被锁定了怎么办?密码找不回怎么办?蒙圈了吧!
    的头像 发表于 01-09 10:21 4545次阅读
    <b class='flag-5'>海康威</b><b class='flag-5'>视</b><b class='flag-5'>摄像机</b>密码重置方法