web安全性

Web安全性

摘要:計算機系統安全漏洞的研究以及漏洞庫的建設,對於提高系統安全性、減少安全事件發生具有重要意義。目前安全漏洞研究的主要問題在於漏洞分類分級不夠完善,同時較小的漏洞庫容量也使得對系統安全漏洞的分析研究無法充分展開。本文首先詳細介紹了計算機漏洞的概念、屬性和特點,歸納總結了國內外漏洞研究的現狀。其後,在對漏洞數據庫中的大量漏洞進行分析的基礎上,本文着重對緩衝區溢出漏洞和安全編程方法兩方面進行了研究。利用緩衝區溢出漏洞進行的緩衝區溢出***是Internet上危害最大、最廣泛的一種***手段。本文在討論緩衝區溢出***的內存模型和工作原理的基礎上,系統的提出了貫穿軟件生命期,包括編程開發、編譯測試、安全配置使用三個階段的完整緩衝區溢出防範體系模型。並進行了緩衝區溢出漏洞的檢測、利用方面的研究。同時爲了實現在源代碼級消除安全漏洞的目的,本文探討了利用安全威脅模型進行安全編程的方法,並提出了安全編程整體模型的框架和原則,對安全編程方法作了比較詳盡的討論,爲今後進一步的研究打下了基礎。

關鍵詞:  安全漏洞漏洞庫緩衝區溢出安全編程

1安全漏洞簡介:

系統安全漏洞,也叫系統脆弱性(Vulnerability),是計算機系統在硬件、軟件、協議的設計與實現過程中或系統安全策略上存在的缺陷和不足;非法用戶可利用系統安全漏洞獲得計算機系統的額外權限,在未經授權的情況下訪問或提高其訪問權,破壞系統,危害計算機系統安全。系統安全漏洞是針對計算機安全而言的,廣義的系統安全漏洞是一切導致威脅、損壞計算機系統安全(可靠性、可用性、保密性、完整性、可控性、不可抵賴性)的因素。每個平臺無論是硬件還是軟件都存在漏洞,沒有絕對安全的系統。在傳統的科學領域和工程實踐中,對複雜系統的脆弱性(漏洞)的分析研究已經有了很長的歷史。例如,航空業從事故記錄中提取漏洞信息,並對這些信息分析研究,並從中發現規律或參數,並把發現的信息應用到新的產品系統中,通過這種方法,極大地改進提高了新產品的安全性。這種透過雜亂的表面現象,並且從中發現一定的規律是人類所擁有的基本特徵和特殊能力。對計算機漏洞確切、統一的定義有利於刻劃漏洞的根本特徵,有助於規範對漏洞本質的描述,而對漏洞的統一描述有助於各研究團體之間在計算機漏洞研究領域的成果和學術交流。從某種程度上講,對計算機漏洞的研究擴展了計算機系統安全研究的廣度和深度。此外,按照一般可接受的原則,對計算機系統安全漏洞進行科學分類,研究漏洞的表現和形成原因,這些工作能夠增強對計算機軟件漏洞本質的進一步理解,有助於防止程序設計人員在編寫程序時產生安全漏洞;可以使計算機管理使用人員瞭解其系統中可能存在的漏洞隱患,從而有針對性地消除或阻止安全漏洞的存在;可以使計算機安全專家更加針對性地尋找、分析、發現未知的漏洞,達到防範於未然的目的。

2網絡安全編程涉及的方面

2.1操作系統和服務器的安全

作爲一個asp開發者或網絡信息管理員,必須關注windows和IIS的安全漏洞,安裝微軟公佈的最新補丁,及時更新防病毒軟件。ASP程序需要IIS來解釋執行,因此A S P的很多安全問題是由於IIS所造成的,如:IIS解析錯誤造成ASP源碼泄漏、IIS的其他服務缺陷造成ASP源碼泄漏等。

2.2程序源代碼安全

A S P應用程序,一旦發佈到運行環境中去後,就很難確保這些源代碼不會被流傳出去。asp程序採用的是解釋性腳本語言語言,以普通文本形式保存。ASP程序可能被任意複製,不能很好地維護版權。而且***還能分析ASP程序,挑出漏洞。這就出現了asp程序代碼的安全性問題。

2.3數據庫的安全

網絡編程中一般都把重要數據保存在數據庫中,因此必須重視數據庫的安全性。數據庫的安全性主要指保護數據庫,以防止不合法的使用所造成的數據泄密、更改或破壞。在面向多用戶開放共享的網絡環境下,訪問數據庫系統的用戶必須要求進行身份認證,以防止非法用戶訪問。

3 Web***的類型

3.1 代碼注入

代碼注入是一種肇因於處理非法數據的電腦臭蟲應用。代碼注入可被***者用來導入代碼到某特定的電腦程序,以改變程序的運行進程或目的。代碼注入***的結果可以是災難性的。例如說:代碼注入可作爲許多電腦蠕蟲繁殖的溫牀。如果***者使用應用程序的安全上下文運行任意代碼,則產生代碼注入***。如果應用程序使用特權帳戶運行,將增加系統受***的風險。

