操作系统中发现40个0day漏洞,三星开发人员到底在干什么?Tizen是三星自家的操作系统,目前上百万的三星产品都安装了这种操作系统,但一名安全研究人员近期在Tizen系统中发现了四十个此前未被发现的0day漏洞。
就在上个月,维基解密泄漏的CIA内部文档曝光了这一间谍机构目前正在通过三星智能电视监控用户的事实,而Vault 7也将美国中央情报局推倒了舆论的风口浪尖。注:中情局特工必须物理访问到目标电视,并用USB存储棒安装恶意软件之后才可以完成攻击,而且老款三星电视同样会受到影响。
但现在的情况就更加严重了,因为一名以色列安全专家近期在三星自家的操作系统Tizen中发现了四十个此前未被发现的漏洞,即0day漏洞,而这些漏洞将允许攻击者远程劫持目前市场上的数百万台新款三星智能电视、智能手表以及智能手机,甚至连那些即将发布的三星产品都会受到这些漏洞的影响。需要注意的是,这些漏洞将允许攻击者在无需物理访问目标设备的情况下完成攻击。
实际上,对于三星Galaxy系列智能手机和三星平板等产品而言,三星一直都在试图降低对Google以及Android操作系统的依赖。在俄罗斯、印度和孟加拉等国,目前大约有三千多万台三星智能电视、智能手表和智能手机安装了Tizen操作系统,而公司计划今年向市场投放一千万台Tizen手机。除此之外,三星公司在今年年初还对外宣布,三星将会在即将推出的新款智能洗衣机和智能冰箱中安装Tizen操作系统。
这可能是我所见过的写得最糟糕的代码
根据这位名叫Amihai Neiderman的以色列安全专家所透露的信息,这个操作系统中却存在很多严重的安全漏洞,而这些漏洞将允许攻击者轻易举地入侵安装了Tizen操作系统的设备。
他在接受Motherboard的采访时表示:“Tizen的代码可能是我所见过的写得最糟糕的代码了,开发人员在这里把所有能犯的错误全部都犯了一遍。你可以从这些代码中看到,写这些代码的人就像是刚从大学毕业一样,在编程方面没有任何的经验,而且也根本不懂安全。”
所有的这些漏洞将允许攻击者远程入侵三星设备,并实现远程代码执行。而其中有一个漏洞最为严重,这个漏洞存在于三星的TizenStore应用(三星的官方应用商店,用于下载或更新Tizen设备中的软件)中。Deiderman表示,在这个漏洞的帮助下,他可以劫持商城中的软件并向三星智能电视发送恶意代码。因为TizenStore在运行时需要设备的最高权限,而这对于黑客来说绝对是一个攻击利器。这也就意味着,你可以用恶意代码来更新目标设备的Tizen系统。
虽然TizenStore也有自己的身份验证机制,并以此来确保只有经过授权的三星软件才能在设备中安装,但Neiderman还发现了一个堆溢出漏洞,而这个漏洞将允许他绕过系统的验证机制。
虽然之前也有很多研究人员对三星产品的安全性进行了审查,也发现了很多问题,但是Tizen却逃过了安全社区的法眼,这很可能是由于Tizen系统此前还没有得到广泛使用所导致的。
Neiderman是以色列Equus Software公司的首席研究专家,他的主要研究方向是Android安全。他大约在八个月之前便开始研究Tizen代码了,因为他当时购买了一台安装了Tizen系统的三星智能电视。当时,三星只会在新上市的智能电视和智能手表中安装Tizen系统,而且使用Tizen的智能手机也只在几个有限的国家地区内销售。
你可以用恶意代码更新Tizen系统
三星的第一批Tizen手机首先的印度地区进入市场,随后便广销于南非、尼泊尔、以及亚洲和印尼的部分地区。而且有迹象表明,近期三星公司计划在拉丁美洲、中东和欧洲部分地区投放Tizen手机,最终也会在美国地区上市。除此之外,三星也在积极推动Tizen应用的开发进度,并且会对TizenStore商店中下载量排名前一百的移动应用开发者提供一万美金的奖励。
在对智能电视的Tizen代码进行了短暂的分析之后,Neiderman便发现了很多严重的问题,而好奇心也促使他购买了几台Tizen手机,因为他也想弄清楚这些漏洞将允许他做哪些事情。
他表示:“Tizen系统中的绝大部分代码都是从之前老版本的三星代码项目中借鉴过来的,其中就包括三星已停用的Bada移动手机操作系统。你可以从代码中看到,开发人员借鉴了大部分的Bada代码,而且还尝试将这些代码直接应用到Tizen系统中。”
三星的开发人员到底在干什么?
但是,在他所发现的四十个安全漏洞中,最为严重的一个漏洞存在于Tizen中新编写的代码,而且这个漏洞也存在了两年之久。除此之外,绝大多数漏洞都是由开发人员在二十年前的编码错误所导致的,这也意味着三星公司缺乏最基本的代码开发以及安全审核规范,因为如果他们有相应的规范,那又怎么会出现这么愚蠢的错误呢?
他在此也给出了一个例子,即Tizen系统中对函数strcpy()的使用。“Strcpy()”是一个用来在内存中复制数据的函数,而开发人员在使用这个函数时并没有检查内存是否有足够的空间去写入数据,而这个问题将导致出现缓冲区溢出漏洞。Neiderman认为,由于这个函数中存在漏洞,所以现在几乎已经没有人会使用它了,但是Tizen代码中几乎到处都有strcpy()的身影,鬼知道三星的开发人员在干什么。
除此之外,他还发现开发人员在传输某些特定数据时并没有使用SSL加密来保护通信链接的安全性。虽然他们在传输某些数据时使用了SSL加密,但是他们没有在最需要保护的数据上使用SSL加密。Neiderman认为,他们在确定需要加密保护的对象时犯了很多错误,而这并不是编码疏忽所造成的,而是他们有意识地在某些地方不使用SSL。
后话
Neiderman大约在一个月之前联系了三星公司,并报告了他所发现的全部漏洞,但是他当时只收到了三星公司的一封自动回复邮件。而Motherboard在与这家韩国公司取得联系之后,三星公司的一位发言人通过电子邮件回复到:“三星电子对产品的安全以及客户的隐私是非常重视的。我们会定期检查我们系统的安全问题,如果我们发现了潜在的安全漏洞,我们会立刻对此进行调查并尽快解决相关问题。”
在这篇文章发出之后,三星公司又发表了一份声明:“我们目前正在与Neiderman先生合作,并尽量在最短的时间内修复这些潜在的安全漏洞。除此之外,我们也会通过智能电视漏洞奖励计划来与全世界的安全专家一同提升三星产品的安全性。”
Neiderman表示,他这几天一直都在与三星联系,并且与公司分享了一些包含漏洞的代码段。而且他还表示,三星公司在大规模部署Tizen系统之前,应该对Tizen代码进行完整的安全审查。因为对于三星来说,Tizen绝对是他们的重中之重,因为新款的Galaxy手机将默认搭载Tizen系统,而就目前的情况来看,Tizen似乎难以承担这一重任。