• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      webshell查殺逃逸技術(shù)研究

      2017-09-20 09:54:29王亞麗
      關(guān)鍵詞:源碼字符串靜態(tài)

      ◆王亞麗

      (62101部隊(duì) 湖北 430010)

      webshell查殺逃逸技術(shù)研究

      ◆王亞麗

      (62101部隊(duì) 湖北 430010)

      對(duì)于webshell查殺來(lái)說(shuō),查殺的難點(diǎn)是腳本語(yǔ)言靈活多樣,同樣的數(shù)據(jù)可以通過(guò)多種方式來(lái)呈現(xiàn),使得webshell變異方式靈活多樣,對(duì)webshell查殺尤其是靜態(tài)查殺提出了一定的挑戰(zhàn)。本文以收集的PHP webshell為例進(jìn)行分析,總結(jié)樣本中使用的逃逸技術(shù),得到的結(jié)果為webshell查殺引擎的設(shè)計(jì)提供了借鑒。

      webshell查殺;webshell變異;逃逸技術(shù)

      0 引言

      攻擊者通過(guò)應(yīng)用漏洞或者系統(tǒng)漏洞植入webshell文件后,可以進(jìn)行信息竊取、商業(yè)勒索,組建僵尸網(wǎng)絡(luò)等[1],被植入webshell能否被及時(shí)發(fā)現(xiàn),在很大程度上決定了危害的程度。

      目前webshell檢測(cè)方式主要分為源碼靜態(tài)檢測(cè)、動(dòng)態(tài)檢測(cè)、基于日志的檢測(cè)。源碼靜態(tài)檢測(cè)由于對(duì)服務(wù)器性能消耗低,檢測(cè)速度快,因而使用更為廣泛。針對(duì)目前的檢測(cè)方式,webshell普遍存在變異以期逃避檢測(cè)。由于地下交流等,使得一旦攻擊者發(fā)現(xiàn)了一種逃逸方式,這種逃逸方式很快就會(huì)在攻擊者間擴(kuò)算,使得危害性迅速增加。因此分析與總結(jié)已有的webshell逃逸方式,提升檢測(cè)引擎對(duì)新變異webshell的檢測(cè)能力具有重要意義。

      1 webshell檢測(cè)技術(shù)

      目前webshell檢測(cè)既有webshell運(yùn)行前的靜態(tài)檢測(cè),運(yùn)行時(shí)的動(dòng)態(tài)檢測(cè)[2],也有運(yùn)行后的基于日志的檢測(cè)技術(shù)[2]。

      1.1 webshell靜態(tài)檢測(cè)

      webshell靜態(tài)檢測(cè)指利用源碼運(yùn)行前所能得到的信息,如文件的創(chuàng)建事件、修改時(shí)間、文件的權(quán)限、源碼本身等進(jìn)行檢測(cè)的技術(shù)。

      目前webshell靜態(tài)檢測(cè)技術(shù)可以細(xì)分為:①特征值檢測(cè);②模式匹配檢測(cè);③webshell源碼特征檢測(cè);④webshell非源碼特征檢測(cè)。

      1.2 webshell動(dòng)態(tài)檢測(cè)技術(shù)

      webshell動(dòng)態(tài)檢測(cè)技術(shù)主要分為:基于流量的webshell檢測(cè)、基于文件執(zhí)行動(dòng)態(tài)監(jiān)控的webshell檢測(cè)。

      1.2.1 基于流量的webshell檢測(cè)

      通常情況下webshell文件主要通過(guò)文件上傳漏洞上傳到Web服務(wù)器,通過(guò)遠(yuǎn)程文件包含,或者其他系統(tǒng)漏洞動(dòng)態(tài)生成。不論最終的webshell文件是在Web服務(wù)器上,利用遠(yuǎn)程文件包含漏洞放在其他服務(wù)器上,webshell文件的文件名后綴是否是相應(yīng)的腳本文件名后綴(服務(wù)器存在解析漏洞時(shí),文件名后綴可以不是腳本文件名后綴),最終webshell在服務(wù)器上執(zhí)行都會(huì)產(chǎn)生相應(yīng)的流量。通過(guò)對(duì)流量進(jìn)行相應(yīng)的分析即可進(jìn)行相應(yīng)的檢測(cè)。

      1.2.2 基于文件執(zhí)行的webshell動(dòng)態(tài)檢測(cè)

      webshell文件動(dòng)態(tài)執(zhí)行監(jiān)控:主要是監(jiān)控腳本執(zhí)行行為,判斷是否執(zhí)行了相應(yīng)的危險(xiǎn)操作來(lái)進(jìn)行判斷,進(jìn)一步判斷是否為webshell。腳本所在環(huán)境既可以是真實(shí)環(huán)境,也可以是蜜罐環(huán)境。根據(jù)動(dòng)態(tài)的執(zhí)行行為,結(jié)合webshell的訪(fǎng)問(wèn)特征(IP、User-Agent、cookie)、訪(fǎng)問(wèn)路徑、訪(fǎng)問(wèn)的時(shí)間序列與操作,可以有效識(shí)別隱藏的惡意行為。

      1.3 webshell日志檢測(cè)

      對(duì)日志進(jìn)行統(tǒng)計(jì)分析,能夠得到訪(fǎng)問(wèn)頻率、功能頁(yè)面或者特定功能被請(qǐng)求的次數(shù),能提取出訪(fǎng)問(wèn)請(qǐng)求中相應(yīng)的字段。利用相應(yīng)的檢測(cè)模型(如信息熵等),可以判斷出用戶(hù)發(fā)送相應(yīng)請(qǐng)求中請(qǐng)求字段是否異常、請(qǐng)求返回的信息是否是webshell響應(yīng)的特征、請(qǐng)求的行為是否異常。

      2 webshell逃逸技術(shù)

      由于大部分Web 服務(wù)器都會(huì)部署一定的webshell查殺軟件,因此目前很多webshell都會(huì)進(jìn)行一定的變異以躲過(guò)查殺。變異主要通過(guò)調(diào)用編碼解碼函數(shù)、加密解密函數(shù)、字符串操作函數(shù)、使用隱藏位置傳遞參數(shù)以及對(duì)文件進(jìn)行混淆。目前webshell逃逸技術(shù)主要可分為兩種:隱蔽位置傳遞荷載和構(gòu)造法繞過(guò)檢測(cè)。

      2.1 隱蔽位置傳遞荷載

      通常大部分的HTTP請(qǐng)求都通過(guò)請(qǐng)求中的GET、POST、Cookie傳遞數(shù)據(jù),因此幾乎所有的WAF與webshell查殺軟件都會(huì)對(duì)這些常見(jiàn)位置中的數(shù)據(jù)進(jìn)行分析。當(dāng)查殺軟件對(duì)其他字段的內(nèi)容沒(méi)有進(jìn)行掃描時(shí),攻擊者即可利用這些字段傳遞荷載。如利用User-Agent 字段實(shí)現(xiàn)荷載傳遞:

      其他的字段還有“Accept-Language”、“Accept-Encoding”、“Referer”等字段。此外,還可以將webshell相應(yīng)的數(shù)據(jù)放在其他類(lèi)型的文件的描述信息中。如圖片的exif信息,包含以下字段Manufacturer、Model、software、Data and time、Flash信息等等。這些附加信息對(duì)圖片的顯示沒(méi)有影響,但卻可以作為載體隱藏一定的信息。如下代碼將特定數(shù)據(jù)隱藏于圖片的exif信息中。

      2.2 構(gòu)造法繞過(guò)檢測(cè)

      通常如果直接將需要執(zhí)行的命令傳入system、eval等函數(shù)很容易被webshell檢測(cè)軟件查殺。一般的檢測(cè)軟件會(huì)過(guò)濾 system、passthru這樣的字符串,這時(shí)可以用構(gòu)造法繞過(guò)關(guān)鍵字檢測(cè)。構(gòu)造法的本質(zhì)是PHP中每一個(gè)字符都對(duì)應(yīng)一個(gè)二進(jìn)制值,對(duì)每個(gè)字符可以使用數(shù)值計(jì)算得到,同時(shí)對(duì)函數(shù)名可以使用字符串拼接動(dòng)態(tài)生成函數(shù)名,從而避免出現(xiàn)敏感關(guān)鍵字。如“$__=("#"^"|");$__=("."^"~");$__=("/"^"`");$__=("|"^"/");$__=("{"^"/ ");”這四條語(yǔ)句分別可生成字符“_”、“P”、“O”、“S”、“T” , 因此“("#"^"|").("."^"~").("/"^"`").("|"^"/").("{"^"/")”可得到字符串“_POST”。這一類(lèi)繞過(guò)措施,函數(shù)名動(dòng)態(tài)構(gòu)造得到動(dòng)態(tài)調(diào)用是其最明顯的特征。由于動(dòng)態(tài)函數(shù)調(diào)用在正常腳本文件中也存在,單純的字符串匹配并不能確定執(zhí)行的函數(shù),因此動(dòng)態(tài)函數(shù)調(diào)用只能作為Webshell的一個(gè)特征。

      3 webshell檢測(cè)討論

      webshell變異方式多種多樣,但幾乎絕大多數(shù)都可以歸為以上幾類(lèi),變異形式通常為多種方式的靈活使用。不同的逃逸技術(shù)有不同的使用場(chǎng)景。隱蔽位置傳遞荷載利用檢測(cè)引擎中未考慮的位置傳遞荷載,這種在檢測(cè)引擎中使用污點(diǎn)分析技術(shù)可以相對(duì)容易地檢測(cè)出來(lái)。

      對(duì)于動(dòng)態(tài)執(zhí)行監(jiān)控,通常也需要結(jié)合污點(diǎn)分析或者靜態(tài)分析確定出代碼可疑位置,結(jié)合實(shí)際的行為確定是否為webshell。動(dòng)態(tài)執(zhí)行監(jiān)控,webshell本身也可以進(jìn)行一定的檢測(cè),使得存在特定的動(dòng)態(tài)監(jiān)控時(shí)不表現(xiàn)惡意行為,從而躲避檢測(cè)。

      4 結(jié)語(yǔ)

      webshell檢測(cè)與逃逸本身就是相互博弈的過(guò)程。除去隱藏位置傳遞荷載法,其余的逃逸方法都會(huì)使代碼的數(shù)據(jù)流更加復(fù)雜,污點(diǎn)分析時(shí)的污點(diǎn)傳播路徑更加復(fù)雜??梢灶A(yù)見(jiàn),不久的將來(lái)webshell將會(huì)更加復(fù)雜,使得污點(diǎn)分析的難度更大。正常的程序中,數(shù)據(jù)的變換通常都具有一定的實(shí)際意義,不會(huì)單純?yōu)榱俗儞Q而變換(如多個(gè)字符串的直接拼接在正常程序中可能直接以字符串常量的形式存在)。Webshell的各種逃逸技術(shù)越復(fù)雜,數(shù)據(jù)流就越復(fù)雜,與正常的程序代碼在數(shù)據(jù)流復(fù)雜度與對(duì)數(shù)據(jù)的操作行為上會(huì)有比較大的差異,數(shù)據(jù)流復(fù)雜度與對(duì)數(shù)據(jù)的操作(主要是數(shù)據(jù)變換操作)序列可能會(huì)是未來(lái)檢測(cè)webshell考慮的一個(gè)重要方向。

      [1]Web Shells-Threat Awareness and Guidance [EB/OL].2017-01-31.https://www.us-cert.gov/ncas/alerts/TA1 5-314A.

      [2]杜海章,方勇. PHP Webshell實(shí)時(shí)動(dòng)態(tài)檢測(cè)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2014.

      猜你喜歡
      源碼字符串靜態(tài)
      基于網(wǎng)頁(yè)源碼結(jié)構(gòu)理解的自適應(yīng)爬蟲(chóng)代碼生成方法
      基于圖神經(jīng)網(wǎng)絡(luò)的軟件源碼漏洞檢測(cè)方法
      靜態(tài)隨機(jī)存儲(chǔ)器在軌自檢算法
      企業(yè)如何保護(hù)源碼
      基于數(shù)據(jù)結(jié)構(gòu)教輔系統(tǒng)的實(shí)驗(yàn)課程改革
      機(jī)床靜態(tài)及動(dòng)態(tài)分析
      具7μA靜態(tài)電流的2A、70V SEPIC/升壓型DC/DC轉(zhuǎn)換器
      一種新的基于對(duì)稱(chēng)性的字符串相似性處理算法
      50t轉(zhuǎn)爐靜態(tài)控制模型開(kāi)發(fā)及生產(chǎn)實(shí)踐
      上海金屬(2013年6期)2013-12-20 07:57:59
      依據(jù)字符串匹配的中文分詞模型研究
      黔西| 海兴县| 龙州县| 连云港市| 景泰县| 永城市| 吉木乃县| 绥滨县| 泸西县| 枣强县| 呈贡县| 德保县| 客服| 鞍山市| 滦南县| 宁化县| 崇左市| 大厂| 浦县| 吉安县| 来安县| 柳林县| 洪湖市| 新疆| 亳州市| 孟连| 荣成市| 绵阳市| 南丰县| 宜都市| 永康市| 永登县| 雷波县| 平原县| 太和县| 施甸县| 巢湖市| 奉化市| 吉林市| 寿阳县| 中卫市|