近日,國外安全媒體先後報導了一款名為Lilocked的Linux勒索病毒,該勒索病毒目前為止已感染了6000+臺Linux主機,加密字尾為.lilocked。俄國的安全研究員認為,Lilocked很有可能是透過Exim郵件轉發軟體的最新遠端執行漏洞CVE-2019-15846進行傳播的。
其實,這個勒索病毒從今年7月中旬就已經出現了,只不過當時“表現平平”,並沒有引起大眾的關注,但是在近期感染量突增,有爆發感染的趨勢。
使用Google搜尋"#README.lilocked"關鍵字,可以關聯到約6340個結果,也就是說,公網上已知的Linux主機,有近6340個主機被該病毒勒索了,然而事實上被勒索的Linux主機肯定遠超這個數字,因為還有很多些未聯網或未被搜尋引擎關聯到的主機。
使用zoomeye偵測這些主機的埠,發現大部分都開啟郵件的服務,以此推斷俄羅斯研究員關於Exim漏洞的說法還是有依據的。
勒索Tor地址為:y7mfrrjkzql32nwcmgzwp3zxaqktqywrwvzfni4hm4sebtpw5kuhjzqd.onion,跟Sodinokibi相似,需要輸入key才能跳轉到相應的勒索聯絡介面,駭客提示想要解密檔案,必須傳送0.03個BTC到錢包地址1KxvqPWMVpCzjx7TevBY3XbMeFNj85Keef。
那麼,Linux下的勒索病毒跟Windows平臺的勒索病毒有什麼不同?該如何進行防禦呢?其實,無論在什麼平臺,勒索病毒的工作原理都是相似的:
殺軟檢測 -> 特定語言國家免疫 -> 生成加密金鑰 -> 遍歷除系統檔案路徑以外的目錄 -> 加密特定字尾的檔案 -> 刪除備份檔案 -> 退出。
但Linux勒索病毒一般會比Windows勒索病毒多一個步驟,就是在開始前會利用漏洞進行提權,包括這次的Lilocked勒索病毒,也使用了未公開的漏洞將自身提升為root許可權後再進行加密操作。下面就使用開源的Linux勒索病毒GonnaCry演示下,有無root許可權情況下的執行情況。GonnaCry的功能比較簡單,使用AES演算法加密檔案內容,然後修改主機桌面。
在普通使用者許可權下,GonnaCry幾乎無法完成加密操作,只能加密幾個臨時檔案。
而當以root許可權執行時,GonnaCry成功加密,主目錄下的doc檔案都被加密成了GNNCRY字尾的檔案。可見,Linux勒索病毒在有無root許可權下執行,結果是截然不同的。
由於Linux作業系統的許可權管控是很嚴格的,除非是在同一個使用者組裡的使用者,不然是無法操作其他使用者的檔案的,比如:若一個勒索病毒是透過redis漏洞進來的,那麼它的所擁有者就是redis賬號(假設使用redis使用者啟動的應用),它將無法讀寫root、user1、user2等其他使用者的檔案,這就是為什麼Linux惡意軟體都想方設法進行提權的原因。
MSF上面有許多Linux提權漏洞的EXP,勒索病毒只需整合相關的核心程式碼即可實現提權,提升到root許可權之後,就能夠讀寫操作任意檔案了。當然,若你的root密碼是弱密碼,勒索病毒也不用透過漏洞提權那麼麻煩了,直接爆破密碼以root許可權執行。
其實對於上述情況,Linux系統還是做出了相應的對策的,那就是SELinux和AppArmor。這兩者的主要作用就是採用MAC的策略,最大限度地減小系統中服務程式可訪問的資源(最小許可權原則),即使是root使用者也無法隨意操作檔案。網上也有相關的使用教程,若規則編寫得當的話,用來防禦勒索行為還是挺有效的。
最後,總結一下Linux平臺下防禦勒索病毒的幾點使用建議:
1. 儘量不要使用root許可權執行Web應用程式。
2. 及時打上重要的補丁,防止應用程式被漏洞利用入侵。
3. root賬號增強密碼複雜性,避免被爆破。
4. 開啟SELinux、AppArmor等功能保護重要檔案。
5. 部署終端安全軟體進行防護。