物联网时代 权限滥用漏洞的攻击及防御网络安全

2016-01-29    来源:TSRC博客    编辑:do9gy
0x00 简介 权限滥用漏洞一般归类于逻辑问题,是指服务端功能开放过多或权限限制不严格,导致攻击者可以通过直接或间接调用的方式达到攻击效果。随着物联网时代的到来,这种漏洞

0x00 简介

权限滥用漏洞一般归类于逻辑问题,是指服务端功能开放过多或权限限制不严格,导致攻击者可以通过直接或间接调用的方式达到攻击效果。随着物联网时代的到来,这种漏洞已经屡见不鲜,各种漏洞组合利用也是千奇百怪、五花八门,这里总结漏洞是为了更好地应对和预防,如有不妥之处还请业内人士多多指教。

0x01 背景

2014年4月,在比特币飞涨的时代某网站曾经曝光过黑客利用监控摄像头DVR分布式挖矿的案例。无独有偶,之前国内某安全公司在开放给外部使用的扫描器平台上也曾出现了类似问题,由于功能限制不严格,导致外部使用者可以利用该扫描器探测内网。此外,某黑客也曾经在某第三方平台曝光过国内android测试平台一处漏洞,可利用该漏洞从测试平台网站直接访问该公司内部系统。

0x02 案例

利用权限滥用漏洞有时可以让服务器发起特定的请求(类似SSRF攻击),有时还可以使用某些特殊的功能,例如:访问摄像头、利用麦克风录音、编写并植入木马、反弹shell等等。

目前国内外已经有很多手机真机测试平台,例如:Testin云测、中国移动终端池、Testdroid、TestObject、TestCloud、uTest、UserTesting、WeTest等。笔者随机抽取了一个android真机测试平台进行测试。

首先,登录以后可以挑选一款机型,作为测试目标。

 

 

然后进入机器调试界面,我们可以通过web端控制android手机并真实完整地使用手机上的任何功能。

 

 

 

 

除了网站提供我们使用的WIFI,意外发现了很多其他的WIFI,细看之下,还会注意到这里面夹杂了很多内部的办公网络WIFI,甚至有些WIFI可直接连接无需输入密码,笔者猜测当前设备曾经已授权连接过这些WIFI,因此无需要输入密码直接可连接进入办公网络了!

除此之外,我们还可以在手机上安装apk来尝试获取手机ROOT权限,ROOT之后的手机就如同内网中一台被我们拿下的服务器一样危险。这里我们使用meterpreter生成反弹shell的apk并上传安装,然后我们本地就可以root权限完全控制手机。

 

 

接下来,我们可以访问手机的摄像头功能。

 

 

 

 

这里我们可以看到手机机房的全貌,如果录像的话可以一直监控机房工作人员的一举一动,甚至有些手机摆放的位置比较恰当的话,可以拍到记录密码的便签贴。 我们还可以开启手机录音功能,实现长时间的远程窃听等……

 

 

 

 

另外,我们可以通过手机的定位功能找到受控机器所在的位置。

 

 

除此之外,当我们有了大量手机集群以后可以做些扫描、挖矿的事情。我们也可以将手机的ARM处理器挖矿,同时我们还可以将手机变为我们分布式扫描器的扫描集群。

0x03 延伸

权限滥用漏洞除了在android真机调试场景以外还有很多其他发生场景。在物联网领域应用尤为广泛。例如:某智能电视可以允许通过网络远程调试、 某大型旋转机监控系统可以被远程操纵控制、某高速公路摄像头可被控制拍照、某运营商设备可被控制拨打电话等等。这种漏洞小则可以危害公民生活起居(控制微波炉、控制冰箱、智能电视等),大则可以危害国家安全(控制工控系统生产作业、控制电力设施、控制交通运输等),其危害不容小觑。

0x04 防御

面对权限滥用漏洞的攻击,任何疏忽大意都可能为信息系统带来灾难性的破坏,传统的防御体系已无法抵御权限滥用攻击导致的入侵,因此需要制定更严格的物理设备管理策略,此类问题绝大部分是由于开放给外部使用的功能限制不严格而导致的,因此笔者建议对此类问题的防御,可从以下几个方面简单入手:

真机调试场景,考虑到目前智能手机功能较多,建议着重考虑以下几点:

一、网络隔离

1)对于访问办公环境WIFI的情况,可加装金属网进行物理隔离;

2)测试WIFI独立部署,与办公网络开发网络隔离。

二、功能禁用

1)对于摄像头拍照,可在摄像头前用不透光贴纸盖住;

2)对于麦克风窃听可考虑禁用麦克风功能,甚至拆卸掉真机的麦克风或者将实验室进行隔音处理。

其他工控类重大系统,可在核心功能的调用上进行二次密码的验证,甚至可以引入指纹鉴权、虹膜识别等生物鉴权技术。

智能家居,则需要生产商在产品设计的时候把控好联网接口的身份验证,在控制系统上进行信号源验证,这样也许就不会出现之前有人拿某厂空调遥控器在大街上边走边按导致许多家庭空调都纷纷启动的趣闻了:)

0x05 总结

互联网+时代的今天,人们越来越倾向于“简便快捷”,而淡忘了“安全可靠”。一个功能本身就是一把双刃剑,在设计功能的同时要考虑到功能的调用场景,调用者和被调用者,因为安全问题无处不在。

1
3