• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      軟件注入缺陷典型案例

      2015-01-07 11:29:09馮濟舟
      航天標準化 2015年4期
      關(guān)鍵詞:文件名合法命令

      馮濟舟

      (中國電子科技集團公司第三十八研究所,安徽合肥230088)

      軟件注入缺陷典型案例

      馮濟舟

      (中國電子科技集團公司第三十八研究所,安徽合肥230088)

      軟件測試是能力成熟度模型集成(CMMI,CapabilityMaturityModelIntegration)中驗證(Ver,Verification)與確認(Val,Validation)過程域的重要表現(xiàn)形式,是保障軟件可靠性的重要手段。近年來,隨著軟件規(guī)模的增大和復(fù)雜程度的不斷提高,軟件測試技術(shù)也不斷發(fā)展,現(xiàn)有測試方法已能夠確保導(dǎo)致系統(tǒng)崩潰問題的測試輸入的覆蓋。然而程序設(shè)計語言本身固有的特性使得許多漏洞無法在編譯、運行階段被發(fā)現(xiàn),且這些固有漏洞在不導(dǎo)致系統(tǒng)崩潰的情況下,可以通過非法注入篡改用戶權(quán)限的形式威脅系統(tǒng)安全。面對此種軟件安全的新形勢,開發(fā)人員及測試人員由于缺乏此方面的經(jīng)驗和認識,造成無法意識到此問題帶來的隱患,而忽略此問題的測試及修正。

      本文根據(jù)實際工程經(jīng)驗對此缺陷在實踐中的具體表現(xiàn)形式進行歸納和總結(jié),并針對每種表現(xiàn)形式以具體代碼實例進行故障模式分析,給出補償措施分析,這對提高軟件質(zhì)量具有重要作用。

      1 命令注入導(dǎo)致惡意代碼破壞系統(tǒng)

      故障模式:網(wǎng)絡(luò)應(yīng)用程序從socket套接字中接收用戶自定義參數(shù),并且使用這些參數(shù)啟動進程時,如果放置未經(jīng)驗證的用戶輸入命令數(shù)據(jù)到一個執(zhí)行請求中,用戶數(shù)據(jù)就可以直接影響執(zhí)行代碼,造成用戶可以在服務(wù)器上使用應(yīng)用程序特權(quán)運行允許執(zhí)行破壞系統(tǒng)的自定義惡意代碼的情況。系統(tǒng)直接執(zhí)行用戶人工輸入的參數(shù)para,當(dāng)輸入內(nèi)容為“&shutdown-s-f-d p”時,無論該用戶權(quán)限是否合法,都將導(dǎo)致服務(wù)器關(guān)機。

      補償措施分析:對于命令注入缺陷,需要關(guān)注程序代碼中接收用戶自定義參數(shù)para,以及定義的用戶可使用合法、有效命令參數(shù)集{A}。程序只需驗證輸入的用戶命令參數(shù)para在系統(tǒng)規(guī)定的用戶可使用合法、有效命令參數(shù)集{A}中(cmd_para∈{A}),即可避免命令注入問題。以故障模式分析的案例為例,在系統(tǒng)執(zhí)行用戶人工輸入?yún)?shù)之前,判斷所輸入?yún)?shù)是否符合所定義用戶可使用合法、有效命令參數(shù)規(guī)則,以此判斷該命令是否執(zhí)行,從而避免非法用戶引起的服務(wù)器關(guān)機事件。

      2 文件名注入導(dǎo)致獲得訪問權(quán)限

      故障模式:網(wǎng)絡(luò)應(yīng)用程序從socket套接字中接收來自用戶自定義文件名或路徑用于應(yīng)用程序文件處理時,應(yīng)用程序在服務(wù)器文件系統(tǒng)中存儲一些以用戶信息名稱作為文件名的用戶數(shù)據(jù),如果未驗證的數(shù)據(jù)出現(xiàn)在文件名中,那么用戶就能夠獲得訪問系統(tǒng)上任何文件的權(quán)限,并可以向應(yīng)用系統(tǒng)注入特殊準備的惡意數(shù)據(jù)。當(dāng)用戶提供“c:\windows\system.ini”作為信息名稱和一些特別準備的配置文件內(nèi)容作為信息內(nèi)容時,那么在保存這些信息后,系統(tǒng).ini文件可能被篡改并保存一些危險內(nèi)容。

      補償措施分析:對于文件注入缺陷,需要關(guān)注程序代碼中從socket套接字中接收到的用戶自定義文件名name_para,以及系統(tǒng)定義的用戶合法、有效文件名及路徑集{A}。程序只需驗證輸入的用戶自定義文件名name_para在系統(tǒng)規(guī)定的

      用戶可使用合法、有效文件名或路徑集{A}中(name_para∈{A}),即可避免文件名注入問題。以故障模式分析的案例為例,當(dāng)用戶人工輸入內(nèi)容“c:\windows\system.ini”時,系統(tǒng)會根據(jù)validate函數(shù)中定義的用戶可使用的合法、有效文件名和路徑,判斷該命令是否執(zhí)行,從而避免非法用戶引起的文件名注入問題。

      3 SQL注入導(dǎo)致惡意控制數(shù)據(jù)庫

      故障模式:當(dāng)應(yīng)用程序使用用戶提供數(shù)據(jù)或未經(jīng)驗證數(shù)據(jù)源來構(gòu)建SQL查詢,并且在其使用之前不對這些數(shù)據(jù)進行驗證時,用戶可能按照開發(fā)者不希望的方式改變SQL語句,從而完全控制數(shù)據(jù)庫甚至在系統(tǒng)上執(zhí)行命令。當(dāng)用戶人工輸入登錄名稱:admin'or'1'='1以及登錄口令:123456'or'1'='1時,生成的SQL語句則變?yōu)镾ELECT user_id,user_class,rights FROM users WHEREuser_name='admin'or'1'='1'and password='123456'or'1'='1',因為where條件始終為真,所以盡管攻擊者沒有提供任何必要的許可信息,仍將成為用戶表中的最高權(quán)限用戶而得到所有用戶的信息。

      補償措施分析:對于SQL注入缺陷,需要關(guān)注程序代碼中從socket套接字中接收到的用戶自定義的輸入SQL參數(shù),通過獲得用戶數(shù)據(jù),對用戶輸入的SQL參數(shù)的合法性和有效性進行判斷,即可避免SQL注入問題。以模式分析的案例為例,當(dāng)攻擊者人工輸入登錄名稱:admin'or'1'='1以及登錄口令:123456'or'1'='1時,通過獲得用戶數(shù)據(jù),而不是直接創(chuàng)建一個包含參數(shù)值的文字查詢,從而避免非法用戶引起的SQL注入問題。

      本文根據(jù)實際工程經(jīng)驗描述了軟件注入缺陷在實踐過程中的具體表現(xiàn)形式、故障模式及補償措施,不僅可以為開發(fā)人員提供避免編程時引入軟件注入缺陷漏洞的參考,也可以作為測試人員設(shè)計測試方案的一種方法,這對提高軟件系統(tǒng)的可靠性具有積極意義。

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

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

      馮濟舟(1984年—),男,碩士,工程師,現(xiàn)從事軟件工程化和軟件測試工作。

      猜你喜歡
      文件名合法命令
      只聽主人的命令
      合法兼職受保護
      被賴賬討薪要合法
      公民與法治(2020年3期)2020-05-30 12:29:56
      右鍵調(diào)用多重更名更方便
      電腦愛好者(2019年9期)2019-10-30 03:43:29
      Excel輕松提取文件名
      合法外衣下的多重阻撓
      中國外匯(2019年14期)2019-10-14 00:58:32
      移防命令下達后
      找個人來替我懷孕一一代孕該合法嗎?
      媽媽寶寶(2017年2期)2017-02-21 01:21:22
      這是人民的命令
      不讓長文件名成為“絆腳石”
      電腦迷(2014年8期)2014-04-29 07:37:40
      高陵县| 兴隆县| 汶上县| 横峰县| 民县| 随州市| 昌宁县| 黔西| 怀柔区| 沁水县| 静乐县| 黎城县| 磐安县| 临安市| 白山市| 大同县| 林口县| 阿城市| 杭锦旗| 清原| 青川县| 平远县| 枣庄市| 镇赉县| 景泰县| 潜江市| 甘德县| 五华县| 藁城市| 剑川县| 无棣县| 贵州省| 泰顺县| 宣威市| 滁州市| 盈江县| 昆山市| 工布江达县| 孝昌县| 密云县| 航空|