亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        軟件安全性設計常見問題的思考

        2017-12-14 22:35:50馮濟舟朱婷婷
        航天標準化 2017年4期
        關鍵詞:環(huán)境變量字符串緩沖區(qū)

        馮濟舟 朱婷婷

        (中國電子科技集團38所,安徽合肥,230088)

        軟件安全性設計常見問題的思考

        馮濟舟 朱婷婷

        (中國電子科技集團38所,安徽合肥,230088)

        軟件能力成熟度模型集成;安全隱患;軟件質(zhì)量。

        軟件測試是軟件能力成熟度模型集成的重要活動,隨著軟件規(guī)模和復雜程度的不斷提高,軟件測試技術也不斷發(fā)展,軟件在各個領域比重不斷加深的條件下,對于保障軟件質(zhì)量的軟件測試也提出了更高的要求。此外,由于近年來軟件占產(chǎn)品的比重不斷提升,對軟件的驗證提出了更加嚴格的要求。然而在代碼實現(xiàn)過程中,某些編程時忽視的問題,不僅無法通過測試手段發(fā)現(xiàn),而且會給軟件帶來安全隱患。

        目前,各軟件企業(yè)不僅對質(zhì)量保障的投入不斷加大,而且作為保障軟件質(zhì)量最有效的測試也不斷發(fā)展和完善,形成了一套比較系統(tǒng)而又嚴密的體系。其中包括文檔審查、代碼審查、靜態(tài)分析、單元測試、集成測試、軟件配置項測試和系統(tǒng)測試,并對每個活動的具體內(nèi)容進行了規(guī)范和要求。然而遺憾的是,經(jīng)過如此周密的測試過程,軟件依然會出現(xiàn)一些意想不到的問題。

        根據(jù)實際項目經(jīng)驗,筆者歸納和總結(jié)出一類目前測試方法無法發(fā)現(xiàn)且具有一定的規(guī)律性、易被忽視的軟件安全性設計常見問題,以加強開發(fā)人員在開發(fā)過程中的編碼規(guī)范,增強測試人員在代碼檢查過程中識別風險代碼的能力,對提高軟件質(zhì)量具有積極意義。

        1 當前系統(tǒng)時間作為訪問權限控制的安全性

        當使用標準C庫函數(shù)、MFC庫函數(shù)的時間相關函數(shù)時,所獲取的當前系統(tǒng)時間有可能被篡改;當作為訪問敏感信息的鍵值或者訪問指定函數(shù)的許可時,有可能被可疑的當前系統(tǒng)時間引發(fā)安全漏洞,導致系統(tǒng)的安全隱患,使本不應具有訪問權限的用戶具有了超越權限的控制和操作。對于具有較高安全性需求且具有類似情境的系統(tǒng),應避免使用標準C庫和MFC庫中與時間有關的函數(shù)。其中,標準C庫中與時間有關的函數(shù)如: time、 clock、 ctime、 gmtime、 localtime、mktime和strftime;標準MFC庫中與時間有關的函數(shù)如: GetTime、 GetYear、 GetMonth、 GetDay、GetHour、 GetMinute、 GetSecond 和GetDayOfWeek。

        2 產(chǎn)生隨機數(shù)作為訪問權限控制的安全性

        當使用標準C庫函數(shù)的隨機數(shù)函數(shù)時,所獲取的隨機數(shù)是偽隨機數(shù),即使用最后生成的數(shù)據(jù)作為創(chuàng)建下一個數(shù)據(jù)的種子,這樣便會導致攻擊者通過猜測和計算的手段得出下一個數(shù)據(jù)。如此,對于Web會話采用的隨機會話ID,如果使用標準C庫函數(shù)的隨機數(shù)函數(shù)產(chǎn)生隨機數(shù),則有可能被可疑的用戶猜測到產(chǎn)生的下一個數(shù)據(jù)結(jié)果,通過獲得訪問需要的有權限數(shù)據(jù),偽造會話身份,進而達到欺騙此次會話的效果。

        對于具有較高安全性需求且具有類似情境的系統(tǒng),應避免使用標準C庫函數(shù)的隨機數(shù)函數(shù)。其中,標準C庫中與生成隨機數(shù)有關的函數(shù)如:rand、 random、 randomize和 srand。

        3 使用系統(tǒng)中的環(huán)境變量的安全性

        當使用系統(tǒng)中的環(huán)境變量時,所使用的系統(tǒng)中的環(huán)境變量可能使惡意用戶通過環(huán)境變量傳遞的一個專門制作的字符串到一個正在運行的程序中,這樣就可導致緩沖區(qū)溢出;或者所使用的系統(tǒng)中的環(huán)境變量可能是通過putenv寫入的應用程序的敏感信息 (如密碼),惡意用戶就會捕獲并使用以獲得未經(jīng)授權的權限或訪問敏感數(shù)據(jù)。

        對于具有較高安全性需求且具有類似情境的系統(tǒng),應避免使用系統(tǒng)中的環(huán)境變量,通過編程開發(fā)過程中對系統(tǒng)環(huán)境變量使用的限制,會給系統(tǒng)帶來更好的安全性和可靠性。

        4 使用加載庫的安全性

        當使用標準C庫函數(shù)的加載庫函數(shù)時,要確保加載庫所指定的文件名是完整修飾的,如此才可以保證被加載的庫是始終正確的。當所加載的庫指定的文件名不是完整修飾時,那么期望的模塊可以被攻擊者所取代,給系統(tǒng)帶來安全隱患。比如說,加載庫指定的文件名缺少了文件擴展名時,那么系統(tǒng)將會給此文件使用 “.dll”作為文件擴展名,這樣攻擊者就可以在加載庫函數(shù)指定的搜索路徑中,在系統(tǒng)找到期望的DLL之前的某個位置,放置有問題的DLL,這樣系統(tǒng)就加載了攻擊者指定的DLL,即可能將一個DLL木馬注入到所運行的系統(tǒng)進程中。

        在代碼中加載庫時,需要考慮使用包含具有參數(shù)完整修飾文件名的 “LoadLibrary”函數(shù)或“LoadLibraryEx”函數(shù),以確保加載正確的庫。如果庫文件沒有擴展名時,則將 “.”追加到最后,保證文件名的完整性以及可以被正確識別,確保庫的正確加載。

        5 使用僅帶有一個可變參數(shù)的printf/wprintf函數(shù)的安全性

        當使用標準C庫僅帶有一個可變參數(shù)的printf/wprintf函數(shù)時,如果printf/wprintf函數(shù)傳遞了一個沒有格式指示符的變量,這個變量可以包含一個巧妙的格式化字符串 (包括格式字符 “%n、%x或%s”),則該字符串有可能被用于執(zhí)行惡意指令或使應用程序崩潰。

        避免使用僅帶有一個可變參數(shù)的printf/wprintf函數(shù)。對于具有較高安全性需求且具有類似情境的系統(tǒng),應避免使用標準C庫僅帶有一個可變參數(shù)的printf/wprintf函數(shù)。

        6 使用僅帶兩個參數(shù)且第二個參數(shù)是變量的fprintf/fwprintf函數(shù)的安全性

        當使用標準C庫僅帶兩個參數(shù)且第二個參數(shù)是變量的fprintf/fwprintf函數(shù)時,由于使用了沒有格式指示符的fprintf/fwprintf函數(shù),在傳遞沒有格式指示符的變量時,此變量可以包含一個靈活的格式化的字符串 (包括格式字符 “%n、%x和%s”),則該字符串有可能被用于執(zhí)行惡意指令或使應用程序崩潰。

        對于具有較高安全性需求且具有類似情境的系統(tǒng),應避免使用標準C庫僅帶兩個參數(shù)且第二個參數(shù)是變量的fprintf/fwprintf函數(shù)。

        7 使用向未做邊界檢查的緩沖區(qū)作寫操作的C函數(shù)的安全性

        當使用標準C庫向未做邊界檢查的緩沖區(qū)作寫操作的函數(shù)時,由于對寫入的邊界未檢查緩沖區(qū),因此系統(tǒng)不能正確處理超出邊界的錯誤,造成系統(tǒng)安全的隱患。

        對于具有較高安全性需求且具有類似情境的系統(tǒng),應避免使用向未作邊界檢查的緩沖區(qū)做寫操作的C函數(shù)。其中,標準C庫中與未作邊界檢查的緩沖區(qū)做寫操作有關的函數(shù)如:strcpy、strcat、sprintf、vsprintf、 gets、 strncpy、 strncat、 snprintf和 fgets。

        8 使用string類中data函數(shù)的安全性

        當使用標準C庫String::data函數(shù)返回字符串時,由于該字符串對象中沒有包含一個終止字符,在某種情況下,特別是當與C風格遺留代碼接口交互時,這可能會導致緩沖區(qū)溢出或其它字符串相關的安全漏洞,造成系統(tǒng)安全的隱患。

        對于具有較高安全性需求且具有類似情境的系統(tǒng),應避免使用string類中data函數(shù),可以使用data函數(shù)或c_str函數(shù),這些函數(shù)會返回一個終止字符串。

        9 使用vfork函數(shù)的安全性

        當使用標準C庫vfork函數(shù)時,該函數(shù)可能給系統(tǒng)帶來兩種安全隱患:①當代碼改變或當編譯器版本改變時,程序編碼中所調(diào)用vfork函數(shù)的地方很容易造成系統(tǒng)的失??;②從可移植性方面來講,由vfork函數(shù)生成的子進程,其運行不妨礙其父進程的運行,許多編譯器將其生成隱藏的臨時對象或其它代碼結(jié)構(gòu),這會造成意想不到的后果。

        對于具有較高安全性需求的系統(tǒng),應禁止使用vfork函數(shù),相應的情境可以使用fork函數(shù)代替。

        [1]萬江平,孔學東,楊建梅.集成能力成熟度模型 (CMMI) 的研究 [J].計算機應用研究, 2001,(10).

        [2]李興兵,李孟軍,譚躍進.軍用CMMI模型的建立初探 [J]. 兵工自動化, 2003,(06).

        文 摘:代碼實現(xiàn)過程中存在訪問權限以及使用環(huán)境變量、加載庫、printf/wprinft函數(shù)、緩沖區(qū)作寫操作的C函數(shù)、string類中data函數(shù)、vfork函數(shù)等的安全性問題,對這些無法通過測試手段發(fā)現(xiàn)的問題提出相應的解決措施。

        馮濟舟 (1984年—),男,高級工程師,研究方向:軟件測試和軟件工程化。

        猜你喜歡
        環(huán)境變量字符串緩沖區(qū)
        基于最大熵模型的云南思茅松潛在分布區(qū)
        嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設計與實現(xiàn)
        從桌面右鍵菜單調(diào)用環(huán)境變量選項
        徹底弄懂Windows 10環(huán)境變量
        基于三階段DEA—Malmquist模型的中國省域城鎮(zhèn)化效率測度及其收斂分析
        關鍵鏈技術緩沖區(qū)的確定方法研究
        一種新的基于對稱性的字符串相似性處理算法
        依據(jù)字符串匹配的中文分詞模型研究
        地理信息系統(tǒng)繪圖緩沖區(qū)技術設計與實現(xiàn)
        AVS標準中的視頻碼流緩沖區(qū)校驗模型分析
        電視技術(2012年1期)2012-06-06 08:13:58
        极品少妇xxxx精品少妇偷拍| 国产视频嗯啊啊啊| 中文字幕久区久久中文字幕| 人妻制服丝袜中文字幕| 99久久人妻无码精品系列| 亚洲av无码专区亚洲av| 99精品国产自产在线观看 | 不卡视频在线观看网站| 欧美乱大交xxxxx潮喷| 亚洲碰碰人人av熟女天堂| 亚洲人成绝费网站色www| 国产91会所女技师在线观看| 亚洲国产精品无码久久| y111111少妇影院无码| 黄色av三级在线免费观看| 成人久久久精品乱码一区二区三区| 各种少妇正面着bbw撒尿视频| 国际无码精品| 成人女同av免费观看| 国产精品久久久三级18| 成人久久久久久久久久久| 成人片99久久精品国产桃花岛| 风间由美中文字幕在线| 男人的天堂中文字幕熟女人妻| 无码人妻少妇色欲av一区二区 | 一区二区三区日韩精品视频| 人妻少妇中文字幕乱码| 国产AV边打电话边出轨| 一本色道久久综合亚州精品| 久久精品国产亚洲超碰av| 人妻献身系列第54部| 一区欧美在线动漫| 三级日本理论在线观看| 免费高清av一区二区三区| 欧美在线观看一区二区| 邻居少妇张开腿让我爽视频| 日本丰满少妇裸体自慰| 精品久久久久久久无码| 国产精品亚洲一区二区三区正片| 国产一区二区视频在线免费观看 | 久久AV老司机精品网站导航|