圖片來源: 

周峻佑攝

在企業實現DevOps的過程中,對於服務的開發與維護流程,所面臨的大幅變化,因此,服務的安全性,也同樣需要改變,無法再像以往,等待完全開發完成之後,再進行完整的滲透測試,確認沒有問題才正式上線。針對上述的情境,帳聯網路科技(Amis)網站可靠性工程師蔡宗城(Smalltown),他特別在DevOpsDays Taipei 2018大會上,以DevOps所需留意的資安因應之道為題,進行演講,蔡宗城指出,從開發服務的程式碼開始,企業就要將安全防護納入其中。

以往論及服務的開發與維護的流程精進,DevOps強調的是同時確保服務的品質(Quality Assurance,QA),而如今,企業更極需重視安全性,做到DevSecOps(Development Security Operations)。蔡宗城表示,組成DevSecOps的重要元素,包含了開發者、IT維運人員,以及資訊安全部門等。開發者必須將安全性因子納入交付的程式碼之中,維運的部分,則是需要增加操作過程的能見度,而對於較具規模的企業,可能還會在獨立於上述2種部門之外,設立資訊安全部門,進行監督與資安事件的管理。

從開發的程式碼就要內建安全因子

對於程式開發過程中的控管,如何在快速交付的需求下,同時兼顧滲透測試,確保程式擁有一定程度的安全性,不致出現低階錯誤,便成為企業首先要面臨的難題之一。蔡宗城說,大約是4到5年前的產品開發周期,可能長達1年之久,企業的開發人員依照計畫,按步就班編寫程式碼,然後經由詳細的滲透測試之後,確認沒有重大缺失,產品或是服務才會正式上線。但是,隨著因應業務需求的快速開發,現在可能是一個星期內,就要完成交付,上述的滲透測試流程,就難以完整執行。

當然,在傳統的應用程式開發上,企業也有可能為了交期,允許在臭蟲修不完的情況上線,例如是臭蟲雖然尚未處理完成,但仍在能容許的範圍內,而且專案經理背書等前提之下,准許上線。不過,蔡宗城也提醒,有些臭蟲可能是小問題,但要是與個資或金錢有關,很可能造成的影響非常嚴重。

然而,從敏捷式開發的角度來看,程式碼的安全性,可能不若促進程式碼的生產來得重要。蔡宗城特別指出這樣的現象,開發團隊聚焦在如何更有效率的產出程式碼,相較之下,程式碼的安全性,便可能在實行敏捷式開發後,不再強調。因此,他認為從程式碼的開發下手,其實企業要有相關的意識。

對於企業的開發流程而言,滲透測試最基本的是靜態掃描(Static Application Security Testing,SAST),也就是確認所採用的函式庫本身,是否含有弱點的情形。而較為進階的做法,則是主動的自我防禦機制(Runtime Application Self-Protection,RASP),RASP與應用程式並行,若是偵測到異常行為,就會執行阻斷,蔡宗城說,這就好像人體白血球提供的免役系統。

對於應用系統的弱點測試,除了各種的掃描與檢測手法之外,蔡宗城特別提到主動防禦機制Runtime Application Self-Protection(RASP),其運作模式便是隨著應用程式一同運作,若是偵測到攻擊行為,RASP便會進行攔截,達到保護App本身與其後端(如圖中的資料庫)的目的。

不過,光有RASP還不夠。事實上,正常的滲透測試流程中,還有動態掃描和互動掃描。而蔡宗城認為,在程式碼中結合了RASP,然後經由模擬可能發生攻擊的特定情境,執行動態弱點掃描,若是將這兩種方法加以結合到程式碼通道(Pipeline)裡,開發人員提交程式碼前,便能夠排除6成至7成的弱點,減少低級錯誤發生的機會。至於完整的滲透測試,則可定期半年或是一年,交由專業資安團隊處理。

不光是程式碼,開發者也需要滲透測試

蔡宗城認為,滲透測試也要包含開發者等IT人員。在程式開發的流程,開發者可能會面臨了急於趕進度等情況,便可能忽略平時所了解的資安意識。他說,雖然普遍許多企業都有相關的訓練或是課程,但他認為對人最有效的方法,其實是經由不斷的演練、演習,然後才會內化成為自己的一部分。

基本上,這種演綀的方式,主要利用的是2種人性,分別是貪心和恐懼。蔡宗城舉例,前者可能是貪小便宜,像開發者愛喝的咖啡品牌,出現買一送一之類的訊息,就很容易讓人上當。而後者,很可能是偽冒開發者常用的網站,在幾可亂真的情形下,開發者便在惡意網站暴露了自己的帳號和密碼。他也列出了2款能提供假造網站的測試工具,CredSniper與Social-Engineer Toolkit(SET),並以CredSniper呈現的Google登入頁面與原始版本對比,可說是沒有什麼差異。

蔡宗城以CredSniper製作假冒釣魚網站,藉此測試開發者的資安意識為例,若非留意網址的差異,左邊偽造的Gmail登入畫面,與右邊Google提供的幾乎是一模一樣,難以分辨。

熱門新聞

Advertisement