能否在物联网领域构建一个通用的安全模型?
乌克兰电力公司的网络系统在2015年年末时遭到黑客攻击,导致西部地区大规模停电。在该起事件中,多座变电站处于离线状态,超过230000个家庭和办公室遭遇了长达6小时的停电。“袭击者甚至还修改了关键设备的固件,使得它们不能被远程控制和切断开关,其它设备在之后的好几月内都必须手动控制”,
ThingWorx产品管理高级主管Rob Black说到。
图:ThingWorx产品管理高级主管Rob Black
这是有史以来首次导致停电的网络攻击,此次针对工控系统的攻击无疑具有里程碑意义,引起国内外媒体高度关注。据报道,本次攻击来自俄罗斯黑客组织,使用的恶意软件被称为BlackEnergy(黑暗力量)。
图:BlackEnergy 攻击过程
又在去年7月,两名黑客远程控制了一辆大切诺基,使其在高速公路上以每小时70英里的速度行驶。他们通过无线控制雨刷的开启和关闭,把空调开到最大,并在行驶过程中切换了不同的电台广播,然后禁用传输功能,所以这辆吉普车行至州际公路时放缓了速度。
这两名黑客是为了宣传汽车所面临的物联网所带来的安全风险,而其也的确产生了效果——最终导致140万辆汽车被召回,不得不针对他们的系统打补丁。
不幸的是,面临物联网所带来的安全问题,大部分企业并不能仅仅通过召回汽车和修补他们的计算系统就能够轻易解决的。企业当前所面临的最大问题是:鉴于物联网设备已经在整个企业范围内得到广泛的使用和传播,企业的生产环境到底有多安全?而通过这些物联网设备来入侵企业网络有多容易?企业如何保护自身的安全?
物联网安全和云平台的安全不同
物联网的安全和云不同,云有定义明确的安全模型和有限的入口点,而物联网由于设备类型、操作系统和协议的不同,攻击目标更加广泛。
在云平台的用户管理方面,通常只需要针对特定项目给一个特定的人授予访问权限。然而物联网设备,需要更复杂的授权和权限模型。物联网设备可以作为一个个体或者一个个体的代表来进行自我验证。
一些公司也意识到了这种危险,但是由于他们还没有大规模使用物联网应用程序,所以并没有采取相应行动。但是他们真的知道他们到底有多少设备已经连接到网络并且暴露于风险之中吗?
Shodan是一种专门搜索联网设备的搜索引擎,它不像Google等传统的搜索引擎,利用Web爬虫去遍历你整个网站,而是直接进入互联网的背后通道,审计设备的各类端口,一刻不停的寻找着所有和互联网关联的设备。
每个月Shodan都会在大约5亿个网络设备上日夜不停地搜集信息,它的搜索能力是极其惊人的,包括无数交通灯、安全摄像头、家庭自动化设备、冰上曲棍球球场,甚至工厂的控制系统和核电站。大部分的这些设备经由制造商或者第三方通过一个内部应用程序连接到网络。
大部分这些设备只有非常有限的安全功能,许多情况下,连接设备甚至不需要密码。就算有,也在使用“Admin”这样的用户名和“1234”这样非常简单的密码。70%的设备还是在以文本格式沟通,即使使用更安全的密码,攻击这些设备依然很容易。
数以百万的设备也在使用非常过时的软件版本——这些软件的漏洞和弱点简直众所周知。所以,很多公司的问题根本不在于如何开始一个物联网项目,他们的问题在于如何管理和保护现有的那些未知部分的物联网设备。
一个可能的通用安全模型
目前还没有专门针对物联网的通用安全模型,然而,可以把如下图所示的安全体系架构作为基础。
图1.物联网涵盖的元素和交互对象
在图1里,我将物联网中涵盖的不同元素和它们交互的对象标示了出来。
1.设备是联网的真实对象
2.网络基础设施将设备连接到物联网平台
3.运营平台为应用程序提供了开发的基础设施
4.物联网平台是一套组件,它可以与设备通信,可以对设备进行管理,还能运行应用程序
5.发展指的是物联网应用程序的实现过程
6.应用程序通过监测、管理和控制网络设备创造了额外的业务价值
图2.一个通用安全模型
图2给出的通用安全模型解释了物联网安全责任应该如何在不同合作方之间进行划分。从顶部开始,客户负责保护各种设备,拒绝未经授权的访问并且管理用户账户。
物联网平台通过集成显示和无需编码即可使用的权限简化了任务。例如,地区、部门和位置可以被定义,用户只能访问自己地区的对象而不能访问其它地区的。职能角色也可以在一个组织之中创建,比如“服务管理者”,“服务管理者”的角色也可以被分配给新用户,而新用户可以自动接收被分配角色的所有权利。
理想情况中,在连接服务器的帮助下,当平台本身位于防火墙之内的话,物联网平台将提供在“隔离区(DMZ)”工作的选项。如果物联网平台处于内部网络,那么即使是最坚定的外部攻击,也会遇到很大的困难。好的网络概念可以帮助组织更好地保护他们的物联网基础设施。
应用程序开发人员可以使用领先平台提供的适当工具进行最佳实践,比如开放式Web应用程序安全项目(OWASP,Open Web Application Security Project)TOP 10,这是在开发Web应用程序时应该避免的弱点。美国联邦贸易委员会(FTC)强烈建议所有企业需遵循OWASP所发布的十大Web弱点防护守则。
SQL注入是十大问题之一,它是指程序把用户输入的一段字符串直接用在了拼凑SQL语句上,导致了用户可以控制SQL语句,比如加入delete的行为、绕过用户密码验证等。解决方式是使用参数形式调用SQL/使用存储过程(存储过程中不要使用动态SQL拼语句)/使用Linq, EF等框架来写(不要使用里面的直接拼SQL语句的方式)。物联网平台可以通过parameterising 输入(parameterising input)和直接停止SQL查询的方式来防止这种攻击。
然而,一些物联网安全的责任应该由开发人员来承担。通过传输层安全协议(TLS),大多数物联网平台具有为设备通信过程提供加密的能力。当然,这项能力必须由开发人员来激活。
无论在应用程序的发展过程中如何重视安全问题,遭受攻击的可能性总是存在。因此,至关重要的是设立一种让每一层级都可以反复更新到最近版本的保护机制。
因此,一个物联网平台不但应该提供集成的软件和内容管理功能,还应支持自动分发更新。更复杂的平台还会包括如何分配这些更新的选项。这意味着,你可以在对所有设备进行常规更新的时候,可以先在少量设备上导入和测试这些选项。
一个通用的安全模型以及其它许多功能简化了物联网应用程序开发和实现的过程。因此,您可以优化您广泛分布的设备的性能,同时,确保防止未经授权的恶意使用。