書名: 軟件安全技術作者名: 陳波本章字數: 2185字更新時間: 2020-11-28 23:09:06
1.2 軟件面臨的安全威脅
本書將軟件面臨的安全威脅分為三大類:軟件自身的安全(軟件漏洞)、惡意代碼及軟件侵權。本節將概要介紹這3類威脅,后續第2~4部分將分別介紹針對這3類威脅的解決方案。
1.2.1 軟件漏洞
軟件漏洞通常被認為是軟件生命周期中與安全相關的設計錯誤、編碼缺陷及運行故障等。
說明:
本書中并不對軟件漏洞/脆弱點、軟件缺陷及軟件錯誤等概念嚴格區分。
一方面,軟件漏洞可能會造成軟件在運行過程中出現錯誤結果或運行不穩定、崩潰等現象,甚至引起死機等情況。舉例如下。
●操作系統啟動時發現未能驅動的硬件而導致藍屏。
●應用軟件由于存在內存泄露,運行時系統內存消耗越來越大,直至最后崩潰。
●網絡軟件由于對用戶并發數考慮不周,導致用戶數量超出預計,程序運行錯誤。
●多線程軟件對線程同步考慮不周,導致系統因資源死鎖而死機。
事實上,軟件漏洞可以引發后果嚴重的系統故障,從而造成重大安全事故。例如,應用于航天、鐵路、通信、交通、軍事、過程控制和醫療等領域的任務關鍵軟件,存在設計錯誤、編碼缺陷和運行故障等不同漏洞形式時,會造成嚴重的后果。
另一方面,軟件漏洞會被黑客發現和利用,進而實施竊取隱私信息、甚至破壞系統等攻擊行為,舉例如下。
●軟件使用明文存儲用戶口令,黑客通過數據庫漏洞直接獲取口令明文。
●軟件存在緩沖區溢出漏洞,黑客利用溢出攻擊而獲得遠程用戶權限。
●軟件對用戶登錄的安全驗證強度太低,黑客假冒合法用戶登錄。
●軟件對用戶的輸入沒有嚴限制,被黑客利用后執行系統刪除命令,從而導致系統被破壞。
圖1-2展示了一個從發現漏洞到實施攻擊的過程。

