現職於工業技術研究院資料中心系統軟體組技術副理,帶領團隊開發應用程式白名單資安防禦技術並參與 SELinux、Busybox 與 Ubuntu 等開源專案原始碼貢獻及套件維護並積極參與 Linux Foundation 相關活動。希望透過推廣台灣在地 SELinux 以協助廠商通過相關國際資安認證。
多虧現今資安意識的普及和成長,經過安全與便利的權衡,大部分的人較願意接受輕量化的存取控制機制,例如應用程式白名單。此類機制會在應用程式執行時被系統偵測,檢視其是否屬於白名單內之程式,接着判斷允許或阻擋執行。此種簡易的概念贏得許多人支持,為了支持此概念,我們先捨棄 Reference Policy,並基於 SELinux 來從頭做出所謂 WhiteList Policy,我們的實驗表達出下列 3 個觀點。
1. 是 Policy 決定是否簡單使用與否,而不是 SELinux 機制。
2. 資安解決方案是從許多方面的觀點權衡而來,尤其是便利性與完全性。
3. 概念簡單的應用程式白名單也存在理論與實務的間隔。
我們花了幾個禮拜的時間在 Ubuntu 18.04 上建制 WhiteList Policy,起初直覺的將世界一分為二,白名單內與外,好與壞,能做任何事與不能做任何事,Policy 精簡到包含宣告只有 10 幾行規則,運行時被建立的新檔案預設被標籤為白名單外。很快的,我們在開機流程發現,處處存在着灰色空間,許多的應用程式會在運行時建立檔案並且執行它,例如 systemd 和 gnome-shell 在 /tmp 底下產生並使用許多暫時檔案,當然這些暫時檔案並不存在於白名單中,這也導致我們需要宣告一些新標籤。
從我們的實驗中可以得知 WhiteList Policy 的變化,從 2 個標籤到 8 個以上的標籤以及許多因應而生的存取控制規則,這些變化不斷朝向least privilege 的概念前進,都只是為了能讓系統正常的運作在白名單機制之下。