安全公司 ReversingLabs 在掃描了 PyPI(Python Package Index) 的一百多個萬個庫后,發(fā)現(xiàn)其中存在三個惡意 Python 庫,它們包含惡意后門,會在安裝到 Linux 系統(tǒng)后被激活。
PyPI 顯示三個庫 libpeshnx、libpesh 和 libari 的作者同是名為 ruri12 的用戶,上傳時間是2017年11月,距今已接近兩年,也就是說在被發(fā)現(xiàn)之前,這些庫在 PyPI 上已被下載近 20 個月。
PyPI 團(tuán)隊收到通知后于7月9日移除了這三個庫,而 ReversingLabs 也于當(dāng)天向 PyPI repo 維護(hù)人員通報了他們的調(diào)查結(jié)果。由于這三個庫都沒有描述,所以其用途難以了解。但 PyPI 的統(tǒng)計數(shù)據(jù)顯示它們在被定期下載,每個月有數(shù)十次安裝。
惡意 Python 庫的后門機(jī)制只在庫安裝到 Linux 系統(tǒng)后才會激活,后門允許攻擊者向安裝這三個庫的計算機(jī)發(fā)送和執(zhí)行指令。ReversingLabs 還發(fā)現(xiàn)三個庫中只有 libpeshnx 的后門是活躍的,其余兩個(libpesh 和 libari)惡意功能的代碼是空的,這表明作者已將其刪除,或者正準(zhǔn)備推出后門版本。
至于惡意代碼,ReversingLabs 提供的資料顯示,其后門下載的邏輯非常簡單,如果在 Linux 系統(tǒng)中安裝了此惡意 Python 庫,每當(dāng)創(chuàng)建交互式非登錄 shell 時(即在初始登錄后打開 shell 時),它將嘗試從 C2 域下載文件,將其保存為用戶主目錄中名為 .drv 的隱藏文件,并將其自身保存在 .bashrc 中以便作為后臺進(jìn)程運行。代碼如下: