圖片來源: 

攝影/黃郁芸

「做資安時常是事後的想法。」房仲資訊平臺服務樂屋網的MIS資深經理吳菖育,在資安大會議程一開場,就點出資安人推動安全防護面對的困境。他表示,因業務壓力,開發團隊在推動產品的過程中,往往會不斷地加快開發速度,而忽略安全性議題,導致資安風險常埋藏在環境內。

因此,資安人員常覺得開發人員忽略安全性議題,不負責任,造成雙方有矛盾,欠缺溝通,直到資安問題爆發後,兩方才會檢視應該如何合作以強化安全性,吳菖育表示,這時安全性推動的困難度已變得非常高。

針對資安推動的困境,吳菖育分享樂屋網利用IaC資安作法,來提升基礎架構環境安全性的經驗。

什麼是IaC(Infrastructure as Code)?這是一個以處理應用程式程式碼的方式,配置基礎架構環境的過程。吳菖育表示,IaC就是程式化基礎架構環境的過程,把基礎架構環境轉換成程式碼,用程式碼部署包含應用服務、資料庫、VM環境等基礎設施。

樂屋網目前已在開發環境實作IaC部署,開發單位在撰寫應用程式程式碼,而維運單位在撰寫基礎架構配置程式碼時,雙方就會共同建置基礎架構環境,定義每一個部署的政策。吳菖育表示,IaC文件化基礎環境,把所有設定轉變為配置,包含網路、儲存等都用程式碼呈現。

之後,開發單位與維運單位會不斷測試程式碼是否可在環境中正常運作,待程式碼測試運作完畢後,再將這份程式碼加入版本控管;接著,資訊團隊會把程式碼測試結果融入自動化CI/CD流程,最後,將測試結果推上產品線。

IaC具4大特點:可視性、恢復性、實行快、一致性

吳菖育點出IaC工作流可為企業帶來的4大好處。第一個好處是可視性,基礎架構環境程式化後,資訊團隊可從程式碼清楚掌握環境裡所有的配置,包含每一個參數設定代表的意義,且程式碼加入版本控管後,資訊團隊在追溯基礎環境架構上,也更具有可視性。

第二個好處是恢復性。吳菖育表示,當服務出現非預期崩潰,企業可以利用版本控管裡的同一份程式碼,重新快速建立一模一樣的環境。另外, IaC還具有實行快的特點,因為程式碼包含了所有配置,資訊團隊可省略所有配置設定的步驟,快速推動產品開發,也節省了人力成本。第四大好處則是一致性,程式在加入版本控管後,可確保環境一致。吳菖育表示,在部署過程中,把環境變為一致,能避免人為介入操作,產生雪花效應,出現組態飄移的情況。

實踐IaC可獲得許多好處,不過,吳菖育提到,做IaC在導入自動化的過程,可能會遇到「自動化恐懼循環」。這份恐懼來自環境不一致性的狀況,因資訊團隊可能曾手動修正主機設定檔,所以,當要自動化撒下一個部署腳本,會擔心主機的參數不一致,吳菖育表示,這樣的恐懼會導致團隊對自動化產生排斥感。

因此,吳菖育建議,從小步驟開始導入自動化,再慢慢擴散自動化進所有專案,像是從重啟服務的動作開始,他強調,從小地方著手,讓自動化一步步成為常態,才有辦法跨出自動化的第一步,不然,永遠會落在恐懼螺旋中。

掌握系統環境隱藏的資安風險,來把安全性注入IaC

突破對自動化恐懼的關卡,建立IaC工作流後,更重要的是進一步實踐IaC資安,借助IaC的特性,做好資安防範。吳菖育表示,要將安全性注入IaC,需先掌握系統環境裡有哪些資安風險,才能把安全性強化在配置設定裡,再進一步將檢測方法放入工作流。

吳菖育羅列了基礎架構環境中,需受檢視的主要4項環節。第一項,使用資源本身的乾淨度。吳菖育表示,部署用的容器映像檔是否含惡意程式碼,或是第三方套件是否安全等,需經過驗證確認來源的合法性,才不會成為資安漏洞。

其次,憑證管理狀況。吳菖育表示,需確保IaC溝通過程建立的金鑰和密碼,在部署時有被妥善存放,並落實加密動作,才不會讓攻擊者有竊取金鑰或密碼的機會。下一項,通訊架構。吳菖育表示,因IaC走向自動化,使用主從式架構,需特別注意主節點 的安全性,因為,攻擊者一旦駭入主節點,就可以駭入所有的子節點。

最後一項是,使用者權限管理。吳菖育表示,處理每一件事情都需採最小特權的設定原則,來給予帳號存取權限,不然的話,攻擊者只要拿到一個權限很大的帳號,就可以做很多攻擊。

樂屋網在IaC流程裡安排資安測試,來排除資安風險。進一步來看,每一次處理程式開發、IaC部署,樂屋網都會傳送指令,讓專案掛勾(hook)已寫好的多項資安政策,來藉由這些政策檢查部署、開發的各種資安要求,並以紅綠燈號來顯示專案是否符合要求。吳菖育表示,一旦有一項政策亮紅燈,就會退回該專案給開發等相關單位,進行修正、重構,直到程式符合全部政策的要求,全亮綠燈,才會合併提交(merge)到master分支。

除透過IaC資安作法把安全性政策導入環境以外,吳菖育也相當重視開發團隊與資安團隊間的溝通。他提到,雙方溝通常會劃清工作責任,且當有風險暴露影響產品線時,會不自覺建立自己的堡壘,他表示,雙方應共同思考如何一起制定安全性政策,共同處理問題,而不是從單一團隊應怎麼做的角度出發,歸屬責任。

他強調,做資安,在產品開發初期時,資安單位就必須與開發單位溝通,了解潛在風險,以規畫如何規避風險,並採IaC建立程式化基礎架構環境,以借助自動化腳本部署環境,再把安全因素導入工作流,才能塑造良性的循環,他提到,如此不僅可把時間利用在更有價值的工作項目上,做資安也變得更為輕鬆,不用事後再從邊緣阻隔。文◎黃郁芸

熱門新聞


Advertisement