青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

旅途

如果想飛得高,就該把地平線忘掉

緩沖區(qū)溢出原理淺析以及防護(hù)

摘要】 本文從程序語言本身的缺陷,不夠健壯的角度出發(fā),詳細(xì)分析了緩沖溢出攻擊的基本原理,描述了黑客利用緩沖區(qū)漏洞進(jìn)行系統(tǒng)攻擊的一般過程,最后又簡(jiǎn)單討論了幾種防范溢出攻擊的策略.
 
【關(guān)鍵字】 緩沖溢出; 程序跳轉(zhuǎn); 長跳轉(zhuǎn)緩沖區(qū);
 
近些年來,黑客攻擊事件頻繁發(fā)生,尤其是緩沖區(qū)溢出漏洞攻擊占據(jù)了網(wǎng)絡(luò)遠(yuǎn)程攻擊的絕大多數(shù). 因?yàn)檫@類攻擊可以使任何人獲得系統(tǒng)主機(jī)的完全控制權(quán),所以它代表了一類十分嚴(yán)重的攻擊.
緩沖區(qū)溢出攻擊之所以常見,是因?yàn)樗R娏?且易于實(shí)現(xiàn), 這完全是軟件發(fā)展史上不可避免的問題. 緩沖區(qū)漏洞是程序員在編寫程序時(shí)未檢查內(nèi)存空間,導(dǎo)致內(nèi)存泄漏而引起,以下我們先來簡(jiǎn)單了解一下它:
 
一、 認(rèn)識(shí)緩沖區(qū)溢出
緩沖溢出是一種系統(tǒng)攻擊的手段,借著在程序緩沖區(qū)編寫超出其長度的代碼,造成溢出,從而破壞其堆棧,使程序執(zhí)行攻擊者在程序地址空間中早已安排好的代碼,以達(dá)到其目的. 一般黑客攻擊root程序,然后執(zhí)行類似exec(sh)的代碼獲得root的shell. 它造成了兩種嚴(yán)重的后果:
1.     覆蓋堆棧的相鄰單元. 使程序執(zhí)行失敗, 嚴(yán)重可導(dǎo)致系統(tǒng)崩潰.
2.     可執(zhí)行認(rèn)識(shí)指令代碼,最后獲得系統(tǒng)root特級(jí)權(quán)限.
現(xiàn)在很多人使用C或C++編寫程序,但同時(shí)太多的人忽略了對(duì)其的數(shù)組邊界檢查和類型安全檢查,所以現(xiàn)今的大多數(shù)溢出都和C語言有關(guān), C語言中中有可能產(chǎn)生溢出的函數(shù)有:char s[n],strlen(s),strcpy(dst, src),p=malloc(n),strcat(s,suffix)等等,所以我們要盡可能地避免使用這些危險(xiǎn)函數(shù),即使使用,也一定要做嚴(yán)格的檢查.為容易理解,我們來看一個(gè)簡(jiǎn)單的程序:
 
/*
 * example.c
 * written by Devil_Angel <Devil___Angel@126.com>
 * gcc –o example example.c
                */
void func(char * str)
{
char buf[8];
strcpy(buf, str);
printf(“%sn”,buf);
}
int main(int argc, char * argv[])
{
If(argc >1)
                            Func(argv[1]);
}//end of main
 
該程序在輸入時(shí),并沒有對(duì)str的大小進(jìn)行檢查便直接送入數(shù)組buf,一旦輸入超出buf長度,就產(chǎn)生了最簡(jiǎn)單的溢出,當(dāng)然象這樣的溢出一般只會(huì)出現(xiàn)Segmentation fault錯(cuò)誤,而不能達(dá)到攻擊的目的. 這里并沒有進(jìn)一步深入分析,只是讓大家對(duì)溢出有一個(gè)大概的概念,在以后將會(huì)對(duì)其做進(jìn)一步的分析.
 
