国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

淺析shellshock漏洞的原理及危害

2021-03-06 17:32:17李維峰
關(guān)鍵詞:補(bǔ)丁電子郵件攻擊者

◆李維峰

淺析shellshock漏洞的原理及危害

◆李維峰

(中國飛行試驗(yàn)研究院 陜西 710089)

Shellshock是Bash命令行界面shell中的一個(gè)漏洞,已經(jīng)存在30年,并在2014年被發(fā)現(xiàn)為重大威脅。今天,Shellshock仍然對(duì)企業(yè)構(gòu)成威脅。時(shí)至今日,盡管它的威脅性已經(jīng)比發(fā)現(xiàn)之年要低。但我們不得不面對(duì)在一些疏于打補(bǔ)丁的服務(wù)器上仍舊存在著這個(gè)漏洞,并且風(fēng)險(xiǎn)巨大。本文淺析了shellshock漏洞的原理及危害,提出簡單有效的檢測(cè)與防御手段,供業(yè)內(nèi)同行探討研究。

shellshock;漏洞;HTTP;Bash

Shellshock是一個(gè)威脅性較高的漏洞,它能夠給予了攻擊者更高的特權(quán),借此攻擊者甚至可以隨意破壞系統(tǒng)。盡管2014年發(fā)現(xiàn)了ShellShock漏洞:CVE-2014-6271,但目前已知該漏洞仍然存在于世界上大量服務(wù)器上。此漏洞在2018年又進(jìn)行了更新:CVE-2014-7169。

Shellshock普遍存在的原因并令人意外,因?yàn)楣粽呖梢岳迷撀┒催M(jìn)行一種簡單且廉價(jià)的攻擊。雖然自該漏洞發(fā)布以來,就已經(jīng)有可用的修補(bǔ)程序,但是對(duì)于那些沒有及時(shí)更新補(bǔ)丁或進(jìn)行防御的公司而言,依然容易受到攻擊。有傳言稱該漏洞曾經(jīng)造成過美國佐治亞州選舉系統(tǒng)的癱瘓[1]。

Shellshock漏洞可以歸類為任意代碼執(zhí)行(ACE)漏洞的一個(gè)示例。一般而言,ACE漏洞攻擊是在運(yùn)行中的程序上執(zhí)行的,并且需要對(duì)代碼執(zhí)行,內(nèi)存布局和匯編語言的內(nèi)部結(jié)構(gòu)有高度的了解。簡而言之,此類攻擊需要專家。

攻擊者會(huì)利用ACE漏洞來上傳或運(yùn)行程序,從而為他們提供控制目標(biāo)計(jì)算機(jī)的簡單方法。這通常是通過運(yùn)行“shell”來實(shí)現(xiàn)的。Shell是可以在其中輸入和執(zhí)行命令的命令行。

Shellshock漏洞是一個(gè)主要問題,因?yàn)樗藢?duì)專業(yè)知識(shí)的需求,并提供了一種控制另一臺(tái)計(jì)算機(jī)(例如Web服務(wù)器)并使其運(yùn)行代碼的簡單的方式。

1 原理

簡單說來,Shellshock是一個(gè)漏洞,它允許包含漏洞版本Bash的系統(tǒng)被利用來執(zhí)行具有更高特權(quán)的命令。這使攻擊者有可能接管該系統(tǒng)。

Shellshock是Bash Shell(GNU Bash最高版本為4.3)中的一個(gè)安全漏洞,該漏洞導(dǎo)致Bash從環(huán)境變量執(zhí)行意外Bash命令。利用此漏洞的威脅參與者可以在目標(biāo)主機(jī)上遠(yuǎn)程發(fā)出命令。雖然Bash本身并不是面向Internet的,但是許多內(nèi)部和外部服務(wù)(例如Web服務(wù)器)確實(shí)使用環(huán)境變量與服務(wù)器的操作系統(tǒng)進(jìn)行通信。因此,如果未對(duì)輸入數(shù)據(jù)進(jìn)行檢查,則在執(zhí)行之前,攻擊者可能會(huì)啟動(dòng)通過Bash Shell執(zhí)行的HTTP請(qǐng)求命令。

