您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    谷歌开源了一个项目,可为 C/C++ 库创立安全策略
    时间:2019-03-20 08:34 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    近日,谷歌开源了 Sandboxed API(沙箱式 API)。该项目用于在 Linux 系统上运转的 C/C++ 库,是谷歌公司外部多年来不断在数据中心运用的工具,可以协助开发人员免受恶意用户的输入和破绽应用。

    沙箱是什么?

    许多软件项目需求处置到外部数据,在安全方面会显得有些不足。当解析外部数据的软件库足够复杂时,软件会存在着严重的安全隐患,容易成为安全破绽的受益者,从而遭遇内存损坏或是像途径遍历的逻辑解析成绩。

    普通的做法是将软件隔离,这个进程就是“沙箱”。经过“沙箱”,开发人员可以确保在解析用户生成内容触及的代码时,只拜访必要的资源(文件、网络衔接和其他操作系统资源)。最坏的状况下,当潜在的攻击者取得软件项目范围内的远程代码执行权限时,沙盒技术可以将这些部分包含,从而保护其他的软件基础结构。

    谷歌开源了一个项目,可为 C/C++ 库创立安全策略

    沙盒技术必须具有很强的抵御攻击才能,从而充沛保护操作系统的其他部分。同时沙箱必须足够易于运用,以供软件开发人员运用。为了协助完成这项义务,谷歌开源了 Sandboxed API,一个经过实战考验的项目,可以为各个软件库创立安全策略。

    Sandboxed API 用于拜访沙盒库中的各个软件功用,也因此谷歌还地下了中心沙盒项目 Sandbox2。Sandbox2 如今是 Sandboxed API 的一部分,提供了底层的沙盒原型。它也可以独自用于隔离恣意 Linux 进程,可以视为更低级的 API。

    Sandboxed API 怎样任务?

    Sandboxed API 目前是针对用 C 言语编写的软件库完成的,未来能够添加更多编程言语的支持。

    从高层次的角度看,Sandboxed API 将要参加沙箱的库和其调用者分红两个独立的操作系统进程:主机二进制文件和沙箱。详细的任务流程是:实践的库调用由主机端的 API 对象停止编组,经过进程间的通讯发送到沙箱,沙箱的 RPC stub 会停止解组,并将调用转发到原始库。

    谷歌开源了一个项目,可为 C/C++ 库创立安全策略

    其中,API 对象(即图中的 SAPI 对象)和 RPC stub 都由项目提供,前者由接口生成器自动生成。用户只需提供沙盒策略、允许底层库停止的一组系统调用,以及允许拜访和运用的资源。这些预备好了之后,基于沙盒 API 的库就可以轻松地在其他项目中重用了。

    生成的 SAPI 对象的 API 相似于原始库的 API,不过会有额外的代码出现。这些代码用来设置沙箱,以及将内存传入和传出沙箱。但除此之外,代码流保持不变。

    未来方案

    Sandboxed API 和 Sandbox2 曾经被谷歌的许多团队运用。虽然该项目曾经成熟,但除了维护之外,谷歌也做了一些未来的方案:

    支持更多的操作系统:目前只支持 Linux。开发团队将研讨如何将 Sandboxed API 引入类 Unix 系统,如 BSD(FreeBSD,OpenBSD) 和 macOS。Windows 端是一项更难的义务,还需求更多的基础任务才能完成。

    新的沙盒技术:随着硬件虚拟化技术的盛行,用沙盒将代码限制在虚拟机中有了完成的能够性。

    系统构建:目前是运用 Bazel 构建项目,这其中包括依赖项。但这不是每团体都想要的运用方式,因此 CMake 支持有着很高的义务优先级。

    Sandboxed API 的传达:运用 Sandboxed API 来保护开源项目,无时机参与补丁奖励方案。

    【编辑引荐】

    蚂蚁金服开源 SOFAJRaft:消费级 Java Raft 算法库

    亚太云计算市场报告:腾讯位列前五 份额首超谷歌

    阿里开源 OpenJDK 发行版 Dragonwell

    SAP 开源 SCA 工具,扫描软件包依赖破绽

    一文通知你如何全方位监控Linux系统状况

    (责任编辑:admin)