1. 程式人生 > >軟體完整性有助於金融服務機構抵禦網路攻擊

軟體完整性有助於金融服務機構抵禦網路攻擊

作者:新思科技軟體質量與安全部門管理顧問Olli Jarva

2018年8月,大資料協同安全技術國家工程實驗室——金融行業安全研究中心在北京成立,旨在改善金融網路安全態勢,為金融業務創新創造更有利的安全環境。由此可見,金融行業的安全問題已經受到了社會的極大關注。
 
金融服務機構經常部署複雜的應用程式,與採用不同語言的分散式地理資訊系統連線。它們通過多種協議進行通訊,其中一些使用的是多個平臺提供的免費開源軟體。
 
這種複雜性使金融服務機構的網路面臨更多漏洞。更糟糕的是,市場壓力迫使軟體行業要更快交付產品。在急於完成一個軟體時,安全流程極有可能就被忽視了。
 
金融行業是黑客的重點攻擊物件之一,從ATM攻擊、DDoS攻擊、勒索軟體到APT攻擊等,犯罪手段層出不窮。

為了防患於未然,我們可以探討一下哪種防範方式更有效,能保護金融服務機構、應用程式及客戶資產。
 
  1. 軟體安全架構
軟體完整性是衡量一款軟體是否卓越的關鍵。完整性是指軟體質量與安全。在每款應用開發之初,安全專家和軟體架構師應該緊密合作,以開發高度整合的、簡化的軟體安全架構。風險分析應該在軟體開發早期階段進行 —— 這通常被稱為“左移”。
 
當所有安全決策都通過一個小型、集中式核心執行時,它不太可能會省略某個安全決策(例如授權)。開發團隊可以放心地去構建一個安全的應用程式,因為程式碼在預設情況下從一開始就是安全的。
 
  1. 威脅建模
威脅建模流程可以支援識別漏洞和潛在攻擊路徑,降低風險。進行威脅建模是持續風險評估過程的一部分,可以幫助開發團隊保持高度的安全警惕性。不斷提醒攻擊的可能性,並從攻擊者的角度考慮應用程式安全,有助於開發團隊從不同角度進行思考,並在開發過程中進行防禦。
 
  1. 自動安全測試
過去,應用程式安全測試通常在軟體開發過程結束時或接近結束時才進行。這就會導致如果有安全漏洞的話,開發人員要到後期才能發現,補救成本往往要更高。
 
早期發現漏洞不僅可以降低修復成本,還可以減少在後期階段修復漏洞的時間。這對於像金融等行業的快節奏開發環境尤其重要。除了自動連續測試之外,在整個軟體開發過程中採取安全措施,可以在軟體投產之前就解決安全問題,避免昂貴的補救成本。
 
現在市面上有許多自動測試工具,每種工具都有優缺點。動態應用安全測試(DAST)工具(也稱為黑盒測試)可識別正在執行的應用程式中的漏洞。 DAST可快速有效地查詢到不同型別的應用程式漏洞,包括身份驗證和授權問題。而且,即使是不熟悉編碼語言的人也能使用這類工具。
靜態應用安全測試(SAST)工具(也稱為白盒測試)可供有權訪問應用程式的原始碼、位元組程式碼或二進位制檔案的人使用。它能識別應用程式中的潛在漏洞,例如程式正在使用不受信任的資料,並在沒有任何形式的驗證和/或編碼的情況下將其視為可信。黑盒測試用於正在執行的應用程式,在這個過程中不易發現的漏洞可以被 SAST工具檢測出來。
 
  1. 手動安全測試
自動化工具有一定的侷限性,這就是為什麼需要補充手動安全測試的原因。例如,自動化工具可能無法檢測到邏輯和設計缺陷,這時候就需要手動程式碼審查和滲透測試,用來識別和解決這些問題。
 
  1. 專業人員與培訓計劃
軟體是一個團隊協作開發的結果。開發過程中的所有參與者都應在安全方面獲得充分的資訊和培訓,從而在整個軟體開發生命週期(SDLC)中推動安全計劃進展。推行安全計劃不能只靠軟體開發人員,還需要了解常見漏洞和核心安全概念的質量保證(QA)團隊和專案經理。 QA團隊應該能夠進行基本的安全測試工作。
創造具有安全意識的環境和培養這樣的團隊意味著在SDLC早期就能發現安全問題,並且在其成為沉重負擔前解決掉。

 

總結
金融服務機構受到高度的監管,應用程式執行環境複雜。市場日新月異,維持應用程式安全是一項有挑戰的任務。但部署安全系統及在SDLC早期(即“左移”)採取安全舉措可以為金融服務機構提供堅實的軟體安全保障。