Google將Sandboxed API開源,瞭解沙盒技術如何保障安全

Google將Sandboxed API開源,瞭解沙盒技術如何保障安全

ADVERTISEMENT

Google宣佈將旗下Sandboxed API技術轉為開源項目,讓更多開發者可以自由使用經過實務考驗的沙盒技術,保護系統不受惡意或有心人士的侵犯,並避免檔案、網路連線等資源被竊取,目前雖然僅提供Linux版本,但未來會陸續移植至BSD、macOS、Windows等系統。

透過沙盒隔離惡意程式

簡單地說,沙盒是種在隔離環境中執行程式的安全機制,被放置於沙盒中的程式無法存取外部檔案與系統資源,程式的行為也不會影響沙盒外的作業系統,因此能避免惡意程式對系統造成危害。

但是因為現在的程式越來越複雜,可能在無心的情況下產生一些資安漏洞,造成記憶體毀損,或是由語法分析錯誤造成的Bug,讓正常、非惡意的程式也可能成為安全隱憂。

在沙盒的協助下,開發者可以確保程式與使用者只能存取指定的檔案、網路連線或是其他作業系統資源,如此一來即便在最壞的情況下,惡意程式或攻擊者入侵沙盒環境,他們也只能在沙盒內進行破壞或竊取資料,系統其他區域並不會受到危害。

所以反過來說,沙盒技術的關鍵在於它是否足夠牢固,讓惡意程式或攻擊者無法逃出它的限制範圍。雖然目前有許多工具能夠提供充分保障的沙盒系統,但可能在操作上比較複雜,需要花費較多時間進行安全邊界的設定。

為了解決這個難題,Google決定以開放原始碼的方式提供旗下的Sandboxed API(以下簡稱SAPI)技術,讓開發者可以透過SAPI針對不同的軟體函數庫分別建立資安策略,並透過可重覆套用且安全的機制保障系統安全。

沙盒的概念就像是與外界隔離的沙坑,在沙盒內的程式或人員只能存取指定的資源,且無法觸及沙盒外的作業系統資源。(圖片來源:Google。首圖與下亦同)

目前僅支援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會將程式置於隔離的沙盒中,並透過程序間通訊與主機端溝通。

目前SAPI僅支援C語言,並且只提供Linux版本,Google表示未來將會支援更多程式語言與執行環境,並陸續移植至BSD(FreeBSD、OpenBSD)、macOS、Windows等系統。有興趣的讀者可以前往GitHub取得原始碼,並參考說明文件程式範例使用SAPI。

國寶大師 李文恩
作者

電腦王特約作者,專門負責硬派內容,從處理器、主機板到開發板、零組件,尖端科技都一手包辦,最近的研究計畫則包括Windows 98復活與AI圖像生成。

使用 Facebook 留言
發表回應
謹慎發言,尊重彼此。按此展開留言規則