日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

從病毒到“基礎軟件污染”,Linux 真的安全嗎?

作者 | 阿里云安全專家王福維(弗為)、

阿里云技術專家程聰(清音)

責編 | 屠敏

頭圖 | CSDN 下載自東方 IC

出品 | CSDN(ID:CSDNnews)

長久以來,linux主機曾一直被認為是比windows更安全的操作系統,已知病毒形勢遠沒有Windows多樣和嚴重。而近年隨著云計算的興起,Linux系統在云主機的高占比形成了聯網主機的主要算力,自然而然地吸引了病毒、黑產的注意力,但對Linux惡意程序攻防的研究仍未達到Windows同等程度,由公眾所認識到的Linux惡意程序基本以挖礦程序和DDoS木馬為主。

在對云上海量主機文件進行巡檢和安全分析過程中發現,盡管考慮到Linux開源生態天然的版本分化因素,Linux的大量基礎軟件存在超出正常現象的碎片化現象。分析的基礎軟件包括操作系統基礎程序,如ps、kill、netstat等;以及服務類基礎應用軟件,如Apache httpd、Nginx、OpenSSH。部分軟件的版本碎片化呈現日常快速增長趨勢,經過分析,其中部分可關聯到已知的攻擊組織和事件,如DDG挖礦僵尸網絡新近被發現存在篡改系統程序植入木馬下載器代碼;而更多的情況在此前則并未引起注意和披露,也無從解釋。隨著分析深入,阿里云安全運營中心逐漸發現了圍繞污染基礎軟件展開的多種入侵,而因為基礎軟件的獨特作用,這樣的污染往往難以在事中和事后由一般用戶進行發現,更難以根除。

為了更好的應對Linux操作系統上獨有的安全挑戰,2020年以來,阿里云云安全中心專項建設Linux二進制程序惡意樣本的發現和分析,通過對云上活躍二進制程序做大數據分析,依靠對可疑程序做多維度打標、大樣本量代碼相似度與差異聚類比對,形成了一份獨有的惡意樣本與特征庫。其中最典型的一個大類,是對Linux云服務器上搭載的基礎軟件污染的樣本,形成了區別于Windows病毒的一種變種速度快、隱藏方式多、檢測難度高的主要威脅形式。以六月份為例,該類別下日均新檢測到帶有惡意代碼的篡改系統二進制程序3840例樣本。

本文將從一個典型案例——sshd后門切入,介紹Linux基礎軟件污染的主要形式,特有威脅,以及查殺關鍵。

從病毒到“基礎軟件污染”,Linux 真的安全嗎?

入口之爭:從OpenSSHsshd后門談起

對于入侵行為,sshd作為登錄入口,顯然很容易被用來當做靶標。如果sshd程序及其配置文件被替換,一方面可以給入侵者留下權限維持的穩定后門,另一方面作為常駐系統的daemon守護進程,sshd中的代碼也擁有反復后臺執行的機會。因此,圍繞篡改sshd的各種后門層出不窮。早期思路,如ssh server wrApper,將sshd功能封裝后以腳本替換原始sshd二進制程序,對此有多種方案可以很容易檢測。

2018年底,安全公司ESET發布白皮書《The dark side of the ForSSHe》,對其三年期間跟蹤的OpenSSH后門進行披露。從Ebury后門開始演進,白皮書共披露了21個后門sshd家族。這些后門在OpenSSH源碼基礎上,將后門代碼以補丁形式植入并編譯,從而了無痕跡地得到植入特權登錄的硬編碼賬號、能夠竊取合法登錄賬密的sshd版本用于替換。近幾年,這種方案也有一定范圍的流傳,如采用公開的后門補丁代碼模板,可以很方便的進行后門定制。

在云上,通過對全量/usr/sbin/sshd程序文件進行全量的比對分析發現,這一種簡單的后門思路衍生出了大量的變形和花式,且在入侵當中發揮了精心設計的作用。

sshd后門脆弱點地圖

sshd后門的最基本功能有兩項,即針對登錄請求的用戶校驗過程,植入硬編碼的賬戶密碼用于繞過校驗實現特權免密登錄,以及將合法登錄請求的賬密進行記錄或直接回傳。因此對sshd程序樣本的分析,首要關鍵點是定位用戶校驗相關函數,檢查是否存在可疑新增代碼或過程調用。

在OpenSSH中,支持如下的用戶校驗機制:

userauth_jpake J-PAKE授權協議userauth_hostbased 基于主機互信userauth_kbdint 鍵盤交互式userauth_pubkey 公鑰機制userauth_passwd 密碼userauth_none 無校驗userauth_gssapi GSSAPI

