?

開源代碼組件安全審計研究

2022-11-20 04:52尹君易榮唐旭玥王海林
網絡安全技術與應用 2022年8期
關鍵詞:源代碼代碼漏洞

◆尹君 易榮 唐旭玥 王海林

(1.云南電網有限責任公司信息中心 云南 65000;2.云南云電同方科技有限公司 云南 650000)

1 引言

近些年隨著計算機科學技術的發展,應用軟件的功能也隨著增大,與之對應的就會使得源代碼的規模也大大增加,同時由于開源代碼本身的特點,這使得利用傳統的方法檢測代碼的安全漏洞工作難上加難。因此從源代碼的最原始位置出發,對其進行檢測和分析,從而從根本上保護軟件和信息系統的安全,杜絕了代碼后門又能夠避免潛在的漏洞安全威脅,進一步保障了信息安全。

對于計算機應用軟件源代碼的審核工作,最常出現問題的是編碼階段,例如在SQL注入的階段、XSS跨站腳本攻擊等環節。解決這些最常見的問題的最優方式是在軟件的源代碼中進行修改,由此可見,在進行應用軟件信息保護的過程中,從最底層的源代碼著手,是解決該類問題的最有效手段。

2 開源代碼漏洞的類型

隨著開源代碼的發展,對于開源代碼漏洞的研究逐漸深入,分類也不盡相同,主要原因是研究者從不同的角度對其進行劃分,因此對程序運行的影響也不同。通過對漏洞的分析,可以使得程序員對漏洞進行全面的描述和把握。通常而言,按照不同的分列依據,潛在的分類屬性是其最根本的特征之一,因此這也是為漏洞賦予各種不同屬性的方式之一,通過這種方式可使得不同的漏洞類型具有各自的特征。常見漏洞如XSS漏洞、CSRF漏洞、Json-Hijacking漏洞、注入缺陷漏洞都是具有上述特征的典型代表。

XSS漏洞全稱是Cross Site Script,是Web安全中最為常見的漏洞,其攻擊原理是黑客通過給網頁“HTML注入”,在網頁中加入了惡意腳本內容,使得網頁的內容發生了改變,從而達到了控制控制用戶瀏覽器的一種攻擊方式。同時,這種網站訪問,可以是從正常的網站跨到黑客的服務器,也可以是黑客的服務器跨到正常的網站。這種漏洞最常出現在用戶需要輸入內容的地方,這些地方一旦對輸入不進行處理,黑客就可以進行HTML注入,進而篡改網頁。

CSRF漏洞全稱是CSRF(Cross-site request forgery),是一種常見的跨站偽造請求,這種方式與XSS漏洞最大的區別是CSRF通過偽裝成受信任用戶的請求來利用受信任的網站,相比于XSS攻擊,CSRF攻擊往往給用戶帶來更大的風險,具有更高的危險性。其原理是攻擊者通過偽造一個鏈接,將鏈接發送給目標用戶,該鏈接實際上是獲取某網站信任用戶信息的鏈接,目的是在用戶電腦上登錄該網站,一旦用戶點擊了該鏈接,實際上攻擊就完成了。

Json-Hijacking漏洞其實是一個跨域數據竊取漏洞,它通過誘導用戶點擊惡意文件,重寫Array()的構造函數的方法,將敏感的Json數據發送攻擊者,從而造成敏感信息泄露,所以可以理解為“通過CSRF方式導致的敏感信息泄露”。

注入缺陷漏洞通常是由于程序開發人員在源代碼中假設條件造成的,這些假設條件會導致有效輸入的缺失。這種攻擊方式可以使攻擊者避開程序的訪問控制,從而對其內容進行重新創建、修改或綜合刪除用戶的信息。通常有系統調用、Shell命令及SQL注入。SQL注入是目前黑客對數據庫進行攻擊最常使用的手段之一,一般可通過函數調用、緩沖區溢出、SQL操縱及代碼注入等方式操作。

3 開源代碼審計的原則

通常代碼審計的第一步是閱讀系統開源代碼,然后檢查保證代碼正確安全的控制是否設置在了關鍵的邏輯流位置上。經過審計的代碼能夠規避大部分應用程序中的代碼漏洞,提高軟件的運行效率。

3.1 確保輸入信息均不可信原則

在開源代碼程序中有很多輸入情況,主要包括系統內部和外部輸入,這些用戶輸入的信息經過軟件程序處理之后將進行展示。因此每一個輸入都有可能被惡意利用或者偽造成代碼紕漏。因此在輸入信息的過程中,對內容進行嚴格的限定。據相關統計顯示,在漏洞里面由于輸入數據引起的安全問題占90%以上。

3.2 遵循安全編碼基本規范原則

在計算機程序開發過程中有很多編程規范和標準,因此程序員在進行程序開發的過程中要嚴格遵守規范和標準,降低漏洞出現的可能性。此外不同的程序設計語言又推出了不同的標準,要求使用本程序開發語言設計的程序員嚴格按照標準進行程序開發,不得隨意或破壞編碼規范。如美國軟件工程研究所編制的Java安全編碼標準已經于2011年9月14日出版發行,該安全編碼標準著重于Java程序中最容易出錯、產生代碼安全問題的環節,詳細制定了編碼層保障安全的規則,同時也提供了規避產生類似錯誤的最佳操作指南。

