97成人免费视频,97视频免费公开成人福利,免费视频99,99婷婷,国产伊人久久,亚洲视频欧美,国产精品福利久久

 首頁 > 新聞 > 專家觀點(diǎn) >

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

--我是如何編寫惡意軟件的

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

分享到: 收藏

專題

定日县| 稻城县| 苍山县| 中牟县| 上虞市| 南投市| 平顺县| 九龙城区| 福泉市| 雷波县| 团风县| 辽宁省| 兴文县| 七台河市| 温州市| 衡水市| 英吉沙县| 平武县| 永福县| 游戏| 淳化县| 龙川县| 修水县| 茶陵县| 福安市| 虎林市| 德令哈市| 上饶县| 怀仁县| 达孜县| 遂宁市| 龙陵县| 沁源县| 闽清县| 称多县| 泰和县| 民权县| 西林县| 炎陵县| 东山县| 南通市|