二、 緩沖區(qū)溢出漏洞攻擊方式
最常見的攻擊手段是通過制造緩沖區(qū)溢出使程序運(yùn)行一個(gè)用戶shell,在通過shell執(zhí)行其他命令. 若該程序輸入root且有suid權(quán)限的話,攻擊者就獲得了一個(gè)有root權(quán)限的shell,此時(shí)就可以對(duì)系統(tǒng)進(jìn)行隨意操作了.下面我來介紹一下如何控制程序跳轉(zhuǎn)到攻擊代碼:
l         打開記錄(Activation Records)
在程序中,每一個(gè)函數(shù)調(diào)用發(fā)生,在堆棧中會(huì)留下一個(gè)Activation Records,它包括函數(shù)結(jié)束時(shí)返回的地址,攻擊者通過溢出這些自動(dòng)變量,使地址指向攻擊程序代碼. 通過改變程序的返回地址,當(dāng)調(diào)用結(jié)束時(shí),程序就跳到攻擊者設(shè)定的地址,而不是原地址.這類溢出被稱為 stacks mashing attack.
 
l         函數(shù)指針(Function Pointers)
void(*foo)(1)定義一個(gè)返回函數(shù)指針的變量foo, Function Pointers可用來定位任何地址空間. 所以只需在任何空間內(nèi)的Function Pointers附近找到一個(gè)能溢出的緩沖區(qū),然后溢出它來改變Function Pointers. 在某時(shí)刻,當(dāng)程序通過Function Pointers調(diào)用函數(shù)時(shí),程序的流程就按黑客的意圖實(shí)現(xiàn)了(典型的溢出程序有:Linux下的Superprobe程序).
 
l         長跳轉(zhuǎn)緩沖區(qū)(Longjmpbuffers)
在C語言中,包含了一個(gè)簡(jiǎn)單的檢驗(yàn)/恢復(fù)系統(tǒng),稱為setjmp/longjmp.即在檢驗(yàn)點(diǎn)設(shè)定setjmp(buffer),用longjmp(buffer)恢復(fù). 但若攻擊者能夠進(jìn)入緩沖區(qū)空間,則longjmp(buffer)實(shí)際上跳轉(zhuǎn)到攻擊者的程序代碼. 像Function Pointers, longjmp緩沖區(qū)能指向任何地方,所以攻擊者要做的就是找到一個(gè)可供溢出的buffer即可.
 
最常見的是在一個(gè)字符串中綜合了代碼植入和打開記錄. 攻擊者定位或提供溢出的自動(dòng)變量,然后向程序傳一個(gè)超大字符串,在引發(fā)buffer溢出改變打開記錄時(shí)植入程序代碼,由此達(dá)到入侵系統(tǒng)的目的.
 
三、 應(yīng)對(duì)遠(yuǎn)程緩沖區(qū)溢出攻擊
對(duì)付緩沖區(qū)溢出攻擊的方法不少,但常見的也是最重要有一下四種方式:
1.     編寫嚴(yán)格的代碼
編寫正確嚴(yán)格的代碼是一件有意義但非常耗時(shí)的工作, 有C程序設(shè)計(jì)或匯編語言經(jīng)驗(yàn)的人會(huì)深有體會(huì),盡管軟件的發(fā)展經(jīng)歷了不短的時(shí)間了,但漏洞程序依舊存在,因此人們開發(fā)了一些工具和技術(shù)來幫助經(jīng)驗(yàn)不足的程序員編寫安全的程序.例如高級(jí)查錯(cuò)工具,如faultinjection等. 這些工具的目的在于通過人為隨機(jī)地產(chǎn)生一些緩沖區(qū)溢出來尋找代碼的安全漏洞.但由于C語言的特點(diǎn),這些工具不可能找出所有的緩沖區(qū)溢出漏洞. 所以,偵錯(cuò)技術(shù)只能用來減少緩沖區(qū)溢出漏洞,并不能完全地消除其存在. 錯(cuò)誤的消除還是要靠程序員來編寫.
 
2.     不可執(zhí)行堆棧數(shù)據(jù)段
通過操作系統(tǒng)時(shí)數(shù)據(jù)斷地址空間不可執(zhí)行,從而使得攻擊者不能執(zhí)行被植入的攻擊代碼,但攻擊者不一定是非要植入攻擊代碼來實(shí)現(xiàn)緩沖區(qū)溢出的攻擊,所以這種方法還是存在很多弱點(diǎn)的.
 
