- 相關(guān)推薦
軟件安全開發(fā)技術(shù)研究和實施論文
一、引言
隨著信息社會的飛速發(fā)展,人們對軟件的依賴已不可小視,尤其是軟件不僅為人們帶來了許多便利的同時,也對人們的生活方式帶來了巨大改變。在我們生活中,數(shù)字視頻、音樂、電子游戲等娛樂方式已經(jīng)得到普及,而其和交通、通訊和醫(yī)療保健的聯(lián)系也是非常普遍。因為軟件在當(dāng)前和人類有著不同以往的關(guān)系,因此,軟件的安全問題更加應(yīng)該引起重視,因此,下文本文將從軟件安全開發(fā)的關(guān)鍵技術(shù)等方面展開探討。
二、當(dāng)前軟件所面臨的威脅
通過對軟件產(chǎn)品所面臨的安全威脅研究所知,當(dāng)前嚴重威脅著軟件安全威脅因素主要有兩個方面:一方面是對軟件產(chǎn)品的破解、非法傳播和使用,而另一方面則來自于攻擊者針對軟件產(chǎn)品自身的安全漏洞進行的攻擊。這兩者中,無論是來自哪一方面的威脅,都將給企業(yè)帶來巨大的損失。
。ㄒ唬┌鏅(quán)保護
通俗來說,版權(quán)保護問題也即是軟件盜版的問題,它涉及到軟件的非授權(quán)使用和非授權(quán)復(fù)制等兩個主要方面。我們都知道,軟件經(jīng)常會帶來很大的經(jīng)濟、社會效益,因此,它的價值就不言而喻,而這種高價值、低成本、易復(fù)制的特性,使得其非常容易受到攻擊,當(dāng)前,這種問題顯得愈發(fā)突出了。
。ǘ┌踩┒
互聯(lián)網(wǎng)的普及,使得網(wǎng)絡(luò)服務(wù)越來越便利,尤其是隨著云計算的概念的提出,用戶更是享受到了前所未有的便捷,對于用戶來說,也許僅僅需要安裝一個瀏覽器,就可以享受到諸如娛樂和購物等多方面服務(wù)。但是在這種便利的背后,軟件服務(wù)的漏洞卻也存在著,對于數(shù)據(jù)的篡改、竊取等現(xiàn)象時有發(fā)生,甚至給用戶或服務(wù)商帶來巨大損失。
三、軟件安全開發(fā)的關(guān)鍵技術(shù)分析
針對軟件安全開發(fā)存在的問題,本文首先對其中涉及的關(guān)鍵技術(shù)進行分析:
。ㄒ唬┸浖踩_發(fā)流程技術(shù)
當(dāng)前,許多軟件開發(fā)商都沒有具備在軟件構(gòu)建中就采取足夠的安全意識,他們往往將重心放在后期對軟件的安全修復(fù)上,這是不可取的。由于軟件的其他業(yè)務(wù)更容易獲取利潤,因此他們的重心有所偏離。本文經(jīng)過筆者分析,要改變這種狀態(tài),使軟件的安全性達到較高的水平,就應(yīng)該將安全性納入整個軟件開發(fā)生命周期中來進行考慮。本文所采用的軟件開發(fā)流程如下圖1所示,在這個流程中,大致有五個階段:(1)設(shè)計階段;(2)編碼階段;(3)測試階段;(4)發(fā)布階段;(5)維護階段。容易看出,在這個流程中,隨著項目的進展,所有工作的核心都是以安全為主線,并且也可以和螺旋模型、瀑布模型等許多軟件開發(fā)模型得到很好結(jié)合。因此,在軟件生命周期中,幾乎每一個階段都會有不同的行為來提高軟件系統(tǒng)的安全性能。圖1基于改進的軟件安全開發(fā)流程
。ǘ﹦討B(tài)軟件水印技術(shù)
當(dāng)前,軟件的知識產(chǎn)權(quán)保護成為人們原來越關(guān)注的一個焦點問題,尤其是隨著互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,帶寬的提高和各種資源分享技術(shù)的成熟,軟件的傳播也得到了極大便利,其帶來的非授權(quán)現(xiàn)象也變成了非常常見的現(xiàn)象。傳統(tǒng)對軟件知識產(chǎn)權(quán)保護的方法主要加密狗保護、加密、加殼等方法,這些方法雖然也可以有效地防止軟件被破解,但是實踐證明,這些方法對軟件的保護并不是長期有效的,在各種利益的驅(qū)使下,電腦高手等人員對軟件的破解只是時間而已。因此,隨著軟件技術(shù)的發(fā)展,另一種方法被提了出來,這就是動態(tài)水印技術(shù)。動態(tài)水印技術(shù)并不直接對軟件進行保護,它的工作原理是將開發(fā)商的諸如版權(quán)保護信息、身份認證信息等隱藏到軟件產(chǎn)品中,這種信息是不容易被察覺到的,而這種信息又可以標識作者、所有者、發(fā)行者等信息,當(dāng)提取出來以后,可以有效地對產(chǎn)品進行鑒定。實踐證明,這種動態(tài)軟件水印技術(shù)可以有效地達到保護軟件產(chǎn)品的目的。
。ㄈ┸浖o態(tài)源代碼分析技術(shù)
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,隨之而來的是越來越多的軟件安全漏洞問題,對于廣大用戶和開發(fā)商來說,軟件漏洞的發(fā)現(xiàn)實屬不易,那么有沒有什么方法可以有效查找到軟件的漏洞呢?在這種情況下,就出現(xiàn)了軟件靜態(tài)源代碼分析技術(shù)。所謂軟件靜態(tài)源代碼分析技術(shù),其在當(dāng)前也是一個比較成熟的安全漏洞檢測技術(shù)。其工作原理為待檢測軟件產(chǎn)品不必運行,而只需要對軟件的源代碼進行檢查和分析,這包括源代碼的結(jié)構(gòu)、文法、接口等,最后生成軟件的安全性檢測報告的過程。軟件靜態(tài)源代碼分析技術(shù)由于其一系列優(yōu)點被廣泛應(yīng)用:(1)對源碼分析的速度比較快;(2)有著比較高的自動化程度;(3)同時也可以對無窮狀態(tài)系統(tǒng)進行檢測。當(dāng)然,傳統(tǒng)的靜態(tài)源代碼分析技術(shù)也存在著諸如要耗費大量精力對大量的檢測結(jié)果進行分析、對發(fā)現(xiàn)的漏洞的問題進行修復(fù)等不足。基于此,筆者提出了一種基于對類進行度量來對靜態(tài)分析工具的掃描結(jié)果進行優(yōu)先級排序的算法,可以有效地解決這個問題。
四、軟件安全開發(fā)管理平臺的設(shè)計和實現(xiàn)
當(dāng)前軟件的開發(fā)商中中小企業(yè)占有相當(dāng)?shù)谋壤虼,本文基于中小企業(yè)的軟件開發(fā)提出一種有效的安全開發(fā)流程,并對其實現(xiàn)進行了相關(guān)探討,其總體架構(gòu)如圖2所示,在以下整體架構(gòu)中結(jié)合了上文提出的各種技術(shù)等。下文將對這些模塊進行詳細介紹:
1.軟件安全開發(fā)管理平臺:為了能夠使簡化后的軟件安全開發(fā)流程被更好的應(yīng)用到企業(yè)軟件項目開發(fā)的過程中去,本文針對該模型設(shè)計并實現(xiàn)了一個軟件安全開發(fā)管理平臺用于輔助軟件安全開發(fā)流程的實施。該平臺可以有效達到在資源較為有限的情況下,在軟件開發(fā)過程中盡早發(fā)現(xiàn)安全問題并進行修復(fù),降低安全成本,提高軟件產(chǎn)品安全性的目的。
2.項目管理:在這個模塊中所涉及的人員主要是項目的管理人員等,其主要包括項目經(jīng)理等。其可以對軟件項目的信息進行維護,對項目的階段進行控制,并能夠?qū)浖椖康陌踩珷顩r進行整體把握。
3.安全開發(fā)管理:這一部分是核心部分。在這一模塊中會按照軟件開發(fā)項目所處的階段,按照軟件安全開發(fā)流程提供各種安全措施,其中有能夠自動完成的措施也有需要人工完成的部分,這一模塊所面向的使用人員和軟件開發(fā)項目所處的階段有關(guān)。它主要包括以下階段:設(shè)計階段:設(shè)計階段是項目的最初狀態(tài),需要在這一階段完成對軟件項目的風(fēng)險評估等內(nèi)容。編碼階段:在這一階段中,就用到了上文中提出的靜態(tài)源代碼分析技術(shù),它將對軟件項目的源代碼進行掃描,以發(fā)現(xiàn)其中的漏洞。在這一階段中,開發(fā)人員要隨時在安全知識庫中查看相關(guān)的安全編碼策略文檔,使其盡可能的減少代碼中存在的安全問題。當(dāng)軟件功能己經(jīng)全部實現(xiàn),代碼全部完成,靜態(tài)源代碼分析出的安全漏洞解決完畢后,可以由項目經(jīng)理把項目推進到測試階段,開始進行軟件的測試。測試階段:在這一階段中,安全開發(fā)管理模塊提供的功能包括定期自動部署測試系統(tǒng)、動態(tài)分析測試以及其他安全測試工具的結(jié)果導(dǎo)入,面向的使用人員主要是測試人員。發(fā)布階段:當(dāng)項目進入發(fā)布階段時,安全開發(fā)管理模塊提供對軟件代碼進行混淆、加入軟件水印、啟用動態(tài)軟件保護以及對軟件產(chǎn)品進行發(fā)布前的安全評審功能。主要面向的使用人員是項目經(jīng)理和安全管理員。
4.安全知識庫管理和問卷管理:這兩個模塊面向的人員主要是安全管理員。由安全管理員對安全知識庫中的安全文檔以及在安全評審中需要使用的問卷進行管理。
5.系統(tǒng)管理:這一模塊主要對軟件安全開發(fā)管理平臺本身進行一些配置和管理工作。本文提出的這種改進的軟件安全開發(fā)流程,其中優(yōu)點就在于不僅結(jié)合了各種先進的安全技術(shù),而且設(shè)計了一個軟件安全開發(fā)管理平臺,它將軟件開發(fā)中的各個階段都統(tǒng)一管理了起來,集成了更高的自動化程度,可以更有效地提高了軟件的安全性能。
五、結(jié)語
當(dāng)前,計算機網(wǎng)絡(luò)安全問題不容小覷,各種攻擊、病毒、垃圾信息,甚至一些網(wǎng)絡(luò)犯罪等,無時無刻不在考驗著網(wǎng)絡(luò)的安全性能,因此,軟件安全問題也引起了大家的重視。因此,為了使軟件能夠應(yīng)對目前的安全威脅,就必須在軟件開發(fā)過程中提高安全意識,在軟件的整個生命周期內(nèi)對軟件的安全性進行關(guān)注,提高軟件產(chǎn)品的安全性。
【軟件安全開發(fā)技術(shù)研究和實施論文】相關(guān)文章:
開發(fā)組件軟件的論文04-27
面向管理信息系統(tǒng)開發(fā)的軟件工廠技術(shù)研究的論文05-02
軟件工程在軟件開發(fā)中的運用論文04-27
軟件工程在軟件開發(fā)中的應(yīng)用論文04-27
公路計量支付軟件的應(yīng)用與開發(fā)論文04-30
軟件開發(fā)中現(xiàn)代軟件工程的應(yīng)用的論文04-27
教學(xué)軟件開發(fā)思想和模式05-01