Article Learn

2019小米IoT安全峰会-王书魁《AIoT 自动化评估探索和实践》

Post by Pa0er at 2020-01-02 13:59:53

此次大会的第四个重磅议题来自小米安全技术负责人-王书魁,他给大家带来的议题是《AIoT 自动化评估探索和实践》。

ol.jpg

今天的分享分为四个方面:第一个讲历程,即这几年小米AIoT安全是怎么发展的;第二个讲原因,为什么要做AIoT自动化评估;第三讲探索;最后是实践。

最初小米并不是专注于做AIoT,其中有几个规模较大的硬件产品,虽然安全人员规模不是很大,但能够覆盖到每一个产品,保障其安全和隐私。之后随着小米不断发展,产品越来越多,平台接入了更多的智能产品。因此,我们也对安全人员做了相应增加,通过建立标准的评估体系做到保障每一个产品的安全及隐私。

但之后这个平台规模变得更大,接入了数量庞大、品类众多的产品,整个平台共有2000多款产品。这么多的产品、这么大的平台,我们该如何保证它的安全?仅有标准化体系是远远不够的,随之我们推出了AIoT自动化评估。目前通过整个评估体系和IoT自动化评估覆盖的生态链产品共有500多款。

image.png

为什么要做自动化评估?第一,我们自己评估的产品有500多款,米家有2000多款第三方产品,产品很多,人很少,且每个产品的功能迭代都是非常快的,如果单靠人力的方式很难解决问题。第二,安全评估面会越来越多,最开始我们更关注安全,后来面临了多方面的挑战,把很多精力倾向了隐私这块,现在政策不断更新、技术不断更新、供应链不断增长,这都要求着我们要多方面地做好安全评估。第三,小米很多产品会有一些惊喜功能,即除了正常功能外会有一些低频的操作,比如打点和数据统计,如果仅是短期的评估,是不太容易发现它隐藏功能的,可能会有一些潜在风险。第四,评估周期长,IoT评估涉及的技术面很多,难度也相应比传统的web技术高一些,那么每做一款产品的评估周期是相对长的,这也推动了我们去做AIoT自动化评估。

那小米安全团队具体做了哪些探索?

image.png

首先探索AIoT产品的典型场景,有一端叫物,通过物连入到本地的网络,通过网络连入网,然后做云端的联动。刚才说的三个方面是通过通讯网络把整个三端连到一起做互联互通,典型场景下面临的威胁分析可以通过四个方面做分析。第一设备端,硬件本身可能存在一些问题,硬件、系统、组建、服务都可能面临很多安全的风险和隐私风险。其次移动端也会面临同样的风险。第三云端,这个层面比较偏传统,可以不做过多的解释。最后是通讯层面,你用了什么协议,是不是有加密的,是不是有认证和校验,都会面临风险。

接着是AIoT产品威胁分析的探索,我们需要评估产品是否涉及到隐私数据,这些隐私数据是否满足合规的需求。

image.png

再是对自动化评估功能需求的探索,自动化评估系统最基本的要求即要有自动化的能力,我们从这个层面细分成五个:评估简单、一键操作、具备7×24小时长期的监控评估能力以应对低频的风险需求、具备智能报告生成的能力以及深度学习的能力。

第二个是安全评估,除了传统的资产识别、端口扫描、漏洞扫描、流量分析,还要具备加密、流量分析的能力,因为IoT很多用了自己的私有协议,大部分是通过加密的方式来做。加密分析我们如何应对?最基本的是要具备解锁能力,验证你是否满足安全需求、还有基线检查、链路劫持、Fuzz,APK扫描。

第三个是隐私评估,因为不同的国家或者不同地区的政策不一样,我们需要有针对不同国家和地区制定不同的隐私评估策略,之后还需要对这些数据做分析,分析这些数据是否满足我们的隐私合规需求。因为小米很多产品以及手机会销往全球海外很多地区,如果每个地区都去安排人力在当地做评估这个成本很大,所以我们需要具备在同一个地区,比如在北京可以评估销往全球产品能力。隐私这块,除了既定规则之外,我们还需要知道哪些规则或者哪些数据会有潜在的风险,因此,需要具备一些AI方面的能力,帮助我们发现潜在的危险和风险。

