跳到主要內容

臺灣博碩士論文加值系統

(100.24.118.144) 您好!臺灣時間:2022/12/06 05:32
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果 :::

詳目顯示

我願授權國圖
: 
twitterline
研究生:周俊良
研究生(外文):Chun-Liang Chou
論文名稱:安全程式碼編寫與靜態檢測方法實作
論文名稱(外文):Writing Secure Codes and Implementation of a Static Detection Tool
指導教授:楊中皇楊中皇引用關係
指導教授(外文):Chung-Huang Yang
學位類別:碩士
校院名稱:國立高雄師範大學
系所名稱:資訊教育研究所
學門:教育學門
學類:專業科目教育學類
論文種類:學術論文
畢業學年度:95
語文別:中文
中文關鍵詞:惡意攻擊安全程式碼靜態檢測工具
外文關鍵詞:malicious attacksecure codestatic detection tool
相關次數:
  • 被引用被引用:2
  • 點閱點閱:246
  • 評分評分:
  • 下載下載:0
  • 收藏至我的研究室書目清單書目收藏:1
隨著軟體程式的大小與複雜度愈來愈高,編寫程式的時候,可能產生的弱點漏洞相對的愈多,在這些弱點漏洞之中存在著許多安全上的問題,讓惡意的攻擊者有機可乘。因此,如何在軟體開發設計的過程中,加入安全的觀念,進而編寫安全的程式碼,是一個重要的課題。本研究以C/C++程式語言為例,探討軟體開發的生命週期中如何減少弱點漏洞的產生和介紹簡易靜態的原始程式碼檢測工具,以方便開發設計程式人員從事安全程式碼的靜態檢測。我們也自行開發一套視窗介面的軟體,透過內建開放原始碼RATS、ITS4和Splint的功能,讓使用者更方便檢測程式碼。本研究開發的軟體可檢測C/C++程式原始碼,使軟體程式碼具有基本上的安全要求,進而達到預防軟體弱點勝於治療的功用。

關鍵字:惡意攻擊、安全程式碼、靜態檢測工具。
In writing programs, more vulnerabilities may accrue since the size of the software program is bigger and the complexity is heavier than before. Many safety problems exist in these vulnerabilities waiting for malicious attackers. Therefore, it is essential how to improve security ideas and writing secure codes in the process of developing and designing software. C and C++ programs language are used as example in this study in exploring how to reduce vulnerabilities during the lifecycle of software development. To facilitate the static detection of the secure code conducted by the developing and designing programmers, this study makes an introduction of the simple and static detection tools of the source code. We also develop a window interface software for users to detect the program code more conveniently via the functions of the built-in RATS, ITS4 and Splint. The software developed in this study detects the source codes of programs C/C++ , which makes the program codes meet basic security requirements and so that the vulnerabilities are prevented rather than treated.

Keywords: malicious attack, secure code, static detection tool
目 錄
第一章 緒論 1
第一節 研究動機與目的 1
第二節 研究步驟 2
第三節 研究範圍與限制 3
第四節 論文架構 3
第二章 文獻探討 4
第一節 常見的安全弱點的分類資料 4
第二節 動態安全檢測工具與方法 13
第三節 靜態安全檢測工具與方法 16
第三章 研究方法 23
第一節 研究架構 23
第二節 靜態檢測工具視窗介面實作 24
第四章 研究分析 37
第五章 結論與建議 43
第一節 研究成果討論 43
第二節 未來研究方向 44
參考文獻 45
一、中文部份 45
二、英文部份 46
附錄一 弱點函式測試程式 48
附錄二 自動安裝執行檔 (auto_run.bat) 50

表 次
表 2-3-1 弱點嚴重性等級類別 17
表 2-3-2 常用的RATS參數功能表 18
表 2-3-3 常用的ITS4參數功能表 19
表 2-3-4 靜態檢測工具特性 20
表 2-3-5 靜態檢測軟體的優、缺點比較分析 21
表 4-1-1 弱點函式檢測結果 38
表 4-1-2 弱點函式檢測結果整理 39

