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

        ?

        基于C語言的程序安全性分析

        2017-12-27 05:12:22劉莉
        數(shù)碼世界 2017年2期
        關(guān)鍵詞:緩沖區(qū)指針安全性

        劉莉

        遼寧錦州渤海大學信息科學與技術(shù)學院

        基于C語言的程序安全性分析

        劉莉

        遼寧錦州渤海大學信息科學與技術(shù)學院

        安全問題一直都是軟件系統(tǒng)的最大難題,也是大部分系統(tǒng)軟件中都存在的。我們在使用軟件時,經(jīng)常會出現(xiàn)無法預料的問題。漏洞是系統(tǒng)性語言,指的是系統(tǒng)安全問題,它包含的是大部分會造成計算機發(fā)生危險可能性的要素。本文以安全漏洞的涵義、類型和應用作為切入點,主要是對C語言中安全漏洞情況進行介紹。緩沖區(qū)溢出成為安全漏洞較為普遍的威脅手法,在C語言里大部分的緩沖區(qū)溢出的根源都在于規(guī)范的C庫,最嚴重的問題是沒有檢查自變量的存在問題的字符串操作函數(shù)。同時,C語言里面的getenv()、getopt()等系統(tǒng)都不同程度上有著一樣的不可靠因素。通過分析存在的不安全因素,能夠在很大程度上降低發(fā)生錯誤的可能性,從而可以編寫出安全性更高的程序。

        緩沖區(qū)溢出 安全漏洞 系統(tǒng)調(diào)用 攻擊

        1 計算機安全的定義

        有關(guān)計算機的安全性的研究,目前在研究領(lǐng)域已形成新的門類,即計算機安全學。對于計算機安全的概念,要怎么進行界定,國際標準化委員會認為,計算機安全主要是指通過采取定的手段和措施,來保證計算機在應用過程中不受或減少受到不安全因素影響的幾率,其目的是為了維護數(shù)據(jù)處理系統(tǒng)的正常運行。根據(jù)對這個概念的界定我們可以得出計算機安全涉及的范圍是綜合性的、復雜性的,不只是簡單的技術(shù)處理及管理,還是將各門學科的綜合運用。根據(jù)概念的闡述,對其從四方面來理解,也就是實體、軟件、數(shù)據(jù)及運行四個方面的安全性保障。以其涵蓋的內(nèi)容而言,它體現(xiàn)的范圍更廣,與計算機相關(guān)的一切技術(shù)、管理、產(chǎn)品、相關(guān)政策、法律等都為計算機安全的內(nèi)容。

        2 C語言的安全性問題

        2.1 安全編程語言的定義

        安全語言一直以來的概念的都沒有形成,如果想確切了解這個概念,可以利用下面幾個涵義來理解。程序在進行的過程里遇到的問題叫做執(zhí)行錯誤。部分執(zhí)行錯誤對于計算機的威脅是最直接的,當這些錯誤出現(xiàn)的時候,計算機系統(tǒng)當時便無法工作,所反饋的報告得出這個問題出現(xiàn)在哪里及屬于什么問題。這樣的錯誤也叫做可以獲取的錯誤。另外還存在著部分錯誤是無法預料的,這樣的錯誤發(fā)生時,系統(tǒng)的數(shù)據(jù)也受到損害,不過系統(tǒng)卻沒有發(fā)現(xiàn),這樣就不會馬上產(chǎn)生反饋。

        舉個例子來說,在無越界檢查的前提下訪問超越數(shù)組邊界的數(shù)據(jù)。還有一個實例為程序運行時未按原來地址運行,但是它到的新的地址的內(nèi)存可以承載這個程序的運行,這樣在一定時期內(nèi)導致系統(tǒng)就無法發(fā)現(xiàn)程序運行出現(xiàn)了問題,像出現(xiàn)這樣的錯誤就是不可捕獲的錯誤。假設程序運行得好,是不會出現(xiàn)上面闡述的錯誤情況的。根據(jù)以上分析可以看出,C語言具有非安全性,這是因為在C程序運行的時候,也會出現(xiàn)那些不會被系統(tǒng)發(fā)現(xiàn)的錯誤。

        確保語言安全采取最為普遍的措施是給語言有針對性的設計某個類型系統(tǒng)。它是由一組定型規(guī)則組成的,用這些規(guī)則來規(guī)范和約束語言結(jié)構(gòu)。在這些規(guī)則中,定型主要指的是兩個獨立的整型,結(jié)合之后還是以整型的形式來體現(xiàn)。按照語言的類型體系,編譯器和別的程序分析工具主要是借助各種檢查的方式來規(guī)避類型錯誤程序,檢查的方式?jīng)]有限制,可以是靜態(tài)的、動態(tài)的,也可以是兩者的結(jié)合。

        像含表達式3+true。假設是良類型程序(也就是所有類型的錯誤都沒有的程序,還叫做合法程序),它就必須為良行為,那么就叫做這種語言為可靠的。類型的可靠語言從性質(zhì)上來說它就屬于安全語言的范圍。

        基于以上分析可以知道,C語言屬于類型化,但它卻是不安全的。它的不安全性體現(xiàn)在多個方面,還可以從聯(lián)合體類型、含靈活數(shù)組結(jié)構(gòu)體類型等類型都可以看出。

        2.2 從別名角度設計安全C語言

        編程語言里,從語法和語義的層面來說,符號名字在C語言里的名稱為訪問路徑及變量。如果指針類型的變量那么就叫做指針變量,也叫做指針。假設它們同時應用于一個內(nèi)存單元里,那么就叫做他們的另外的名字。在這個單元里,如果對一個變量的名稱進行修改,那么相應的,與之對應的另一個變量的名字也會發(fā)生變化,一般情況下程序員都不愿意面對這樣的問題。所以別名會給程序員帶來一定的困擾,制約其進行理解與分析。一般我們說的別名分析就是利用已經(jīng)產(chǎn)生的信息來判斷這個變量的名字。通常情況下,對于同一類型的變量所對應的指針名稱也是一致的,不過,根據(jù)已有信息對別名進行判斷,一般都不會采用。

        3 C語言的不安全因素

        3.1 緩沖區(qū)溢出

        近十年以來,緩沖區(qū)溢出成為了產(chǎn)生安全漏洞的最普遍存在的一種攻擊類型。而且讓人更為棘手的是,這種漏洞威脅在遠程網(wǎng)絡的攻擊性中占有很大的比例。在發(fā)生這種攻擊行為時,得到的結(jié)果是一名不記名的Internet用戶可以輕松地掌控一臺計算機。這種攻擊性由于其獲得控制權(quán)的人具有隨意性,因此它也成為目前世界上最具攻擊性的不安全因素。

        我們之所以把緩沖區(qū)溢出作為最大的威脅因素,最關(guān)鍵的就是因為它具有普遍性,而且操作簡單,很輕松就會造成威脅和攻擊。同時,它在遠程網(wǎng)絡上具有很強的攻擊性,是因為這種攻擊能夠讓攻擊者為所欲為,想得到什么就得到什么。緩沖區(qū)漏洞在進行程序攻擊時,以植入代碼的形式來行使對計算機的操縱權(quán)。他們控制計算機后,就可以進行完全操作。接下來將具體闡述緩沖區(qū)溢出相關(guān)概念。

        3.2 緩沖區(qū)溢出的概念

        緩沖區(qū)是計算機用來存儲數(shù)據(jù)的,為程序運行過程中計算機里存儲的數(shù)據(jù),計算機的存儲空間是一定的,當程序進行數(shù)據(jù)輸入的過程中,假設計算機的空間已滿,不能再存儲新的數(shù)據(jù),那么這些數(shù)據(jù)將會產(chǎn)生緩沖區(qū)溢出。攻擊者想要進行攻擊時,就可以在這個區(qū)域植入一定字符串,來修改程序。在這個溢出區(qū)如果植入字符串,會造成兩樣后果:其一是字符串太長旁邊的存儲單元也無法儲存,造成程序終止;其二是借助這個漏洞能夠執(zhí)行所有指令,嚴重的情況下能夠獲得系統(tǒng)root特權(quán)。通常會出現(xiàn)緩沖區(qū)溢出最主要是由于程序里未認真查看客戶錄入?yún)?shù)導致的,其實質(zhì)也是對于錄入?yún)?shù)的一個錯誤判斷和分析。

        4 不安全的C語言庫函數(shù)

        4.1 典型字符串處理函數(shù)的安全性分析

        4.1.1 什么是系統(tǒng)調(diào)用

        系統(tǒng)調(diào)用是連接用戶與核心層的一個層級。它用部分即定的模塊,它們創(chuàng)造了路徑,這個路徑主要是滿足用戶與應用程序之間連接的需要。很多的數(shù)據(jù)操作系統(tǒng)里,普通用戶與應用程序完全實現(xiàn)不了對硬件設備的訪問,具備這個權(quán)限的就是操作系統(tǒng),那是由于它掌握著系統(tǒng)的操作權(quán)限。因此如果要保證應用程序可以沒有風險地訪問硬件系統(tǒng)及別的也很關(guān)鍵的軟件,一般操作系統(tǒng)在進行程序操作前,都會借助于系統(tǒng)調(diào)用這個功能。

        4.2 C環(huán)境下系統(tǒng)調(diào)用的安全問題

        編寫C語言代碼的過程中,針對于系統(tǒng)調(diào)用這點也尤其要關(guān)注,通常會涉及到2個安全問題,寫程序的過程里要考慮到進去:

        其一,保證你所新建的所有臨時文件都沒有保密的數(shù)據(jù),假設有這樣的數(shù)據(jù),在文件設置上定性為限本人讀/寫,這樣識別的文件只有本人能操作。

        其二,明確對于運行的命令都是本人要進行的操作,(分別為system(),popen(),Systemout(),Systemin()),對于不識別的命令一律不能進行操作,特別是本人的程序要是匿名的Internet用戶允許時一定要注意。

        5 安全C語言的詳細設計

        在進行安全C語言設計時重點側(cè)重兩個問題:一方面是制約C程序本身,另一方面是利用程序標注進行程序?qū)傩缘慕榻B,這樣做的目的是用來提示程序驗證系統(tǒng),從而對程序進行正確的判定。本文為了使闡述更為明確,將各個概念進行了明確的界定,將變量根據(jù)其分配及函數(shù)動態(tài)、靜態(tài)等區(qū)域的不同劃分為巧變量、堆變量及靜態(tài)區(qū)變量。靜態(tài)區(qū)分為兩個區(qū)域,一個區(qū)域是只讀的,也就是對數(shù)據(jù)只能進行讀,不能更改、刪除。像程序里有的字符串常量。相對應的指針分別為找指針、堆指針及靜態(tài)區(qū)指針。在相應的變量與指針進行對比時,都統(tǒng)稱為巧變量。通常來說,將指向變量V指針叫做V指針。

        5.1 對程序的約束

        結(jié)合避免出現(xiàn)無法推斷別名及限制可推斷別名的原則,在對程序約束進行設計時考慮以下幾方面:

        其一,堆分配類型和指針不能同時出現(xiàn)在一個程序里,最好是不要在程序里有這兩個的共有的類型或指針。

        其二,堆區(qū)與別的數(shù)據(jù)區(qū)聯(lián)系不大,最好不要有從堆區(qū)指向別的數(shù)據(jù)區(qū)里的指針,同時指針利用要科學合理,不能亂用。

        其三,只能對在數(shù)組區(qū)內(nèi)的數(shù)據(jù)及指針進行運算。

        從本質(zhì)上來說,編程都會按照這幾點進行操作,像指針類型方面的,都是最為基本的。在實際操作中,還會呈現(xiàn)現(xiàn)以下特征:

        ①不能將堆變量和別的變量混亂連接形成易變數(shù)據(jù)結(jié)構(gòu)。

        ②有時候會出現(xiàn)把堆變量當作靜態(tài)區(qū)指針的情況。

        ③通常情況下,不可能出現(xiàn)在某個概念里包含本身引用的結(jié)構(gòu)體類型(是類型與指針的類型都是同一種)構(gòu)造多種類型的易變數(shù)據(jù)結(jié)構(gòu)。

        ④用取地址算符&取巧變量、靜態(tài)區(qū)變量及堆變量的地址通常用于下面目的。

        結(jié)語:Internet對于人類發(fā)展的重要程度越來越高,應用程序連接越來越緊密,鏈條越來越長,安全問題也越來越復雜,相應地給網(wǎng)絡帶來的不安全隱患越來越大,程序問題是互聯(lián)網(wǎng)健康發(fā)展的關(guān)鍵,需要高度重視。C語言在目前的應用性語言中應用最為廣泛,它的安全性直接關(guān)系到大部分網(wǎng)絡的安全性。所以,C語言的安全問題受到了廣泛關(guān)注。由此可見,針對該程序安全漏洞的研究與探索,對于網(wǎng)絡的健康發(fā)展至關(guān)重要。本文主要從C語言安全性分析展開,探討了C語言的不安全因素,C語言的安全性問題,其中C語言安全性問題介紹了安全編程語言的定義以及安全C語言的設計。

        [1]司華友,趙蕓,羅顯貴.基于C語言的程序設計能力培養(yǎng)探析[J].計算機時代,2008(3):68-69

        [2]蔡志遠,馬石城,蔡志堅.基于C語言程序的簡布法邊坡穩(wěn)定分析[J].長沙大學學報,2012,26(5):20-22

        [3]王曉妍,蘇愛玲,張蕾妮.基于C語言程序設計課程在CDIO模式下實踐教學的探討[J].當代教育實踐與教學研究:電子刊,2016(5):23-25

        [4]高雅俠,鄒海榮.基于C語言程序設計的常見錯誤分析[J].電腦知識與技術(shù):學術(shù)交流,2009,5(35):69-70

        猜你喜歡
        緩沖區(qū)指針安全性
        嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設計與實現(xiàn)
        新染料可提高電動汽車安全性
        某既有隔震建筑檢測與安全性鑒定
        偷指針的人
        娃娃畫報(2019年5期)2019-06-17 16:58:10
        為什么表的指針都按照順時針方向轉(zhuǎn)動
        ApplePay橫空出世 安全性遭受質(zhì)疑 拿什么保護你,我的蘋果支付?
        關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
        基于改進Hough變換和BP網(wǎng)絡的指針儀表識別
        電測與儀表(2015年5期)2015-04-09 11:30:42
        Imagination發(fā)布可實現(xiàn)下一代SoC安全性的OmniShield技術(shù)
        ARM Cortex—MO/MO+單片機的指針變量替換方法
        亚洲高潮喷水无码av电影| 亚洲一区二区三区麻豆 | 波霸影院一区二区| 在线视频一区二区三区中文字幕| 久草视频这里只有精品| 亚洲日韩久久综合中文字幕| 国产一区二区三区毛片| 国产va免费精品高清在线观看| 少妇高潮惨叫喷水在线观看| 国产一线视频在线观看高清| 亚洲av日韩综合一区尤物| 妺妺窝人体色www婷婷| 婷婷色中文字幕综合在线| 国产中文字幕乱码在线| 91久久国产自产拍夜夜嗨| 午夜宅男成人影院香蕉狠狠爱| 美女脱掉内裤扒开下面让人插 | 欧美人与禽2o2o性论交| 欧美大香线蕉线伊人久久| 国产精品无码mv在线观看| 性感美女脱内裤无遮挡| 国产精品兄妹在线观看麻豆| 久久中文字幕av一区二区不卡| 中文字幕久热精品视频免费| 人妻少妇激情久久综合| 午夜天堂av天堂久久久| 日韩亚洲av无码一区二区不卡| 在线看片国产免费不卡| 女主播啪啪大秀免费观看| 人妻丰满熟妇岳av无码区hd| 海角国精产品一区一区三区糖心| 91情侣视频| 精品久久中文字幕一区| 美女脱了内裤露出奶头的视频| 久久午夜夜伦鲁鲁片免费无码| 久久无码高潮喷水免费看| 日本高清成人一区二区三区 | 久久久亚洲av成人乱码| 无码区a∨视频体验区30秒| 人妻少妇精品视频一区二区三区| 男性一插就想射是因为啥|