應(yīng)用安全的工作有時候感覺就像在“和以往一樣的工作”與“該死的一天來了”之間反復(fù)橫跳,。而當(dāng)數(shù)字化轉(zhuǎn)型在每個部門都在加速進(jìn)行,,遠(yuǎn)遠(yuǎn)超過安全控制的節(jié)奏的時候,平衡就更加困難了,。
打斷這個加速化進(jìn)程的問題點(diǎn)基本都發(fā)生在網(wǎng)站開發(fā)和安全環(huán)境,。二十年前,,一個“典型”的網(wǎng)站都是為了發(fā)布信息的靜態(tài)頁面,。而現(xiàn)在,,則是由一個動態(tài)的網(wǎng)站應(yīng)用處理極其敏感的數(shù)據(jù),并執(zhí)行關(guān)鍵操作,。
敏感信息持續(xù)通過幾乎每個網(wǎng)站,,從而讓攻擊者有了竊取并販賣這些私人信息的完美機(jī)會。事實(shí)上,,這樣的攻擊已經(jīng)相當(dāng)成功了,,而被泄漏數(shù)量的增長速度也在持續(xù)攀升,。最近的數(shù)據(jù)顯示,2020年第一季度泄露的記錄相比2019年第一季度高出了273%,。
現(xiàn)在,,那些在應(yīng)用安全工作的人已經(jīng)知道傳統(tǒng)安全系統(tǒng)(比如像WAF這種服務(wù)器端和網(wǎng)絡(luò)安全的產(chǎn)品)無法防范針對網(wǎng)站的數(shù)據(jù)流出攻擊。攻擊者會利用客戶端側(cè)的安全盲點(diǎn),,將惡意代碼注入公司的網(wǎng)站,,而不需要先成功攻擊他們的第一方服務(wù)器,這就引出“定時炸彈”——網(wǎng)站供應(yīng)鏈,。
代碼相關(guān)性的收益和風(fēng)險
現(xiàn)在典型的JavaScript開發(fā)流程總是依賴于開源組件,,來加速發(fā)展。這意味著公司在他們的網(wǎng)站上會使用幾百個外部源代碼,。這個情況下,,公司對代碼幾乎完全沒有管控能力,最終絕大部分會選擇信任他們使用的代碼模組可靠且安全,。但問題是,,這些模組可能也會依賴于第三方代碼,導(dǎo)致代碼相關(guān)性變得更為復(fù)雜,。
代碼的相關(guān)性越多,,攻擊面也就越大,也就使得攻擊者更有機(jī)會控制相關(guān)性中的一部分,,并對網(wǎng)站頁面進(jìn)行惡意代碼注入,。
如果這個網(wǎng)站供應(yīng)鏈攻擊看上去簡直在復(fù)現(xiàn)SolarWinds事件,那是因?yàn)镾olarWinds本身就是一個展示供應(yīng)鏈攻擊如何能達(dá)成爆炸效果的完美例子,。
最近,,攻擊者在PHP Git的官方代碼庫里植入了遠(yuǎn)程執(zhí)行后門。不過,,這個惡意代碼在本地代碼檢查中被發(fā)現(xiàn),,因此它沒有進(jìn)入官方的更新包中。然而,,它顯現(xiàn)出網(wǎng)站供應(yīng)鏈當(dāng)中的另一個安全缺陷:如果惡意代碼被隱藏得更好,,它們能否進(jìn)入公開發(fā)布的更新包中?這種事情以前就發(fā)生過,,比如Copay事件中,,惡意代碼影響了數(shù)個版本的產(chǎn)品(加密貨幣錢包),并且竊取了用戶數(shù)據(jù),。
另一個事件能讓我們意識到,,事件更加糟糕。安全研究人員Alex Birsan通過利用相關(guān)性混淆的設(shè)計(jì)漏洞,成功攻擊了35個科技公司,,包括微軟,、蘋果、PayPal等,。盡管說Alex的行為只是出于道德安全研究的目的,,但是攻擊者們很快復(fù)制了這個攻擊方式,并試圖攻擊其他還沒開始防御的公司,。
這些例子不過是冰山的上層,。網(wǎng)站供應(yīng)鏈廣而且深,平均每個網(wǎng)站應(yīng)用包含超過1,000個外部源代碼組件,。而且,,最近的研究顯示,安裝其中的一個代碼包意味著間接信任79個第三方代碼包和39個維護(hù)人員——我們可以猜測一下現(xiàn)代網(wǎng)站應(yīng)用的攻擊面到底有多大,。
減少潛在危險
那么,,有那么多不確定的組件,同時越來越多的人認(rèn)為網(wǎng)站供應(yīng)鏈會是一個必然發(fā)生的災(zāi)難,,能做些什么,?
這個問題的答案可能是使用深度防御,在服務(wù)器端和網(wǎng)絡(luò)安全管控之上,,進(jìn)一步部署更好的供應(yīng)商管理能力,,并加上一層客戶端防御。用新的協(xié)議審查和管理第三方供應(yīng)商在越來越重要,,盡管說審查數(shù)百個第三方部件相當(dāng)困難,。另外,審查只能給出某個時間點(diǎn)上的代碼狀況,,卻無法識別突然被感染的原正常代碼,。因此,需要在客戶端運(yùn)行時額外加一層安全管控,,檢測和控制可疑的代碼行為,。在這個等級實(shí)現(xiàn)管控,能產(chǎn)生消耗的是數(shù)月,,還是是實(shí)時,,發(fā)現(xiàn)并解決因網(wǎng)站供應(yīng)鏈產(chǎn)生的數(shù)據(jù)泄露。
這些都是組織能夠采取的減少網(wǎng)站供應(yīng)鏈暴露的措施,。至少,,希望組織和機(jī)構(gòu)別到最后一秒才開始進(jìn)行這些操作。