圖 次
圖1-1-1 弱點漏洞報告 CERT/CC 2000—2006 2
圖2-1-1 緩衝區溢位部份程式碼 5
圖2-1-2 競賽問題部份程式碼 6
圖2-1-3 存取控制問題部份程式碼 8
圖2-1-4 隨機亂數問題部份程式碼 9
圖2-1-5 誤用密碼學部份程式碼 10
圖2-1-6 輸入驗證問題部份程式碼 11
圖2-1-7 通行碼問題部份程式碼 12
圖2-2-1 故障注入系統 14
圖2-2-2 潛在緩衝區溢位攻擊 15
圖2-2-3 stackguard防止堆疊粉碎攻擊 15
圖3-1-1 靜態原始程式碼分析架構 23
圖3-2-1 建立新專案 26
圖3-2-2 建立新專案名稱 27
圖3-2-3 編譯程式 27
圖3-2-4 編譯後產生的錯誤訊息 28
圖3-2-5 執行程式 29
圖3-2-6 編譯和執行按鈕 29
圖3-2-7 執行偵錯器 30
圖3-2-8 程式執行至游標處 31
圖3-2-9 新增監看式 31
圖3-2-10 在Dev-Cpp 的工具列增加安全檢測選項 32
圖3-2-11 安全檢測工具中文化的參數選項 33
圖3-2-12 安全檢測工具中文化之檢測結果 33
圖3-2-13 安全檢測工具之求助檔 34
圖3-2-14 檢測參數嚴重等級1測試結果 34
圖3-2-15 檢測參數嚴重等級5測試結果 35
圖3-2-16 檢測參數以XML為輸出格式 35
圖3-2-17 檢測參數以html為輸出格式 36
圖3-2-18 檢測資料夾內所有C和C++檔案 36
圖4-1-1  試測程式片段 40
圖4-1-2  以RATS檢測程式片段結果 41
圖4-1-3  以ITS4檢測程式片段結果 41
圖4-1-4  以Splint檢測程式片段結果 42
圖4-1-5  以RATS和ITS4綜合分析檢測結果 42
一、中文部份
Howard,M. & LeBlanc,D.C.(2006) 著,林正平譯 (民95)。防駭程式撰寫實務 (初版)。臺北市:文魁資訊。
Levine,J.R. ,Mason,T. & Brown,D.(2004) 著,林偉豪譯(民93)。Lex & yacc 中譯本。臺北市:歐萊禮。
Viega,J. & McGraw,G.(2002)著,高宏傑譯 (民91)。建立零缺點的安全軟體系統 (初版)。臺北市:台灣培生教育。
孫宇安(民90),採用Color Petri Net 方法偵測程式原始碼緩衝區溢位問題,國立中央大學資訊管理學系碩士論文,桃園縣。
賴怡良(民95),快速偵測與恢復軟體溢位錯誤之方法,國立新竹交通大學資訊科學與工程研究所碩士論文,新竹市。

二、英文部份
Baratloo,A.,Tsai,T.& Singh,N.(1999) Libsafe: Protecting Critical Elements of Stacks, Retrieved December 25, 1999, from the World Wide Web: http://www.linuxforum.net/books/libsafe.pdf
CERT/CC(2007).http://www.cert.org/stats/cert_stats.html
Cowan,C.,Wagle,P.,Pu,C.,Beattie,S.&Walpole,J.(2000).Buffer Overflows : Attacks and Defens for the Vulerability of the Decade. Retrieved June 16 2007, from the World Wide Web: http://ieeexplore.eee.org/iel5/8932/28288/0126493 5.pdf
Dev-Cpp(2007).http://www.bloodshed.net/dev/
Fortify(2007).Fortify Taxonomy: Software Security Errors , Retrieved June 16 2007, from the World Wide Web: http://www.fortifysoftware. com/vulncat/
Hsueh,M.C.,Tsai,T.K.,IyerR.K.(1997).Fault Injection Techni- ques and Tools, IEEE Computer, Apr. 1997, vol. 30,pp.75~82.
ITS4(2007).http://www.cigital.com/its4
Koziol, J. ,Litchfield, D. ,Aitel, D. ,Anley, C. ,Eren, S. ,Mehta, N. & Hassell, R. (2004).The Shellcoder's Handbook : Discovering and Exploiting Security Holes, Hungry Minds
Microsoft TechNet. (2002). Microsoft Security Response
Center Security Bulletin Severity Rating System,
Retrieved November, 2002, from the World Wide Web:
http://www.microsoft.com/technet/security/bulletin
/rating.mspx
Nazario,J.(2002).Source Code Scanners for Better Code, Retrieved January 28 2002, from the World Wide Web:http://www.linuxjournal.com/ article/5673
RATS(2007)http://www.fortifysoftware.com/security-resources /rats.jsp
Seacord,R. C.(2005).Secure Coding in C and C++, Addi- son Wesley
Secure Software, Inc.(2004).How the Right Mix of Static Analysis and Dynamic Analysis Technologies Can Strengthen Application Security. Retrieved June 16 2007, from http://www. securesoftware.com/ resources/wp.html
Splint(2007).http://splint.org/
Wilander,J. & Kamkar,M.(2002).A Compareson of Publicly Available Tools for Static Intrusion Prevention, In the Proceedings of the 7th Nordic Workshop on Secure IT Systems (Nordsec 2002), in Karlstad, Sweden. Pages 68-84. November 7-8, 2002.
Wilander,J. & Kamkar,M.(2003).A Comparison of Publicly Available Tools for Dynamic Buffer Overflow Prevention, In Proceedings of the 10th Network and Distributed System Security Symposium (NDSS'03), in San Diego, California. Pages 149-162. February 5-7, 2003.
QRCODE
 
 
 
 
 
                                                                                                                                                                                                                                                                                                                                                                                                               
第一頁 上一頁 下一頁 最後一頁 top