國家保密局網(wǎng)站>>保密科技

基于AHP-熵權(quán)法的代碼編碼安全影響因素分析

2024年10月16日    來源:國家保密科技測評中心【字體: 打印

【摘 要】 本文采用HFACS模型分析得到影響代碼編碼安全的21個人為影響因素,并分別采用AHP法、熵權(quán)法獲得21個人為影響因素的主觀權(quán)重、客觀權(quán)重,進而獲得綜合權(quán)重!靶畔踩枨蟛幻鞔_”和“未正確實現(xiàn)”是權(quán)重值最高的2個人為影響因素,加強信息安全需求分析和建立嚴(yán)格的信息安全功能審查機制是減少代碼編碼安全問題、提升代碼編碼質(zhì)量的關(guān)鍵環(huán)節(jié)。

【關(guān)鍵詞】 代碼編碼安全    HFACS    AHP    熵權(quán)法

1 引言

當(dāng)前社會處于信息時代,信息安全問題愈演愈烈,其中大部分信息安全問題都由應(yīng)用系統(tǒng)自身的安全問題造成。美國國家標(biāo)準(zhǔn)技術(shù)研究院(NIST)對信息安全事件的跟蹤調(diào)查顯示,超過九成的信息安全事件都與軟件代碼有關(guān)。

當(dāng)前學(xué)術(shù)界和產(chǎn)業(yè)界對于代碼安全的研究主要集中于代碼編碼安全,主流觀點認為在軟件編碼階段的主要問題集中在代碼自身缺陷、用戶惡意輸入和不期望的內(nèi)存占用等,對于整個軟件而言其缺陷主要在于輸入驗證與表示、應(yīng)用程序接口(API)誤用、安全特征、時間與狀態(tài)、錯誤處理、代碼質(zhì)量、封裝和環(huán)境等安全漏洞。本文認為雖然代碼需要基于軟硬件系統(tǒng)才能真正發(fā)揮作用,即代碼編碼安全顯然受到軟硬件系統(tǒng)環(huán)境的約束,但代碼由人來編寫,編碼安全主要受到人為因素影響。當(dāng)前的研究主要關(guān)注代碼編碼自身的問題,卻缺乏對造成代碼編碼安全的人為影響因素的相關(guān)研究。

本文首先采用人為因素分析與分類系統(tǒng)(Human Factors Analysis and Classi-fication System, HFACS)模型分析得到影響代碼編碼安全的人為因素指標(biāo)體系,然后采用AHP-熵權(quán)法獲得各人為影響因素的影響權(quán)重,從而獲得對代碼編碼安全影響最大的人為影響因素,為提高代碼編碼質(zhì)量提供有價值的參考。

2 基礎(chǔ)知識

2.1 HFACS模型

HFACS模型是一種被工業(yè)界廣泛使用的事故致因分析模型,在“瑞士奶酪”模型基礎(chǔ)上發(fā)展而來,最早被用于對航空事故中的人為因素分析建立系統(tǒng)、科學(xué)的分類體系。HFACS將導(dǎo)致事故發(fā)生的原因劃分為不安全行為、不安全行為的前提條件、不安全監(jiān)督、組織文化4個維度并分別予以細化。目前,HFACS模型已經(jīng)被廣泛應(yīng)用于航空、航海、鐵路、醫(yī)療等領(lǐng)域。

代碼編碼安全主要受到人為因素影響,如果將代碼編碼視為業(yè)務(wù)執(zhí)行的過程,則編碼人員產(chǎn)生不安全代碼的行為即可視為發(fā)生事故,因此本文采用HFACS模型進行事故致因分析。

2.2 AHP-熵權(quán)法

2.2.1 AHP法

層次分析法(Analytic Hierar-chy Process, AHP)是將與決策相關(guān)元素分解后進行定性、定量分析的一種層次權(quán)重決策分析方法。經(jīng)典的AHP法采用1~9標(biāo)度法,具體步驟如下。

步驟1:確立指標(biāo)體系的目標(biāo)層、準(zhǔn)則層、記憶方案層,規(guī)定下層因素影響上層因素,且相同層級間元素相互獨立。

步驟2:構(gòu)造判斷矩陣。對受到n個因素影響的對象,對其采用1~9標(biāo)度法進行重要程度賦值,由此形成判斷矩陣A。

步驟3:計算各因素權(quán)重,根據(jù)矩陣?yán)碚撚嬎愀饕蛩貦?quán)重系數(shù)就是計算判斷矩陣的特征向量。