當(dāng)Web服務(wù)器接收到對(duì)頁面的請(qǐng)求時(shí),該請(qǐng)求的三個(gè)部分都可能會(huì)受到Shellshock攻擊:請(qǐng)求URL,與URL一起發(fā)送的標(biāo)頭以及所謂的“參數(shù)”(當(dāng)您在網(wǎng)站上輸入您的姓名和地址,通常會(huì)將其作為參數(shù)發(fā)送給請(qǐng)求)。

例如,以下是檢索example主頁的實(shí)際HTTP請(qǐng)求:

GET / HTTP/1.1

Accept-Encoding:gzip,deflate,sdch

Accept-Language:en-US,en;q=0.8,fr;q=0.6

Cache-Control: no-cache

Pragma:no-cache

User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36(KHTML,like Gecko) Chrome/37.0.2062.124 Safari/537.36

Host: example.com

在此例中,URL是網(wǎng)址,標(biāo)頭為Accept-Encoding,Accept-Language等。這些標(biāo)頭向Web服務(wù)器提供有關(guān)用戶Web瀏覽器功能,首選語言,使用的瀏覽器等信息。

服務(wù)器會(huì)將它們轉(zhuǎn)換為Web服務(wù)器內(nèi)部的變量以便于處理,這樣的情況并不少見。例如:Web服務(wù)器想知道用戶首選的語言是什么,以便于決定如何回應(yīng)用戶。

服務(wù)器在響應(yīng)用戶對(duì)于exmaple主頁的請(qǐng)求時(shí),可以通過逐個(gè)字符復(fù)制請(qǐng)求標(biāo)頭來定義以下變量。

HTTP_ACCEPT_ENCODING=gzip,deflate,sdch

HTTP_ACCEPT_LANGUAGE=en-US,en;q=0.8,fr;q=0.6

HTTP_CACHE_CONTROL=no-cache

HTTP_PRAGMA=no-cache

HTTP_USER_AGENT=Mozilla/5.0(Macintosh; Intel Mac OS X 10_9_4)AppleWebKit/537.36(KHTML,like Gecko) Chrome/37.0.2062.124 Safari/537.36

HTTP_HOST=cloudflare.com

只要這些變量保留在Web服務(wù)器軟件中,并且不傳遞給Web服務(wù)器上運(yùn)行的其他程序,該服務(wù)器就不會(huì)受到攻擊。

當(dāng)將變量傳遞到稱為“ bash”的shell中時(shí),會(huì)發(fā)生Shellshock。 Bash是Linux系統(tǒng)上使用的通用shell。Web服務(wù)器經(jīng)常需要運(yùn)行其他程序來響應(yīng)請(qǐng)求,并且通常將這些變量傳遞到bash或另一個(gè)shell中。

當(dāng)攻擊者修改原始HTTP請(qǐng)求以包含神奇的(){:;};時(shí),就會(huì)發(fā)生Shellshock問題。

假設(shè)攻擊者把HTTP頭部中的User-Agent內(nèi)容改為:(){:;}; /bin/eject,就會(huì)在服務(wù)器端創(chuàng)建如下變量:HTTP_USER_AGENT=(){:;};/bin/eject。

如果該變量被Web服務(wù)器傳遞到bash中,則會(huì)發(fā)生Shellshock問題。這是因?yàn)閎ash對(duì)于處理以(){:;};開頭的變量具有特殊的規(guī)則。bash不會(huì)將變量HTTP_USER_AGENT視為沒有特殊含義的字符序列,而是將其解釋為需要執(zhí)行的命令。