圖1-2 漏洞利用過程
利用軟件漏洞可以實施高級可持續性攻擊(Advanced Persistent Threat,APT),從而引發國家安全事件。本章【案例1】中提及的震網病毒,據分析就是利用了7個漏洞實施的,其中5個針對Windows系統的漏洞,另外2個針對西門子SIMATIC WinCC系統。在針對Windows的5個漏洞中,震網病毒采用了復雜的多層攻擊技術,利用打印機后臺程序服務漏洞(CNNVD-201009-132)實現在內部局域網中的傳播,同時利用4個零日漏洞對Windows操作系統進行攻擊,并利用另外1個快捷方式文件解析漏洞(CNNVD-201007-238)觸發攻擊。震網病毒主要通過U盤和局域網進行傳播,如果企業沒有針對U盤等可移動設備進行嚴格管理,有人在局域網內使用了帶病毒U盤,則整個網絡都會被感染。震網病毒對伊朗等國家的核設施造成的危害不亞于1986年發生的切爾諾貝利核電站事故,最終造成伊朗核計劃拖后了2年,我國近500萬網民及多個行業的領軍企業也遭受了此病毒的攻擊。
本書第2部分將用9章的篇幅介紹如何運用SDL盡可能地消除軟件漏洞,實現軟件安全開發。
拓展閱讀
讀者要想了解更多軟件缺陷和錯誤帶來的嚴重后果,可以閱讀以下書籍資料。
[1]金鐘河.致命BUG:軟件缺陷的災難與啟示[M].葉蕾蕾,譯.北京:機械工業出版社,2016.
1.2.2 惡意代碼
惡意代碼已經成為攻擊計算機信息系統主要的載體,攻擊威力越來越大、攻擊范圍越來越廣。什么是惡意代碼?它與常說的傳統計算機病毒有怎樣的關系?
惡意代碼(Malicious Software,Malware)是在未被授權的情況下,以破壞軟硬件設備、竊取用戶信息、干擾用戶正常使用、擾亂用戶心理為目的而編制的軟件或代碼片段。
定義指出,惡意代碼是軟件或代碼片段,其實現方式可以有多種,如二進制執行文件、腳本語言代碼、宏代碼或是寄生在其他代碼或啟動扇區中的一段指令。
惡意代碼包括計算機病毒(Computer Virus)、蠕蟲(Worm)、特洛伊木馬(Trojan Horse)、后門(Back Door)、內核套件(Rootkit)、間諜軟件(Spyware)、惡意廣告(Dishonest Adware)、流氓軟件(Crimeware)、邏輯炸彈(Logic Bomb)、僵尸網絡(Botnet)、網絡釣魚(Phishing)、惡意腳本(Malice Script)及垃圾信息(Spam)等惡意的或令人討厭的軟件及代碼片段。近幾年危害甚廣的勒索軟件(Ransomware)也屬于惡意代碼范疇。
由于人們經常面對的惡意代碼攻擊大多結合了蠕蟲、木馬等多種類型的特點,例如,2017年5月12日全球大爆發的WannaCry勒索軟件攻擊,就具有主動掃描、遠程漏洞利用等蠕蟲和木馬的一些特點,因此大家在稱呼WannaCry勒索軟件時,又稱其為勒索病毒或是木馬。實際上,惡意代碼的各個類型還是具有比較明顯的特點的。本書將在第3部分第12章介紹計算機病毒、蠕蟲、木馬、后門、Rootkit及勒索軟件等主要類型的特點、基本工作原理和防治技術。
1.2.3 軟件侵權
計算機軟件產品開發完成后復制成本低、復制效率高,所以往往成為版權侵犯的對象。
版權,又稱著作權或作者權,是指作者對其創作的作品享有的人身權和財產權。人身權包括發表權、署名權、修改權和保護作品完成權等;財產權包括作品的使用權和獲得報酬權。
常見的軟件侵權行為包括以下幾種。
●未經軟件著作權人許可,發表、登記、修改或翻譯其軟件。
●將他人軟件作為自己的軟件發表或者登記,在他人軟件上署名或者更改他人軟件上的署名。
●未經合作者許可,將與他人合作開發的軟件作為自己單獨完成的軟件發表或者登記。
●復制或者部分復制著作權人的軟件。
●向公眾發行、出租或通過信息網絡傳播著作權人的軟件。
●故意避開或者破壞著作權人為保護其軟件著作權而采取的技術措施。
●故意刪除或者改變軟件權利管理電子信息。
●轉讓或者許可他人行使著作權人的軟件著作權。
在軟件侵權行為中,對于一些侵權主體比較明確的,一般通過法律手段予以解決,但是對于一些侵權主體比較隱蔽或分散的,政府管理部門受時間、人力和財力諸多因素的制約,還不能進行全面管制,因此有必要通過技術手段來保護軟件。本書將在第4部分第14章介紹軟件知識產權保護的法律途徑和技術措施。
- Flask Web全棧開發實戰
- vSphere High Performance Cookbook
- Java Web應用開發技術與案例教程(第2版)
- Python貝葉斯分析(第2版)
- UML 基礎與 Rose 建模案例(第3版)
- 常用工具軟件立體化教程(微課版)
- iOS自動化測試實戰:基于Appium、Python與Pytest
- jQuery從入門到精通(微課精編版)
- 嵌入式C編程實戰
- 從零開始學Unity游戲開發:場景+角色+腳本+交互+體驗+效果+發布
- Android應用開發攻略
- Clojure Data Structures and Algorithms Cookbook
- Java核心技術速學版(第3版)
- Visual FoxPro程序設計實驗教程
- PhantomJS Cookbook