過去大部分的組織都會將網路架構劃分為兩個部分,內部網路和外部網路。以一個簡化的例子來說,組織會把辦公室跟伺服器所在的網路視為內部網路,其他的網路都會被視為外部網路。
任何連接到內部網路的人都會被視為可信任的,擁有可以存取組織資源、連上組織伺服器的權限。
為了保護內部網路,組織會在內部網路跟外部網路中間放上防火牆、入侵偵測系統等等的防護機制,利用這些工具來擋下想要從外部網路入侵的攻擊者。
要連上公司網路的話,除了人實際在公司辦公室以外,就要用到像是 VPN 這類型的工具從外部網路連線到內部網路。
後來隨著各種雲端服務的普及化,再加上越來越多人需要遠端上班或是合作,導致要明確的劃分內部網路以及外部網路變得越來越困難。駭客攻擊手法也進步飛快手法多變,讓確保組織內部網路的每一台電腦跟伺服器都是安全的變得十分的困難。只因為一台電腦是連線到內部網路就去信任他變得不是一個太明智的事情,因此大家開始突破原本的框架,想要去找到一個更好的解決辦法。
零信任模式就是一個被用來解決上述問題的策略。這個概念其實早在幾十年前就被提出了,但是在當年的技術限制以及需求不強烈的情況下,讓零信任概念沒有獲得太多的討論跟實作。
2009 年時,Google 為了應對受到的資安攻擊,他們想要改善以及強化公司內部系統架構的安全性,因此開始開發了一套名為BeyondCorp的零信任架構,他們花了好幾年的時間才成功開發出這套系統並把它應用在 Google 自己公司內部上。
在 Google 成功實現了零信任模式以後,這個概念才開始在業界吸引起大家的注意跟討論,很多公司跟企業也都開始朝著零信任模式邁進。
零信任的概念如其名就是不去相信任何東西
他的核心觀念就是去假設攻擊者無所不在,因此在零信任架構下不會有像是內部網路這種被預設安全的東西,任何想要連線到我們系統的人或是裝置都會需要經過一系列的驗證跟檢視,通過了驗證、檢視後我們才給予這個人或是裝置他所需要的權限。
我們也需要考慮到一些其他面向,如:
如果把這些條件跟因素都考慮進去,我們才能知道這個做法是不是最適合我們的。同樣的道理也適用在零信任模式上,我們會需要在系統跟技術上的協助跟支援才能成功的做到零信任模式。
要做到零信任模式,我們通常會需要驗證三個東西,分別是身份、裝置、以及權限。
確保網路另一端的人真的是他宣稱自己是的那個人。最基本驗證身份的方式就是透過帳號密碼,不過在零信任模式中為了避免一些常見的攻擊手法,我們通常還會要求使用者使用多因素驗證來確保他們帳號的安全性。
確保使用者用的是一台安全的裝置。要確認一台裝置是不是安全可信任的我們通常會有很多不同的考量點,如:
結合很多這種不同的評斷標準的綜合評比來確認這個裝置是不是安全而且可信任的。
確認用戶有讀取哪些系統跟內容的權限。
通常我們會使用最低權限 least privilege 的標準,只給用戶工作時一定需要的權限就好,任何其他不需要不必要的權限都不給。
舉例來說,如果一名行銷部門的員工需要知道一個產品每個月的銷售金額,那麼我們就只會給他資料庫中這個產品銷售金額的資訊,不會給他這個產品的其他資訊,也不會給他其他產品的銷售金額資訊,更不會讓他有讀取人資部門、IT 部門等等其他部門的任何資訊的權限。透過最低權限標準,我們可以在意外發生的時候,限制攻擊者可以取得的資訊量,避免一名員工的帳號被入侵,整個公司所有的資訊都被竊取的情況發生。
這些驗證步驟是需要一直不斷重複進行的,並不是說我們在一開始的時候驗證過一次沒問題就結束了。
用戶可能會不小心掉入釣魚的陷阱裡讓攻擊者知道了他的帳號密碼。也有可能會不小心遺失裝置,或是裝置被植入病毒或是木馬等等的惡意程式。用戶所擁有的權限也是會更改的,他可能會被調到不同的組別而需要不同的權限,也有可能被開除失去所有的權限。
目標有可能會隨時變化,因此系統會需要每過一段時間就重新進行一次驗證,確保這名用戶跟他的裝置還是可以被信任的,如果隨時有任何的變化讓系統覺得這名用戶不值得被信任的話,他所有的權限就會被收回沒有辦法繼續連到公司的系統。
我們也需要記錄所有的行為跟動作。透過紀錄用戶的行為跟動作可以讓我們去監測跟發現系統內部的異常活動,在有攻擊者的時候很即時的幫助我們找出他們。通常我們會使用SIEM 資安資訊和事件管理系統來整理、分析跟視覺化這些資訊。
零信任模式可以讓外部網路和內部網路兩者的用戶都需要經過嚴格的驗證後才可以連結到公司的系統。讓遠端工作變得更容易,員工不需要再透過 VPN 才能連上公司的系統,只要能夠通過一系列的驗證,不管員工人在哪裡都可以存取公司的資源,這麼做從很多角度來看都大大的降低了風險也提升了安全性。
但驗證過程也可能會讓員工的使用者體驗變得不好,造成他們很常會需要重新登入來驗證身份。
同時公司內部很多的系統跟軟體都需要雲端化,這樣才可以讓員工不管身在何處都可以登入使用,但雲端化這樣的轉型其實在很多企業跟組織中是比較困難的,畢竟就連 Google 都花了六年的時間才完成了系統架構的更新,這會是許多企業在轉型到零信任模型路上的絆腳石。
雖然說零信任模型是針對企業或是組織而設計的,沒有辦法直接套用在日常生活中,但零信任的概念跟作法還是有很多可以借鏡的地方,幫助我們增加日常生活的安全性的。
預設攻擊無所不在,不要隨意地相信其他的人、事、物,這包含了上網過程的細節,如:
我相信很多人都跟我以前一樣,會抱持著僥倖的心態覺得我誰也不是,攻擊者不會把我當作目標,不需要擔心新聞上那些資安攻擊跟事件,但實際上網路上很多攻擊者是在進行自動化無差別的掃描跟攻擊的,而且我們不是那些攻擊者,我們不知道攻擊者會不會看到一些我們沒看到的利用價值,因此不管是誰都有可能成為攻擊目標。如果利用零信任的概念,不去相信任何人或是任何網頁,那麼就可以幫自己避免掉許多的危險了。
確保使用夠安全夠複雜而且不重複的密碼,並且啟用雙因素或是多因素認證。
帳號密碼是大部分的網站跟服務驗證身份的方式,如果沒有把帳號密碼保護好,攻擊者就會有辦法透過我們的帳號密碼取得我們帳號的控制權。
只要我們有在使用手機、平板、電腦、家中的路由器或是其他的網路裝置,他們就都是暴露在風險中的,因此我們會需要確保他們的安全性。常見的方式:
不管是裝置的安全性還是帳號的安全性,我們都需要定時地去檢查,確保他們一直都是安全的。
我們不能在最一開始設定完成以後就丟著他們不管,因為他們的狀態是隨時可能會改變的,你不會知道你使用的網站什麼時候會發生資料外洩導致你的個資外流。你也很難知道你下載的檔案程式有沒有被藏了木馬或是後門會感染你的電腦和手機。
當遇到要求提供個人資料或讀取其他帳號資訊時,可以先確認這個軟體/服務是不是真的有這些權限需求,也要確認是不是只提供了他真的需要的最低權限,沒有提供過多的權限。這邊舉一些可以思索的例子: