利用Azure安全中心可以提前檢測到Linux受到的攻擊
一般來說,黑客會在攻擊之前選擇攻擊目標,比如盜取儲存在受害者計算機上的資訊,或者獲取裝置的某些訪問許可權,更有甚者,直接使用受害裝置本身的處理能力,甚至將計算機作為其他攻擊的起點(比如挖礦或作為肉雞)。在Microsoft Azure的Linux虛擬機器(VM)上,研究人員經常看到攻擊者安裝並執行加密貨幣挖掘軟體。
Azure安全中心(ASC)使用在多個Linux發行版上執行的代理,在啟用auditd時,它會收集包括流程建立事件的日誌。它們通過檢測pipeline執行,以查詢惡意和可疑的活動,安全警報會顯示在ASC的入口網站上。
Microsoft威脅情報中心使用了一系列方法來識別新出現的威脅,包括複雜的混合Linux蜜罐服務,蜜罐是一種誘餌系統,引誘網路攻擊者自我暴露。
在這篇文章中,研究人員討論了一些最近新發生的例項,其中針對蜜罐的攻擊源自客戶裝置中的IP。在這種情況下,受攻擊的客戶VM上的惡意行為會導致Azure安全中心發出警報。對這些攻擊的分析可以更深入的瞭解攻擊者的行為,併為進一步的檢測提供依據,使研究人員能夠更早的向用戶發出攻擊警報,並提供一個更完整的端到端攻擊檢視。
攻擊的初步階段
檢測攻擊的設定如下所示,根據檢測到的資料,研究人員發現使用具有預設密碼的Apache Cassandra帳戶最一開始只會破壞Azure VM。一旦獲得訪問許可權,攻擊就會被蜜罐(1)和其他目標(2)捕獲。根據捕獲的資訊,研究人員確定了攻擊者用來登入此VM的兩個IP地址(3,4),其中一個也攻擊了蜜罐(5)。
研究人員看到的針對客戶虛擬機器的最常見的攻擊之一是暴力攻擊或密碼噴霧攻擊,這些攻擊很快會演變成挖礦。
主機列舉
攻擊的初步階段過後,攻擊者從域nasapaul.com下載了一個基於perl的主機列舉指令碼,該域包含一些列舉和速度測試指令碼。 Azure安全中心通過“從已知惡意來源檢測到的檔案下載”警報,來提醒使用者。
該指令碼在/ proc / cpuinfo檔案中查詢特定資訊,以便讓攻擊者瞭解它們所使用的裝置型別。你可以在下面的文字框中看到一些命令。這個指令碼還運行了一個speed test命令,這是nasapaul.com提供的服務。
CPU=$(grep –m 1 “model name” /proc/cpuinfo | cut –d: –f2 | sed-e ‘s/^ */ /’ |sed –e ‘s/$/ / ‘) CPUS=$ (grep –c ^processor /proc/cpuinfo) STEP=$ (grep –m 1 “stepping” /proc/cpuinfo | cut –d: –f2 | sed –e ‘s/^ */ / ‘ | sed –e ‘s/$/ / ‘) BOGO=$ (grep –m 1 “stepping” /proc/cpuinfo | cut –d: –f2 | sed –e ‘s/^ */ / ‘ | sed –e ‘s/$/ / ‘) OS=$ (lsb_release –si) ram=$ (free –m | grep –oP ‘\d+’ | head –n 1) VER=$ (uname –a) uptime=$ (</proc/uptime) uptime=$ {uptime%%. *} bold=$ (tput bold) zile=$ ( ( uptime%60 ( ) secunde=$ ( ( uptime%60 ) ) minute=$ ( ( uptime/60%60 ) ) ore=$ ( ( uptime/60/60%24 ) ) vid=$ (lspci | grep VGA |cut -f5- -d ‘ ‘) DISK=$ (df –h --total | grep total |awk ‘ {printf “” $2 “B\n\n” } ‘ )
後期攻擊
該會話結束時,攻擊者會緊接著啟動一個新的會話,並建立一個與安全FTP伺服器的連線,再將某些檔案刪除,修改要執行的檔案。
chmod +x 1 cyberinfo cybernetikrandom go h4e petarda port pscan2 screen speedtestvps.py sshd
這組檔案是來自一個已知黑客組織的工具包,攻擊者使用“go”檔案,在兩個不同的B類IP範圍執行“pscan2”和“sshd”。這意味著他們對65000多個地址進行了掃描。他們還使用了“h4e”工具,研究人員的調查顯示這是一個用於拒絕服務攻擊的perl指令碼。文字檔案“port”會儲存掃描結果,掃描結果通常是IP正在監聽的內容以及可能開啟的埠。目前尚不清楚這些命令是否能成功完成掃描,因為兩小時後,攻擊者就將所有命令全部刪除,並刪除了另一個工具包。
密碼噴霧(Password spray)
wget 是一個從網路上自動下載檔案的自由工具,支援通過HTTP、HTTPS、FTP三個最常見的 TCP/IP協議下載,並可以使用 HTTP 代理。"wget" 這個名稱來源於 “World Wide Web” 與 “get” 的結合。本文所檢測的攻擊者,就是使用的Wget,如上所述,攻擊者會將用於攻擊的工先進行修改,再執行攻擊。
chmod +x a all classes co gasite.txt hu pass range scan.log ssh2 x /bin/bash ./a ##.49 ./ssh2 1500 -b ##.49 pass 22 "uname -a & lscpu" /bin/bash ./a ###.66 ./ssh2 1500 -b ###.66 pass 22 "uname -a & lscpu" nano gasite.txt
這樣經過設定後,攻擊者就可以針對多個B類範圍重複相同的簡單攻擊模式了。檔案“a”將B類範圍的前兩個八位位元組作為輸入,然後呼叫“ssh2”。 “ssh2”接受多個執行緒的輸入、範圍、密碼檔案(在本文的樣本中,包含超過35000個使用者或密碼組合的密碼)、埠號以及要執行的初始命令,檔案“gasite.txt”收集輸出內容。
稍後,研究人員會看到檔案“co”和“range”與“classes”資料夾一起使用。 “classes”資料夾包含26個雲和託管公司及其IP範圍的詳細資訊,微軟和其他主要供應商的資訊都包含在其中。檔案“co”和“range”只是將最初的兩個八位位元組擴充套件為一個完整的IP。
攻擊者似乎沒有執行“all”,“hu”或“x”檔案,但它們都與配置IP範圍有關,特別是填寫IP的完整四個八位位元組,很可能“ssh2”可執行檔案使用了這些檔案。
經過對工具包的分析,研究人員發現輸出檔名“gasite.txt”轉換為了“found.txt”,“ssh2”檔案是使用UPX打包或混淆的ssh掃描程式的自定義羅馬尼亞語版本。反編譯後,羅馬尼亞語字串就會出現(見下圖)。
Azure安全中心的分析過程
在調查攻擊過程時,研究人員能夠通過Azure安全中心提取一些獨特的TTP,來加快分析的時間,比如通過更好的密碼噴霧檢測,並全面的收集攻擊者的主機列舉。研究人員還能夠對分析結果進行驗證,看看攻擊是否如預料的那樣啟動。Azure安全中心的目標不是向用戶發出警報就完了,而是為了讓使用者對攻擊者行為有一個深入瞭解並作出預防措施。研究人員也承認,將來,這次攻擊幕後的研發者可能會改變他們某些技術。對攻擊的整個生命週期的檢測範圍越大,研究人員對攻擊者方法的瞭解就越深。此外,本文所講的樣本中的使用的特定技術可能被其他攻擊者使用,研究人員也希望能隨時捕獲它們。
緩解措施
定期檢視Azure安全中心的警報,如果使用者注意所看到的針對此入侵的Azure安全中心警報,就可以按著提示阻止此惡意活動。 Azure安全中心會將所有警報整合到安全警報的一個位置。這樣使用者就可以輕鬆檢視警報的嚴重性,並幫助你確定響應的優先順序。每個警報都會為你提供事件的詳細說明以及如何解決問題的步驟。為了方便使用者的進一步調查,“調查路徑”中專門有檢視警報的途徑,這是一種互動式和視覺化的方式,可以檢視攻擊中涉及的每個物件。
定期更改密碼,雖然Azure安全中心釋出了安全警報,但可以通過良好的密碼管理策略來防止入侵。在攻擊者工具包中的許多使用者名稱和密碼組合中,很大一部分是在使用者第一次安裝軟體時建立的預設值。通過更改這些預設密碼或無效密碼,可以有效防止攻擊。