2.2.2 熵權(quán)法

熵的概念來源于熱力學(xué),它可以表示系統(tǒng)的無序程度,當(dāng)用于信息系統(tǒng)時,評價指標(biāo)值越大,熵值越小,則該指標(biāo)所攜帶信息越多,可對其賦予較大權(quán)重,反之亦然。熵權(quán)法具體步驟如下。

步驟1:對數(shù)據(jù)進行標(biāo)準(zhǔn)化處理。對具有n個被評價對象的矩陣X,每個評價對象有m個評價值,從而獲得n行 列的矩陣m,對矩陣Y的各元素進行標(biāo)準(zhǔn)化處理。

步驟2:對矩陣進行歸一化處理。

步驟3:根據(jù)歸一化后的矩陣計算各評價指標(biāo)熵值。

2.2.3 AHP-熵權(quán)法

AHP法屬于主觀賦權(quán)法,更多體現(xiàn)評價專家的個人意志;而熵權(quán)法更注重獲得客觀信息,更多地體現(xiàn)信息系統(tǒng)客觀信息。為避免評價結(jié)果過于主觀或過于客觀,將AHP法和熵權(quán)法獲得的權(quán)重值取算數(shù)均值,以獲得各指標(biāo)的組合權(quán)重,有效避免采用單一方法確定指標(biāo)權(quán)重的局限性問題。

計算AHP法獲得權(quán)重值、熵權(quán)法獲得權(quán)重值的算數(shù)均值,將其做為AHP-熵權(quán)法獲得的最終權(quán)重值。

3 基于HFACS模型的人為影響因素

本文在對多個應(yīng)用系統(tǒng)開發(fā)項目進行分析研究后,通過詢問一線編碼人員和項目管理人員、提請相關(guān)領(lǐng)域?qū)<疫M行補充等方式獲得影響代碼編碼安全的典型人為因素,并采用HFACS模型將其劃分層次,將其定義為不良的組織管理、不良的監(jiān)管、不安全行為的前提條件和不安全行為4個層級,并將不良的組織管理和不安全的監(jiān)管合稱為管理層,將不安全行為的前提條件和不安全行為合稱為實施層,且將不安全行為的前提條件又細分為人的因素和環(huán)境因素2部分,HFACS模型及相應(yīng)指標(biāo)體系如圖1所示。

圖1 代碼編碼安全的致因分析HFACS模型

根據(jù)典型HFACS模型,將影響代碼編碼安全的影響因素劃分為不良的組織管理、不良的監(jiān)管、不安全行為的前提條件和不安全行為4個層級。

不良的組織管理指項目管理層在項目實施中存在管理漏洞、管理人員未履行相應(yīng)安全管理責(zé)任,本文將其細化為選擇技術(shù)路線不合理、未落實安全責(zé)任、違規(guī)外包、信息安全需求不明確、信息安全設(shè)計不足等具體因素,如果項目管理層選擇技術(shù)路線不合理,會導(dǎo)致項目實施過程中出現(xiàn)延期、返工等問題,最終影響代碼編碼質(zhì)量;如果項目管理人員未落實安全責(zé)任,則會忽視項目實施中的眾多安全問題;如果項目管理層將項目違規(guī)外包,則難以保證承包方能夠保證代碼編碼質(zhì)量,極有可能在代碼中引入安全缺陷;如果信息安全需求不明確或信息安全設(shè)計不足,則極有可能導(dǎo)致最終實現(xiàn)的功能模塊中信息安全功能不完備。

不良的監(jiān)管指管理人員在項目實施技術(shù)、環(huán)境等方面存在決策失誤,以及對實施過程中的不安全行為、已知錯誤監(jiān)管不到位。如果最終制定不合理的工作計劃,則據(jù)此對項目實施的監(jiān)管最終會對代碼編碼質(zhì)量產(chǎn)生負面影響;如果監(jiān)管不到位,則可能導(dǎo)致信息安全缺陷不能被及時發(fā)現(xiàn);如果監(jiān)管違規(guī),將合理的情況視為不合理或?qū)⒉缓侠淼那闆r視為合理,均會在代碼編碼過程中引入缺陷;如果不糾正已經(jīng)發(fā)現(xiàn)的缺陷,則該缺陷將一直存在直至被重新發(fā)現(xiàn)處理。

