孫雷
(賽維航電科技有限公司 北京市 100176)
目前隨著我國電子商務的發(fā)展,網絡交易的安全問題已經成為各個網站以及商家最關心的問題之一。網絡交易的安全事件,其根源就是計算機軟件當中存在的安全漏洞,因此檢測與修正軟件中的安全問題,便可以盡量杜絕可能會產生的安全事件。
計算機安全的安全漏洞主要指的就是軟件其自身所存在的編寫缺陷,黑客可以利用這些漏洞,不經允許地訪問相關的系統(tǒng)資源,或者是惡意損害計算機軟件與硬件。電腦用戶可以在一定程度上使用比較可靠的防火墻或是殺毒軟件,來盡量維護自身系統(tǒng)的穩(wěn)定性與可靠性。目前在社會當中最為經常使用的殺毒軟件是360 殺毒軟件或是衛(wèi)星防火墻等,但是這些軟件是無法從根本上來彌補軟件自身所包含的漏洞。如果這些軟件其自身的運行出現(xiàn)了問題,那么便容易會給軟件帶來較大的安全隱患,甚至有些非法分子利用計算機漏洞來竊取計算機當中的相關數(shù)據(jù),計算機漏洞是一種功能上的漏洞,另外一種則是安全漏洞。功能與安全上的漏洞都對計算機本身的影響并不大,但一旦被刻意的破壞者利用且予以侵犯,那么即有可能會造成計算機信息的不再可靠,甚至給用戶的隱私帶來較大的安全隱患,安全漏洞一般有以下幾種情況,首先就是計算機的程序員在編制程序的過程出現(xiàn)技術性的錯誤以及邏輯的失誤,因而造成軟件漏洞。第二種就是計算機軟件運行過程當中產生運算錯誤或是數(shù)據(jù)處理的錯誤。第三種就是計算機的硬件設置在不同軟件中,由于配置與版本的差別所造成的安全漏洞。最后一種情況則是計算機的運行以及工作當中因為時間的推移而產生的新安全漏洞,在之前舊的安全漏洞進行修復完畢之后,還可能會出現(xiàn)的更新的安全漏洞。在目前所使用的計算機軟件中,極大容易出現(xiàn)被用戶所忽略的安全漏洞。而在這些比較普遍出現(xiàn)的活動當中,Geronimo2.0 存在模塊認證方面的漏洞,遠程攻擊主體很可能會出現(xiàn)非法訪問的現(xiàn)象,而JBOSS 應用服務器也可能在沒有聽到用戶允許之下,便對用戶的信息以及相關數(shù)據(jù)進行讀取與修改,甚至有可能執(zhí)行相應的任意代碼。LIBTIFF 開源軟件庫可以使用相關的檢查對其進行遠程破壞,從而造成一系列的安全漏洞。還有一些軟件庫,是一種比較典型的網絡管理協(xié)議,可以讓遠程攻擊的主體拒絕進行服務工作,從而使攻擊造成系統(tǒng)的崩潰,以及一些軟件庫也可以讓遠程攻擊的主體拒絕服務,再進行攻擊,產生一定的安全漏洞。
靜態(tài)漏洞的檢測技術主要就是通過對系統(tǒng)代碼進行全面分析,了解軟件內部所產生的安全漏洞,比如緩沖區(qū)域一旦出現(xiàn)問題,或是非法指針引入,且競爭條件與動態(tài)檢測比起來,靜態(tài)檢測更加適合于檢測深度的漏洞。
在上世紀80年代提出了模型檢測,這一理論主要是使用顯示狀態(tài),在搜索驗證狀態(tài)中迸發(fā)系統(tǒng)命題性質,模型檢測對于有限狀態(tài)的程序構造可以進行全面建模,并且使用模型來將軟件當中的特
性驗證出來。在對軟件里面的片段,通過建模方式來進行比較,能夠盡量防止軟件自身復雜性所帶來的問題,模型檢測可以有效地把功能與用途相互接近的軟件來進行安全漏洞的檢測。從而提升軟件與整體的安全性能。計算機安全漏洞主要是指計算機比較脆弱的特性,很可能是惡意攻擊,或者可能會危害到計算機軟件而造成安全系統(tǒng)的缺陷與漏洞。
原編譯技術比較要求程序安全屬性,是一種輕量級編譯器的擴展,以及建模執(zhí)行。同時也可以自發(fā)的進行推斷來檢測代碼是否安全,并且可以編寫出與其相互匹配的編譯擴展,這就是比較典型的原編譯技術。原編譯技術在編譯器當中是非常基礎的一種技術,不僅效率比較低,而且還會帶來在語言特性方面比較創(chuàng)新的拓展。
安全規(guī)則主要指的就是對程序自身所帶有的安全性描述,是軟件其自身存在的一種編譯規(guī)則,比如軟件在Root 權限下不能夠進行exec 的調用。規(guī)則檢查主要是指使用比較特定的語法,來描述軟件運行過程的安全規(guī)則,處理器可以將語法在一定情況下,進行描述轉換成可以被處理器理解的一種內部表示,再將程序相互之間的行為進行對比。
變異與技術一般是指限制算術運算以及不安全的轉換等,很可能導致出現(xiàn)安全隱患的操作。多使用C 或c++語言的安全編程變異級數(shù),相比動態(tài)檢測的局限性比較大,對軟件的源代碼或者二進制代碼來進行檢測的靜態(tài)檢測,是具有自身優(yōu)勢的衡量靜態(tài)檢測。具體優(yōu)劣情況的標準有兩個,一個就是誤報率,另一個即是漏報率,采用靜態(tài)檢測編寫出來的程序較為可靠。
與其他檢測技術比起來,定理證明相對是更加嚴格的,能夠通過各種不同的方式將軟件當中的抽象公式進行驗證,從而保障定理證明的技術性。其主要就是利用折曲式來進行圖像的構造,讓公式當中的條件與圖中的節(jié)點都是遙相呼應的,可以通過已經給出的現(xiàn)有等式,與對應項目點進行合并,把頂點合并過程趨勢中的不等式進行充分的檢測,如果不等式是不成立的,則將處于不滿足的狀態(tài)。
這種技術并不會為原有代碼增加創(chuàng)新的語言特色,但會以一種注釋的形式將其進行表現(xiàn)出來,因此不會存在過多的兼容性問題,可以憑借具體信息來進行靜態(tài)分析的加深,從而找出系統(tǒng)與程序當中存在的漏洞。不僅如此,也要能夠將外部數(shù)據(jù)進行標記,這些都能夠對代碼審計人員產生警告,并給予排查。
詞法分析是最早的靜態(tài)分析技術,對多個不同程序都需要進行語法檢測,而詞法分析技術把程序可以分割成幾個不同的片段,并且把每一個片段與可疑程序數(shù)據(jù)庫相互進行比較,由于詞法分析只能夠檢測出比較固定的漏洞代碼,所以這種方法一般并不予以采用。
動態(tài)監(jiān)測技術操作起來較為簡單,能夠有效的了解到安全漏洞,但是不能夠發(fā)現(xiàn)邏輯方面的覆蓋率問題,所以動態(tài)監(jiān)測技術是很難發(fā)現(xiàn)隱蔽相對較深的安全漏洞。
C 和C++在實際設計的過程中,有很多函數(shù)都存在一定的安全隱患。因此軟件在使用C 和C++過程當中便很容易產生安全漏洞。安全共享庫主要就是按照動態(tài)鏈接技術,在實際運行的過程以阻止并不安全的函數(shù)調用,且能夠檢測到所有函數(shù)的參數(shù)。目前安全共享庫的技術已經廣泛地使用在windows 以及UNIX 的操作系統(tǒng)中。
有很多黑客使用NULL 結尾的字符串來覆蓋內存,能夠有效地對軟件進行攻擊,而內存映射的技術能夠把代碼頁通過一定方式映射到隨機地址之上。而黑客在對軟件攻擊的時候,就容易受到一定阻礙。內存映射的技術要能夠對系統(tǒng)的內核進行全面修改與操作,把代碼也能夠映射到相對較低的內存空間上。在程序鏈接的過程,將二進制地址已經可以予以確定,因此內存映射的技術是不需要對代碼來進行修改的,只是需要重新進行鏈接即可。
堆主要指的是軟件執(zhí)行過程當中,系統(tǒng)動態(tài)分配的一種內存區(qū)域,可是數(shù)據(jù)段在進行軟件編譯的時候,就已經可以完成初始化的過程。如果軟件的代碼不能夠與數(shù)據(jù)段相互進行執(zhí)行,那么在黑客植入惡意代碼的時候就無法給予執(zhí)行。并且非執(zhí)行堆和非執(zhí)行站能夠有效地結合在一起,從而幫助軟件來檢測可能會產生的安全漏洞,讓惡意代碼難以對其進行攻擊。非執(zhí)行堆的操作技術很可能對計算機內核的修改操作進行相關軟件的運行,然而付出的代價卻相對較多,目前非執(zhí)行堆的技術已經受到廣泛應用,并且擁有很多成功實例,可以不斷地進行探索與借鑒。
避免棧攻擊最為有效的辦法就是讓棧無法進行工作,這樣就可以盡量避免黑客在棧中注入惡意代碼。非執(zhí)行棧能夠在一定程度下攔截部分黑客,進行修改操作層,并對其進行設置,如果這項技術一旦產生操作不當,則可能會影響到計算機的系統(tǒng)性能,一旦軟件出現(xiàn)棧溢出漏洞,則也將導致堆溢出漏洞的產生,便容易產生一定問題。
沙箱檢測技術一般就是通過對訪問進行限制的一種方式,以此避免黑客的攻擊。這種技術最為關鍵的就是需要定義策略的全面性,比較嚴格的策略則能夠更加有效的保障軟件不受到攻擊,一旦黑客需要通過對本地的變量,進行一定的修改來實施攻擊,那么沙箱技術便很難阻止類似的攻擊。一些過于嚴格的策略可能限制軟件的合法行為,從而使軟件難以達到正常運行,而系統(tǒng)調用函數(shù)的相關審查也可能導致其他衍生問題的出現(xiàn)。
程序解釋的技術在整個程序運行中能夠對程序進行檢查,不需要對系統(tǒng)的內核與代碼進行全面修改,只需要通過設置新的啟動代碼來重新進行應用程序的鏈接,并使用這樣的啟動代碼來調用動態(tài)優(yōu)化程序進行框架解釋,定義比較嚴格的安全策略,有效地檢測出所有可能修改危險函數(shù)的參數(shù)攻擊,并進行更加有效的防范。
計算機廣泛的使用,不僅讓信息化獲得全球化的發(fā)展,同時也推進了更多的現(xiàn)代化進程,目前計算機軟件在實際發(fā)展的過程當中,肯定會存在很多不同的問題,這些問題相對比較復雜。且在實質性方面,計算機軟件所面臨到的威脅,不僅只是軟件質量中存在的比較客觀的問題,同時很多非法復制或者非法跟蹤行為也因此產生,可能造成人們的生命財產安全受到危險。而計算機軟件安全漏洞存在的問題,也是目前計算機軟件在發(fā)展過程中所面臨的重要威脅之一,計算機軟件的安全漏洞則是計算機系統(tǒng)的一個重要特點,主要就是對程序所進行的一種攻擊,并且對已經授權的方式使用非法訪問的形式,在目前計算機軟件所存在的安全漏洞,主要存在幾種不同的服務器。而非法者利用遠程的非法侵入法,繞過身份識別的軟件,并獲取修改或查看相關數(shù)據(jù)的權限,從而竊取只讀程序當中的圖像與文件??傊踩┒吹臋z測技術主要就是對計算機的安全進行預防,同時要能夠對計算機軟件進行相關的安全防控,所以安全漏洞的檢測技術對于計算機軟件的使用是非常重要的,對計算機軟件的安全性以及漏洞預防都具有很大的現(xiàn)實意義。
計算機軟件在安全漏洞檢測技術應用的過程中,首先要能夠避免緩沖區(qū)的漏洞,認真的檢查在程序中存在的危險函數(shù),同時也要能夠對安全計算機軟件進行使用,不去使用違法的盜版軟件或非法軟件,時刻需能夠處理與防范緩沖區(qū)存在的漏洞。其次就是要對競爭條件漏洞進行避免,在進行競爭源代碼的原子化操作時,必須要使用文件句柄以及其他文字來對計算機軟件的安全性進行描述,始終做到加以保證。另一方面就是要盡量避免格式化字符串的漏洞,盡量在源代碼中使用格式常量,從而盡量防止格式串的遺留,需要有效避免隨機數(shù)據(jù)的漏洞,確保安全的隨機數(shù)據(jù)量以及加密的全部細節(jié)都能夠更加穩(wěn)定。在實際進行計算機軟件安全漏洞的防范過程中,緩沖區(qū)漏洞也是非常重要的,要能夠及時對競爭條件漏洞進行防范,同時對格式化字符串漏洞防范也非常重要,只有這樣才能夠保障計算機軟件安全漏洞的檢測做到實處。
綜上所述,隨著計算機軟件應用的范圍不斷擴張,信息安全的問題已經受到了人們的廣泛重視,在日常生活當中,計算機軟件安全問題主要可以分為兩個方面,首先就是計算機軟件,其自身是存在安全漏洞的。其次就是黑客惡意的進行代碼攻擊,所以計算機軟件在安全漏洞的檢測方面,主要應當能夠從本質上來進行發(fā)掘問題,并給予討論軟件的安全特性,從而使計算機網絡獲得安全提升,并且計算機軟件當中安全漏洞的檢測技術也必須由相關技術人員進行不斷探索,能夠真正避免非法入侵或是惡意攻擊,逐漸使計算機軟件獲得全面發(fā)展。