問題在于HTTP_USER_AGENT來自User-Agent標(biāo)頭,攻擊者可以控制此標(biāo)頭,因?yàn)樗峭ㄟ^HTTP請(qǐng)求進(jìn)入Web服務(wù)器的。這就是漏洞形成的關(guān)鍵所在,因?yàn)楣粽呖梢允挂资芄舻姆?wù)器運(yùn)行所需的任何命令。

2 危害

存在Shellshock漏洞的服務(wù)器非常容易受到攻擊,而且由于易受攻擊的計(jì)算機(jī)將運(yùn)行發(fā)送給它的任何命令,因此該漏洞帶來的危害可能會(huì)超出你的想象。一家名為CloudFlare的公司生產(chǎn)WAF,他們的WAF能夠提取和分析實(shí)際使用的Shellshock字符串。他們發(fā)現(xiàn)Shellshock主要用于獲取私人信息、獲取服務(wù)器控制權(quán)甚至是進(jìn)行拒絕服務(wù)器攻擊。

大多數(shù)Shellshock命令是使用HTTP User-Agent和Referer標(biāo)頭注入的,但也有攻擊者使用GET和POST參數(shù)以及其他隨機(jī)HTTP標(biāo)頭。

為了提取私人信息,攻擊者使用了兩種技術(shù)。最簡單的提取攻擊的形式為:() {:;}; /bin/cat /etc/passwd。

它將讀取密碼文件/ etc / passwd,并將其添加到Web服務(wù)器的響應(yīng)中。因此,通過Shellshock漏洞注入此代碼的攻擊者將看到密碼文件作為返回的網(wǎng)頁的一部分顯示在他們的屏幕上。

在一次攻擊中,他們只是通過電子郵件將私人文件發(fā)送給自己。為了通過電子郵件獲取數(shù)據(jù),攻擊者正在使用如下的mail命令:

(){:;}; /bin/bash -c "whoami | mail -s 'example.com l' xxxxxxxxxxxxxxxx@gmail.com

該命令首先運(yùn)行whoami以找出運(yùn)行Web服務(wù)器的用戶的名稱。這特別有用,因?yàn)槿绻鸚eb服務(wù)器以root用戶身份運(yùn)行,則該服務(wù)器將成為特別豐富的目標(biāo)。

然后,它通過電子郵件發(fā)送用戶名以及受攻擊的網(wǎng)站名稱(上面的example.com)。網(wǎng)站名稱出現(xiàn)在電子郵件主題行中。

攻擊者可以在閑暇時(shí)登錄他們的電子郵件,并找出哪些站點(diǎn)容易受到攻擊。可以使用相同的電子郵件技術(shù)來提取數(shù)據(jù),例如密碼文件。

3 檢測(cè)

由于Shellshock公布已有六年,因此在網(wǎng)上可以找到很多針對(duì)該漏洞的掃描程序,其中一些還是免費(fèi)的。

當(dāng)然對(duì)于技術(shù)人員來說,使用簡單的手工命令也能檢測(cè)到該漏洞。在Bash提示符下鍵入一個(gè)簡單的命令:

env X=”(){ :;} ; echo Bash is Infected”/bin/sh -c “echo completed”

env X=”(){ :;} ; echo Bash is Infected” `which bash` -c “echo completed”

env VAR='(){ :;}; echo Bash is Infected‘ bash -c “echo completed”

如果提示返回“Bash is Infected”消息,那么系統(tǒng)就該進(jìn)行更新和修復(fù)了。如果您的輸出未返回“ Bash is Infected”,它將以以下方式響應(yīng):

bash:warning:VAR:ignoring function definition attempt