而每種校驗機制的實現,又涉及較復雜的過程調用鏈路和支撐的數據構造。僅以密碼校驗為例,下列函數處在校驗鏈路及分支中,因此都可能在代碼層面運行時拿到明文的賬號密碼,造成數據篡改和外泄:

userauth_passwdmm_auth_passwordauth_passwordsys_auth_passwdsshpam_auth_passwdauth_krb5_password

雖然已有公開信息的原始sshd后門僅針對密碼校驗的auth_passwd函數,但在對活躍樣本梳理后發現,在野惡意版本的惡意代碼植入位置選擇,已經涉及到了以上多種校驗方法的幾乎所有關聯函數。以下僅針對密碼校驗相關后門的花式實現做典型實例說明。

典型sshd后門實現示例

后門連環:userauth_passwd、auth_password、sys_auth_passwd植入點案例

這是三個具有調用關系的函數。userauth_password為外層接口,用于判斷當前請求是否為密碼更改,因此會提取用戶請求中的密碼明文,為特權登錄密碼植入留下機會。該函數的原始代碼與后門偽代碼如下:

從病毒到“基礎軟件污染”,Linux 真的安全嗎?

而下一級會調用到auth_password函數,這里會無差別提取請求中的明文密碼,并由配置判斷分派,是否由系統KRB5(Kerberos)、PAM(Pluggable Authentication Module)還是原始賬密方式執行校驗。這里的后門實現一般同時包含了特權密碼植入和合法賬密竊取落盤:

從病毒到“基礎軟件污染”,Linux 真的安全嗎?

而再下一級到sys_auth_passwd中,在正常的密碼加鹽哈希校驗之前,同樣也有后門實現直接進行明文密碼比對,如下:

從病毒到“基礎軟件污染”,Linux 真的安全嗎?

對抗分析:多種后門的免殺實現

針對上述后門實現,人工判斷做后門判斷以及特征提取匹配也是相對簡單的。在避免使用加殼等全局代碼混淆方式(這樣一來更容易通過文件可疑點圈定樣本)的前提下,現已發現多種樸素的免殺實現。

首先是靜態字符串的混淆,通過逐字節賦值避免引入字符串常量數據,規避特征串匹配:

從病毒到“基礎軟件污染”,Linux 真的安全嗎?

其次,針對人工分析中,需要根據函數代碼邏輯與交叉引用指紋定位敏感函數的情況,對簡單的auth_password做大范圍代碼改動和插入使其“面目全非”,規避人工審計:

從病毒到“基礎軟件污染”,Linux 真的安全嗎?

再次,根據ESET等外部披露的后門均將竊取的合法賬號密碼以固定格式化字符串記錄到本地的特征,轉為采用在代碼中直接命令外傳賬密的方法,規避基于格式化字符串作為特征的靜態掃描檢測:

從病毒到“基礎軟件污染”,Linux 真的安全嗎?

稍微復雜一點的實現

Linux上的惡意程序廣泛采用rootkit對惡意代碼和行為進行隱藏;而sshd雖然采用無獨立程序文件、無新增網絡行為方式,但為了規避檢測審計和后續入侵行為,下面的后門實例采用完全不同的實現:將竊取賬密的功能有獨立程序實現并內嵌在sshd母體中釋放,同時為了隱藏該模塊,額外釋放安裝一個內核態通用rootkit。同時為了保證這些負載釋放過程隱蔽可執行,將植入過程實現在了server_accept_loop消息循環中:

從病毒到“基礎軟件污染”,Linux 真的安全嗎?

當然,以上僅分析了sshd常規的后門花式實現,但植入少量代碼可以實現的后門行為空間本身非常大。現已發現同樣有零散案例,后門不僅限于竊取系統賬密憑證數據,如下例子實現了對其它應用敏感信息的檢索外泄:

從病毒到“基礎軟件污染”,Linux 真的安全嗎?

sshd后門攻擊特征和發展趨勢

2020年阿里云云安全中心開展對Linux基礎軟件的專項治理,其中以sshd后門為切入點,對主流后門做了分析和檢測支持。截至2020.07.10,上半年已檢測的數據如下:

從病毒到“基礎軟件污染”,Linux 真的安全嗎?