不安全行為的前提條件指一切引起不安全行為最終導(dǎo)致事故的先兆因素,可將其劃分為人的因素和環(huán)境因素2大類。人的因素中,如果從業(yè)人員技術(shù)水平不足,則可能會在代碼中引入缺陷;如果信息安全意識薄弱,則代碼編碼人員和項目管理人員可能會忽視部分信息安全問題;如果人員身體狀況不佳或工作壓力過大,則可能導(dǎo)致人員技術(shù)發(fā)揮不穩(wěn)定。環(huán)境因素中,設(shè)備故障、氣候不佳和工作氛圍差,都可能導(dǎo)致項目實施困難或在某重要節(jié)點出錯。

不安全行為指項目參與人員在項目實施過程中存在違規(guī)、違法行為。遺忘是非常有可能發(fā)生的不安全行為,因為一線編碼人員遺忘處理某信息安全問題,則勢必在代碼中遺留缺陷;未正確實現(xiàn)是指一線編碼人員認識到應(yīng)當(dāng)在代碼中實現(xiàn)安全功能,但因為技術(shù)能力不足或粗心等原因?qū)е挛茨苷_實現(xiàn),從而在代碼中引入缺陷;判斷失誤是指當(dāng)需在某處實現(xiàn)特定功能時,受技術(shù)水平或其他原因影響,未能選擇正確的實現(xiàn)方式甚至未予處理,從而在代碼中遺留缺陷;違規(guī)操作是指應(yīng)采取合規(guī)、合理的實現(xiàn)方式,但受工期、技術(shù)等方面影響,采取了違反規(guī)定的實現(xiàn)方式,從而在代碼中遺留缺陷。

4 人為影響因素權(quán)重分析

4.1 AHP法獲得權(quán)重值

本文邀請專家根據(jù)1~9標(biāo)度法對表1所示人為影響因素賦權(quán),依次獲得影響代碼編碼安全的各級指標(biāo)的判斷矩陣,按照上文所述計算步驟最終得到各指標(biāo)的權(quán)重值如表1所示。

表1 依據(jù)AHP法獲得的各人為影響因素權(quán)重值

4.2 熵權(quán)法獲得權(quán)重值

本文通過邀請7位代碼編碼安全領(lǐng)域?qū)<疫M行打分獲得各人為影響因素權(quán)重信息,如表2所示。

對表2中信息按照上文所述步驟,采用熵權(quán)法計算最終得到各指標(biāo)權(quán)重值,如表3所示。

表2 人為影響因素的專家打分權(quán)重情況表

表3 各指標(biāo)熵權(quán)值

4.3 AHP-熵權(quán)法獲得權(quán)重值

對表1和表3中各因素的權(quán)重值分別取算數(shù)均值得到如表4所示綜合權(quán)重值。

表4 人為影響因素的主觀權(quán)重、客觀權(quán)重和綜合權(quán)重值

AHP法獲得的權(quán)重值主要體現(xiàn)評價專家的主觀看法,因此稱為主觀權(quán)重;熵權(quán)法獲得的權(quán)重值主要體現(xiàn)信息的客觀信息,因此稱為客觀權(quán)重;綜合二者能夠避免評價結(jié)果過于主觀或過于客觀,因此稱為綜合權(quán)重。主觀權(quán)重、客觀權(quán)重和綜合權(quán)重的對比如圖2所示。

圖2 主觀權(quán)重、客觀權(quán)重和綜合權(quán)重對比

5 結(jié)果分析與防護對策

在“不良的組織管理”層級中,致因因素“信息安全需求不明確”的主觀權(quán)重、客觀權(quán)重和綜合權(quán)重分別為0.1325、0.0695和0.1010,其權(quán)重值位居第一;致因因素“信息安全設(shè)計不足”的主觀權(quán)重、客觀權(quán)重和綜合權(quán)重分別為0.0343、0.0748和0.0546,僅次于“信息安全需求不明確”因素;其他致因因素與“信息安全需求不明確”和“信息安全設(shè)計不足”相比,權(quán)重值相差較遠。因此,在組織管理中,明確信息安全需求和充分考慮信息安全需求的軟件設(shè)計是確保代碼編碼安全的重要前提條件,確保后續(xù)代碼編碼能夠順利進行,同時在代碼編碼過程中,項目負責(zé)人和其他利益相關(guān)人員應(yīng)認真履職,全過程落實安全責(zé)任,不違規(guī)外包且選擇合理的技術(shù)路線,減少信息安全風(fēng)險。