遵循安全的編碼規范在代碼開發的階段很有必要,同時也是降低程序源代碼出現漏洞的最有效方式之一。使用規范的編碼方式才能夠確保程序安全、穩定的運行。此外源代碼審計制度制定的不同程序設計語言中的代碼安全規范,并在審查的過程中應該檢查程序員是否遵照了本規范,若沒有遵照所制定的規范,但并沒有造成安全風險的,這種代碼仍屬于存在安全風險的代碼,需要在審計報告中明確指出。同時應該給出合理的修改意見,限期在規定的時間內進行修改完善,確保降低源代碼運行的安全風險。

3.3 漏洞與安全編碼內在一致原則

就目前而言代碼審計主要是查找已知的安全漏洞,這些安全漏洞的發布通常依賴于一些有權威的國際組織,這些漏洞都是根據不同的安全漏洞模型反復查找得出的。通過使用數據流、控制流等技術查找出惡意數據的入口和惡意數據可能被利用的出口點,同時進行人工分析從入口到出口全過程的風險等級,以此來判斷問題存在的真實性,同時所有的出入口都是基于開發源代碼語言API來測試的,因此這種測試與本身代碼的邏輯沒有任何關系,進一步確保了查找的準確性。

3.4 反向思考原則

在進行源代碼審計的過程中,審計人員應該站在惡意用戶或者攻擊者的角度,多方位的考慮有可能攻擊的目標,保持靈活的思維,從各個方面對有可能進行攻擊的代碼進行全方位的排查和分析,對于有可能存在攻擊風險的代碼進行更換。因此審計人員須轉變思維和角色身份,從攻擊者的角度檢查可能存在漏洞的地方,同時對有可能攻擊的地方進行更詳細的設計。

4 開源代碼審計的主要技術方法

4.1 漏洞產生的必要條件

漏洞產生的必要條件主要有三個,分別為第一,用戶可以控制的輸入,第二用戶可以獲得對應的輸出,第三用戶可以利用輸入在服務器或者客戶端執行權限的各項操作。第二個條件是直接通過訪問可以獲得對應的結果,同時也包含了延遲判斷、非正常返回等各種結果獲取的方式,因此對不同方式返回的結果進行分類統計。第三個條件為主觀條件,是指在某一個權限范圍之內出現的各種BUG,即使有設計者考慮不周全引起的,但這種操作的權限在管理者允許范圍之內,這種漏洞的判定彈性條件相對較大,也是能把握的一點。

4.2 危險函數追蹤法

審計原理:由于開源代碼的特殊性,任何人可對其進行讀取、修改和刪除等操作,這些結果的實現都是通過程序設計的函數(方法)實現的,因此在對不同的函數進行審計時,采取針對性的方式獲得關鍵詞和函數等,這種方式達到了從關鍵程序(函數或方法)出發,獲取危險源的目的。

審計方法:在程序設計的編輯器中使用函數追蹤方法,如檢索、源碼審計等。

主要優勢:這種方法的優點主要表現在兩個方面,其一為獲取速度快,二為能夠獲得源代碼,查詢源代碼中可能存在的漏洞代碼。

不足:這種方法的缺點主要表現在兩個方面,其一為很難做到對整體文件進行檢查,特別是對于內容較多的文件,其二是不能檢查文件內容中存在的邏輯錯誤和邏輯對應關系。

4.3 邏輯分析法

審計原理:這是一種采取對所有可能出現概率都可以測試的方法,又稱為黑盒測試,在眾多程序設計語言中都可實現這種測試。通過對頁面內容、頁面反應、數據反應及后臺反應等中的數據監測,獲得對應的不同輸出,這種審計過程體現了權限關系、功能關系、角色關系等的思維導圖,能夠醒目清晰的展示各種關系。

主要優勢:這種方法的主要優勢表現在兩個方面,其一為可以尋找相對危險的函數產生的各種漏洞,且發現的準確率會很高,具有很強的針對性,其二為通過目前主要的黑盒測試、白盒測試及灰盒測試可以幾乎對所有的漏洞類型進行檢查,能夠滿足絕大多數的測試需求。

不足:主要表現在兩個方面,其一為在審計之前需要完全了解并熟知代碼的內容,因此在審計之前的準備時間較長,其次為由于測試內容較多,容易造成測試不完善,有可能漏掉部分本身存在的漏洞。

4.4 抽象解釋

審計原理:抽象解釋法是將程序代碼執行的全部過程看做多個不同抽象狀態的遷移過程,并通過對多個抽象狀態進行分析判斷,獲得最終的結果。初始抽象狀態必須是初始實際狀態或者最接近初始狀態的特殊狀態,并且要求每次狀態遷移過程中要保持與原有狀態不變的關系,這樣做主要是保證分析過程的一致性。在理論上正確的抽象能夠找出程序在執行過程中可能產生的在緩沖區溢出的各種漏洞和其他情況,但是相應的也會有不同程度的誤報,在實際的應用過程中為了降低誤報率,用戶可以根據被檢測程序的特性選擇合適的抽象函數。

主要優勢:可將一個對象域的計算引申到另外一個對象域中,因此可使計算更加簡單容易,同時也是其他眾多檢測分析法的理論基礎。

5 結語

本文對開源代碼組件安全審計進行了綜合性系統介紹。通過對系統開展代碼安全審計,有利于實現對系統全面深入的安全問題分析,及時發現漏洞,提前預防,提高軟件運行的穩定性。

猜你喜歡
源代碼代碼漏洞
漏洞
基于TXL的源代碼插樁技術研究
偵探推理游戲(二)
神秘的代碼
保護好自己的“源代碼”
一周機構凈增(減)倉股前20名
重要股東二級市場增、減持明細
解密別克安全“源代碼”
漏洞在哪兒
近期連續上漲7天以上的股
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合