從數據中,可以解讀到如下信息:

  • 活躍的攻擊樣本變化迅速,而傳統安全軟件檢測滯后。因為根據開源項目和開源攻擊負載進行開發,可供選擇的定制靈活度極大,所以依賴于傳統的樣本分析和特征匹配方案,要做到即時檢測響應,難度很大。ESET在2018年底發布白皮書披露的21個OpenSSH后門家族特征,在2020年內已經不再有匹配的新增樣本;而根據植入后門的惡意負載的信息收集方式/路徑/特征串、植入特權賬密進行聚類,半年間發現56個高度疑似有組織的新增植入源。在此情況下,完全結合云主機的安全解決方案,因為能夠實時掌握新增樣本的特征和趨勢,所以在準實時檢測方面具有先天優勢。

  • 以sshd后門做持久化攻擊具有極高定向性,且真實影響范圍遠大于直接影響。從樣本維度看,雖然檢出樣本中,存在感染100個以上ECS實例這樣的“通用”樣本,但絕大多數樣本僅定向投放,至多污染5個實例;這種樣本使用上的“不經濟”做法,能夠有效避免引起注意而被殺,同時分散審計、檢測者的精力,主要也是得益于能夠快速、批量生成大量樣本的特性。而從用戶維度看,絕大多數的用戶,僅有1個實例被植入后門,受影響用戶的機器后門污染率僅0.59%;這并不說明影響范圍受限,恰恰相反,投放上疑似有意識的克制,在行動中規避了受害用戶自己的察覺,從結果看,因為同個用戶的批量ECS實例有較高可能共用賬戶密碼,所以在僅有1個實例存在竊密后門情況下,其余實例也就處在無痕跡入侵的威脅中,這個威脅的影響面比直接告警后門的機器數,預估為170倍以上;同時,也有發現部分客戶的登錄跳板機sshd出現后門替換痕跡,這更放大了實際威脅程度。

  • sshd后門的出現與已知模式的入侵行為有很高相關性。阿里云云安全中心具備對業界已知的各類入侵行為的檢測、防御能力。從后門檢測和入侵的關聯來看,18.2%實例的后門植入有前置已知入侵歷史,此時后門的作用是權限維持;26.2%實例隨后門植入有后置入侵動作,此時后門則作為攻擊入口的搶灘;大量實例在發現后門sshd樣本之前,已經存在歷史殘留的rootkit用于隱藏入侵痕跡,其中存在多種針對性隱藏sshd后門網絡行為和文件的rootkit。可見,sshd后門的使用和作用并不單一。而從影響看,大量后門的告警出現在規模較高的大客戶范圍內,大客戶在受害用戶中占比很高,且存在目標行業選擇性,因此不能簡單將sshd后門視作一般意義上的病毒,而應聯系到其上下游,關聯各類型異常做攻擊事件定性分析。

從病毒到“基礎軟件污染”,Linux 真的安全嗎?

Linux基礎軟件威脅疑云:從已知到“未知”

上述以OpenSSH為例,揭示了針對Linux開源基礎軟件,一個公開的惡意代碼植入思路可能演化出的多樣形式。由此切入,我們再來探討Linux開源程序面臨的威脅全景。

已知:基礎軟件污染事件

OpenSSH被選擇作為后門載體,一方面由于其本身是登錄入口程序,具有功能敏感性;另一方面由于作為Linux系統的daemon程序之一,具有常駐后臺的特性。實際上,Linux的基礎軟件,包括操作系統基本功能的基礎程序,以及Linux服務器主機常用的服務程序,都由于以上兩個特性之一,存在已知或未曾披露過的污染。

Linux操作系統基礎程序:病毒持久化溫床

Linux由于系統設計理念,存在大量系統原子功能設計為基礎程序(如ls、ps、grep等),大量與系統的交互功能由這些基礎程序的調用串接完成,因此這些基礎軟件總是不可避免地得以高頻調用。另一些系統程序,類似sshd,是默認后臺執行的daemon看守程序,涉及底層系統管理、監控、服務提供等功能。因此這些程序天然的成為惡意代碼持久化運行的目標載體。

在DDG僵尸網絡中,多種入侵和感染方式結合用于確保挖礦任務的成功下發、維持和隱藏。在最新的樣本分析中,阿里云安全運營中心發現在過往的入侵行為中,存在將多例系統基礎程序進行替換的歷史。被替換的基礎程序涉及grep,awk,sendmail,chattr,pkill,lsattr,sleep,wget等。為保證惡意程序本身簡潔且高度兼容,這些用于替換的程序沒有選擇在獨立的源碼基礎上進行修改(即,替換版本的pkill并非原版的pgrep/pkill源碼編譯),而是統一采用busybox源碼插入后門代碼,編譯后的二進制程序替換到目標系統路徑后,由main調用到DDG的木馬代碼,如下圖。與此類似,近期也新定位到一類新增的系統程序替換污染,將若干系統程序替換為由glibc源碼中加入了惡意main代碼之后編譯的二進制程序。