第四是网络模拟,我们要支撑跨区域的隐私评估,那网络模拟层需要能够模拟不同国家的网络,满足我们在当地去评估全球的产品需求。网络带宽、延迟、丢包率等是要满足业务线在网络带宽延时方面的需求,帮他们做一些功能。

image.png

回到这个图,刚才讲到它的典型架构以及它面临的威胁,接着再讲讲通过刚才的需求,这个模型是怎么做构建的。我们分成了三个方面去构建整个自动化评估模型,第一个是我们的本地网络,因为大部分IoT产品都是通过wifi接入互联网的网络中,我们可以在这个关键节点上做自动化评估的事情。因为小米有路由器,我们基于路由器做路由引擎,它能够实现流量采集、流量分析、流量劫持,还可以做端口和漏洞的扫描。我们要在不同地区评估设备,便需要具备区域代理的能力以及网络模拟功能。其实我们还可以做网络隧道通过订单下发评估策略,并且可以很轻易的更新策略来满足不断变化的评估需求。

第二方面是手机端,有很多产品是通过手机端接入到整个互联网的。同时手机端也可以做IoT产品的控制,比如流量的采集、分析和劫持,包括漏洞检测、区域代理、网络模拟等等功能。

第三方面是云端,我们要对网络层做管理,为了做更多的事情还需要具备云端的引擎。我们要对APP以及固件扫描,需要云端具备静态、动态的分析能力,来发现这些固件中是否存在安全的隐患或者隐私的风险。我们可以把流量搜集到云端,对流量进行详细的分析。云端还可以做区域代理的网络搭建,策略的下发。同时,网络层也可以做隧道去满足刚才说的动态更新策略的需求。此外,通过网络隧道,还可以做漏洞扫描。

image.png

这是我们通过探索需求所构建的模型,但小米本身是生产手机和IoT的,基于路由器和手机做引擎就可以满足刚才说的IoT自动化测试的需求。

image.png

这个是我们关于MiEye产品的整体架构。最底层是屏幕端,IoT、手机和电视都可以归类到AIoT设备范畴之内,我们可以在手机上直接对APP做评估,同时通过云端引擎对APP文件做评估,还可以对固件做评估。第二层是刚才提到的两个端,一个是路由器,一个是手机,我们可以做端口扫描、网络抓包、网络模拟等等。这是和云端对接的。最上层是云端,它能做的事情更多一些。最后一层是通过整个Web管理台管理整个MiEye的平台。

刚才主要讲了架构,我们抽几个点具体讲解一下。

image.png

第一个加密流量分析,大部分产品现在都已经具备了加密的能力,但是我们要怎么分析加密流量的数据?第一个做证书的劫持,从很早就有相关的技术实现这个能力。如何做到智能劫持?一个IoT产品如果需要访问互联网,如果不断地做劫持会影响整个产品的正常功能使用,测试人员也需要用该产品,我们不能影响它正常功能的使用,那么便需要具备正常劫持的能力。如果正常的劫持手段无法使用,我们可以把证书植入到待评估的设备中,通过证书去TLS还原。还有不少产品有自有或者私有的协议,我们还原这些内容获取加密的流量,通过流量做漏洞扫描等。

image.png

第二个多国节点,我们在不同的地区部署网络结点,这样就可以通过我们的平台一键让这个设备接入到我们销往这个国家的网络,通过这种方式满足评估的需求。

最后一个是要实现复杂的网络环境模拟,IoT有的设备对网络的实时性要求比较高,不是所有的网络环境都是带宽特别充足的,我们有些设备需要应对复杂的网络环境,来避免对正常的功能产生影响。我们只能通过MiEye的系统模拟很复杂的网络环境,来满足正常功能性评估的需求。支持一个网络模拟的支持,Netem+TC,可以满足这块的需求。

image.png

这是我们在目前整个系统所实现的功能列表,大部分功能都已经做到实践,只有部分功能还在做不断地优化中。

 

—   联系我们   —

新浪微博

公众号