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

源代碼安全漏洞檢測方法探討

2017-02-13 16:02:27馬虹哲
網絡空間安全 2016年11期

【 摘 要 】 隨著計算機網絡的快速發展,有關于軟件的安全性問題越發的突顯出來。源代碼安全漏洞檢測正是基于計算機軟件安全為出發點研發出來的相關技術。論文分析了源代碼安全漏洞的幾種常見檢測方法,并對這些方法的優缺點進行了比較,以期能為計算機網絡安全提供一些參考意見。

【 關鍵詞 】 源代碼;漏洞;安全檢測方法

【 中圖分類號 】 TP309.2

【 文獻標識碼 】 A

Discussion on Detection Method of Source Code Security Vulnerabilities

Ma Hong-zhe

(Institute of Electric Power Research,Guangxi Power Grid Company Limited GuangxiNanning 530023)

【 Abstract 】 With the rapid development of computer network, there are more and more prominent on the security of software. Source code security vulnerability detection is based on the computer software security as the starting point of the research and development of related technologies. This paper analyzes several common detection methods of source code security vulnerabilities, and compares the advantages and disadvantages of these methods in order to provide some reference for computer network security.

【 Keywords 】 source code; vulnerability; security detection method

1 引言

身處于現代信息時代,網絡的安全問題已成為全社會關注的熱點問題。計算機系統中的任何漏洞都可能造成包括經濟、政治、軍事、社會、科技等多方面的嚴重安全隱患。只有從本質上解決計算機軟件的安全漏洞問題,才能從根本上確保網絡信息的安全。然而軟件安全漏洞有極大的隱藏特性,如不形成對它的觸發,很難注意到它的存在。

因此,目前世界各國都投入了大量精力,用于源代碼安全漏洞檢測方法的開發研究。

2 源代碼漏洞的形成原因和具體表現

源代碼漏洞是指在程序設計之初,由于考慮不周等問題,導致寫代碼的時候,一些代碼寫的不完善,由此留下了可以被侵入的后門,從而產生的可能會對程序本身、系統或數據帶來潛在危害的代碼問題。源代碼問題一旦被不法分子發現、利用,所造成的危害不可估量。代碼漏洞可以表現在很多方面,算法本身或者代碼本身的問題都可能會造成代碼漏洞。

代碼漏洞的具體表現主要包括幾個方面。

對輸入的數據沒有進行有效的檢查。或者是進行過檢查但是檢查不周,也可能是處理不當,此類問題最常造成緩沖區漏洞的出現。比如在對某賬號進行密碼的設置輸入時,如果程序未對密碼的長度進行限制,用戶則可能出于安全考慮輸入超長的密碼,由此可能會導致存儲密碼時對其它的數據進行覆蓋,引發一系列的問題。

代碼邏輯設計缺陷或錯誤。這類問題一般是由程序員的疏忽大意造成的。比如判斷時因考慮不周而少漏條件,當遇到特殊數據和情況時,導致程序出現不可預估的錯誤。

算法本身的漏洞。實現源代碼的安全無漏洞,首先應確保在寫代碼時進行嚴密的算法,算法本身出現了漏洞,則必然導致諸多問題的存在。比如采用比較簡單的加密算法,會為信息泄漏留下操作的可能性。

3 常見的源代碼安全檢測方法

3.1 抽象解釋

抽象解釋是把程序代碼的執行過程看成各種抽象狀態的遷移過程,并通過對抽象狀態進行分析來確定程序的性質。初始抽象狀態必須是初始實際狀態的安全近似,而且每次狀態遷移需要保持正確的關系,這樣才能保證分析結果的正確。理論上,正確的抽象能夠找出程序中所有可能的緩沖區溢出漏洞。但也相應的帶來較多的誤報。在實際使用中,為降低誤報率,用戶應當根據被測程序的特性,選擇合適的解釋函數和抽象域等。

3.2 詞法分析

詞法分析是最早被用來進行緩沖區溢出漏洞檢測的方法之一。這種方法是對軟件源程序進行掃描分析,同時與特征庫進行匹配,當發現某個片與“危險片段庫中的數據”匹配時,則可找出軟件程序中可能存在的溢出漏洞。這種方法的局限性在于容易產生漏報或誤報,并且它也不能理解軟件程序的語義。因此需要進一步的進行上下文分析。

