最新资讯!用沙盒技术保障安全,谷歌宣布开源Sandboxed API!
导语:Google宣布将旗下Sandboxed API技术转为开源项目,让更多开发者可以自由使用经过实战考验的沙盒技术,保护系统不受恶意侵犯,并避免档案、网络在线等资源被窃取,目前虽然仅提供Linux版本,但未来会陆续移植至BSD、macOS、Windows等系统。
简单地说,沙盒是一种在隔离环境中执行程序的安全机制,被放置于沙盒中的程序无法存取外部档案与系统资源,程序的行为也不会影响沙盒外的作业系统,因此能避免恶意程序对系统造成危害。
但是因为现在的程序越来越复杂,可能在某些情况下产生一些安全漏洞,造成存储器毁损,或是由语法分析错误造成的Bug,让正常、非恶意的程序也可能成为安全隐忧。
在沙盒的协助下,开发者可以确保程序与使用者只能存取指定的档案、网络在线或是其他作业系统资源,如此一来即便在最坏的情况下,即使恶意程序或攻击者入侵沙盒环境,他们也只能在沙盒内进行破坏或窃取资料,系统其他区域并不会受到危害。
所以,沙盒技术的关键在于它是否足够牢固,让恶意程序或攻击者无法逃出它的限制范围。虽然目前有许多工具能够提供充分保障的沙盒系统,但可能在操作上比较复杂,需要花费较多时间进行安全边界的设定。
为了解决这个难题,Google决定以开放原始码的方式提供旗下的Sandboxed API技术,让开发者可以通过SAPI针对不同的软件函数库分别建立资产安全策略,并通过可重复套用且安全的机制保障系统安全。
▲沙盒的概念就像是与外界隔离的沙坑,在沙盒内的程式或人员只能存取指定的资源,且无法触及沙盒外的作业系
目前仅支持Linux环境下的C语言程序
Google表示目前SAPI仅支持以C语言所编写的程序与函数库,在运作的过程中,会将要放入沙盒的程序拆分成主机端执行档(Host Binary)与沙盒内程式(Sandboxee)等2独立的作业系统处理程序(OS Process),当函数库发出呼叫时,会由主机端的API进行统筹并通过程序间通讯(Intercrosses Communication)的方式传送到沙盒内程式,沙盒内程序则会以远端程序呼叫(Remote Procedure Call,简称RPC)的方式将呼叫转送至原始函数库。
由于API物件(API Object)、SAPI物件以及RPC存根(RPC Stub)都能通过介面产生器(Interface Generator)自动产生,所以使用者只需设定沙盒的运作策略、允许的系统呼叫与资源存取权限,就能开始使用沙盒,并将设定套用至其他程序,节省后续设定时间。
▲ SAPI会将程式置于隔离的沙盒中,并透过程序间通讯与主机端沟通。
结语:Google表示未来将会支持更多程序语言与执行环境,并陆续移植至BSD(FreeBSD、OpenBSD)、macOS、Windows等系统。有兴趣的朋友可以前往GitHub取得原始码,并参考说明文件与程式范例使用SAPI。
本文为「云隐物联网云课堂」原创作品,欢迎关注。 小隐,智能硬件开发者 www.yystart.com 希望用物联网领域项目经验和文字带你感受智能时代。