![]() ![]() |
網絡攻防原理及應用 ![]()
本書內容主要從三個方面來進行組織: 1、從信息網絡攻防的角度, 分析了當前網絡與信息安全所面臨問題, 總結了網絡攻防現狀、攻防模型及信息安全漏洞的相關標準; 2、立足于“知己知彼, 百戰(zhàn)不貽”的原則, 深入論述各種網絡攻防技術的機理、方法及案例; 3、最后從系統與網絡安全防范的角度, 對目前常見的信息網絡攻擊防范技術進行了原理分析, 并給出相關的應用場景。
1. 詳細介紹主流操作系統Windows 7、Windows 8及Windows 10的安全防護機制。
2. 詳細介紹緩沖區(qū)溢出導致的漏洞和針對緩沖區(qū)溢出的內存保護機制。
3. 編者建有網站www.pku-exploit.com(北京大學軟件安全小組),不定期發(fā)布*新技術文章。
近年來,隨著互聯網絡技術的飛速發(fā)展,互聯網使用者不約而同地將注意力轉向網絡安全領域。用戶在選擇互聯網服務時將商家是否能提供穩(wěn)定安全的服務納入考慮范疇,商家通過向客戶提供安全的服務來吸引用戶。從政府角度而言,網絡空間安全已上升到國家安全層面,政府通過立法的手段來保障網絡空間安全。為提升國內網絡空間安全,需要大量從業(yè)人員加入到安全行業(yè)中。
如今市場上有大量關于網絡攻防方面的書籍,其中不乏經典之作,筆者在閱讀這些書籍的過程中收獲良多。本書以介紹網絡攻防技術為主,涵蓋了網絡攻防中常用的方法,通過介紹網絡攻擊和網絡防范兩個角度的技術,幫助讀者較為全面地認知網絡攻防的本質。筆者結合自身研究內容和教學經歷,整理編寫此書,希望能為讀者提供不同的角度來認識網絡攻防的世界。本書對緩沖區(qū)溢出導致的漏洞和針對緩沖區(qū)溢出的內存保護機制進行了詳細的介紹,希望能為漏洞分析、漏洞挖掘、惡意代碼研究方向的讀者提供具有參考價值的實例。
內容及特色
第一部分網絡攻防基礎
這一部分幫助讀者建立良好的理論基礎,以便讀者閱讀后文內容。在實際的攻防場景中,對網絡安全現狀、攻擊原理、漏洞標準的了解并不是必需的,但這些理論知識有助于提升讀者對于網絡攻防的整體認知,幫助讀者在后續(xù)的學習過程中從根本上理解技術點的應用范圍和適用場景。
第1章分析了當代網絡安全現狀,介紹了信息安全領域的問題和發(fā)展趨勢。讀者通過閱讀本章可對信息安全領域的網絡攻防方向有整體的認知。
第2章詳細介紹了網絡攻擊過程以及網絡攻防模型。深入理解本部分內容有助于讀者建立學習網絡攻防技術的知識框架,幫助讀者在閱讀后文的過程中將細節(jié)知識點納入整體知識框架中,加深讀者對知識點的記憶和理解。
第3章介紹了漏洞標準以及漏洞分析方法。漏洞是攻擊者和防護者在較量過程中關注的焦點。本部分除了介紹通用的漏洞標準,還詳細介紹了漏洞分析技術、漏洞挖掘技術、漏洞利用技術。希望有意愿深入學習網絡攻防知識的讀者對本章進行深入學習,并按照本章介紹動手實踐。
第二部分網絡攻擊技術原理與防范
這一部分介紹在網絡攻防世界中攻擊者常使用的攻擊技術。網絡上已存在許多功能完備、可供讀者使用的攻擊工具,直接使用攻擊工具有助于讀者快速入門網絡攻防領域,因此在本部分的每個章節(jié)中都會介紹相應的攻擊工具。為防止讀者陷入“通過使用工具就可以實施網絡攻擊”的誤區(qū),在每一章節(jié)中還會對實施攻擊行為的原理進行深入的分析,可以讓讀者了解到實現攻擊工具的內部底層原理。本部分的內容建立在讀者對于計算機網絡技術有一定認知的基礎上。本部分中每個章節(jié)的內容相對獨立,讀者可選擇感興趣的章節(jié)閱讀。
第4章介紹了網絡攻擊掃描技術,在網絡攻擊場景中,搜集攻擊目標信息是實施攻擊行為的重要環(huán)節(jié)之一。讀者通過閱讀本章節(jié)可以掌握攻擊者搜集信息的方法、過程以及途徑。
第5章詳細介紹了惡意代碼的原理、傳播、實現,惡意代碼的關鍵性技術以及分析惡意代碼技術的方法體系。本章部分涉及對各類惡意代碼實現技術細節(jié)的分析,僅適合于對計算機體系有一定理解的讀者閱讀。
第6章主要介紹了攻擊者針對用戶口令的攻擊方式,并以實際場景中的服務和軟件為例列舉了幾種常見的口令破解工具?诹罟舻膶崿F原理相對容易被讀者理解,沒有計算機基礎的讀者也可以閱讀本章內容。
第7章闡述了各類網絡欺騙攻擊,欺騙攻擊的實施難度不高,但產生的負面影響大。理解本章內容需要讀者對計算機網絡有一定的了解,通過本章的學習讀者可以采取技術手段繞過攻擊者的欺騙攻擊。
第8章主要介紹了緩沖區(qū)溢出攻擊的原理,列舉出針對不同操作系統的典型緩沖區(qū)溢出攻擊實例,并向讀者推薦了幾類防范緩沖區(qū)溢出攻擊的方法。讀者可以在閱讀過程中實踐構造相應的緩沖區(qū)溢出代碼,這有助于讀者深入理解緩沖區(qū)溢出的原理,加強讀者對于程序運行時系統底層實現的理解。
第9章介紹了幾類典型的拒絕服務攻擊,并分析了其實現原理。拒絕服務攻擊是攻擊者常使用的網絡攻擊手段之一,本章內容適合對網絡協議有一定了解的讀者學習。
第10章介紹了SQL注入攻擊的原理、注入策略、防范方法等。本章適合對SQL語言有一定了解的讀者學習,也適合于服務器端的開發(fā)人員閱讀,用于增強服務器端的數據安全。建議在閱讀過程中配合實踐,以便在實際環(huán)境中了解如何實施SQL注入攻擊。
第三部分網絡攻擊防范技術及應用
這一部分介紹對抗網絡攻擊技術的防范技術。信息安全領域中攻擊和防范的聯系是矛與盾的關系,通過不斷的攻防對抗來提升攻防技術。在本書的第二部分介紹了大量的網絡攻擊技術,而本部分則著重介紹對抗網絡攻擊的防范措施,幫助讀者了解安全從業(yè)人員通過哪些具體的策略實現對系統的保護,進而對抗外界的攻擊。
第11章主要介紹了Windows操作系統安全。相較于Linux操作系統,Windows操作系統的安全增強功能封裝性更強,加之Windows不是開源的操作系統,用戶基于Windows進行自主開發(fā)的空間較小,因此本章主要介紹了Windows系統已經提供的安全防范功能,普通的Windows用戶也可通過本章的閱讀對自己所使用的Windows系統進行安全增強。
第12章介紹了Linux操作系統的安全防護體系。以操作系統對于文件權限管理、用戶認證、惡意代碼查殺、協議安全等幾個方面的安全加強措施作為切入點,幫助讀者了解在對系統進行防范功能增強時,應當從哪些方面實施。本章適合對于Linux操作系統有一定了解的讀者進行閱讀。
第13章主要介紹了防火墻的原理及應用。隨著硬件設備互聯度的增強,設備間邊界逐漸模糊,通過劃分區(qū)域對設備進行安全隔離的技術已逐漸退出大眾視野,但防火墻技術作為一種高級的訪問控制設備對區(qū)域內設備和網絡的保護起到了不容忽視的作用。讀者通過閱讀本章可以了解防火墻技術的實現部署細節(jié),可以將其設計思路延續(xù)到其他場景的安全防護中。
第14章主要介紹了入侵檢測的原理及應用。通過本章的學習,讀者可以了解到攻擊者在繞過防火墻的防范后,如何通過檢測系統內動態(tài)的信息來發(fā)現攻擊行為。入侵檢測技術的實現原理在當今互聯的設備中依舊可以延續(xù)使用,達到保護系統整體安全的目的。
第15章主要介紹了數據安全及應用。數據安全是系統防護的最后保障,保證用戶在受到攻擊后可以快速恢復,繼續(xù)提供服務。為幫助讀者理解數據安全實現的本質,本章還介紹幾類不同的文件系統結構和數據恢復的基本原理。
第四部分新型網絡攻擊防范技術探索
這一部分介紹了新型的漏洞分析技術,對新型操作系統的安全機制進行分析。本部分內容翔實,涉及計算機底層知識,需要讀者在對計算機技術有較為深入理解的基礎上再進行閱讀。本部分需要實踐操作的內容較多,所以在閱讀本部分內容時,建議讀者根據書中的指導進行手動調試,更有助于增強理解。
第16章介紹了新型的漏洞分析技術,為了方便讀者理解,對應不同漏洞分析方法配合了相關的實例分析。本章的漏洞分析以MS11-010漏洞為例,建議讀者在了解MS11-010漏洞原理的基礎上進行學習。
第17章介紹了對于Windows 7、Windows 8以及Windows 10系統的內存保護機制。需要讀者對系統底層有充分的了解之后再學習內存保護機制的內容,對本章內容理解困難時建議讀者結合第8章緩沖區(qū)溢出的知識進行理解。
適合的讀者
信息安全、網絡空間安全專業(yè)學生及安全行業(yè)入門者
本書囊括許多攻防工具的實際操作和系統底層知識的介紹,有助于初學者了解安全領域涉及的各類知識,幫助初學者快速入門。
安全領域研究人員
本書介紹了一些安全領域的研究方法,可以為安全從業(yè)人員進行漏洞分析、漏洞挖掘、惡意代碼分析等方面的研究提供一定的幫助。
軟件開發(fā)人員
安全作為軟件開發(fā)的質量屬性之一,是開發(fā)人員在設計實現軟件時必須考慮的重要因素之一。通過閱讀本書可以幫助開發(fā)者了解如何通過編碼加強軟件的安全性。
配套資源與支持
在本書交稿之后,筆者依然擔心會因自身語言表達和理解不足誤導讀者對于知識的領悟。由于筆者的寫作水平和寫作時間有限,書中存在許多不足之處,因此特開通讀者郵箱weipingwen@ss.pku.edu.cn與大家共同交流,如有任何建議和意見歡迎隨時與筆者聯系。
本書的配套PPT課件等資源可以下載,關于本書的使用及課件下載中的問題。
本書的勘誤將不定期發(fā)布(北京大學軟件安全小組)網站,該網站持續(xù)發(fā)布關于漏洞評測等專業(yè)文章,歡迎讀者訪問。
致謝
感謝本書編輯付弘宇老師。在編寫本書期間,她提出了許多建議,由于她細心付出才使得本書得以順利出版。感謝我的家人對我一直以來的支持和理解,是他們給了我繼續(xù)學習的動力。感謝北京大學軟件安全小組所有成員為本書初期工作付出的努力。感謝我的師兄蔣建春老師對我的支持,希望我們能繼續(xù)保持在專業(yè)領域的切磋和交流。感謝那些不斷在安全領域進行探索的組織和個人,沒有他們的奉獻,筆者無法在安全領域進行深入的研究。
作者2017年5月
第一部分網絡攻防基礎
第1章網絡安全現狀、問題及其發(fā)展
1.1網絡安全現狀
1.1.1當代網絡信息戰(zhàn)關注焦點
1.1.2當代網絡攻擊的特點
1.1.3網絡安全威脅
1.2網絡安全發(fā)展
1.2.1網絡安全發(fā)展趨勢
1.2.2黑客發(fā)展史
1.3信息安全問題
1.3.1安全管理問題分析
1.3.2信息技術環(huán)境問題分析
1.3.3信息化建設問題分析
1.3.4人員的安全培訓和管理問題分析
1.4信息安全觀發(fā)展
1.5本章小結
習題1
第2章網絡攻擊過程及攻防模型
2.1典型網絡攻擊過程
2.1.1網絡攻擊階段
2.1.2網絡攻擊流程
2.2網絡攻擊模型
2.3網絡防護模型
2.4本章小結
習題2
第3章系統漏洞分析及相關標準
3.1概述
3.1.1系統漏洞相關概念
3.1.2系統漏洞分析研究現狀
3.1.3漏洞標準
3.2漏洞分析技術
3.2.1漏洞分析技術模型
3.2.2信息收集
3.2.3調試分析
3.2.4利用分析
3.2.5漏洞分析實踐方法
3.3漏洞利用
3.3.1漏洞研究流程
3.3.2漏洞利用技術
3.4漏洞分析方向
3.4.1軟件漏洞
3.4.2通信協議漏洞
3.4.3操作系統典型漏洞
3.4.4應用服務典型漏洞
3.4.5網絡安全保障系統漏洞
3.4.6信息系統漏洞
3.5漏洞利用實例
3.5.1瀏覽器漏洞利用
3.5.2Office漏洞利用
3.6本章小結
習題3
第二部分網絡攻擊技術原理與防范
第4章網絡攻擊掃描原理與防范
4.1概述
4.1.1目標掃描理念
4.1.2目標掃描過程
4.1.3目標掃描類型
4.1.4目標掃描途徑
4.2確定攻擊目標方法與工具
4.3主機掃描技術
4.4端口掃描技術
4.4.1端口掃描原理與類型
4.4.2開放掃描
4.4.3隱蔽掃描
4.4.4半開放掃描
4.4.5端口掃描工具
4.5漏洞掃描技術
4.6操作系統類型信息獲取方法與工具
4.7防范攻擊信息收集方法與工具
4.8反掃描技術
4.9本章小結
習題4
第5章惡意代碼攻擊機理分析
5.1惡意代碼概述
5.1.1惡意代碼的定義
5.1.2惡意代碼的危害
5.1.3惡意代碼存在原因
5.1.4惡意代碼傳播與發(fā)作
5.1.5惡意代碼攻擊模型
5.2惡意代碼生存技術
5.3惡意代碼攻擊技術
5.4惡意代碼的分析技術方法
5.4.1惡意代碼分析技術方法概況
5.4.2靜態(tài)分析技術方法
5.4.3動態(tài)分析技術方法
5.4.4兩種分析技術比較
5.5典型惡意代碼攻擊與防范
5.5.1典型計算機病毒攻擊與防范
5.5.2典型網絡蠕蟲攻擊與防范
5.5.3典型特洛伊木馬攻擊與防范
5.5.4典型Rootkit攻擊與防范
5.6本章小結
習題5
第6章口令攻擊
6.1常用的口令攻擊技術
6.1.1口令安全分析
6.1.2口令攻擊方法
6.1.3口令字典構造
6.1.4網絡口令破解
6.1.5口令嗅探器
6.2UNIX系統口令攻擊
6.3口令攻擊案例
6.4口令攻擊防范技術與方法
6.5本章小結
習題6
第7章欺騙攻擊
7.1IP欺騙攻擊
7.1.1IP欺騙攻擊的概念
7.1.2IP欺騙攻擊的原理
7.1.3IP欺騙攻擊的實現過程
7.1.4IP欺騙對抗
7.2會話劫持攻擊
7.2.1會話劫持攻擊的概念
7.2.2TCP會話劫持
7.2.3HTTP會話劫持
7.3DNS欺騙攻擊
7.3.1DNS欺騙攻擊的概念
7.3.2DNS欺騙攻擊的原理
7.3.3DNS欺騙攻擊的實現過程
7.4網絡釣魚攻擊
7.4.1網絡釣魚攻擊的概念
7.4.2URL混淆
7.4.3網絡釣魚攻擊的防范
7.5本章小結
習題7
第8章緩沖區(qū)溢出攻擊與防范
8.1緩沖區(qū)溢出攻擊的相關概念與發(fā)展歷程
8.1.1緩沖區(qū)溢出攻擊的相關概念
8.1.2緩沖區(qū)溢出攻擊類型
8.1.3緩沖區(qū)溢出攻擊的發(fā)展歷史
8.1.4緩沖區(qū)溢出的危害
8.2緩沖區(qū)溢出攻擊技術原理剖析
8.2.1堆棧溢出攻擊技術
8.2.2堆溢出攻擊技術
8.2.3整型溢出攻擊技術
8.2.4格式化字符串溢出攻擊技術
8.2.5單字節(jié)溢出攻擊技術
8.3溢出保護技術
8.4緩沖區(qū)溢出攻擊典型實例
8.4.1緩沖區(qū)攻擊實例For Windows
8.4.2緩沖區(qū)攻擊實例For UNIX
8.4.3緩沖區(qū)攻擊實例For Linux
8.4.4緩沖區(qū)攻擊實例For Sun Solaris 2.4
8.5Windows操作系統緩沖區(qū)溢出攻擊防范技術
8.5.1Windows下實現緩沖區(qū)溢出的必要條件
8.5.2Win32函數調用與Windows下緩沖區(qū)溢出攻擊的關系
8.5.3Win32函數截獲和檢測基本策略實現
8.6其他緩沖區(qū)溢出攻擊防范技術
8.7本章小結
習題8
第9章拒絕服務攻擊與防范
9.1拒絕服務攻擊概述
9.1.1拒絕服務攻擊的概念
9.1.2攻擊者動機
9.2DDoS攻擊的典型過程
9.3拒絕服務攻擊技術及分類
9.4拒絕服務攻擊的防范
9.4.1拒絕服務攻擊的防御
9.4.2拒絕服務攻擊的檢測
9.4.3拒絕服務攻擊的追蹤
9.5拒絕服務攻擊的發(fā)展趨勢
9.5.1攻擊程序的安裝
9.5.2攻擊程序的利用
9.5.3攻擊的影響
9.6本章小結
習題9
第10章SQL注入攻擊與防范
10.1SQL注入攻擊背景、危害與原理
10.1.1SQL注入攻擊背景
10.1.2SQL注入攻擊危害
10.1.3SQL注入攻擊原理
10.1.4SQL注入攻擊場景
10.2SQL注入技術方法與工具
10.2.1SQL注入技術
10.2.2SQL注入攻擊過程
10.2.3SQL注入方法類型
10.2.4SQL注入攻擊軟件
10.3SQL注入攻擊防范技術方法
10.4實戰(zhàn)案例——利用SQL注入獲取管理員口令
10.5本章小結
習題10
第三部分網絡攻擊防范技術及應用
第11章Windows系統安全
11.1Windows安全框架
11.2用戶賬戶安全
11.3文件系統安全
11.4網絡服務安全
11.5本章小結
習題11
第12章Linux系統安全
12.1Linux安全框架
12.2LSM
12.2.1LSM簡介
12.2.2LSM設計思想
12.2.3LSM接口說明
12.3SELinux體系
12.3.1Linux與SELinux的區(qū)別
12.3.2Flask安全框架
12.3.3SELinux安全功能
12.4文件權限管理
12.5PAM用戶認證機制
12.6殺毒應用程序
12.7Linux網絡傳輸協議安全
12.8本章小結
習題12
第13章防火墻技術原理及應用
13.1防火墻工作機制與用途
13.1.1防火墻的概念
13.1.2防火墻的原理
13.2防火墻核心技術與分類
13.3防火墻防御體系結構類型
13.3.1基于雙宿主主機的防火墻結構
13.3.2基于代理型的防火墻結構
13.3.3基于屏蔽子網的防火墻結構
13.4防火墻主要技術參數
13.5防火墻產品類型、局限性與發(fā)展
13.5.1防火墻產品分類
13.5.2開源代碼防火墻
13.5.3防火墻的局限性
13.6防火墻部署過程與典型應用模式
13.6.1防火墻部署的基本方法與步驟
13.6.2防火墻典型部署模式
13.7本章小結
習題13
第14章入侵檢測的原理及應用
14.1入侵檢測概述
14.1.1入侵檢測技術背景
14.1.2入侵檢測技術模型
14.1.3入侵檢測技術的現狀及發(fā)展
14.2入侵檢測技術
14.2.1基于誤用的入侵檢測技術
14.2.2基于異常的入侵檢測技術
14.3入侵檢測系統的結構與分類
14.4常見的入侵檢測系統及評估
14.4.1入侵檢測系統設計
14.4.2入侵檢測系統評估
14.4.3入侵檢測系統介紹
14.5本章小結
習題14
第15章數據安全及應用
15.1數據安全基礎
15.1.1數據存儲技術
15.1.2數據恢復技術
15.2FAT文件系統
15.2.1硬盤區(qū)域的組織
15.2.2根目錄下文件的管理
15.2.3子目錄的管理
15.2.4文件的刪除
15.2.5子目錄的刪除
15.2.6分區(qū)快速高級格式化
15.2.7分區(qū)完全高級格式化
15.3NTFS文件系統
15.3.1NTFS文件系統基礎
15.3.2NTFS文件系統的層次模型
15.3.3NTFS文件系統的特性分析
15.3.4Windows NT 4.0的磁盤分區(qū)
15.3.5Windows 2000后的磁盤分區(qū)
15.3.6NTFS文件系統結構分析
15.3.7NTFS的性能
15.4數據恢復
15.4.1數據恢復的定義
15.4.2數據恢復的原理
15.4.3主引導記錄的恢復
15.4.4分區(qū)的恢復
15.4.50磁道損壞的修復
15.4.6硬盤邏輯鎖的處理
15.4.7磁盤壞道的處理
15.4.8DBR的恢復
15.4.9FAT表的恢復
15.4.10數據的恢復
15.5文檔修復
15.5.1文檔修復的定義
15.5.2Windows常見文檔類型
15.5.3辦公文檔修復
15.5.4影音文檔修復
15.5.5壓縮文檔修復
15.5.6文檔修復的局限
15.6數據安全與數據備份
15.6.1文件文檔保護
15.6.2數據刪除安全
15.6.3數據備份的定義
15.6.4數據備份方案比較
15.6.5系統數據的備份方法
15.6.6用戶數據的備份方法
15.6.7數據備份注意事項
15.7本章小結
習題15
第四部分新型網絡攻擊防范技術探索
第16章新型漏洞分析
16.1參考安全補丁的漏洞分析技術
16.1.1參考安全補丁的漏洞分析方法實現原理
16.1.2參考安全補丁的漏洞分析方法形式化描述
16.1.3參考安全補丁的漏洞分析方法實例分析
16.2系統內核函數無序調用漏洞分析技術
16.3本章小結
習題16
第17章新型操作系統內存安全機制分析
17.1Windows 7的內存保護機制
17.1.1GS保護機制分析
17.1.2SafeSEH及SEHOP分析
17.1.3DEP機制分析
17.1.4ASLR分析
17.2Windows 8的內存保護機制
17.3Windows 7內存保護機制脆弱性分析
17.4Windows 8傳統內存保護機制脆弱性分析
17.5Windows 7內存保護機制測試案例
17.5.1GS保護脆弱性測試
17.5.2SafeSEH和SEHOP脆弱性測試
17.5.3ASLR脆弱性測試
17.5.4DEP脆弱性測試
17.6Windows 8內存保護機制測試案例
17.6.1GS保護脆弱性測試
17.6.2SafeSEH及SEHOP測試
17.6.3DEP測試
17.6.4ASLR測試
17.7Windows 10安全保護新特性
17.7.1CFG控制流防護機制
17.7.2字體防護增強
17.8本章小結
習題17
參考文獻
第5章惡意代碼攻擊機理分析第5章惡意代碼攻擊機理分析
5.1惡意代碼概述5.1.1惡意代碼的定義計算機病毒是早期主要形式的惡意代碼。在20世紀80年代,計算機病毒誕生,它是早期惡意代碼的主要內容,由Adleman命名、Cohen設計出的一種在運行過程中具有復制自身功能的破壞性程序。在這之后,病毒被Adleman定義為一個具有相同性質的程序集合,只要程序具有破壞、傳染或模仿的特點,就可認為是計算機病毒。這種定義使得病毒內涵被賦予了擴大化的傾向,將任意帶有破壞性的程序都認為是病毒,掩蓋了病毒潛伏、傳染等其他重要特征。20世紀90年代末,隨著計算機網絡技術的發(fā)展進步,惡意代碼(Malicious Code)的定義也被逐漸擴充并豐富起來,惡意代碼被Grimes定義為從一臺計算機系統到另外一臺計算機系統未經授權認證,經過存儲介質和網絡進行傳播的破壞計算機系統完整性的程序或代碼。計算機病毒(Computer Virus)、蠕蟲(Worms)、特洛伊木馬(Trojan Horse)、邏輯炸彈(Logic Bombs)、病菌(Bacteria)、用戶級RootKit、核心級RootKit、腳本惡意代碼(Malicious Scripts)和惡意Active X控件等都屬于惡意代碼。
因此可以總結出惡意代碼兩個顯著的特點: 非授權性和破壞性。表51列舉了惡意代碼的幾個主要類型及關于其自身的定義說明和特點。
5.1.2惡意代碼的危害
惡意代碼問題不但造成了企業(yè)和眾多用戶巨大的經濟損失,還對國家的安全產生了嚴重的威脅。目前國際上一些發(fā)達國家都投入大量資金和人力對惡意代碼領域的問題進行了長期深度的研究,同時在某種程度上取得了顯著的技術成果。1991年的海灣戰(zhàn)爭,據報道,伊拉克從國外購買的打印機被美國植入了可遠程控制的惡意代碼,這使得戰(zhàn)爭還沒打響之前就造成了伊拉克整個計算機網絡管理的雷達預警系統全部癱瘓。這是美國第一次公開在表51主要惡意代碼的相關定義惡意代碼類型相關定義說明特點計算機病毒指編制或在計算機程序中插入的破壞計算機功能或毀壞數據、影響計算機使用,并能自我復制的一組計算機指令或程序代碼潛伏、傳染和破壞計算機蠕蟲指通過網絡自我復制、消耗系統和網絡資源的程序掃描、攻擊和擴散特洛伊木馬指一種與連接遠程計算機通過網絡控制本地計算機的程序欺騙、隱蔽和信息竊取邏輯炸彈指一段嵌入計算機系統程序的、通過特殊的數據或時間作為條件完成破壞功能的程序潛伏和破壞病菌指不依賴于系統軟件自我復制和傳播,以消耗系統資源為目的的程序傳染和拒絕服務用戶級RootKit指通過替代或修改被執(zhí)行的程序進入系統,從而實現隱藏和創(chuàng)建后門的程序隱蔽、潛伏核心級RootKit指嵌入操作系統內核進行隱藏和創(chuàng)建后門的程序隱蔽、潛伏
實戰(zhàn)中利用惡意代碼攻擊技術獲得的重大軍事利益。在Internet安全事件中,由惡意代碼造成的經濟損失居第一位。
5.1.3惡意代碼存在原因
計算機技術飛速發(fā)展的同時并未使系統的安全性得到增強。計算機技術的進步帶來的安全增強能力最多只能對由應用環(huán)境的復雜性帶來的安全威脅的增長程度進行一定的彌補。除此之外,計算機新技術的出現或許會讓計算機系統的安全性降低。AT&T實驗室的S. Bellovin曾經對美國CERT提供的安全報告進行過分析,分析結果表明,大約50%的計算機網絡安全問題是由軟件工程中產生的安全缺陷引起的,其中,很多問題的根源都來自操作系統的安全脆弱性。
互聯網的飛速發(fā)展成為惡意代碼廣泛傳播成長的溫室;ヂ摼W自身的開放性,缺乏中心控制性和全局視圖能力的特點,使得網絡主機處在一個受不到統一保護的環(huán)境中。Bellovin等認為計算機和網絡系統自身存在的設計缺陷,會導致安全隱患的發(fā)生。
針對性是惡意代碼的主要特征之一,即特定的脆弱點的針對性,這充分說明了惡意代碼實現其惡意目的正是建立在軟件的脆弱性基礎上的。歷史上產生廣泛影響的1988年Morris蠕蟲事件,入侵的最初突破點就是利用的郵件系統的脆弱性。
雖然人們做了諸多努力來保證系統和網絡基礎設施的安全,但令人遺憾的是,系統的脆弱性仍然無法避免。各種安全措施只能減少,但不能杜絕系統的脆弱性; 而測試手段也只能證明系統存在脆弱性,卻無法證明系統不存在脆弱性。更何況,為了實際需求的滿足,信息系統規(guī)模的逐漸擴大,會使安全脆弱性的問題越來越明顯。隨著逐步發(fā)現這些脆弱性,針對這些脆弱性的新的惡意代碼將會層出不窮。
總體來講,許多不可避免的安全問題和安全脆弱性存在于信息系統的各個層次結構中,包括從底層的操作系統到上層的網絡應用在內的各個層次。這些安全脆弱性的不可避免,也是惡意代碼必然存在的原因。
5.1.4惡意代碼傳播與發(fā)作
如今的信息社會,信息共享是大勢所趨,而惡意代碼入侵最常見的途徑則是信息共享引起的信息流動。惡意代碼的入侵途徑各種各樣,如從Internet上下載的程序自身也許就帶有惡意代碼、接收已經感染惡意代碼的電子郵件、從光盤或軟盤向系統上安裝攜帶惡意代碼的軟件、黑客或攻擊者故意將惡意代碼植入系統等。
通過用戶執(zhí)行該惡意代碼或已被惡意感染的可執(zhí)行代碼,從而使得惡意代碼得以執(zhí)行,進而將自身或自身的變體植入其他可執(zhí)行程序中,就造成了惡意代碼感染。被執(zhí)行的惡意代碼在完成自身傳播、具有足夠的權限并滿足某些條件時,就會發(fā)作同時進行破壞活動,造成信息丟失或泄密等。
惡意代碼的入侵和發(fā)作需要在盜用系統或應用進程的合法權限基礎上才可以實現。隨著Internet開放程度越來越高,信息共享和交流也越來越強,惡意代碼編寫水平也越來越高,可被惡意代碼利用的系統和網絡的脆弱性也越來越多,從而使惡意代碼越來越具有欺騙性和隱蔽性。重要的是,新的惡意代碼總是在惡意代碼的檢測技術前出現,這也就是由Cohen和Adelman提出的“惡意代碼通用檢測方法的不可判定性”的結論。首先人們很難將正常代碼和惡意代碼區(qū)別開,其次對許多信息系統沒有必要的保護措施。所以,人們經常被惡意代碼所蒙蔽,從而在無意中執(zhí)行了惡意代碼。在CERT統計數據中,其中因被欺騙或誤用從而發(fā)生的惡意代碼事件達到所有惡意代碼事件的90%。只要某些條件被滿足,惡意代碼就會發(fā)作,甚至大規(guī)模傳播。
雖然越來越多的惡意代碼安全事件通過Internet發(fā)生,但是惡意代碼卻早就已經出現。多年來,攻擊者致力于對具有更強攻擊能力和生存能力的惡意代碼的研究。
5.1.5惡意代碼攻擊模型
惡意代碼行為各不相同,破壞程度也不盡相同,但它們的作用機制基本大致相同,作用過程可大概分為6個部分。
① 侵入系統。惡意代碼實現其惡意目的的第一步必然是入侵系統。惡意代碼侵入系統有許多途徑,如從互聯網下載的程序其自身也許就帶有惡意代碼、接收了已被惡意感染的電子郵件、通過光盤或軟盤在系統上安裝的軟件、攻擊者故意植入系統的惡意代碼等。
② 維持或提升已有的特權。惡意代碼的傳播與破壞需要建立在盜用用戶或進程的權限合法的基礎之上。
③ 隱蔽策略。為了隱蔽已經入侵的惡意代碼,可能會對惡意代碼進行改名、刪除源文件或修改系統的安全策略。
④ 潛伏。惡意代碼侵入系統后,在具有足夠的權限并滿足某些條件時,就會發(fā)作同時進行破壞活動。
⑤ 破壞。惡意代碼具有破壞性的本質,為的是造成信息丟失、泄密,系統完整性被破壞等。
⑥ 重復①~⑤對新的目標實施攻擊過程。惡意代碼的攻擊模型如圖51所示。
圖51惡意代碼的攻擊模型惡意代碼的攻擊過程可以存在于惡意代碼攻擊模型中的部分或全部。例如,①④⑤⑥存在于計算機病毒行為,①②⑤⑥存在于網絡蠕蟲,①②③⑤存在于特洛伊木馬,①④⑤存在于邏輯炸彈,①⑤⑥存在于病菌,①②③⑤存在于用戶級RootKit,①③⑤存在于核心級RootKit,其他的惡意代碼行為也可以映射到模型中的相應部分,其中①和⑤是必不可少的。
5.2惡意代碼生存技術
1. 反跟蹤技術
惡意代碼靠采用反跟蹤技術來提高自身的偽裝能力和防破譯能力,使檢測與清除惡意代碼的難度大大增加。反跟蹤技術大致可以分為兩大類: 反動態(tài)跟蹤技術和反靜態(tài)分析技術。
1) 反動態(tài)跟蹤技術
(1) 禁止跟蹤中斷。惡意代碼通過修改程序的入口地址對調試分析工具運行系統的單步中斷與斷點中斷服務程序來實現其反跟蹤的目的。
(2) 封鎖鍵盤輸入和屏幕顯示,使跟蹤調試工具運行的必需環(huán)境被破壞。
(3) 檢測跟蹤法。根據檢測跟蹤調試和正常執(zhí)行二者的運行環(huán)境、中斷入口和時間不同,各自采取相應的措施實現其反跟蹤目的。
(4) 其他技術,如指令流隊列法和逆指令流法等。
2) 反靜態(tài)分析技術
(1) 對程序代碼分塊加密執(zhí)行。為了不讓程序代碼通過反匯編進行靜態(tài)分析,將以分塊的程序代碼以密文形式裝入內存,由解密程序在執(zhí)行時進行譯碼,立即清除執(zhí)行完畢后的代碼,力求分析者在任何時候都無法從內存中獲得執(zhí)行代碼完整形式。
(2) 偽指令法。偽指令法是指將“廢指令”插入指令流中,讓靜態(tài)反匯編得不到全部正常的指令,進而不能進行有效的靜態(tài)分析。例如,Apparition是一種基于編譯器變形的Win32平臺的病毒,每次新的病毒體可執(zhí)行代碼被編譯器編譯出時要被插入一定數量的偽指令,不僅使其變形,而且實現了反跟蹤的目的。不僅如此,該技術還在宏病毒與腳本惡意代碼中應用廣泛。
……
你還可能感興趣
我要評論
|