3.3 規則檢查

安全性一直是程序編程過程中必需考慮的部分,因此在編程時就會從安全性的角度設定一些必須遵循的規則。而通過對這種規則的檢查,就能找到源代碼中的某些漏洞。規則檢查在進行大規模的程序安全檢測時,可以通過選取相關的規則對某一類型的安全問題進行快速分析,但正是受這種檢查法自身特點的束縛,使得它只能對特定類型的問題進行檢查,無法實現全面的源代碼漏洞檢測。

3.4 類型推導

如果將安全屬性看成一種類型,那么通過類型推導檢查,就能找出源代碼中的不安全漏洞類型。這種方法忽略了代碼執行條件和順序,只是利用定型規則確定代碼中部件的的類型,所以在進行源代碼漏洞檢測時處理速度很快。

一般情況下,類型推導可分為三個階段:首先是定型斷言,確定變量的初始類型;其次是推導規則,即進行推論系統規則集的建構;最后是檢查規則,即判斷推論結果是否具有“危害性”。

類型推導法對于軟件安全漏洞的快速檢測量方面具有很大的優勢,能進行大規模程序的安全性分析,但由于約束變量取值為無窮,所以這種方法也只能用來檢測特定類型的源代碼漏洞。

3.5 數據流分析

數據流分析在源代碼的安全檢測中,用途比較廣泛。這種方法從對源代碼的語義信息進行構造變量切入,采用代數方法對變量進行定義和使用的確定。

數據流分析方法基于這樣一個事實,數據流沿程序控制圖傳播。當所有程序點的分析狀態達到不動點時,傳播停止,同時得到程序性質的解。但是數據流分析方法不能精確跟蹤指令的控制條件,所以這種檢測方法得到的結果不夠精確。

3.6 約束分析

通過產生、求解程序的約束條件,約束分析即可確定程序的性質。約束分析方法建立的局部化約束產生的規則能清楚的描述指令副作用乃至控制條件。

約束分析檢測分為約束產生和約束求解兩個階段。約束產生階段是進行包括變量類型和分析狀態在內的約束系統的構建,對這個系統進行求解的過程即為了約束求解階段。

這種檢測法常用于可能造成緩沖區溢出的字符串操作的檢測。但是,這種方法不容易處理精確循環:程序中存在循環,且循環控制條件之間存在依賴關系時,則建立的約束條件可能無解。

3.7 符號執行

符號執行是通過采用抽象符號代替變量,對路徑敏感的程序控制流進行模擬,在約束求解中對可能發生的錯誤解進行檢測的方法。在檢測中,如果出現象一組抽象符號的解滿足,則可判定程序中存在錯誤。符號執行法的檢測能力完全取決于求解工具的約束條件和求解能力。雖然這種方法的檢測時間較長,但它的優點是可以進行比較精準的檢測,程序中很多細微的邏輯錯誤都能被找到,對于某些特定問題的檢測很有必要。

3.8 模型檢測

作為形式化的驗證技術的一種,模型檢測采用的是通過狀態遷移描述程序的行為。這種方法用時序邏輯和計算樹邏輯等來表示程序系統的性質,將系統屬性(安全與否)的檢驗問題變換為搜索不符合邏輯公式的狀態問題。首先,進行抽象模型的構建,這里必需注意,只有有限狀態的程序才能進行模型構建;然后模型驗證要遍歷程序的所有狀態空間進行驗證。這種檢測有兩種常見的方法:符號化模型檢測和模型轉換自動機,兩者均為并發系統方法。符號化模型檢測是通過將抽象模型中的狀態轉變為語法樹描述的邏輯公式,對公式進行可滿足性驗證,而模型轉換自動機則是通過在安全時序的基礎上,構建一個新的自動機進行驗證。

在協議驗證和硬件檢測領域,模型檢測的應用較為常見。模型檢驗能夠發現程序中存在復雜語義上的錯誤,從而準確發現程序中潛在的安全性漏洞,但現存的模型檢驗工具普遍分析源程序的形式化的表示(數學描述),而不是以源程序作為輸入,如需要源程序的數學模型。通常可以通過程序分析(數據流分析,控制流分析,程序切片工具)來自動完成源程序的模型的生成。程序切片提取程序的精簡了的模型,其中程序分析是基礎,除了語法分析之外,更需要涉及語義的分析,包括控制流分析和數據流分析。