在“不安全的監(jiān)管”層級中,致因因素“未糾正已知錯誤”的主觀權(quán)重、客觀權(quán)重和綜合權(quán)重分別為0.0493、0.0681、0.0587,其權(quán)重值最大;余下的“不合理的任務(wù)計劃”“監(jiān)管不到位”和“監(jiān)管違規(guī)”相互之間差值不大,且均與“未糾正已知錯誤”有較大差值。這說明在該層級中“未糾正已知錯誤”是造成監(jiān)管失效的主要因素。因此在項目實施過程中,需要加強對已知信息安全問題的糾正能力,如果不能及時糾正已發(fā)現(xiàn)的問題,則勢必將越來越多的信息安全問題留在代碼中,導(dǎo)致代碼質(zhì)量嚴(yán)重下降。

在“不安全行為的前提條件”層級中,致因因素“從業(yè)人員技術(shù)水平不足”“信息安全意識薄弱”和“信息安全培訓(xùn)不足”的綜合權(quán)重值分別為0.0541、0.0517和0.0428,余下致因因素的權(quán)重值與上述致因因素權(quán)重值相比差距較大,因此在該層級中“從業(yè)人員技術(shù)水平不足”“信息安全意識薄弱”和“信息安全培訓(xùn)不足”是導(dǎo)致不安全行為的主要前提條件。挑選技術(shù)水平高的從業(yè)人員、加強人員信息安全意識并強化信息安全培訓(xùn),是增強代碼編碼安全的有效途徑。

在“不安全行為”層級中,致因因素“未正確實現(xiàn)”的主觀權(quán)重、客觀權(quán)重和綜合權(quán)重分別為0.2449、0.0690和0.1570,顯著高于其他致因因素。因此該層級主要致因因素為“未正確實現(xiàn)”,即能夠認識到應(yīng)實現(xiàn)必要的信息安全功能,但因種種原因最終未能正確實現(xiàn)相關(guān)功能。因此需要建立嚴(yán)格的功能審查機制,積極開展信息安全功能測試,督促從業(yè)人員重視對信息安全功能的研發(fā)工作。

以某軟件項目管理系統(tǒng)為例,其在代碼中存在文件上傳漏洞、不安全的加解密算法、暴力破解漏洞和遠程代碼執(zhí)行漏洞等典型高危漏洞與缺陷。

經(jīng)訪問項目管理人員和一線編碼人員可知,因為“信息安全需求不明確”導(dǎo)致存在文件上傳漏洞等高危漏洞,因“信息安全設(shè)計不足”導(dǎo)致采用不安全的DES加密算法保護敏感信息;一線編碼人員懶惰而未糾正用戶身份鑒別模塊的暴力破解漏洞,因而存在“未糾正已知錯誤”的情況;項目管理人員和一線編碼人員均認為,經(jīng)過信息安全培訓(xùn)或具有較強信息安全意識的軟件需求分析人員和軟件設(shè)計人員可提出更完備的信息安全設(shè)計需求和設(shè)計方案,經(jīng)過信息安全培訓(xùn)或具有較強信息安全意識的一線編碼人員編碼質(zhì)量顯著高于未經(jīng)培訓(xùn)人員和信息安全意識薄弱人員;從安全需求、軟件設(shè)計等方面都確認需在代碼中避免出現(xiàn)遠程代碼執(zhí)行的高危漏洞,一線編碼人員在編碼過程中知曉應(yīng)在正確的區(qū)域避免遠程代碼執(zhí)行漏洞,然而因編碼不正確,最終遠程代碼執(zhí)行漏洞可被執(zhí)行,存在“未正確實現(xiàn)”的情況。

6 結(jié)語

本文有別于以往從代碼實現(xiàn)層次分析代碼編碼安全的研究方法,探索造成代碼編碼安全問題的人為因素,找出影響代碼編碼安全的21個典型人為影響因素。而后分別采用AHP法、熵權(quán)法獲得各人為影響因素的主觀權(quán)重和客觀權(quán)重,由此獲得各人為影響因素的綜合權(quán)重,能夠避免評價結(jié)果過于主觀或過于客觀。在各人為影響因素中,“信息安全需求不明確”和“未正確實現(xiàn)”是其中權(quán)重值最高的因素,因此加強信息安全需求分析和建立嚴(yán)格的信息安全功能審查機制是減少代碼編碼安全問題、提升代碼編碼質(zhì)量的關(guān)鍵工作。

 (原載于《保密科學(xué)技術(shù)》雜志2023年2月刊)