• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    分享到: 收藏

    專(zhuān)題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 河北省| 彰化县| 万山特区| 阿克苏市| 邢台市| 北辰区| 高要市| 绥宁县| 永济市| 丹江口市| 英吉沙县| 鸡泽县| 竹溪县| 大连市| 麻栗坡县| 收藏| 即墨市| 增城市| 东方市| 延长县| 黄龙县| 得荣县| 丽江市| 子长县| 尼玛县| 崇文区| 江津市| 兰溪市| 偏关县| 拉萨市| 莒南县| 乌兰浩特市| 乡城县| 信丰县| 出国| 襄樊市| 永靖县| 洛阳市| 巨鹿县| 高唐县| 资溪县| http://444 http://444 http://444 http://444 http://444 http://444