【我們為什麼挑選這篇文章】「不要像 C++」是 Google 工程師起初開發 Go 語言的初衷與立意。自 2012 年正式發布以來,Go 語言以其靜態強型別、可讀性與易用性並行、提供多行編寫與垃圾回收功能、支援 Linux、macOS、Windows 等作業系統的特色,曾被TIOBE 選為「TIOBE 2016 年最佳程式語言」,然而近日 Go 語言被指成為惡意軟體編碼的首選程式語言,背後原因是什麼?(責任編輯:賴佩萱)

本文經 AI 新媒體量子位(公眾號 ID:QbitAI)授權轉載,轉載請連繫出處
作者:量子位

Go,或許從誕生之日起就沒想過。

自己會以這種方式成為語言中的 C 位:最新數據顯示,Go 語言成為惡意軟體的最愛。

4 年內基於 Go 語言的惡意軟體數量飆增 2000%。甚至,這正在成為一種趨勢。

報告的提供者,網路安全公司 Intezer 指出,惡意軟體生態系統已經出現一個普遍趨勢,即惡意軟體作者已經慢慢從 C 和 C++ 轉向 Go。

預計 Golang 的使用率在未來幾年將繼續上升,並與 C、C++和 Python 一起,成為未來惡意軟體編碼的首選程式語言。

消息一出,不少網友紛紛為 Go 鳴不平。

惡意軟體選擇 Go 的三個原因

即便如此,但也總不能讓 Go 莫名其妙的背鍋吧!

Intezer 報告裡也直截了當地列出了原因,主要有三個。

首先,Go 支持跨平台編譯。

開發者只需要編寫一次程式,就可以從同一個程式庫中編譯出多個平台的二進制檔案,包括 Windows、Linux 和 Mac 系統。

這種通用性是很多程式語言不具備的。

其次,安全人員很難對 Go 語言生成的二進制檔案進行反編譯和逆向工程。

因此導致 Go 語言編寫的惡意程序檢出率很低。

第三個原因則與 Go 對網路數據包和請求的工作支持有關。

Intezer 解釋道,Go 有一個非常好寫的網路棧,很容易使用。

Go 已經成為雲的程式語言之一,很多雲原生應用都是用它編寫的。例如,Docker、Kubernetes、InfluxDB、Traefik、Terraform、CockroachDB、Prometheus和Consul都是用 Go 編寫的。

因此開發者更容易繼續使用 Go 語言來寫網路工具。

駭客使用 Go 語言開發惡意軟體成風潮?

實際上,當年(2007 年)Google 設計創建 Go 語言,其中一個原因是想用更好的語言取代 Google 內部使用的 C++ 網路服務。

這樣看,也算是情理之中。

Intezer 還表示,2019 年之前還很少有人使用 Go 語言來編碼惡意軟體,但在 2019 年開始,就逐漸開始形成風潮。

如今, 大量的駭客、安全團隊都傾向於使用 Go 語言,不僅可以用來創建惡意軟體,也可用來製作滲透測試工具包。

值得一提的是,這當中許多惡意軟體都是針對 Linux 和 IoT 物聯網設備的,可以用來挖礦或感染設備,以便用於為 DDoS 攻擊準備的殭屍網路。

此外,勒索軟體使用 Go 語言也十分普遍。

在報告的結尾處,Intezer 還列舉了一些在過去一年中出現 Go 編寫的惡意軟體。

對於這樣一份報告,在中文開源社群 OSCHINA 上引發了熱切的討論。

有網友給 Go 語言正名:問題不在 Go。

還有人說,做菜刀的人如何制止使用菜刀的罪犯?

當然也有人「換個角度想想」:也說明 Go 火了啊!

參考連結

zdnet

(本文經 AI 新媒體量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈Go 語言竟成惡意軟件的最愛!4 年來 Go 編寫的惡意軟件飆增 2000%,網友:這也能怪 Go?〉;首圖來源:Golang 官網。)

你可能會有興趣