• 
    

    
    

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

      ?

      軟件開發(fā)過程中的信息安全管理

      2019-03-11 23:47張萍田闖李衛(wèi)
      中國信息化 2019年2期
      關(guān)鍵詞:威脅信息安全測試

      張萍 田闖 李衛(wèi)

      隨著互聯(lián)網(wǎng)和大數(shù)據(jù)的不斷發(fā)展,信息化在社會(huì)各行業(yè)逐漸嶄露頭角,信息安全日漸引起人們的重視。而作為信息化實(shí)現(xiàn)的中堅(jiān)力——軟件開發(fā),如何做好軟件開發(fā)過程中的信息安全管理,從而使得開發(fā)出的信息化產(chǎn)品更有安全保障,也是信息安全管理中非常重要的一個(gè)環(huán)節(jié)。

      一、軟件安全問題的產(chǎn)生

      軟件安全問題產(chǎn)生的原因是什么?有的是因?yàn)殚_發(fā)者缺乏安全開發(fā)的動(dòng)機(jī),有的則是因?yàn)殚_發(fā)者缺乏相關(guān)知識(shí),還有的是因?yàn)槿狈εc安全開發(fā)的相關(guān)工具。

      軟件開發(fā)的信息安全管理實(shí)現(xiàn)思路是通過在軟件開發(fā)生命周期各階段采取必要的、相適應(yīng)的安全措施來避免絕大多數(shù)的安全漏洞。

      二、安全的軟件開發(fā)模型

      隨著軟件安全開發(fā)的日益受到關(guān)注,多種模型被各大軟件公司和軟件專家提出和研究,例如微軟提出可信計(jì)算安全開發(fā)生命周期,Gary McGraw博士等提出的BSI系列模型,以及OWASP(Open Web Application Security Project,開放式Web應(yīng)用程序安全項(xiàng)目)組織提出的CLASP綜合的輕量應(yīng)用安全過程和SAMM軟件保證成熟度模型等。

      其中微軟提出的SDL(Security Development Lifecycle,安全開發(fā)生命周期)相對認(rèn)可度較高,適合大型企業(yè),大型軟件的開發(fā)。該模型將軟件生命周期劃分為5+2個(gè)階段,每個(gè)階段有相應(yīng)必需的安全活動(dòng),如圖1所示:

      三、安全軟件開發(fā)過程

      首先,在開始軟件開發(fā)過程之初,開發(fā)團(tuán)隊(duì)的所有成員都必須接受適當(dāng)?shù)陌踩嘤?xùn),了解相關(guān)的安全知識(shí),培訓(xùn)對象包括開發(fā)人員、測試人員、項(xiàng)目經(jīng)理、產(chǎn)品經(jīng)理等。

      (一)軟件安全需求分析

      在軟件需求分析階段,不僅要考慮系統(tǒng)的功能需求,還要考慮系統(tǒng)的安全,比如不應(yīng)該做什么。功能需求、安全需求、安全目標(biāo)要達(dá)到平衡,從安全的角度以風(fēng)險(xiǎn)管理為基礎(chǔ),建立“威脅”的分析計(jì)劃,不僅要從用戶的角度出發(fā)考慮系統(tǒng)的功能,還應(yīng)從攻擊者的角度出發(fā)考慮系統(tǒng)的漏洞。

      所以,在軟件需求分析階段,需要加入以下的安全方面的考慮:軟件提供的安全功能、軟件如何安全地與用戶交互、安全方面的考慮對軟件開發(fā)計(jì)劃的影響、軟件的風(fēng)險(xiǎn)評估和威脅模、 軟件的默認(rèn)功能配置等等。

      (二)軟件安全設(shè)計(jì)

      軟件系統(tǒng)的每一項(xiàng)需求,都應(yīng)該在軟件安全設(shè)計(jì)階段認(rèn)真考慮,根據(jù)安全需求方案確定的安全目標(biāo),對初步風(fēng)險(xiǎn)評估確定的控制措施的具體技術(shù)實(shí)現(xiàn)而進(jìn)行安全設(shè)計(jì)。

      安全概要設(shè)計(jì)階段,包括但不限于:安全體系結(jié)構(gòu)設(shè)計(jì)、各功能塊間的處理流程、與其他功能的關(guān)系、安全協(xié)議設(shè)計(jì)、安全接口設(shè)計(jì)等。

      安全詳細(xì)設(shè)計(jì)階段,作為安全功能的程序設(shè)計(jì)階段,應(yīng)當(dāng)直接指導(dǎo)安全功能的編碼工作。包括但不限于:模塊設(shè)計(jì)、內(nèi)部處理流程、數(shù)據(jù)結(jié)構(gòu)、輸入/輸出項(xiàng)、算法、邏輯流程圖等。

      軟件安全設(shè)計(jì)的核心原則參考如下:

      如攻擊面最小化、基本隱私、權(quán)限最小化、默認(rèn)安全、縱深防御、威脅建模等等。其中威脅建模,微軟使用的是STRIDE威脅建模方法,STRIDE的通用步驟如圖2:

      威脅建模建議越早越好,一般在設(shè)計(jì)階段進(jìn)行,流程是,用程序建模(Diagram)、枚舉威脅(Identify)、緩解威脅(Mitigate)、驗(yàn)證緩解措施(Validate)。

      (三)安全編碼原則

      代碼安全編譯、代碼安全審核、對所有輸入數(shù)據(jù)進(jìn)行檢查、驗(yàn)證及過濾。

      (四)安全測試

      除了軟件開發(fā)傳統(tǒng)的單元測試,集成測試,系統(tǒng)測試和驗(yàn)收測試外,還要有系統(tǒng)的安全測試。安全測試是進(jìn)行安全性的評估,而不是摧毀或破壞,一般常用模糊測試和滲透測試兩種。

      模糊測試,也稱Fuzz測試,一種通過提供非預(yù)期的輸入并監(jiān)視異常結(jié)果來發(fā)現(xiàn)軟件故障的方法。該測試強(qiáng)制軟件程序使用惡意或破壞性的數(shù)據(jù)并進(jìn)行觀察結(jié)果的一種測試方法。不夠強(qiáng)壯的程序會(huì)崩潰,利用大量的測試用例,查找漏洞或可靠性的Bug,是一種非常有效的漏洞挖掘技術(shù),已知漏洞大部分都是通過這種技術(shù)發(fā)現(xiàn)的。

      滲透測試是通過模擬惡意攻擊者進(jìn)行攻擊,來評估系統(tǒng)安全的一種評估方法。該測試是從攻擊的角度測試軟件系統(tǒng)是否安全,使用自動(dòng)化工具或者人工的方法模擬攻擊者的輸入,找出運(yùn)行時(shí)刻目標(biāo)系統(tǒng)所存在的安全漏洞。通過滲透測試找出來的問題都是真實(shí)的,也是較為嚴(yán)重的,但滲透測試一般只能到達(dá)有限的測試點(diǎn),覆蓋率較低。

      兩者相比較,F(xiàn)uzz測試嘗試著通過半隨機(jī)的方式進(jìn)行數(shù)據(jù)發(fā)送,來找出系統(tǒng)的漏洞,這樣極大的降低安全性測試的門檻。然而,F(xiàn)uzz測試這樣也要求測試人員對被測的系統(tǒng)有更一定深度的了解,才能生成更準(zhǔn)確的結(jié)果。與滲透測試相比,模糊測試顯然更易于進(jìn)行。而且,借由自動(dòng)化的測試工具,模糊測試可以把安全方面的經(jīng)驗(yàn)積累集成到測試工具中,從而為組織的持續(xù)的安全性測試提供組織財(cái)富積累。

      安全測試,對測試人員還有一定的特殊要求,比如技術(shù)、知識(shí)和經(jīng)驗(yàn)都很重要,像“壞人”一樣思考安全問題,在做安全測試過程中,要做好系統(tǒng)備份、恢復(fù)措施和風(fēng)險(xiǎn)規(guī)避等方面的充分準(zhǔn)備。

      最后,軟件系統(tǒng)發(fā)布時(shí)必須要包含安全事件響應(yīng)計(jì)劃。該計(jì)劃即使在發(fā)布時(shí)不包含任何已知漏洞的產(chǎn)品,也要包含可能在日后面臨新出現(xiàn)的威脅。此外,還要關(guān)注的是,若是產(chǎn)品中有外包的部分,即包含第三方單位開發(fā)的源代碼,也需要留下第三方的聯(lián)系方式并加入事件響應(yīng)計(jì)劃,以便在發(fā)生問題時(shí)能夠找到相應(yīng)的責(zé)任人。

      綜上所述,我們在軟件開發(fā)過程中,要在各傳統(tǒng)階段時(shí),時(shí)刻不忘信息安全的管理,總結(jié)如下原則和要點(diǎn):

      1.做好信息安全的培訓(xùn),要求整個(gè)團(tuán)隊(duì)樹立好信息安全的意識(shí);

      2.進(jìn)行充分溝通,包括與客戶、領(lǐng)導(dǎo)、項(xiàng)目經(jīng)理、團(tuán)隊(duì)中相關(guān)干系人等;

      3.規(guī)范整個(gè)生命周期的流程,確保所有項(xiàng)目都與安全團(tuán)隊(duì)保持良好溝通,避免遺漏;

      4.增加獨(dú)立的安全團(tuán)隊(duì),并樹立安全部門的權(quán)威性,各個(gè)項(xiàng)目需由安全部門審核通過后才可正式發(fā)布;

      5.將安全的技術(shù)方案寫到需求、設(shè)計(jì)等工作文檔中;

      6.記錄所有安全相關(guān)的缺陷,激勵(lì)開發(fā)人員編寫更安全的代碼,進(jìn)行信息安全的知識(shí)庫的積累,形成持續(xù)改進(jìn)的良性循環(huán)。

      四、軟件開發(fā)過程中的信息安全管理

      那所有軟件的開發(fā)是不是都必須完整地遵循軟件“安全開發(fā)”過程呢?答案并不是。

      軟件同其他產(chǎn)品不同,軟件產(chǎn)品具有明顯的特殊性,軟件產(chǎn)品在開發(fā)過程中的信息安全管理也更具復(fù)雜性。

      首先,考慮完成該軟件開發(fā)的整個(gè)過程是否達(dá)到了一定要求。我們在實(shí)踐中不斷總結(jié),以基于ISO9001標(biāo)淮,同時(shí)吸收CMMI的原則,制定的軟件安全開發(fā)程序文件和指導(dǎo)書,擬制記錄這些流程操作的記錄表格模板。軟件安全開發(fā)過程包含合同評審、采購、項(xiàng)目管理、軟件開發(fā)、變更控制、設(shè)計(jì)評審、文檔控制、測試控制、不合格品控制、現(xiàn)場安裝、售后服務(wù)、技術(shù)支持、培訓(xùn)管理等等,保證軟件開發(fā)過程體系有效性的管理評審、內(nèi)審、文件/記錄控制、糾正/預(yù)防措施控制等程序文件,從而為安全開發(fā)過程的各項(xiàng)操作提供科學(xué)合理的指導(dǎo),以此構(gòu)成完整嚴(yán)密的安全開發(fā)過程保證體系。

      總之,軟件的安全開發(fā),應(yīng)具體問題具體分析,結(jié)合相應(yīng)的場景,實(shí)際的情況,對軟件安全開發(fā)的過程進(jìn)行定制裁剪,如可以選擇:代碼審核 + 體系結(jié)構(gòu)風(fēng)險(xiǎn)評估,基于風(fēng)險(xiǎn)的安全測試 + 滲透測試,安全需求分析 + 濫用案例開發(fā),代碼審核 + 滲透測試,體系結(jié)構(gòu)風(fēng)險(xiǎn)分析 + 基于風(fēng)險(xiǎn)的測試等等組合方式,有的放矢,綜合平衡考慮各影響因子,按需選用。

      五、結(jié)論

      隨著軟件安全開發(fā)的日益受到關(guān)注,各種安全管理模型也逐漸出現(xiàn),但各種理論模型如何和企業(yè)的需求有機(jī)結(jié)合,讓真正簡單適用的模型在組織中落地,讓組織從中獲益,需要所有相關(guān)人員從理論到實(shí)踐,從實(shí)際工作出發(fā),共同探討解決方案,盡早形成軟件組織的自主創(chuàng)新的的安全開發(fā)模式。

      猜你喜歡
      威脅信息安全測試
      信息安全不止單純的技術(shù)問題
      人類的威脅
      基于模糊綜合評價(jià)法的信息安全風(fēng)險(xiǎn)評估模型
      基于模糊綜合評價(jià)法的信息安全風(fēng)險(xiǎn)評估模型
      心理測試
      搞笑圖片
      心理小測試
      測試
      2014第十五屆中國信息安全大會(huì)獎(jiǎng)項(xiàng)
      小測試:你對電子郵件上癮了嗎?
      宜昌市| 寿宁县| 讷河市| 广南县| 射阳县| 株洲县| 普兰店市| 通江县| 克什克腾旗| 武宣县| 太康县| 万山特区| 隆林| 泽库县| 海兴县| 永和县| 五指山市| 邮箱| 胶南市| 灵武市| 大兴区| 万宁市| 江孜县| 内丘县| 龙南县| 宜宾县| 修水县| 榕江县| 娄底市| 察雅县| 西和县| 盐亭县| 南郑县| 涞水县| 通化市| 黄浦区| 磐石市| 清河县| 枞阳县| 扶沟县| 德江县|