前海开源多元策略混合C!开源C开发工具沙盒游戏排行榜Sandboxed A

导读: 谷歌对外开源了Sandboxed API专案,Sandboxed API能够自动为C/C++函式库产生沙盒,在热门软体函式库产生可重用且安全的功能实作,以保护剩余软体基础设施。 此外Google还创建核心沙盒子专案Sandbox2,提供了低阶沙盒原语,可以独自使用于隔离任意Linux程序。

谷歌对外开源了Sandboxed API专案,Sandboxed API能够自动为C/C++函式库产生沙盒,在热门软体函式库产生可重用且安全的功能实作,以保护剩余软体基础设施。 此外Google还创建核心沙盒子专案Sandbox2,提供了低阶沙盒原语,可以独自使用于隔离任意Linux程序。

由于许多软体处理外部产生的资料,像是将用户的图片转档,或什至执行使用者产生的程式码,过程通常存在不少的风险,而且Google提到,当处理这些外部资料的函式库太过复杂时,就有机会出现特定类型的安全漏洞,像是记忆体破坏臭虫或是解析逻辑相关的问题。

因此开发者为了预防问题发生,会使用沙盒技术来隔离这些软体,以确保解析外部资料的程式码,只能存取必要的资源,即便在最糟的情况下,骇客取得远端攻击控制权时,沙盒技术还是能包住他们,保护其他软体基础设施。沙盒除了需要能有效抵御攻击保护作业系统外,还必须要易于开发人员使用,然而某些沙盒解决方案,却要求使用者花时间为每个专案重新定义安全边界。

为此Google发表了简单好用的Sandboxed API专案,讲求沙盒化一次就能重复使用。 Sandboxed API是针对C语言撰写的软体函式库实作,以高阶观点来说,Sandboxed API把沙箱化的函式库,以及其呼叫者(Caller)分为两个独立的作业系统程序,主机二进位档案以及沙盒。实际上函式库呼叫则是由主机端API物件编组(Marshalling),并透过中介程序传送至沙盒,在沙盒中由RPC stub解编并转送呼叫到原始函式库。

API物件以及RPC stub都由Sandboxed API专案本身提供,前者由介面产生器自动产生,使用者只需要提供沙盒策略,允许低层函式库进行一系列系统呼叫,并同时准备好供存取和使用的资源。以Sandboxed API沙盒化的函式库,将可以简单地被重复使用在其他专案中。

在Google中,不少团队已经大量使用Sandboxed API和Sandbox2,由于目前只支援Linux,Google正在研究Unix的系统如FreeBSD、OpenBSD和macOS支援的可能性。而Google提到,Windows的移植是更大的工程,需要完成更多基础工作。

他们也在思考新的沙盒技术,由于随着硬体虚拟化普及,把程式码限制在沙盒虚拟机器,开启了更多应用的可能性。另外,Google在设法改善建置系统,由于Sandboxed API现在正在使用Bazel建置所有内容包含相依档案,而CMake显然是更为友善的选项,因此更换建置系统为Google的优先工作之一。