由于程序的復雜性導致了模型過于龐大的問題,因此模型檢測除了只能分析那些有限狀態的系統,還有只能針對程序中的某一個屬性構造抽象模型的弱點,有較大的局限性。

4 各種檢測方法的比較分析

以上介紹的幾種源代碼安全漏洞檢測法,既有區別又存在內在的聯系。比如抽象解釋就是其他方法的理論基礎。這些方法都有各自的優缺點,不可能處理所有的源代碼安全漏洞檢測問題,因此需要對這些方法的特征有一個綜合的了解,在實際應用時,合理的采取幾種方法的綜合檢測,能更好地完成源代碼安全漏洞檢測工作。關于這些方法的優缺點,如表1所示。

參考文獻

[1] 周誠,張濤,馬媛媛,李偉偉.一種高效檢測源代碼安全漏洞的代碼審查方法[J].現代電子技術,2015,05:83-86.

[2] 時志偉,趙亮.一種關于PHP源代碼安全漏洞的靜態檢測方法[J].信息安全與通信保密,2011,11:80-82.

[3] 朱圣才,徐御,王火劍.常見源代碼安全漏洞分析與研究[J].信息網絡安全,2014,02:48-52.

作者簡介:

馬虹哲(1987-),女,漢族,研究生,碩士,工程師;主要研究方向和關注領域:信息安全。

主站蜘蛛池模板: 日本五区在线不卡精品| 午夜色综合| 看国产毛片| 呦女精品网站| 国产青榴视频| 538国产视频| 国产丰满大乳无码免费播放 | 亚洲欧美日韩中文字幕在线| 中国国产A一级毛片| 国产三级毛片| 成年网址网站在线观看| 天天躁夜夜躁狠狠躁图片| 97精品久久久大香线焦| 亚洲无线一二三四区男男| 国产精品嫩草影院视频| 美女被躁出白浆视频播放| 凹凸精品免费精品视频| 99热这里只有精品5| 国产精品亚洲va在线观看| 成人一区专区在线观看| 国产全黄a一级毛片| 精品国产美女福到在线直播| 亚洲一区免费看| 日韩欧美国产三级| 亚洲区一区| 国产婬乱a一级毛片多女| 天堂在线视频精品| 一级片一区| 欧美成人综合在线| 囯产av无码片毛片一级| 无码AV高清毛片中国一级毛片| 亚洲中文字幕无码爆乳| 九九九国产| 高清无码一本到东京热 | 五月激情综合网| 99性视频| 国产va免费精品| 欲色天天综合网| 国产精品视频观看裸模| 国产免费久久精品99re丫丫一| AV无码一区二区三区四区| 免费 国产 无码久久久| 另类欧美日韩| 成人在线不卡| 国产在线观看成人91| 国产麻豆福利av在线播放| 99视频在线免费观看| 国产精品妖精视频| h网站在线播放| 国内自拍久第一页| 免费国产高清视频| 欧美午夜在线观看| 国内精品手机在线观看视频| 91福利在线观看视频| 精品无码视频在线观看| 日韩av在线直播| 成人在线综合| 色AV色 综合网站| 国产福利影院在线观看| 国产精品美女网站| 成人日韩精品| 青青青视频蜜桃一区二区| 欧美a级完整在线观看| 一级在线毛片| 97久久超碰极品视觉盛宴| 欧美一级高清免费a| 四虎影视库国产精品一区| 国产精品第一区在线观看| 女人18毛片久久| 漂亮人妻被中出中文字幕久久| 国产精品漂亮美女在线观看| 中国美女**毛片录像在线| 无码在线激情片| 亚洲人免费视频| 久久国产成人精品国产成人亚洲| 欧美一级在线看| 亚洲伦理一区二区| 天天摸天天操免费播放小视频| 亚洲天堂精品在线观看| 欧美一级大片在线观看| 91久久精品国产| 自拍中文字幕|