亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        圖書(shū)館局域網(wǎng)緩沖區(qū)溢出漏洞原理分析

        2012-10-13 13:19:56黃惠烽
        關(guān)鍵詞:字符串子程序緩沖區(qū)

        黃惠烽

        (四川民族學(xué)院 圖書(shū)館,四川 康定 626001)

        圖書(shū)館局域網(wǎng)緩沖區(qū)溢出漏洞原理分析

        黃惠烽

        (四川民族學(xué)院 圖書(shū)館,四川 康定 626001)

        隨著數(shù)字圖書(shū)館的發(fā)展,圖書(shū)館局域網(wǎng)的安全工作越來(lái)越受到大家的重視,近年出現(xiàn)的緩沖區(qū)溢出漏洞也成為了網(wǎng)絡(luò)攻擊中最常用、最典型的攻擊漏洞.本文通過(guò)講述緩沖區(qū)溢出漏洞的原理,介紹了預(yù)防緩沖區(qū)溢出漏洞的相關(guān)方法,使得圖書(shū)館局域網(wǎng)盡量避免緩沖區(qū)溢出漏洞的攻擊.

        局域網(wǎng);緩沖區(qū)溢出漏洞;原理;預(yù)防

        隨著數(shù)字圖書(shū)館的不斷發(fā)展,圖書(shū)館局域網(wǎng)的安全也越來(lái)越受到人們的重視,圖書(shū)館管理系統(tǒng)中的讀者信息、圖書(shū)借還信息、藏書(shū)目錄和電子資源數(shù)據(jù)等信息都是圖書(shū)館的核心數(shù)據(jù),一旦這些數(shù)據(jù)遭遇丟失或損壞將會(huì)嚴(yán)重影響圖書(shū)館各部門(mén)的工作,嚴(yán)重時(shí)將導(dǎo)致圖書(shū)館工作的癱瘓.因此圖書(shū)館局域網(wǎng)安全工作不容刻緩.

        現(xiàn)在的很多操作系統(tǒng)和應(yīng)用軟件或多或少都存在著各種安全隱患,從UNIX到Microsoft操作系統(tǒng)無(wú)一例外,只不過(guò)是這些系統(tǒng)的漏洞被發(fā)現(xiàn)時(shí)間的早晚不同,對(duì)系統(tǒng)造成的危害程度不同而已.作為網(wǎng)絡(luò)管理員應(yīng)該熟悉這些漏洞,并掌握這些漏洞的原理還和補(bǔ)救方法.

        因編程缺陷或程序設(shè)計(jì)語(yǔ)言中的問(wèn)題造成的緩沖區(qū)溢出問(wèn)題是一種廣泛存在的安全漏洞,人們對(duì)緩沖區(qū)溢出的漏洞早已有所了解,這方面的漏洞在圖書(shū)館局域網(wǎng)中也是時(shí)有發(fā)生的,但是直到近幾年,才引起了人們的重視,因此研究圖書(shū)館局域網(wǎng)中的緩沖區(qū)溢出漏洞非常必要.

        1 緩沖區(qū)溢出簡(jiǎn)介

        緩沖區(qū)溢出英文叫Buffer overflow,它是一個(gè)非常危險(xiǎn)而又常見(jiàn)的漏洞,它能在windows、Unix等操作系統(tǒng)存在,也可以在SQL sever、日歷程序、計(jì)算器程序和游戲程序等應(yīng)用軟件中存在.1988年發(fā)生的Morris“蠕蟲(chóng)”事件就是利用緩沖區(qū)溢出漏洞的“杰作”之一,著名紅色代碼網(wǎng)絡(luò)病毒是根據(jù)微軟提供的因特網(wǎng)服務(wù)軟件IIS4.0、5.0中的一個(gè)緩沖區(qū)溢出漏洞傳播的.據(jù)統(tǒng)計(jì),緩沖區(qū)溢出漏洞占了已確認(rèn)漏洞的20%.這種漏洞被認(rèn)為是輸入驗(yàn)證漏洞的子集,輸入驗(yàn)證漏洞則幾乎占了已確認(rèn)漏洞的50%.對(duì)于軟件使用者來(lái)說(shuō),緩沖區(qū)溢出是最可怕的漏洞.它經(jīng)常會(huì)引起網(wǎng)絡(luò)蠕蟲(chóng)、有助于利用的能動(dòng)性的工具和入侵嘗試.但是,我們可以這樣說(shuō),發(fā)生緩沖區(qū)溢出的基本都是那些結(jié)構(gòu)比較差的軟件程序產(chǎn)品,它們基本上都存在一些不足之處.那么什么是緩沖區(qū)溢出呢?緩沖區(qū)溢出為什么能產(chǎn)生這么大的危害呢?

        緩沖區(qū)溢出顧名思義就是緩沖區(qū)太小,裝不了足夠多的數(shù)據(jù),多出來(lái)的部分跑出來(lái)了.產(chǎn)生緩沖區(qū)溢出的主要原因是,當(dāng)向一個(gè)有限的緩沖區(qū)拷貝了過(guò)長(zhǎng)的字符串時(shí),這將導(dǎo)致過(guò)長(zhǎng)的字符串覆蓋相鄰的存儲(chǔ)單元,從而引起程序運(yùn)行失敗,個(gè)別人甚至可以惡意利用這種漏洞去執(zhí)行任意命令,取得系統(tǒng)的特權(quán),從而進(jìn)行系統(tǒng)的攻擊和破壞.

        2 緩沖區(qū)溢出漏洞的原理

        我們需要知道什么是緩沖區(qū),一般來(lái)說(shuō),緩沖區(qū)就是分配的一塊存儲(chǔ)空間,其中可以存儲(chǔ)某種類型的文本或者數(shù)據(jù).程序員利用緩沖區(qū)的一塊或多塊數(shù)據(jù)提供系統(tǒng)預(yù)先制定的空間.例如,用C語(yǔ)言編寫(xiě)程序時(shí)會(huì)經(jīng)常用到緩沖區(qū)來(lái)存放用戶輸入的姓名,程序員必須首先判斷姓名緩沖區(qū)要求有多少字符,該字段允許多少字符,或者用戶在給定的字段可以敲多少下鍵,這稱為字符緩沖區(qū)的大小.

        一個(gè)程序通常由多個(gè)子程序(模塊)組成,程序規(guī)模越大,模塊就越多.當(dāng)對(duì)一個(gè)程序編譯以后,在內(nèi)存中劃分三種區(qū)域,分別存放程序代碼區(qū)、數(shù)據(jù)區(qū)和堆棧區(qū).其中程序中定義的各種變量和緩沖區(qū)存放在數(shù)據(jù)區(qū),調(diào)用子程序的返回地址存放在堆棧區(qū),當(dāng)控制從子程序返回時(shí),按照堆棧頂指示的地址返回到主控程序.

        在利用C語(yǔ)言編寫(xiě)程序時(shí)一般要用到輸入函數(shù)來(lái)獲得用戶輸入的姓名.當(dāng)用戶試圖將超過(guò)緩沖區(qū)能夠處理的更多的姓名字符輸入到緩沖區(qū)時(shí),程序中如果沒(méi)有緩沖區(qū)越界檢查機(jī)制,當(dāng)超長(zhǎng)的字符串輸入后,就會(huì)產(chǎn)生緩沖區(qū)的溢出.例如,如果程序員編寫(xiě)的程序中定義:char name[15],當(dāng)輸入超過(guò)15個(gè)字節(jié)長(zhǎng)的字符串后,就會(huì)溢出字符緩沖區(qū).

        在C語(yǔ)言中它是假定了緩沖區(qū)的長(zhǎng)度是足夠的,所以數(shù)組是不進(jìn)行邊界檢查的.但是實(shí)踐中往往會(huì)出現(xiàn)特殊情況,當(dāng)向局部變量拷貝了一個(gè)超過(guò)定義長(zhǎng)度的字符串時(shí),這時(shí)候其他的變量空間將會(huì)被超出的字符串所覆蓋,這時(shí)變量就會(huì)出現(xiàn)異常情況.另一種情況下,由于超出的字符串覆蓋了子程序的返回地址,子程序返回時(shí)便可能轉(zhuǎn)向一個(gè)未知的地址,從而使程序發(fā)生錯(cuò)誤.

        讓我們來(lái)看看另一個(gè)例子:

        這個(gè)程序的函數(shù)明顯有一個(gè)內(nèi)存緩沖區(qū)編碼錯(cuò)誤.這個(gè)函數(shù)出現(xiàn)錯(cuò)誤的主要原因,一是因?yàn)闆](méi)有進(jìn)行邊界檢查就復(fù)制了字符串,二是錯(cuò)誤地使用了strcpy()而沒(méi)有使用strncpy().所以運(yùn)行這個(gè)程序就會(huì)產(chǎn)生段錯(cuò)誤,strcpy()將*str的內(nèi)容(lars[])復(fù)制到bf[]里,到在字符串中碰到一個(gè)空字符.顯然,*s比 bf[]大得多,bf[]只有26個(gè)字節(jié),而 *s有356個(gè)字節(jié)的內(nèi)容.當(dāng)程序執(zhí)行到這個(gè)地方時(shí),bf之后的堆棧中330個(gè)字節(jié)將會(huì)全被覆蓋.當(dāng)函數(shù)返回時(shí),程序嘗試讀取返回地址的下一個(gè)指令,此時(shí)就會(huì)得到一個(gè)段錯(cuò)誤.

        在網(wǎng)絡(luò)上最常見(jiàn)的是通過(guò)制造緩沖區(qū)溢出使程序運(yùn)行一個(gè)用戶shell,再通過(guò)shell執(zhí)行其它命令.如果該程序?qū)儆趓oot且有suid權(quán)限的話,攻擊者就獲得了一個(gè)有root權(quán)限的shell,可以對(duì)系統(tǒng)進(jìn)行任意操作了.在執(zhí)行溢出的電腦打開(kāi)DOS(shell).只要很簡(jiǎn)單的一段程序:

        只要到這里就獲得shell了,再通過(guò)shell執(zhí)行其它命令,黑客們可以激動(dòng)地?fù)碛辛艘慌_(tái)“肉雞”,可以對(duì)這臺(tái)電腦為所欲為了.

        下面我們?cè)賮?lái)看一下緩沖區(qū)溢出漏洞的攻擊過(guò)程:

        首先對(duì)ROOT程序進(jìn)行試探性攻擊,然后執(zhí)行類似exec(sh)的執(zhí)行代碼來(lái)獲得具有root權(quán)限的shell.此步可再分二步走:a.植入一定的代碼到程序中b.初始化內(nèi)存和寄存器,使程序跳轉(zhuǎn)到預(yù)定的程序中去.步驟如下:

        (1)植入一定的代碼到程序中.當(dāng)攻擊者輸入一個(gè)字符串到被攻擊程序時(shí),這個(gè)字符串會(huì)被放到緩沖區(qū)里去.該字符串的相關(guān)信息就成為了可以運(yùn)行的一些指令序列.在這個(gè)時(shí)候攻擊代碼就可以存放在被攻擊程序的緩沖區(qū)中去.第二種是利用已經(jīng)存在的代碼.前提是攻擊者想要的代碼已經(jīng)在被攻擊的程序中了.這時(shí)候需要完成的任務(wù)是對(duì)代碼參數(shù)的傳遞.

        (2)使程序跳轉(zhuǎn)到預(yù)定的程序中去方法.當(dāng)程序沒(méi)有通過(guò)緩沖區(qū)溢出檢查時(shí),就會(huì)產(chǎn)生一個(gè)相應(yīng)的緩沖區(qū),它會(huì)影響程序的執(zhí)行順序,使得程序跳轉(zhuǎn)到一個(gè)未知的地址.

        3 預(yù)防緩沖區(qū)溢出方法

        目前預(yù)防緩沖區(qū)溢出的方法有很多種,但是基本有三種基本方法:

        (1)通過(guò)給操作系統(tǒng)添加補(bǔ)丁等辦法,一旦某個(gè)漏洞被廠家的補(bǔ)丁程序修補(bǔ)了,那么針對(duì)該漏洞的攻擊手段也將失效,這樣緩沖區(qū)就不能執(zhí)行,攻擊代碼就不能寫(xiě)入操作系統(tǒng).

        (2)編寫(xiě)程序時(shí)要使用正確的方法,避免所拷貝的字符串長(zhǎng)度超過(guò)所定義的字符串長(zhǎng)度,保證代碼的正確性.

        (3)通過(guò)編譯器作為關(guān)卡,實(shí)現(xiàn)邊界檢查,這樣可以實(shí)現(xiàn)保護(hù)緩沖區(qū)的目的,避免了緩沖區(qū)的溢出.

        但是不管編寫(xiě)什么程序,做到?jīng)]有錯(cuò)誤是極其困難的,即使最仔細(xì)的復(fù)查通常也會(huì)遺漏其中一些錯(cuò)誤.開(kāi)發(fā)安全程序的最重要方法之一是最小化特權(quán).那意味著程序的各個(gè)部分應(yīng)該具有它們需要的唯一特權(quán),一點(diǎn)也不能多.這樣即使程序具有缺陷,也可能會(huì)避免將該缺陷轉(zhuǎn)化為安全事故.

        4 結(jié)束語(yǔ)

        緩沖區(qū)溢出漏洞問(wèn)題并不是一個(gè)新問(wèn)題,許多常見(jiàn)的工具都容易受到緩沖區(qū)溢出的攻擊.但入侵者需要很高的技巧才能實(shí)現(xiàn)緩沖區(qū)溢出的攻擊.實(shí)際上也確實(shí)很少入侵者有高超的編程知識(shí)來(lái)做到這一點(diǎn).為了防止系統(tǒng)不受到緩沖區(qū)溢出攻擊,應(yīng)該要求程序員在編程時(shí),限制緩沖區(qū)的輸入字符數(shù),使它們不超過(guò)緩沖區(qū)的定義長(zhǎng)度,這樣就不會(huì)產(chǎn)生緩沖區(qū)溢出問(wèn)題.

        〔1〕Necula G C;Mc Peak S;Weimer W CCured:typesafe retrofitting of legacy code 2002.

        〔2〕U Hermann Overview of pscan source package 2006.

        〔3〕Z Lin;B Mao;L Xie LibsafeXP.A practical and transparent tool for run-time buffer over flow preventions 2006.

        〔4〕Luk C;Cohn R;Muth R Pin:Building Customized Program Analysis Tools with Dynamic Instrumentation 2005.

        〔5〕Taeho Oh.Advanced Buffer Overfiow Expioit [ EB/OL]。 http://postech.edu/ohhara,2004-09.

        〔6〕Vendicator,StackShield:A stack smashing technique protection tool for Linux 2010.

        〔7〕徐啟杰.基于Win32平臺(tái)的漏洞挖掘和漏洞利用技術(shù)研究[J].上海交通大學(xué)(學(xué)位論文),2007.

        G250.73

        A

        1673-260X(2012)05-0131-02

        猜你喜歡
        字符串子程序緩沖區(qū)
        嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫(xiě)方法的設(shè)計(jì)與實(shí)現(xiàn)
        淺談子程序在數(shù)控車編程中的應(yīng)用
        關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
        子程序在數(shù)控車加工槽中的應(yīng)用探索
        西門(mén)子840D系統(tǒng)JOG模式下PLC調(diào)用并執(zhí)行NC程序
        一種新的基于對(duì)稱性的字符串相似性處理算法
        依據(jù)字符串匹配的中文分詞模型研究
        地理信息系統(tǒng)繪圖緩沖區(qū)技術(shù)設(shè)計(jì)與實(shí)現(xiàn)
        電視技術(shù)(2012年1期)2012-06-06 08:13:58
        簡(jiǎn)化編程與子程序嵌套的應(yīng)用
        科技傳播(2011年24期)2011-08-29 05:39:46
        国产绳艺sm调教室论坛 | 在线视频制服丝袜中文字幕| 九九久久精品大片| 99久久精品人妻一区| 国产av久久久久精东av| 日韩a无v码在线播放| 国产中文字幕乱码在线| 久久开心婷婷综合中文| 日本熟妇人妻xxxx| 丁香花在线影院观看在线播放 | 国产亚洲AV无码一区二区二三区| 白白色免费视频一区二区| 亚洲五码av在线观看| 亚洲色一区二区三区四区| 欧美大肥婆大肥bbbbb| 亚洲中文字幕久久精品蜜桃| 久久网站在线免费观看| 国产成人精品无码免费看| 亚洲av成人无码网站大全| 日本免费一区二区三区在线看| 国产香蕉一区二区三区| 在线免费看91免费版.| 国产美女精品一区二区三区| 国产伦精品一区二区三区视| 91蜜桃精品一区二区三区毛片| 亚洲精品中文字幕导航| 免费人成网站在线观看欧美| 亚洲欧美精品91| 女同性恋一区二区三区四区| 亚洲精品人成中文毛片| 国产丝袜长腿美臀在线观看| 久久精品国产亚洲av网站| 风流少妇又紧又爽又丰满| 亚洲老女人区一区二视频| 国产内射一级一片内射视频| 国产欧美日韩综合精品二区| 国产一起色一起爱| 日韩av一区二区不卡| 亚洲精品无amm毛片| 8av国产精品爽爽ⅴa在线观看| 韩国免费一级a一片在线|