從病毒到“基礎軟件污染”,Linux 真的安全嗎?

另一部分具有“入口”性質的Linux系統基礎程序,也存在廣泛的感染風險威脅。現已觀察到,agetty、dhclient、bash、sftp-server、sudo、login、irqbalance、gssproxy、anacron等代碼版本長期穩定的系統程序,存在頻繁的更新、挪移操作;而對于Linux系統服務的daemon程序,也是入侵中的篡改、后門植入的敏感領域;在近兩年,阿里云安全運營中心已經發現有包括如下系統daemon存在可疑文件變動:dbus-daemon,systemd-logind,systemd-journald,auditd,ntpd,rsyslogd,chronyd,lvmetad,atd,rpc.statd,packagekitd,xinetd,vsftpd,等等。針對以上可疑的文件挪移、篡改,阿里云云安全中心已經具有監測告警的模型,預警用戶進行審計;對于樣本的惡意代碼分析檢測,也已經具有大量沉淀,且在逐步覆蓋對可疑事件中的樣本的判別能力。

后臺服務類基礎應用軟件:業務/數據驅動型威脅新目標

除了系統基礎程序外,一些第三方開源基礎應用軟件,更是存在非常多種供應鏈來源、頻繁的版本更迭,在一般用戶業務中起主要業務應用角色的程序包,直接處理業務邏輯、用戶數據,是關鍵敏感程序。這些應用的安全性更直接關乎業務而非主機的安全性。

Linux云主機搭載的最主流應用為Apache httpd和Nginx。如2013年曾經由ESET和Sucuri披露的Linux/Cdorked.A反連后門,即是插入了惡意代碼編譯的httpd daemon程序,其后門實現與原始代碼功能邏輯結合,在http請求頭的復雜處理分支中埋下新增的控制命令處理,用于條件觸發植入的反彈shell模塊等后門功能,并增加請求重定向以實現隱藏。這個后門因為不通過此前廣泛傳播的配置文件修改、新增后門擴展模塊的方式實現,且沒有其它文件落盤、消除日志,所以一旦完成了植入,或者通過安裝過程污染,則僅能通過對httpd程序文件的特征檢測才能發現。這類家族同時還覆蓋了Nginx、Lighttpd,可見在服務應用軟件二進制層面的后門隱藏,是早已開始的一個對抗戰場。

“未知”:從數據窺見威脅

由于先天的開源生態,相較于Windows軟件大多以二進制形式發布,Linux有大量程序為源碼形式為用戶自行拉取、定制、編譯使用,或從其它渠道下載預編譯二進制版本。由此引入了大量的版本碎片化現象,主要體現在三方面:

  • 由編譯過程引入的特異性差異。不同的編譯環境與配置,不止會在編譯后二進制中留下指紋,也包括了build-id這樣的先天差異;更重要的是跨編譯器和版本情況下,代碼生成策略不同帶來的一般差異。

  • 由代碼定制引入的奇異版本。出于業務和功能需求,在開源代碼上引入增量代碼,會產生一個“小眾”版本。對于獨立審計的第三方而言,判斷出增量代碼是首要難點,而判斷增量代碼是否“善良”則是更大挑戰。

  • 由多樣的軟件供應鏈路引入的碎片化。Linux應用往往具有依賴繁復的特性,為此對一些通用場景,存在大量第三方提供預編譯的軟件打包,如僅僅pure-ftpd程序,就被包含在lanmp、phpstudy、EZHTTP、wdlinux等多種web服務器應用打包方案中提供,從而引入額外的碎片化,其中包括下載途徑等部分供應鏈也并不可信,甚至存在歷史問題。

而即便在考慮了以上所有白色、灰色的版本碎片化之外,通過數據分析,阿里云安全運營中心也可觀察到了部分程序在全量主機上,出現了高度可疑的嚴重碎片化現狀和趨勢。其中有代表性數據如下:

從病毒到“基礎軟件污染”,Linux 真的安全嗎?

在這份數據中,抽樣采集了Linux主要程序的碎片化分布。上圖選取了碎片化較多和較正常的部分daemon類程序數據;作為對照,如auditd、atd等代碼簡單且近幾年無代碼變更的系統daemon程序,日活md5版本數約在100上下,而其余版本數量居于前列的daemon則表現出偏離正常版本數的趨勢。而下圖則統計了各類常見應用的碎片化,除了curl、rpm、chmod等已知病毒做污染的常見目標程序外,Nginx、httpd的碎片化趨勢顯然超出了正常區間;部分基礎軟件月均新增版本超過5000,構成了碎片化潛在威脅中的重點關注目標。

