資源描述:
《c語言安全編譯器研究》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、電子科技大學(xué)碩士學(xué)位論文C語言安全編譯器研究姓名:高攀申請學(xué)位級別:碩士專業(yè):計(jì)算機(jī)軟件與理論指導(dǎo)教師:陳景春20050315電子科技大學(xué)碩士學(xué)位論文C語言安全編譯器研究摘要隨著計(jì)算機(jī)的應(yīng)用越來越廣泛以及互聯(lián)網(wǎng)的不斷擴(kuò)大,信息安全也越來越重要?;ヂ?lián)網(wǎng)眾多的系統(tǒng)面臨著越來越多的安全挑戰(zhàn),其最大的挑戰(zhàn)源于緩沖溢出攻擊,而此類攻擊的主要形式就是堆棧溢出攻擊。緩沖溢出攻擊原因在于C/C++程序缺乏相應(yīng)的安全機(jī)制和程序的漏洞。堆棧溢出在緩沖溢出中相對出現(xiàn)的較多,而且堆棧溢出攻擊程序也比較容易實(shí)現(xiàn),所以尤其需要要重點(diǎn)關(guān)注。堆棧溢出利用程序中邊界條件
2、檢查的不嚴(yán)謹(jǐn),在修改某個(gè)堆棧上的局部變量的過程中,同時(shí)完成注入攻擊代碼和更改程序運(yùn)行流程的任務(wù)。緩沖溢出攻擊可能得到遠(yuǎn)程訪問的系統(tǒng)管理員權(quán)限,在眾多攻擊方式中尤為危險(xiǎn)。目前已有眾多的方法用來防御堆棧溢出攻擊,大致從程序編譯角度,操作系統(tǒng)內(nèi)核,cpu體系結(jié)構(gòu)等方面著手。影響較大的如Stackguard,通過在堆棧中放置Canary來檢測堆棧是否被溢出;如stackshield通過保存堆棧中的返回地址保證程序流程正確:如1ibsafe通過提供安全的庫替換標(biāo)準(zhǔn)的不安全的庫;soloariS和linux使用的不可執(zhí)行堆棧;等等。這些方式方法,為
3、后續(xù)的研究開拓了思路。我們的方案試圖從編譯角度著手,使用了開源軟件GCC作為試驗(yàn)起點(diǎn)。所以簡要介紹了GCC的前端的內(nèi)容。GCC前端目的是根據(jù)源代碼生成AST語法分析樹,再根據(jù)AST樹,生成RTL中間表示。最后把RTL中間表示交給GCC后端進(jìn)一步處理。最后,作為本文的最終目的,我們提出了兩種分離數(shù)據(jù)和控制的堆棧程序運(yùn)行時(shí)環(huán)境。并進(jìn)一步分析了這種結(jié)構(gòu)的安全性,兼容性等問題。最后,簡要說明了GCC中如何修改并實(shí)現(xiàn)這樣的分離堆棧的程序運(yùn)行時(shí)環(huán)境。關(guān)鍵詞:c語言,緩沖區(qū)溢出,堆棧溢出,GCC,RTL電子科技大學(xué)碩士學(xué)位論文C語言安全編譯器研究Ab
4、stractAscomputerandInternethavebeenwidelyused,thesystemsecuritybecomesmoreandmoreimportant.OnInternetmoreandmoresystemsfacethebigchallengeofsecurity,mostofwhichcomefromtheattacksofbufferoverflows,andthemostpopularwaystoattackthesystemarethroughstackorheapoverflows.Thelac
5、kofC/C++programsecurityorprogrammez‘7scareisthereasonofbufferoverflowattacks.SincetheStackoverflowsattackcaneasilybeperformedandbeverypopularinbufferoverflowattack,weshouldpaycloseattentiononit.Thiskindofattacksisgenerallyachievedbythecarelessnessofborderconditioncheckth
6、roughmodifyingtheprocessoflocalvariablesinstacktoinjectattackcodesandthuschangetheoperationprocedureofprogram.Itisthemostdangerousattackjustbecauseofthepossibilityofobtainstheauthorityofremotesystemadministrators.Inrecent,therearemanymethodstopreventstackoverflowattacksr
7、oughlybyprogramcompile,OScore,StructureofCPUetc.Afewofthemhavethegreatimpact,suchasStackguardwhichputCanarytodetectthestackoverflow:Stackshieldwhichsavethereturnaddresstoguaranteethecorrectoperationprocedure:Libsafewhichreplacetheinsecuritylibrarybythesecurityone:Soloari
8、sandLinuxwhichprovidethenotexecutablestackandsoon.Theyopenupthelaterthinking.Wewilltrytosolvetheproblem