開發者請注意:複製程式碼時需提高警覺
一種新型攻擊媒介正在傳播擴散,各類開發者都應對此保持關注。許多IT從業員可能認為,憑藉自身在網絡領域的經驗,能夠抵禦惡意軟件、釣魚攻擊及其他安全入侵,但這種新方法直接針對開發者群體——並且透過開發者工具箱中的一項常用功能發起攻擊:複製貼上的程式碼片段.
Web開發者在網上搜尋程式碼片段並複製到專案中是非常普遍的做法。這種方式能夠節省時間,也能減少常用程式碼編寫出錯的可能。這種做法應用極為廣泛,甚至有專門的網站用於分享標準程式碼,還做了特殊格式優化,方便開發者取用所需的程式碼片段。但遺憾的是,惡意攻擊者已經找到了方法,讓這種快捷操作給開發者帶來風險。
攻擊原理
這種攻擊的核心是隱藏在頁面文本下方的嵌入式JavaScript。惡意攻擊者會在網站的底層程式碼中插入JavaScript命令,當用戶選中並複製文本時,頁面顯示一切正常,但實際複製到剪貼簿的內容並非用戶在網站上看到的文本。
很多人可能遇到過類似的情況,只是後果沒有這麼嚴重。新聞網站和網誌有時會在用戶複製並貼上到其他位置的文本中添加來源標註,方便讀者了解資訊出處。上述兩種情況——無論是添加來源標註還是這種攻擊手段——用戶都只有在將內容貼上到其他位置時,才會發現內容已經被篡改。而這正是危險所在。
和新聞媒體的資訊不同,複製的程式碼是會被執行的。這正是黑客所利用的點。被篡改的程式碼可能包含任意命令,在最糟糕的情況下,會觸發遠程加載執行,在當前活躍會話中下載shell腳本。部分惡意程式碼甚至包含執行指令,意味著程式碼一旦被貼上到命令列就會立即運行,這會給所有複製貼上程式碼的人帶來極大的安全隱患。
應當信任誰
那麼,隨著這種攻擊手段被公開,開發者是否還能找到可以信任的、提供乾淨程式碼片段的來源?簡單來說,沒有。即便是由熟人託管維護的網站也可能存在風險,因為惡意攻擊者可以入侵已有網站,篡改可信來源的程式碼。網站發布者甚至可能完全沒有意識到存在問題,因為他們需要排查源程式碼才能發現異常。在供應鏈攻擊場景下,這是一個尤為嚴重且持續增長的問題。根據歐洲網絡安全局的研究,66%的攻擊針對供應商代碼.
儘管這個結論令人不安,但開發者唯一能信任的程式碼,只有自己編寫的,或是貼上到文字處理器中親自核驗過的程式碼。跳過這一步確實很省事,但後果可能是毀滅性的。想要保護自身數據安全的開發者,應當避免執行未經本人親自檢查的程式碼。
要了解更多關於這種潛在攻擊媒介的資訊,可收聽《根本原因》, 第200期《為何不要從網頁複製貼上命令》