根據前文披露的sshd后門檢測階段結果可知,常見程序的低安裝量的版本往往直接預示著高度可疑,而從整體來看,這種低安裝量、存在周期性迭代替換的“奇異”版本的大量存在和增長,即是當前面臨的基礎軟件威脅表征。同時,版本碎片化增長數量又呈現出與攻擊事件時間熱度相關的趨勢,也佐證了基礎軟件污染已成為在野入侵事件組成成分。

從病毒到“基礎軟件污染”,Linux 真的安全嗎?

對抗方案:從單機審計到數據判別

樣本分析審計的難點

針對已知類型、攻擊思路和可疑代碼目標位置的惡意程序,如果需要在單機上進行審計,排查是否中招,將面臨以下困難:

  • 二進制無符號,相關函數沒有特征可定位。例如OpenSSH的auth相關函數,并沒有特征常量字符串定位,同時又由于不同配置下的條件編譯,導致二進制代碼也沒有統一特征或調用關系,所以很難在反編譯函數中定位到目標。

  • 多數開源項目固有版本多、差異大,包括大小版本、發行版back port版本,需要跨差異進行比對、做函數差異分析需要完備的跨版本特征儲備。如rhel版本相比上游原始OpenSSH release的同版本號版本即有一定差異。

  • 后門的實現可能并不會引入具有特征的代碼,甚至可能只是代碼層面的微小變動。此時,就需要對載體代碼原本的功能邏輯和潛在脆弱點具備了解。但同時,對目標有選擇地審計也會造成盲區,因此全量代碼比對存在必要。

  • 持久化代碼一般為獨立函數、隱藏調用鏈,而比對發現非特定版本的二進制增量代碼,在沒有基于語義解析的自動化工具輔助下,需要大量人工分析投入。

  • 成熟的攻擊樣本基本配備完備的隱藏方案。例如,后門程序往往篡改了rpm配置文件,使得rpm -Va做rpm包校驗無效;或消除了各類日志以避免通過行為異常發現。

云上大數據判別

雖然個人用戶很難判定自己主機的文件是否已經被替換為惡意版本,但是攻擊事件往往不是孤立稀疏的,因此作為阿里云安全運營中心,就具備站在更高維度監控異動的可能。

阿里云的云安全中心目前具有對云上新增二進制程序樣本的自動分析能力,針對集中或規律性出現、存在大量碎片化的Linux基礎軟件,從數據層面做趨勢監控,并基于代碼語義層面的相似度聚類,快速定位并輔助專家分析差異代碼,圈定潛在惡意版本。在3月以來,云安全中心的云查殺模塊,上線了“被污染的基礎軟件”這一個新的告警類別,將上述所有Linux基礎軟件的污染、后門篡改統一告警,引導用戶進行復核和修復。對于大數據監控與自動化分析的方案,將在后續文章進行單獨介紹。

用戶防護建議

雖然基礎軟件篡改類型的惡意樣本與入侵往往較為嚴密,在攻擊成本和個人用戶發現難度之間存在杠桿,但一般用戶仍然可以從以下方面嘗試被動發現和主動防護:

  • 應用文件篡改和奇異樣本分析。可以從主要系統基礎程序的時間戳、rpm校驗信息等方面入手,排查是否有較為簡單的文件替換;如果有多個同配置主機實例,可以做文件比對,發現差異。對于阿里云云安全中心用戶,可以重點關注“篡改系統文件”和“被污染的基礎軟件”兩種類型的告警,分別從行為和樣本維度對上述分析實現自動化呈現。

  • 積極處理各類異常告警并修復漏洞。雖然基礎軟件污染難以做事后發現,但其自身并不構成完整攻擊,總是和其它入侵事件配合。因此用戶需要對于各類告警做通盤考慮,修復告警的漏洞,確保告警的各類病毒、webshell等的清理結果,篩查分析各種可疑事件告警。

  • 保證使用第三方軟件來源可信。軟件供應鏈污染是新興但并無充分曝光信息的低成本攻擊方式,攻擊者可能通過各種不可信的渠道從上游污染用戶代碼,潛在包括惡意的預編譯軟件包下載源、小眾無透明可驗證信息的rpm源、個人或非正式渠道發布的系統裝機鏡像或Docker鏡像,等等。以上需要用戶自行進行安全性保證。

分享到:
標簽:Linux
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定