⑴ 什麼是惡意代碼
不必要代碼(Unwanted Code)是指沒有作用卻會帶來危險的代碼,一個最安全的定義是把所有不必要的代碼都看作是惡意的,不必要代碼比惡意代碼具有更寬泛的含義,包括所有可能與某個組織安全策略相沖突的軟體。
一、惡意代碼的特徵
惡意代碼(Malicious code)或者叫惡意軟體Malware(Malicious Software)具有如下共同特徵:
(1) 惡意的目的
(2) 本身是程序
(3) 通過執行發生作用
有些惡作劇程序或者游戲程序不能看作是惡意代碼。對濾過性病毒的特徵進行討論的文獻很多,盡管它們數量很多,但是機理比較近似,在防病毒程序的防護范圍之內,更值得注意的是非濾過性病毒。
二、非濾過性病毒
非過濾性病毒包括口令破解軟體、嗅探器軟體、鍵盤輸入記錄軟體,遠程特洛伊和諜件等等,組織內部或者外部的攻擊者使用這些軟體來獲取口令、偵察網路通信、記錄私人通信,暗地接收和傳遞遠程主機的非授權命令,而有些私自安裝的P2P軟體實際上等於在企業的防火牆上開了一個口子。 非濾過性病毒有增長的趨勢,對它的防禦不是一個簡單的任務。與非過濾性病毒病毒有關的概念包括:
(1)諜件
諜件(Spyware)與商業產品軟體有關,有些商業軟體產品在安裝到用戶機器上的時候,未經用戶授權就通過Internet連接,讓用戶方軟體與開發商軟體進行通信,這部分通信軟體就叫做諜件。用戶只有安裝了基於主機的防火牆,通過記錄網路活動,才可能發現軟體產品與其開發商在進行定期通訊。諜件作為商用軟體包的一部分,多數是無害的,其目的多在於掃描系統,取得用戶的私有數據。
(2)遠程訪問特洛伊
遠程訪問特洛伊RAT 是安裝在受害者機器上,實現非授權的網路訪問的程序,比如NetBus 和SubSeven 可以偽裝成其他程序,迷惑用戶安裝,比如偽裝成可以執行的電子郵件,或者Web下載文件,或者游戲和賀卡等,也可以通過物理接近的方式直接安裝。
(3)Zombies
惡意代碼不都是從內部進行控制的,在分布式拒絕服務攻擊中,Internet的不少 站點受到其他主機上 zombies程序的攻擊。zombies程序可以利用網路上計算機系統的安全漏洞將自動攻擊腳本安裝到多台主機上,這些主機成為受害者而聽從攻擊者指揮,在某個時刻,匯集到一起去再去攻擊其他的受害者。
(4)破解和嗅探程序和網路漏洞掃描
口令破解、網路嗅探和網路漏洞掃描是公司內部人員偵察同事,取得非法的資源訪問許可權的主要手段,這些攻擊工具不是自動執行, 而是被隱蔽地操縱。
(5)鍵盤記錄程序
某些用戶組織使用PC活動監視軟體監視使用者的操作情況,通過鍵盤記錄,防止雇員不適當的使用資源,或者收集罪犯的證據。這種軟體也可以被攻擊者用來進行信息刺探和網路攻擊。
(6)P2P 系統.
基於Internet的點到點 (peer-to-peer)的應用程序比如 Napster、Gotomypc、AIM 和 Groove,以及遠程訪問工具通道像Gotomypc,這些程序都可以通過HTTP或者其他公共埠穿透防火牆,從而讓雇員建立起自己的VPN,這種方式對於組織或者公司有時候是十分危險的。因為這些程序首先要從內部的PC 遠程連接到外邊的Gotomypc 主機,然後用戶通過這個連接就可以訪問辦公室的PC。這種連接如果被利用,就會給組織或者企業帶來很大的危害。
(7)邏輯炸彈和時間炸彈
邏輯炸彈和時間炸彈是以破壞數據和應用程序為目的的程序。一般是由組織內部有不滿情緒的雇員植入, 邏輯炸彈和時間炸彈對於網路和系統有很大程度的破壞,Omega 工程公司的一個前網路管理員Timothy Lloyd,1996年引發了一個埋藏在原僱主計算機系統中的軟體邏輯炸彈,導致了1千萬美元的損失,而他本人最近也被判處41個月的監禁。
三、惡意代碼的傳播手法
惡意代碼編寫者一般利用三類手段來傳播惡意代碼:軟體漏洞、用戶本身或者兩者的混合。有些惡意代碼是自啟動的蠕蟲和嵌入腳本,本身就是軟體,這類惡意代碼對人的活動沒有要求。一些像特洛伊木馬、電子郵件蠕蟲等惡意代碼,利用受害者的心理操縱他們執行不安全的代碼;還有一些是哄騙用戶關閉保護措施來安裝惡意代碼。
利用商品軟體缺陷的惡意代碼有Code Red 、KaK 和BubbleBoy。它們完全依賴商業軟體產品的缺陷和弱點,比如溢出漏洞和可以在不適當的環境中執行任意代碼。像沒有打補丁的IIS軟體就有輸入緩沖區溢出方面的缺陷。利用Web 服務缺陷的攻擊代碼有Code Red、Nimda,Linux 和Solaris上的蠕蟲也利用了遠程計算機的缺陷。
惡意代碼編寫者的一種典型手法是把惡意代碼郵件偽裝成其他惡意代碼受害者的感染報警郵件,惡意代碼受害者往往是Outlook地址簿中的用戶或者是緩沖區中WEB頁的用戶,這樣做可以最大可能的吸引受害者的注意力。一些惡意代碼的作者還表現了高度的心理操縱能力,LoveLetter 就是一個突出的例子。一般用戶對來自陌生人的郵件附件越來越警惕,而惡意代碼的作者也設計一些誘餌吸引受害者的興趣。附件的使用正在和必將受到網關過濾程序的限制和阻斷,惡意代碼的編寫者也會設法繞過網關過濾程序的檢查。使用的手法可能包括採用模糊的文件類型,將公共的執行文件類型壓縮成zip文件等等。
對聊天室IRC(Internet Relay Chat)和即時消息IM(instant messaging)系統的攻擊案例不斷增加,其手法多為欺騙用戶下載和執行自動的Agent軟體,讓遠程系統用作分布式拒絕服務(DDoS)的攻擊平台,或者使用後門程序和特洛伊木馬程序控制之。
四、惡意代碼傳播的趨勢
惡意代碼的傳播具有下面的趨勢:
(1)種類更模糊
惡意代碼的傳播不單純依賴軟體漏洞或者社會工程中的某一種,而可能是它們的混合。比如蠕蟲產生寄生的文件病毒,特洛伊程序,口令竊取程序,後門程序,進一步模糊了蠕蟲、病毒和特洛伊的區別。
(2)混合傳播模式
「混合病毒威脅」和「收斂(convergent)威脅」的成為新的病毒術語,「紅色代碼」利用的是IIS的漏洞,Nimda實際上是1988年出現的Morris 蠕蟲的派生品種,它們的特點都是利用漏洞,病毒的模式從引導區方式發展為多種類病毒蠕蟲方式,所需要的時間並不是很長。
(3)多平台
多平台攻擊開始出現,有些惡意代碼對不兼容的平台都能夠有作用。來自Windows的蠕蟲可以利用Apache的漏洞,而Linux蠕蟲會派生exe格式的特洛伊。
(4) 使用銷售技術
另外一個趨勢是更多的惡意代碼使用銷售技術,其目的不僅在於利用受害者的郵箱實現最大數量的轉發,更重要的是引起受害者的興趣,讓受害者進一步對惡意文件進行操作,並且使用網路探測、電子郵件腳本嵌入和其它不使用附件的技術來達到自己的目的。
惡意軟體(malware)的製造者可能會將一些有名的攻擊方法與新的漏洞結合起來,製造出下一代的WM/Concept, 下一代的Code Red, 下一代的 Nimda。對於防病毒軟體的製造者,改變自己的方法去對付新的威脅則需要不少的時間。
(5)伺服器和客戶機同樣遭受攻擊
對於惡意代碼來說伺服器和客戶機的區別越來越模糊,客戶計算機和伺服器如果運行同樣的應用程序,也將會同樣受到惡意代碼的攻擊。象IIS服務是一個操作系統預設的服務,因此它的服務程序的缺陷是各個機器都共有的,Code Red的影響也就不限於伺服器,還會影響到眾多的個人計算機。
(6)Windows操作系統遭受的攻擊最多
Windows操作系統更容易遭受惡意代碼的攻擊,它也是病毒攻擊最集中的平台,病毒總是選擇配置不好的網路共享和服務作為進入點。其它溢出問題,包括字元串格式和堆溢出,仍然是濾過性病毒入侵的基礎。病毒和蠕蟲的攻擊點和附帶功能都是由作者來選擇的。另外一類缺陷是允許任意或者不適當的執行代碼, 隨著scriptlet.typelib 和Eyedog漏洞在聊天室的傳播,JS/Kak利用IE/Outlook的漏洞,導致兩個ActiveX控制項在信任級別執行,但是它們仍然在用戶不知道的情況下,執行非法代碼。最近的一些漏洞帖子報告說Windows Media Player可以用來旁路Outlook 2002的安全設置,執行嵌入在HTML 郵件中的JavaScript 和 ActiveX代碼。這種消息肯定會引發黑客的攻擊熱情。利用漏洞旁路一般的過濾方法是惡意代碼採用的典型手法之一。
(7)惡意代碼類型變化
此外,另外一類惡意代碼是利用MIME邊界和uuencode頭的處理薄弱的缺陷,將惡意代碼化裝成安全數據類型,欺騙客戶軟體執行不適當的代碼。
五、惡意代碼相關的幾個問題
(1)病毒防護沒有標準的方法,專家認為比較安全的方式是每個星期更新一次病毒庫,但是特殊情況下,需要更加頻繁地更新。1999年Y2K 病毒庫需要每天更新,而2000年五月,為了對付LoveLetter病毒的變種,一天就要幾次更新病毒庫。需要指出的是,有時候這種頻繁的更新對於防護效果的提高很小。
(2)用戶對於Microsoft的操作系統和應用程序抱怨很多,但是病毒防護工具本身的功能實在是應該被最多抱怨的一個因素。
(3)啟發式的病毒搜索沒有被廣泛地使用,因為清除一個病毒比調整啟發式軟體的花費要小,而被比喻成「治療比疾病本身更糟糕」。
(4)企業在防火牆管理,電子郵件管理上都花費了不小的精力,建議使用單獨的人員和工具完成這個任務。
(5) 惡意代碼攻擊方面的數據分析做得很不夠,盡管有些病毒掃描軟體有系統活動日誌,但是由於文件大小限制,不能長期保存。同時對於惡意代碼感染程度的度量和分析做得也不夠,一般的企業都不能從戰術和戰略兩個層次清晰地描述自己公司的安全問題。
(6) 病毒掃描軟體只是通知用戶改變設置,而不是自動去修改設置。
(7) 病毒防護軟體本身就有安全缺陷,容易被攻擊者利用,只是由於害怕被攻擊,病毒軟體廠商不願意談及。
(8)許多的軟體都是既可以用在安全管理,也可以用在安全突破上,問題在於意圖,比如漏洞掃描程序和嗅探程序就可以被攻擊者使用。
惡意代碼的傳播方式在迅速地演化,從引導區傳播,到某種類型文件傳播,到宏病毒傳播,到郵件傳播,到網路傳播,發作和流行的時間越來越短。Form引導區病毒1989年出現,用了一年的時間流行起來,宏病毒 Concept Macro 1995年出現,用了三個月的時間流行, LoveLetter用了大約一天,而 Code Red用了大約90分鍾, Nimda 用了不到 30分鍾. 這些數字背後的規律是很顯然的:在惡意代碼演化的每個步驟,病毒和蠕蟲從發布到流行的時間都越來越短。
惡意代碼本身也越來越直接的利用操作系統或者應用程序的漏洞, 而不僅僅依賴社會工程。伺服器和網路設施越來越多地成為攻擊目標。L10n, PoisonBOx, Code Red 和 Nimda等蠕蟲程序,利用漏洞來進行自我傳播,不再需要搭乘其他代碼