欧美,精品,综合,亚洲,好吊妞视频免新费观看,免费观看三级吃奶,一级a片女人自慰免费看

 首頁(yè) > 新聞 > 專(zhuān)家觀點(diǎn) >

瞻博網(wǎng)絡(luò)首席軟件架構(gòu)師:為什么光有殺毒軟件還不夠

--我是如何編寫(xiě)惡意軟件的

2014-09-17 13:09:37   作者:瞻博網(wǎng)絡(luò)首席軟件架構(gòu)師 Kyle Adams   來(lái)源:CTI論壇   評(píng)論:0  點(diǎn)擊:


  瞻博網(wǎng)絡(luò)JunosWebApp Secure首席軟件架構(gòu)師 Kyle Adams

  殺毒軟件(AV)是一個(gè)較大規(guī)模安全防護(hù)策略的重要組成部分,能夠減緩惡意軟件在互聯(lián)網(wǎng)上的傳播速度。這就像一個(gè)農(nóng)場(chǎng)主保護(hù)自己的牲畜一樣。一個(gè)聰明的農(nóng)場(chǎng)主會(huì)在生物威脅出現(xiàn)之前給很多牲畜接種這方面的疫苗。即便是有一只牲畜被感染,它與其他未接種疫苗的牲畜的接觸會(huì)被降低。由此一來(lái),該生物威脅就會(huì)在造成極小損失的情況下自行消除。一個(gè)沒(méi)那么謹(jǐn)慎的農(nóng)場(chǎng)主可能只會(huì)給一小部分的牲畜接種疫苗。由此一來(lái),一旦有一只牲畜被感染,感染就會(huì)在牲畜之間快速蔓延,進(jìn)而造成災(zāi)難性的損失。

  殺毒軟件就像接種一樣,而連通互聯(lián)網(wǎng)的計(jì)算機(jī)和設(shè)備就是牲畜。當(dāng)惡意軟件等新威脅出現(xiàn)后,一個(gè)疫苗或簽名就會(huì)被創(chuàng)建來(lái)識(shí)別這種威脅并注射到所有客戶(hù)端中,進(jìn)而大幅降低一個(gè)未接種疫苗的客戶(hù)端與感染接觸的可能性。

  不過(guò)這一系統(tǒng)意味著在“解藥”研制出之前還是造成了損害,從而使得殺毒軟件在抵御威脅方面顯得必要但不足夠。要想針對(duì)某個(gè)威脅對(duì)一個(gè)目標(biāo)進(jìn)行接種,就必須知道這個(gè)威脅。因此,在研發(fā)出疫苗對(duì)客戶(hù)端進(jìn)行保護(hù)之前至少會(huì)有一小部分的客戶(hù)端被感染。這是一個(gè)很多殺毒軟件供應(yīng)商都不會(huì)突出強(qiáng)調(diào)的事實(shí)。此外,盡管這是一個(gè)常識(shí),客戶(hù)通常也不會(huì)認(rèn)識(shí)到這一常識(shí),既因?yàn)闅⒍拒浖陂L(zhǎng)達(dá)幾十年的時(shí)間里已經(jīng)成為了一個(gè)行業(yè)標(biāo)準(zhǔn),又因?yàn)闅⒍拒浖谠缧┠瓯徽J(rèn)可為解決這一問(wèn)題的良方妙招。

  近期,我對(duì)殺毒軟件以及惡意軟件檢測(cè)策略進(jìn)行了講解演示以幫助突出強(qiáng)調(diào)這一擔(dān)憂(yōu) ,并承認(rèn)每天都會(huì)有未識(shí)別的新威脅進(jìn)入網(wǎng)絡(luò),進(jìn)而無(wú)可避免地造成一些損害。為了對(duì)此進(jìn)行演示,我特意編寫(xiě)了一個(gè)惡意軟件,旨在作為一個(gè)命令與控制(C&C)僵尸程序(bot)進(jìn)行運(yùn)行。它將接收來(lái)自攻擊者的指令并在受感染的機(jī)器上以最高的優(yōu)先級(jí)對(duì)這些指令進(jìn)行執(zhí)行。

  很多的現(xiàn)代攻擊都需要大量的獨(dú)立機(jī)器。比如,一次分布式拒絕服務(wù)(DDoS)攻擊需要互聯(lián)網(wǎng)上成千上萬(wàn)臺(tái)機(jī)器在同一時(shí)間訪(fǎng)問(wèn)同一網(wǎng)站,從而讓服務(wù)器過(guò)載死機(jī)。一個(gè)命令與控制僵尸程序能夠完美地幫助完成這種類(lèi)型的攻擊。攻擊者可能不知道僵尸程序最終的用途是什么,不過(guò)如果僵尸程序被設(shè)計(jì)得足夠靈活和通用,它們就很容易被擴(kuò)展,從而在無(wú)需發(fā)起一個(gè)新的惡意軟件傳播活動(dòng)的前提下發(fā)起新的攻擊。事實(shí)上,攻擊者可以擁有和控制互聯(lián)網(wǎng)上數(shù)萬(wàn)臺(tái)獨(dú)立計(jì)算機(jī)并利用這些計(jì)算機(jī)來(lái)實(shí)施他們想要實(shí)施的任何行動(dòng)。在安全領(lǐng)域之外的其他領(lǐng)域有很多正派的研究人員會(huì)樂(lè)意付出任何代價(jià)以擁有如此強(qiáng)大的資源場(chǎng),特別是在不需要為此付錢(qián)的情況下。

  有了這個(gè)特意編寫(xiě)的惡意軟件,我便開(kāi)始了解現(xiàn)代的殺毒軟件客戶(hù)端在面對(duì)未知威脅時(shí)的有效程度。此時(shí),還沒(méi)有殺毒軟件供應(yīng)商有機(jī)會(huì)見(jiàn)到惡意軟件代碼,因此也就沒(méi)有機(jī)會(huì)為其編寫(xiě)簽名。這就讓眾多的殺毒軟件供應(yīng)商有些為難。要想提供任何形式的保護(hù),就必須采用不依賴(lài)對(duì)某個(gè)特定威脅編寫(xiě)簽名的創(chuàng)新檢測(cè)策略。

  這時(shí)候一種名為“代碼模擬”的技術(shù)就派上用場(chǎng)了,而這一技術(shù)也被眾多的殺毒軟件解決方案所采用以幫助彌補(bǔ)簽名的不足。代碼模擬是一些較為高端的殺毒軟件客戶(hù)端所采用的用來(lái)識(shí)別惡意應(yīng)用程序的創(chuàng)新策略之一,即便是這些惡意應(yīng)用程序此前從未被發(fā)現(xiàn)過(guò)。并不是所有的殺毒軟件客戶(hù)端都使用這一技術(shù)。一些殺毒軟件客戶(hù)端會(huì)使用一些替代技術(shù),有些殺毒軟件客戶(hù)端在使用替代技術(shù)的同時(shí)也會(huì)使用代碼模擬。我選擇了一些擁有最大市場(chǎng)份額的流行殺毒軟件客戶(hù)端對(duì)我特意編寫(xiě)的病毒進(jìn)行了測(cè)試。在理想狀態(tài)下,所有這些客戶(hù)端都應(yīng)該使用了此類(lèi)策略。不過(guò)從實(shí)際情況來(lái)看,我發(fā)現(xiàn)我測(cè)試的八家殺毒軟件供應(yīng)商中只有一家殺毒軟件供應(yīng)商能夠檢測(cè)到我特意編寫(xiě)的這個(gè)惡意軟件。

  事實(shí)上,這并不是一個(gè)特別糟糕的結(jié)果。測(cè)試結(jié)果表明,至少有一家殺毒軟件供應(yīng)商能夠檢測(cè)出一個(gè)所有殺毒軟件供應(yīng)商都未曾見(jiàn)過(guò)的惡意軟件,這至少意味著該惡意軟件相對(duì)來(lái)說(shuō)能夠很快地被檢測(cè)到。一旦惡意軟件被至少一家殺毒軟件供應(yīng)商在至少一臺(tái)客戶(hù)端機(jī)器上檢測(cè)到,該惡意軟件通常會(huì)被分享給所有其他的殺毒軟件供應(yīng)商以便大家能夠發(fā)布簽名對(duì)此進(jìn)行防護(hù)。不過(guò)在惡意軟件碰到來(lái)自那家殺毒軟件供應(yīng)商的那個(gè)殺毒軟件客戶(hù)端之前,在那家殺毒軟件供應(yīng)商跟其他人分享之前,一些附帶損害又會(huì)再一次出現(xiàn)。

  在惡意軟件攻擊者看來(lái),即便是被一家殺毒軟件供應(yīng)商檢測(cè)到,這也意味著他們的惡意軟件將不會(huì)持續(xù)太久,而惡意軟件持續(xù)的時(shí)間越長(zhǎng),他們所獲得的價(jià)值也就越多。因此我繼續(xù)對(duì)惡意軟件作者讓其惡意軟件無(wú)法被所有已知的殺毒軟件客戶(hù)端所檢測(cè)的過(guò)程進(jìn)行了演示。由于這個(gè)特定的病毒只是被一家殺毒軟件供應(yīng)商所檢測(cè)到,要做出的努力也不會(huì)太多。

  代碼模擬的工作原理是在殺毒軟件應(yīng)用程序里創(chuàng)建一個(gè)微型虛擬機(jī),在這個(gè)微型虛擬機(jī)里,可疑的惡意軟件可以安全地被執(zhí)行。模擬器會(huì)記錄這個(gè)可疑的惡意軟件所實(shí)施的一切操作,并使用啟發(fā)式行為模式來(lái)確定這些行動(dòng)是否代表惡意代碼。比如,如果在微型虛擬機(jī)里執(zhí)行一個(gè)文件時(shí),模擬機(jī)注意到它被設(shè)計(jì)為添加一個(gè)指向回收站里的一個(gè)可執(zhí)行文件的‘自啟動(dòng)’注冊(cè)表項(xiàng),它便可以較為準(zhǔn)確地認(rèn)為可疑的文件實(shí)際上就是一個(gè)惡意軟件。這是因?yàn)閻阂廛浖?jīng)常會(huì)添加自啟動(dòng)表項(xiàng)。一個(gè)正規(guī)的自啟動(dòng)表項(xiàng)絕不會(huì)指向回收站里的任何東西,因?yàn)檫@些文件并不能夠保證長(zhǎng)期存在。另一方面,如果在執(zhí)行可疑的惡意軟件之后,所觀察到的行動(dòng)只是一些擁有很多動(dòng)畫(huà)的對(duì)話(huà),殺毒軟件可能會(huì)認(rèn)為這是一個(gè)游戲,不太可能是惡意的。

  檢測(cè)到我特意編寫(xiě)的病毒的這家殺毒軟件供應(yīng)商確實(shí)采用了代碼模擬。當(dāng)它觀察到我特意編寫(xiě)的病毒被放到系統(tǒng)上之后,它自動(dòng)在其代碼模擬環(huán)境中對(duì)其進(jìn)行了執(zhí)行并對(duì)其將要采取的行動(dòng)進(jìn)行了分析。由于這是一個(gè)病毒,它自然而然地需要編寫(xiě)注冊(cè)表項(xiàng)、下載文件、隱藏文件等等,而殺毒軟件則正確地將此行為認(rèn)定為惡意行為。

  不過(guò),惡意軟件作者是很聰明的,他們一直在適應(yīng)新的檢測(cè)策略。在遵循惡意軟件創(chuàng)造過(guò)程的前提下,我接著開(kāi)始琢磨如何讓代碼模擬器認(rèn)為文件不是惡意的。

  這一過(guò)程涉及了對(duì)殺毒軟件客戶(hù)端進(jìn)行的一些瑣碎的逆向工程。我不是說(shuō)要對(duì)二進(jìn)制進(jìn)行拆解,也不是說(shuō)要對(duì)內(nèi)存進(jìn)行查看,而是一個(gè)簡(jiǎn)單的真假實(shí)驗(yàn)和誤差檢測(cè)方法。該方法涉及在惡意軟件中額外添加一些代碼,以試圖檢測(cè)該惡意軟件是否被模擬,并且如果是的話(huà),讓該惡意軟件在做出任何可疑舉動(dòng)之前放棄行動(dòng)。如果對(duì)模擬器的檢測(cè)能夠正常工作的話(huà),殺毒軟件客戶(hù)端就不會(huì)將文件報(bào)告為惡意文件。如果檢測(cè)失敗的話(huà),殺毒軟件客戶(hù)端就會(huì)將文件報(bào)告為惡意文件。

  整個(gè)過(guò)程花了大概一個(gè)小時(shí)左右的時(shí)間,直到第一個(gè)成功的躲避策略被識(shí)別出來(lái)。在此過(guò)程中我了解到,這家殺毒軟件供應(yīng)商的代碼模擬器在認(rèn)定程序可以安全運(yùn)行之前只愿意模擬有限數(shù)量的指令和時(shí)間。為了利用這一限制,我對(duì)測(cè)試惡意軟件的代碼進(jìn)行了修改,從而讓其在運(yùn)行惡意代碼之前運(yùn)行一個(gè)由八萬(wàn)個(gè)指令組成的循環(huán)。由此一來(lái),這個(gè)殺毒軟件客戶(hù)端就會(huì)耗費(fèi)整個(gè)的時(shí)間限度嘗試通過(guò)病毒頂端的一個(gè)忙碌循環(huán),因而沒(méi)有足夠的時(shí)間到達(dá)真正具有惡意行為的代碼行數(shù)。結(jié)果就是惡意軟件沒(méi)有被檢測(cè)出來(lái)。

  我只利用了一種檢測(cè)方式來(lái)檢測(cè)我特意編寫(xiě)的惡意軟件是否是在一個(gè)模擬器中運(yùn)行,不過(guò)我還知道至少六種繞過(guò)防護(hù)的獨(dú)立方法。這七種技術(shù)使得惡意軟件能夠躲避殺毒軟件供應(yīng)商的檢測(cè)。我不是說(shuō)這些技術(shù)代表了突破研究或零日漏洞。事實(shí)上,這些技術(shù)以及成百上千的技術(shù)在近五年來(lái)惡意軟件作者所使用的論壇中都有很好的記錄。

  我之所以進(jìn)行這次研究,之所以要向大家展示這次研究,就是希望大家能夠關(guān)注可能出現(xiàn)的最初附帶損害。我發(fā)現(xiàn),要想讓任何已有或新出現(xiàn)的惡意軟件變成當(dāng)今市面上所有殺毒軟件客戶(hù)端都無(wú)法檢測(cè)出的惡意軟件是非常簡(jiǎn)單的事情。我希望這能夠增強(qiáng)人們的意識(shí),那就是殺毒軟件不是萬(wàn)能的。盡管殺毒軟件在防止惡意軟件長(zhǎng)期傳播方面有著巨大價(jià)值,但它卻無(wú)法保護(hù)網(wǎng)絡(luò)免受即便是稍微聰明一點(diǎn)的惡意軟件作者的攻擊。

  那么,當(dāng)網(wǎng)絡(luò)管理員發(fā)現(xiàn)他們多年以來(lái)依賴(lài)的工具并不能真正防止攻擊者對(duì)他們的公司造成重大損害時(shí),他們應(yīng)當(dāng)做些什么呢?首先,繼續(xù)使用客戶(hù)端殺毒軟件。盡管殺毒軟件不能檢測(cè)到一個(gè)全新的病毒或一個(gè)精心設(shè)計(jì)的病毒變體,但殺毒軟件是病毒出現(xiàn)幾天后防止病毒大規(guī)模擴(kuò)散的唯一一道防線(xiàn)。要考慮到損害控制,而不是損害預(yù)防。

  實(shí)際上,對(duì)新出現(xiàn)威脅的最佳防御要在與將更多的高級(jí)解決方案疊加在一起。新出現(xiàn)的惡意軟件檢測(cè)方面的新創(chuàng)新能夠在不使用簽名的情況下對(duì)惡意軟件進(jìn)行檢測(cè)。這意味著它們不需要事先知道威脅。與代碼模擬最為相似但又比代碼模擬更加強(qiáng)大、更難以躲避的是沙箱這一理念。沙箱解決方案的設(shè)計(jì)旨在一個(gè)逼真的客戶(hù)端環(huán)境中對(duì)可疑文件進(jìn)行執(zhí)行。由此一來(lái),惡意軟件將無(wú)法將測(cè)試環(huán)境和真實(shí)用戶(hù)目標(biāo)區(qū)分開(kāi)來(lái)。這使得沙箱能夠更加準(zhǔn)確地對(duì)可疑文件進(jìn)行分析,從而觀察它將在終端用戶(hù)的系統(tǒng)上做些什么。此外,文件和URL信譽(yù)跟蹤以及機(jī)器學(xué)習(xí)策略等解決方案將增添更多的效率。

  此外,利用包含快速實(shí)時(shí)情報(bào)共享的產(chǎn)品也很重要,這樣能夠盡可能地縮短惡意軟件發(fā)布和簽名保護(hù)之間的時(shí)間。云安全服務(wù)是關(guān)鍵。如果惡意軟件作者不得不在殺毒軟件供應(yīng)商自己寄存的黑盒檢測(cè)解決方案中對(duì)他們的惡意軟件進(jìn)行測(cè)試,那么他們?cè)谧R(shí)別成功的躲避策略方面要變得困難的多。

  通過(guò)將客戶(hù)端殺毒軟件、網(wǎng)絡(luò)殺毒軟件、沙箱、代碼模擬以及聲譽(yù)服務(wù)組合在一起,管理員能夠構(gòu)建一個(gè)更加強(qiáng)勁的防護(hù)策略。擁有一個(gè)強(qiáng)勁的反惡意軟件解決方案可能真的能夠阻止未來(lái)的定向惡意軟件攻擊。盡管如此,管理員還是要留心網(wǎng)絡(luò)中的惡意軟件檢測(cè)率,以便對(duì)定向攻擊進(jìn)行早期識(shí)別和嚴(yán)密監(jiān)控。如果一個(gè)攻擊者真的是攻擊某家公司,要想防止攻擊者成功實(shí)施攻擊,就不得不進(jìn)行大量人工干預(yù),而關(guān)鍵就在于要知道什么時(shí)候需要進(jìn)行人工干預(yù)。

  一切都還來(lái)得及,不過(guò)這場(chǎng)戰(zhàn)爭(zhēng)會(huì)一直打下去。如果我們希望在未來(lái)不被打敗,那么我們就必須保持勤奮,根據(jù)威脅對(duì)我們的保護(hù)策略進(jìn)行改進(jìn)。而那些跟不上戰(zhàn)爭(zhēng)節(jié)奏的人們將一次又一次地遭受重創(chuàng)。

分享到: 收藏

專(zhuān)題