當前最駭人聽聞的 SolarWinds Orion 事件在資安界及一般大眾之間都掀起了不小的聲浪,全世界也因而更加關注所謂的供應鏈攻擊。事實上這類攻擊本身並不算新穎、也早就橫行多年。但所有攻擊都會不斷演化出更高階的手法,而軟體開發供應鏈包含了許多階段,而每個階段都可能遭到襲擊,因此更加危險。
哪裡是脆弱的環節?
首先,我們先來為「供應鏈」下一個明確的定義,一般所謂的供應鏈是指「一套將產品提供給客戶的流程」。而本文所談是數位世界中產品、也就是軟體,所以我們先來探討軟體開發流程本身。
所有軟體開發人員,不論採用何種開發方法,都必須將一個複雜的專案拆成多個較簡單的工作項目,這樣才能將每個項目定義清楚,並且在問題追蹤系統內將工作項目指派給特定的開發者。接下來,開發者開始撰寫及測試程式碼,完成之再將修改過的程式碼傳送至原始程式碼管理系統 (Source Code Management System, 簡稱SCM)。