3.     利用程序編譯器的邊界檢查
植入代碼是引起緩沖區(qū)溢出的一個(gè)方面,改變程序執(zhí)行流程是另一方面. 而利用編譯器邊界檢查則使得緩沖區(qū)溢出不可能實(shí)現(xiàn),從而完全消除了緩沖區(qū)溢出的威脅,但相對(duì)而言代價(jià)較大.
 
4.     指針完整性檢查
程序指針完整性檢查和邊界檢查略微不同. 程序指針完整性檢查在程序指針被改變之前檢測(cè).因此,即便攻擊者成功改變了程序的指針,也會(huì)因先前檢測(cè)到指針的改變而失效,這樣雖然不能解決所有問題,但它的確阻止了大多數(shù)的緩沖區(qū)攻擊,而且這種方法在性能上有很大的優(yōu)勢(shì),兼容性也很好.
 
從長遠(yuǎn)來看,要想從根本上消除緩沖區(qū)溢出攻擊,需要對(duì)編程模式或CPU體系的基礎(chǔ)性修改才能解決問題. 不過,隨著信息技術(shù)的飛速發(fā)展和人們對(duì)網(wǎng)絡(luò)安全的重視程度不斷加深, 緩沖區(qū)溢出攻擊總會(huì)有解決的一天.
【參考文獻(xiàn)】
[1] 黑客大曝光. [美]Joel Scambray,Stuart McClure,George Kurtz著.
[2] The Art and Science of C. [美]Eric S.Roberts,斯坦福大學(xué)著.
       [3]緩沖區(qū)溢出原理及防護(hù). 中科院研究生院 蔣濤著.