3.2會話劫持

如果***者捕獲了身份驗證令牌並控制了其他用戶的會話,則發生會話劫持現象.通常,身份驗證令牌保存在cookie或URL中.如果***者捕獲了身份驗證令牌,他(或她)會將令牌連同請求一起傳遞給應用程序.應用程序則將該請求與合法用戶會話相關聯,這樣,***者便得到了訪問該應用程序受限內容(這些受限內容都要求驗證訪問身份)的權限.進而,***者便有了合法的用戶身份和權限. 

3.3身份哄騙

如果惡意用戶盜用合法用戶的身份訪問應用程序,則發生身份哄騙現象.***者可以cookie重播方式或不斷嘗試各種用戶名和密碼組合(強力密碼***).在自動強力密碼***中,***者可將字典中的每個詞作爲密碼(字典***). 

3.4參數處理

參數是網絡中從客戶端傳遞至服務器的一些數據.參數包括表單域、查詢字符串、視圖狀態、cookie和HTTP頭.如果使用未經保護的參數傳遞敏感數據(或傳遞用於制定服務器安全決策的數據),應用程序可能有信息泄漏的危險,或遭受未授權的訪問. 

3.5網絡竊聽

使用網絡中的數據包嗅探(sniff)工具可實施網絡竊聽***,從而捕獲網絡數據流.網絡竊聽涉及使用網絡監視軟件跟蹤傳遞於瀏覽器和Web服務器之間的數據包.它可導致泄漏應用程序特定的機密數據、檢索登錄憑據或捕獲身份驗證cookie。

3.6 信息泄漏

如果***者通過探測Web頁來找尋引起異常的各種情況,則出現消息泄漏***.對於***者而言,這是一種頗有成效的***方法.因爲異常細節信息常以HTML的形式返回並顯示在瀏覽器中,這可能會泄漏很有用的信息,如堆棧跟蹤.堆棧跟蹤包含數據庫連接字符串、數據庫名、數據庫方案信息、SQL語句以及操作系統和平臺版本.

緩衝區溢出漏洞研究

4.1緩衝區溢出漏洞

所謂緩衝區溢出***,就是一種利用目標程序的緩衝區溢出漏洞,通過操作目標程序堆棧並暴力改寫其返回地址,從而獲得目標控制權的***手段。自1988年的莫里斯蠕蟲事件以來,緩衝區溢出***一直是Internet上最普遍,同時也是危害最大的一種網絡***手段。由於緩衝區溢出漏洞非常常見且易於被***,因而對系統造成了極大的威脅。利用緩衝區溢出漏洞,***者可以植入並且執行***代碼以完全達到其目的。被植入的***代碼可以獲得一定的權限(常常是根用戶權限)運行,從而得到被***主機的控制權。利用溢出***,一個Internet用戶可以在匿名或擁有一個一般權限的用戶的情況下獲得系統的最高控制權。

4.2避免使用非安全的C函數

許多緩衝區溢出問題可以直接追溯到標準C庫的幾個函數中,尤其是那些自身沒有進行安全檢查的字符串操作,如gets(),strcpy()等,而且在基於C的語言中(如C++),這些非安全函數的問題依然存在。

以下是一段存在緩衝區溢出錯誤的源代碼。在程序中,func()函數拷貝一由255字節組成的字符串到只有16字節大小的緩衝區中。由於使用了strcpy(),因此不會做參數長度檢查,當255個字符串拷貝到緩衝區時,緩衝區在開頭16個字節填充後就被填滿,這樣,字符串將繼續覆蓋堆棧中的其他變量,包括函數的返回地址。如果字符串中含有***代碼,而被覆蓋的返回地址又指向***代碼,***者就可以使自己的代碼獲得與原程序相同的執行權。通過使用strcpy()函數代替,就能比較安全地拷貝字符串,因爲它只會將大小與目標緩衝區相等的數據拷貝。

5.總結與體會

計算機安全漏洞研究的目的在於通過研究漏洞的表現找到漏洞的形成原因,從而增強對計算機軟件漏洞本質的進一步理解;防止程序設計人員在編寫程序時產生安全漏洞;使計算機管理使用人員瞭解其系統中可能存在的漏洞隱患,從而有針對性地消除或阻止安全漏洞;使計算機安全專家更加針對性地尋找、分析、發現未知的漏洞,達到防範於未然的目的。所以,可以認爲,計算機系統安全漏洞研究是計算機安全體系的研究基礎。本文圍繞web安全性這一主題,通過對緩衝區溢出漏洞和安全編程方法兩方面的研究,分析了幾種web***的類型,把幾種安全技術結合起來,構建了一個web安全組網模型。最後,本人結合發展,淺談了內嵌的C函數庫利用網站漏洞可能給web安全系統帶來安全隱患以及***途徑。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章