bash:error importing function definition for `VAR’

Bash Test

鑒于手工檢測(cè)的效率低下,對(duì)于大規(guī)模的服務(wù)器,建議還是使用專業(yè)的漏掃檢測(cè)比較方便。

4 防御

對(duì)于各家網(wǎng)站而言,最重要的防御手段就是及時(shí)更新系統(tǒng)補(bǔ)丁。盡管有些公司認(rèn)為補(bǔ)丁程序管理更多的是IT運(yùn)維部門的責(zé)任,而不是安全部門。但其實(shí)應(yīng)把補(bǔ)丁程序的管理列為安全部門的首要任務(wù),因?yàn)楸绕鹗潞筇幚矶?,這是節(jié)省資源的最有效的防御手段。

如果您的系統(tǒng)今天仍然容易受到此類攻擊,那么您所面對(duì)的問題可能就不止這一項(xiàng)了。Shellshock是一個(gè)非常老的漏洞,幾乎所有系統(tǒng)都有針對(duì)該漏洞的補(bǔ)丁。保護(hù)自己免受此類漏洞影響的最佳方法是,使用為此漏洞發(fā)布的所有修補(bǔ)程序,使系統(tǒng)保持最新。

經(jīng)過全面測(cè)試的補(bǔ)丁程序是最大限度地減少業(yè)務(wù)影響的好方法,例如,運(yùn)行舊操作系統(tǒng)的關(guān)鍵任務(wù)服務(wù)器。如果無法立即修補(bǔ)系統(tǒng),則必須權(quán)衡該漏洞的潛在風(fēng)險(xiǎn)與業(yè)務(wù)影響。

Shellshock只是企業(yè)必須處理的眾多漏洞中的一個(gè)。管理看似無窮無盡的漏洞一直并將永遠(yuǎn)是支撐網(wǎng)絡(luò)安全的關(guān)鍵策略。

5 總結(jié)

Shellshock漏洞雖已公布多年,但在一些由于種種原因而無法更新補(bǔ)丁程序的舊服務(wù)器上仍然存在,并且風(fēng)險(xiǎn)巨大。作者希望通過本文簡單介紹與分析Shellshock漏洞,能夠引起業(yè)內(nèi)同行的重視,降低此類漏洞造成的危害。

[1]Mark Stone.Shellshock In-Depth:Why This Old Vulnerability Won’t Go Away[EB/OL].https://securityintelligence.com/articles/shellshock-vulnerability-in-depth/,2020-8-6.

[2]John Graham.Inside Shellshock:How hackers are using it to exploit systems[EB/OL].https://blog.cloudflare.com/inside-shellshock/,2014-10-1.

猜你喜歡
補(bǔ)丁電子郵件攻擊者
有關(guān)旅行計(jì)劃的電子郵件
基于微分博弈的追逃問題最優(yōu)策略設(shè)計(jì)
健胃補(bǔ)丁
學(xué)與玩(2018年5期)2019-01-21 02:13:06
繡朵花兒當(dāng)補(bǔ)丁
文苑(2018年18期)2018-11-08 11:12:30
補(bǔ)丁奶奶
幼兒畫刊(2018年7期)2018-07-24 08:25:56
正面迎接批判
愛你(2018年16期)2018-06-21 03:28:44
有限次重復(fù)博弈下的網(wǎng)絡(luò)攻擊行為研究
民事訴訟電子郵件送達(dá)制度的司法適用
大病醫(yī)保期待政策“補(bǔ)丁”
小測(cè)試:你對(duì)電子郵件上癮了嗎?
海外英語(2013年9期)2013-12-11 09:03:36
东乌珠穆沁旗| 镇平县| 张北县| 灵石县| 晋州市| 什邡市| 吉安市| 富锦市| 久治县| 定结县| 梁山县| 定州市| 博兴县| 迁安市| 丹东市| 宜阳县| 双牌县| 兴宁市| 册亨县| 加查县| 勐海县| 成都市| 临武县| 谷城县| 宁远县| 武平县| 胶南市| 宁夏| 台南县| 原平市| 保定市| 湖口县| 昌都县| 齐河县| 鲜城| 宁德市| 永德县| 察哈| 白沙| 宁武县| 孝义市|