posted on 2007-07-22 03:18 旅途 閱讀(263) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C/C++

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩一区二区三区在线视频| 亚洲精品影院在线观看| 日韩一区二区久久| 一区二区欧美日韩| 国产美女一区| 欧美黄色片免费观看| 久久久之久亚州精品露出| 欧美在线日韩精品| 99在线精品观看| 欧美在线视频全部完| 一本色道久久综合亚洲91| 欧美一级夜夜爽| 亚洲欧洲综合| 午夜精品久久久久久久白皮肤| 亚洲国产精选| 亚洲欧美日韩在线一区| 亚洲精品精选| 久久精品99久久香蕉国产色戒| 在线亚洲欧美| 欧美福利精品| 免费观看成人网| 国产区二精品视| 亚洲精品国产品国语在线app| 国产精品一区二区三区观看 | 久久久精品2019中文字幕神马| 狼狼综合久久久久综合网| 亚洲欧美日韩系列| 欧美激情一区二区| 蜜臀va亚洲va欧美va天堂| 国产精品夜夜夜| 一区二区三区精品| 一区二区三区成人| 欧美**字幕| 欧美暴力喷水在线| 一区二区在线免费观看| 亚洲欧美国产精品专区久久| 在线视频欧美一区| 欧美日韩mp4| 亚洲国产精品成人va在线观看| 国产一区二区三区免费不卡| 亚洲视频精选在线| 亚洲欧美国产制服动漫| 欧美午夜视频在线| 一区二区三区国产| 亚洲影院免费| 国产精品福利网| 99香蕉国产精品偷在线观看| 99精品欧美| 欧美日韩理论| 一本色道久久综合亚洲精品小说| 午夜精品亚洲| 欧美一区二区精品在线| 欧美亚韩一区| 欧美一区二区精品久久911| 99精品热视频| 亚洲一区二区精品在线观看| 欧美日韩国产综合一区二区| 91久久夜色精品国产网站| 亚洲日本成人在线观看| 欧美激情一区二区三区不卡| 亚洲国产精品一区二区第四页av| 亚洲人体一区| 欧美极品一区| 一区二区三区国产在线| 午夜精品久久久久久久99水蜜桃 | 午夜精品亚洲一区二区三区嫩草| 欧美午夜宅男影院| 亚洲一区二区三区在线| 久久国产精品久久久久久| 国产亚洲精品一区二555| 久久九九国产精品| 亚洲国产成人高清精品| 99精品视频免费观看| 国产精品多人| 久久成人人人人精品欧| 欧美电影专区| 亚洲一区免费网站| 韩国精品久久久999| 欧美96在线丨欧| 一区二区三区久久| 久久蜜臀精品av| 亚洲精品中文字幕女同| 国产精品久久久久一区二区| 久久成人综合视频| 亚洲欧洲精品一区二区三区| 亚洲一区二区在线看| 国产亚洲欧美aaaa| 欧美69视频| 午夜精品影院| 亚洲黄色在线看| 亚洲欧美综合另类中字| 在线视频观看日韩| 国产精品久久婷婷六月丁香| 久久综合九色综合久99| 一区二区福利| 免播放器亚洲一区| 亚洲欧美亚洲| 久久久91精品国产一区二区三区| 欧美高清免费| 欧美亚洲综合在线| 日韩视频免费观看| 国产日韩欧美在线播放不卡| 欧美激情一区二区三区四区| 午夜免费在线观看精品视频| 亚洲国产小视频| 久久精品一区二区三区四区 | 久久狠狠亚洲综合| 99热免费精品| 亚洲大胆美女视频| 久久九九精品| 亚洲欧美日韩系列| 中日韩男男gay无套 | 久久99伊人| 一本一本久久| 亚洲人成毛片在线播放| 久久伊人免费视频| 欧美在线观看视频| 亚洲一区二区三区中文字幕在线| 亚洲成在人线av| avtt综合网| 欧美大片在线看免费观看| 亚洲美女黄色| 亚洲高清不卡一区| 国内精品免费午夜毛片| 国产精品日韩电影| 欧美图区在线视频| 欧美日韩国产欧| 欧美激情精品久久久久久蜜臀| 欧美亚洲综合另类| 亚洲欧美国产高清va在线播| 亚洲无限av看| 中文有码久久| 亚洲午夜av在线| 亚洲天堂av图片| 亚洲一区二区三区欧美| 亚洲一区二区三区四区中文| 亚洲香蕉伊综合在人在线视看| 一区二区三区久久久| 亚洲一区黄色| 亚洲欧美日韩综合国产aⅴ| 亚洲一区免费看| 亚洲欧美视频在线观看| 午夜精品久久久久久久久久久久| 午夜国产一区| 久久久精品tv| 免费看精品久久片| 欧美精品一区二区三区久久久竹菊| 久久精品国产亚洲5555| 久久成年人视频| 久久国内精品视频| 久久性色av| 欧美国产日韩a欧美在线观看| 欧美国产精品v| 亚洲国产成人在线| 亚洲精品在线观| 中国女人久久久| 亚洲在线免费| 欧美在线一二三四区| 久久久久久有精品国产| 玖玖玖免费嫩草在线影院一区| 欧美成人免费在线视频| 欧美日韩国产精品专区| 国产精品嫩草久久久久| 国产在线精品一区二区中文| 影音先锋成人资源站| 亚洲人成毛片在线播放女女| 亚洲午夜av在线| 欧美在线免费观看亚洲| 美女成人午夜| 一本色道久久88精品综合| 午夜精品福利视频| 狂野欧美激情性xxxx| 欧美日韩免费精品| 国产亚洲亚洲| 亚洲精选久久| 欧美亚洲一区二区在线观看| 久久综合九九| 亚洲乱码久久| 久久高清福利视频| 欧美成人精品h版在线观看| 国产精品福利在线观看网址| 激情视频亚洲| 亚洲免费中文字幕| 欧美黄色aaaa| 亚洲精品一品区二品区三品区| 亚洲午夜精品久久久久久app| 久久久7777| 欧美日本精品| 激情综合视频| 亚洲视频欧美在线| 最近看过的日韩成人| 亚洲综合视频一区| 欧美激情区在线播放| 亚洲精品美女免费| 久久激情视频| 国产精品成人va在线观看| 亚洲国产视频一区| 久久九九热re6这里有精品| 99精品欧美一区二区三区| 麻豆av福利av久久av|