999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2017-12-27 05:12:22劉莉
數碼世界 2017年2期
關鍵詞:安全性程序計算機

劉莉

遼寧錦州渤海大學信息科學與技術學院

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

劉莉

遼寧錦州渤海大學信息科學與技術學院

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

緩沖區溢出 安全漏洞 系統調用 攻擊

1 計算機安全的定義

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

2 C語言的安全性問題

2.1 安全編程語言的定義

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

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

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

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

基于以上分析可以知道,C語言屬于類型化,但它卻是不安全的。它的不安全性體現在多個方面,還可以從聯合體類型、含靈活數組結構體類型等類型都可以看出。

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

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

3 C語言的不安全因素

3.1 緩沖區溢出

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

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

3.2 緩沖區溢出的概念

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

4 不安全的C語言庫函數

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

4.1.1 什么是系統調用

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

4.2 C環境下系統調用的安全問題

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

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

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

5 安全C語言的詳細設計

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

5.1 對程序的約束

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

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

其二,堆區與別的數據區聯系不大,最好不要有從堆區指向別的數據區里的指針,同時指針利用要科學合理,不能亂用。

其三,只能對在數組區內的數據及指針進行運算。

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

①不能將堆變量和別的變量混亂連接形成易變數據結構。

②有時候會出現把堆變量當作靜態區指針的情況。

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

④用取地址算符&取巧變量、靜態區變量及堆變量的地址通常用于下面目的。

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

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

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

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

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

猜你喜歡
安全性程序計算機
兩款輸液泵的輸血安全性評估
新染料可提高電動汽車安全性
計算機操作系統
基于計算機自然語言處理的機器翻譯技術應用與簡介
科技傳播(2019年22期)2020-01-14 03:06:34
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
信息系統審計中計算機審計的應用
消費導刊(2017年20期)2018-01-03 06:26:40
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
ApplePay橫空出世 安全性遭受質疑 拿什么保護你,我的蘋果支付?
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 国产福利一区视频| 欧美日韩成人| 91精品免费高清在线| 国产在线91在线电影| 国产AV无码专区亚洲精品网站| 99人妻碰碰碰久久久久禁片| 久一在线视频| 色香蕉网站| 成人国产精品视频频| 亚洲欧洲日本在线| 伊人久久精品亚洲午夜| 一级毛片在线免费视频| 色亚洲成人| 国产99在线观看| 亚洲欧美综合另类图片小说区| 国产在线精品网址你懂的| 男女男精品视频| 老司机午夜精品视频你懂的| 亚洲国产欧美国产综合久久 | 婷婷六月激情综合一区| 亚洲成人一区二区三区| 国产高清不卡| 精品无码国产一区二区三区AV| 亚洲天堂视频在线免费观看| 免费无码在线观看| 91精品综合| 中文字幕日韩欧美| 免费人成视频在线观看网站| 久久久久青草线综合超碰| 激情综合婷婷丁香五月尤物| 亚洲最大看欧美片网站地址| 国产国拍精品视频免费看| 国产无码在线调教| 东京热高清无码精品| 日韩无码黄色| 国产精品福利导航| 一级毛片在线直接观看| av在线人妻熟妇| 欧洲av毛片| 无码福利视频| 一区二区偷拍美女撒尿视频| 国产资源站| 99在线视频免费| 免费一级毛片在线播放傲雪网| 这里只有精品免费视频| 69综合网| 香蕉久久国产超碰青草| 嫩草在线视频| 亚洲一级毛片免费看| 国产在线精品网址你懂的| 99久久国产综合精品2020| 亚洲人成网7777777国产| 成人免费午夜视频| 亚洲侵犯无码网址在线观看| 本亚洲精品网站| 日本午夜精品一本在线观看| 免费一级大毛片a一观看不卡| 毛片三级在线观看| 2021天堂在线亚洲精品专区| 亚洲欧美日韩精品专区| 欧美成人午夜视频免看| 2020国产免费久久精品99| 国产va在线观看免费| 欧美一区二区三区不卡免费| 一区二区三区成人| 香蕉色综合| 国产美女91视频| 欧美啪啪精品| 国产最爽的乱婬视频国语对白| 日韩欧美91| 91免费国产在线观看尤物| 国产91小视频在线观看| 亚洲国产精品日韩欧美一区| 久久精品最新免费国产成人| 国产系列在线| 精品国产成人高清在线| 国产成人精品第一区二区| 在线另类稀缺国产呦| 日韩欧美国产另类| www.亚洲色图.com| 超薄丝袜足j国产在线视频| 国产小视频a在线观看|