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

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

2024年10月16日    來源:國(guó)家保密科技測(cè)評(píng)中心【字體: 打印

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

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

1 引言

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

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

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

2 基礎(chǔ)知識(shí)

2.1 HFACS模型

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

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

2.2 AHP-熵權(quán)法

2.2.1 AHP法

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

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

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

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

2.2.2 熵權(quán)法

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

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

步驟2:對(duì)矩陣進(jìn)行歸一化處理。

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

2.2.3 AHP-熵權(quán)法

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5 結(jié)果分析與防護(hù)對(duì)策

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

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

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

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

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

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

6 結(jié)語(yǔ)

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

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