• <li id="89dy1"><s id="89dy1"></s></li>
    <div id="89dy1"></div>
    <sup id="89dy1"><bdo id="89dy1"></bdo></sup>
    <li id="89dy1"><s id="89dy1"></s></li>
  • <li id="89dy1"><s id="89dy1"><thead id="89dy1"></thead></s></li>
  • <sup id="89dy1"><menu id="89dy1"><video id="89dy1"></video></menu></sup>
  • <li id="89dy1"></li><sup id="89dy1"><bdo id="89dy1"></bdo></sup>
  • <div id="89dy1"></div>
  • <sup id="89dy1"><menu id="89dy1"></menu></sup>
  • <progress id="89dy1"><tr id="89dy1"></tr></progress>
    <sup id="89dy1"><menu id="89dy1"></menu></sup><sup id="89dy1"></sup><sup id="89dy1"></sup>
  • <dl id="89dy1"></dl>
  • <dl id="89dy1"><menu id="89dy1"></menu></dl>
    <sup id="89dy1"><menu id="89dy1"></menu></sup>
    <dl id="89dy1"><ins id="89dy1"><thead id="89dy1"></thead></ins></dl>
    <sup id="89dy1"><bdo id="89dy1"></bdo></sup>
    <li id="89dy1"></li>
    <div id="89dy1"><tr id="89dy1"></tr></div>
    <sup id="89dy1"><menu id="89dy1"></menu></sup>
  • <dl id="89dy1"><ins id="89dy1"></ins></dl>
  • <div id="89dy1"></div>
    <dl id="89dy1"><menu id="89dy1"></menu></dl>
  • <sup id="89dy1"><bdo id="89dy1"></bdo></sup><li id="89dy1"><s id="89dy1"></s></li>
  • <input id="89dy1"><source id="89dy1"><listing id="89dy1"></listing></source></input>
    <dl id="89dy1"><menu id="89dy1"></menu></dl>
  • <li id="89dy1"></li>
  • <sup id="89dy1"><menu id="89dy1"></menu></sup>
  • <sup id="89dy1"><menu id="89dy1"></menu></sup>
  • <sup id="89dy1"><menu id="89dy1"><small id="89dy1"></small></menu></sup>
  • <sup id="89dy1"><menu id="89dy1"></menu></sup>
    <dl id="89dy1"></dl>
  • <dl id="89dy1"><menu id="89dy1"><small id="89dy1"></small></menu></dl>
    <dl id="89dy1"></dl>
    <dl id="89dy1"></dl>
  • <sup id="89dy1"><menu id="89dy1"><small id="89dy1"></small></menu></sup>
  • <li id="89dy1"><s id="89dy1"></s></li>
    <li id="89dy1"></li><menuitem id="89dy1"><menu id="89dy1"></menu></menuitem>
  • <dl id="89dy1"><menu id="89dy1"></menu></dl>
  • <sup id="89dy1"><menu id="89dy1"></menu></sup><menuitem id="89dy1"><menu id="89dy1"></menu></menuitem>
  • 首頁    新聞    群組    交易    人才    下載    博客    代碼貼    在線編程    論壇
    谷歌開源了一個項目,可為 C/C++ 庫創建安全策略
    2019-03-20 12:26:23 | 閱讀 221 次 | 評論(0)

    近日,谷歌開源了 Sandboxed API(沙箱式 API)。該項目用于在 Linux 系統上運行的 C/C++ 庫,是谷歌公司內部多年來一直在數據中心使用的工具,可以幫助開發人員免受惡意用戶的輸入和漏洞利用。

    沙箱是什么?

    許多軟件項目需要處理到外部數據,在安全方面會顯得有些不足。當解析外部數據的軟件庫足夠復雜時,軟件會存在著嚴重的安全隱患,容易成為安全漏洞的受害者,從而遭遇內存損壞或是像路徑遍歷的邏輯解析問題。

    一般的做法是將軟件隔離,這個過程就是“沙箱”。通過“沙箱”,開發人員可以確保在解析用戶生成內容涉及的代碼時,只訪問必要的資源(文件、網絡連接和其他操作系統資源)。最壞的情況下,當潛在的攻擊者取得軟件項目范圍內的遠程代碼執行權限時,沙盒技術可以將這些部分包含,從而保護其余的軟件基礎結構。

    沙盒技術必須具有很強的抵御攻擊能力,從而充分保護操作系統的其余部分。同時沙箱必須足夠易于使用,以供軟件開發人員使用。為了幫助完成這項任務,谷歌開源了 Sandboxed API,一個經過實戰考驗的項目,可以為各個軟件庫創建安全策略。

    Sandboxed API 用于訪問沙盒庫中的各個軟件功能,也因此谷歌還公開了核心沙盒項目 Sandbox2。Sandbox2 現在是 Sandboxed API 的一部分,提供了底層的沙盒原型。它也可以單獨用于隔離任意 Linux 進程,可以視為更低級的 API。

    Sandboxed API 怎么工作?

    Sandboxed API 目前是針對用 C 語言編寫的軟件庫實現的,未來可能增加更多編程語言的支持。

    從高層次的角度看,Sandboxed API 將要加入沙箱的庫和其調用者分成兩個獨立的操作系統進程:主機二進制文件和沙箱。具體的工作流程是:實際的庫調用由主機端的 API 對象進行編組,通過進程間的通信發送到沙箱,沙箱的 RPC stub 會進行解組,并將調用轉發到原始庫。

    其中,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 來保護開源項目,有機會參與補丁獎勵計劃

    (文/開源中國)    




    評論 (0)

    游客請輸入驗證碼
    最新評論
    011期平特一肖是什么?
  • <li id="89dy1"><s id="89dy1"></s></li>
    <div id="89dy1"></div>
    <sup id="89dy1"><bdo id="89dy1"></bdo></sup>
    <li id="89dy1"><s id="89dy1"></s></li>
  • <li id="89dy1"><s id="89dy1"><thead id="89dy1"></thead></s></li>
  • <sup id="89dy1"><menu id="89dy1"><video id="89dy1"></video></menu></sup>
  • <li id="89dy1"></li><sup id="89dy1"><bdo id="89dy1"></bdo></sup>
  • <div id="89dy1"></div>
  • <sup id="89dy1"><menu id="89dy1"></menu></sup>
  • <progress id="89dy1"><tr id="89dy1"></tr></progress>
    <sup id="89dy1"><menu id="89dy1"></menu></sup><sup id="89dy1"></sup><sup id="89dy1"></sup>
  • <dl id="89dy1"></dl>
  • <dl id="89dy1"><menu id="89dy1"></menu></dl>
    <sup id="89dy1"><menu id="89dy1"></menu></sup>
    <dl id="89dy1"><ins id="89dy1"><thead id="89dy1"></thead></ins></dl>
    <sup id="89dy1"><bdo id="89dy1"></bdo></sup>
    <li id="89dy1"></li>
    <div id="89dy1"><tr id="89dy1"></tr></div>
    <sup id="89dy1"><menu id="89dy1"></menu></sup>
  • <dl id="89dy1"><ins id="89dy1"></ins></dl>
  • <div id="89dy1"></div>
    <dl id="89dy1"><menu id="89dy1"></menu></dl>
  • <sup id="89dy1"><bdo id="89dy1"></bdo></sup><li id="89dy1"><s id="89dy1"></s></li>
  • <input id="89dy1"><source id="89dy1"><listing id="89dy1"></listing></source></input>
    <dl id="89dy1"><menu id="89dy1"></menu></dl>
  • <li id="89dy1"></li>
  • <sup id="89dy1"><menu id="89dy1"></menu></sup>
  • <sup id="89dy1"><menu id="89dy1"></menu></sup>
  • <sup id="89dy1"><menu id="89dy1"><small id="89dy1"></small></menu></sup>
  • <sup id="89dy1"><menu id="89dy1"></menu></sup>
    <dl id="89dy1"></dl>
  • <dl id="89dy1"><menu id="89dy1"><small id="89dy1"></small></menu></dl>
    <dl id="89dy1"></dl>
    <dl id="89dy1"></dl>
  • <sup id="89dy1"><menu id="89dy1"><small id="89dy1"></small></menu></sup>
  • <li id="89dy1"><s id="89dy1"></s></li>
    <li id="89dy1"></li><menuitem id="89dy1"><menu id="89dy1"></menu></menuitem>
  • <dl id="89dy1"><menu id="89dy1"></menu></dl>
  • <sup id="89dy1"><menu id="89dy1"></menu></sup><menuitem id="89dy1"><menu id="89dy1"></menu></menuitem>
  • <li id="89dy1"><s id="89dy1"></s></li>
    <div id="89dy1"></div>
    <sup id="89dy1"><bdo id="89dy1"></bdo></sup>
    <li id="89dy1"><s id="89dy1"></s></li>
  • <li id="89dy1"><s id="89dy1"><thead id="89dy1"></thead></s></li>
  • <sup id="89dy1"><menu id="89dy1"><video id="89dy1"></video></menu></sup>
  • <li id="89dy1"></li><sup id="89dy1"><bdo id="89dy1"></bdo></sup>
  • <div id="89dy1"></div>
  • <sup id="89dy1"><menu id="89dy1"></menu></sup>
  • <progress id="89dy1"><tr id="89dy1"></tr></progress>
    <sup id="89dy1"><menu id="89dy1"></menu></sup><sup id="89dy1"></sup><sup id="89dy1"></sup>
  • <dl id="89dy1"></dl>
  • <dl id="89dy1"><menu id="89dy1"></menu></dl>
    <sup id="89dy1"><menu id="89dy1"></menu></sup>
    <dl id="89dy1"><ins id="89dy1"><thead id="89dy1"></thead></ins></dl>
    <sup id="89dy1"><bdo id="89dy1"></bdo></sup>
    <li id="89dy1"></li>
    <div id="89dy1"><tr id="89dy1"></tr></div>
    <sup id="89dy1"><menu id="89dy1"></menu></sup>
  • <dl id="89dy1"><ins id="89dy1"></ins></dl>
  • <div id="89dy1"></div>
    <dl id="89dy1"><menu id="89dy1"></menu></dl>
  • <sup id="89dy1"><bdo id="89dy1"></bdo></sup><li id="89dy1"><s id="89dy1"></s></li>
  • <input id="89dy1"><source id="89dy1"><listing id="89dy1"></listing></source></input>
    <dl id="89dy1"><menu id="89dy1"></menu></dl>
  • <li id="89dy1"></li>
  • <sup id="89dy1"><menu id="89dy1"></menu></sup>
  • <sup id="89dy1"><menu id="89dy1"></menu></sup>
  • <sup id="89dy1"><menu id="89dy1"><small id="89dy1"></small></menu></sup>
  • <sup id="89dy1"><menu id="89dy1"></menu></sup>
    <dl id="89dy1"></dl>
  • <dl id="89dy1"><menu id="89dy1"><small id="89dy1"></small></menu></dl>
    <dl id="89dy1"></dl>
    <dl id="89dy1"></dl>
  • <sup id="89dy1"><menu id="89dy1"><small id="89dy1"></small></menu></sup>
  • <li id="89dy1"><s id="89dy1"></s></li>
    <li id="89dy1"></li><menuitem id="89dy1"><menu id="89dy1"></menu></menuitem>
  • <dl id="89dy1"><menu id="89dy1"></menu></dl>
  • <sup id="89dy1"><menu id="89dy1"></menu></sup><menuitem id="89dy1"><menu id="89dy1"></menu></menuitem>