论软件系统架构评估
論軟件系統(tǒng)架構(gòu)評(píng)估
? ? 2016年3月,我公司承擔(dān)了國(guó)家某安全中心漏洞挖掘系統(tǒng)的開(kāi)發(fā)工作,我在該項(xiàng)目中承擔(dān)系統(tǒng)架構(gòu)設(shè)計(jì)師的職務(wù),主要負(fù)責(zé)系統(tǒng)的架構(gòu)設(shè)計(jì)。該項(xiàng)目的主要目的是依托大數(shù)據(jù)平臺(tái)從互聯(lián)網(wǎng)流量中挖掘未知漏洞。
?
? ? 本文以漏洞挖掘系統(tǒng)為例,論述了軟件系統(tǒng)的架構(gòu)評(píng)估。首先分析了軟件架構(gòu)評(píng)估所普遍關(guān)注的質(zhì)量屬性并闡述了其性能、可用性、可修改性和安全性的具體含義。整個(gè)系統(tǒng)采用了面向服務(wù)SOA的架構(gòu)設(shè)計(jì)方法。在架構(gòu)設(shè)計(jì)完成之后,對(duì)SA評(píng)估采用了基于場(chǎng)景的評(píng)估方式中的體系結(jié)構(gòu)權(quán)衡分析方法ATAM,并詳細(xì)描述了其評(píng)估過(guò)程,項(xiàng)目評(píng)估小組經(jīng)過(guò)對(duì)項(xiàng)目的風(fēng)險(xiǎn)點(diǎn)、敏感點(diǎn)和權(quán)衡點(diǎn)的討論后生成了質(zhì)量效應(yīng)樹(shù)。目前系統(tǒng)已穩(wěn)定運(yùn)行一年多,從而驗(yàn)證了該項(xiàng)目采用ATAM架構(gòu)評(píng)估保證了系統(tǒng)的順利完成。
?
? ? 隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)絡(luò)上出現(xiàn)的安全問(wèn)題越來(lái)越多,從互聯(lián)網(wǎng)發(fā)展至今,已經(jīng)爆發(fā)了眾多的網(wǎng)絡(luò)攻擊事件,如網(wǎng)絡(luò)蠕蟲(chóng)病毒感染、主機(jī)被控制、數(shù)據(jù)庫(kù)被非法訪問(wèn)、非法電子銀行轉(zhuǎn)賬等等。針對(duì)這些安全問(wèn)題,很有必要開(kāi)發(fā)一種web漏洞的發(fā)現(xiàn)和利用技術(shù)。2016年3月我公司承接了國(guó)家某安全中心漏洞挖掘系統(tǒng)的開(kāi)發(fā)工作。該項(xiàng)目通過(guò)對(duì)互聯(lián)網(wǎng)中的流量進(jìn)行特征分析,從中提取出相關(guān)的攻擊內(nèi)容,并將這些內(nèi)容存儲(chǔ)到大數(shù)據(jù)平臺(tái),結(jié)合大數(shù)據(jù)分析技術(shù),對(duì)攻擊者進(jìn)行跟蹤分析,從而捕獲出未知漏洞。通過(guò)這種漏洞挖掘技術(shù)可以極大的解決大數(shù)據(jù),大流量背景下web攻擊入侵,幫助用戶做好“事中”的安全工作,協(xié)助安全廠商對(duì)互聯(lián)網(wǎng)攻擊進(jìn)行針對(duì)性過(guò)濾。
?
? ? 系統(tǒng)在整體架構(gòu)上采用了面向服務(wù)的架構(gòu)SOA。前端采用了PHP進(jìn)行開(kāi)發(fā),后臺(tái)流量分析工作采用運(yùn)行性較教高的c語(yǔ)言在Linux服務(wù)器上開(kāi)發(fā),流量包存儲(chǔ)使用了企業(yè)磁盤陣列,數(shù)據(jù)存儲(chǔ)采用了mysql。通過(guò)將系統(tǒng)拆分為多個(gè)子模塊,各個(gè)子模塊的構(gòu)建上用服務(wù)進(jìn)行了封裝,它們之間通過(guò)消息進(jìn)行通信。經(jīng)過(guò)對(duì)客戶需求的分析,我將該系統(tǒng)拆分為了流量捕獲模塊(負(fù)責(zé)從互聯(lián)網(wǎng)中捕獲流量)、pcap文件存儲(chǔ)模塊(負(fù)責(zé)將互聯(lián)網(wǎng)中的流量存儲(chǔ)到大數(shù)據(jù)平臺(tái))、流量分析模塊(負(fù)責(zé)對(duì)流量進(jìn)行分析驗(yàn)證)、數(shù)據(jù)庫(kù)模塊(負(fù)責(zé)漏洞數(shù)據(jù)的存儲(chǔ))和web管理模塊(負(fù)責(zé)下發(fā)漏洞規(guī)則和查看漏洞信息)。下面先介紹下軟件架構(gòu)評(píng)估的質(zhì)量屬性。
?
?????? 架構(gòu)評(píng)估是軟件開(kāi)發(fā)過(guò)程中的重要環(huán)節(jié),在軟件架構(gòu)評(píng)估中的質(zhì)量屬性有:性能、可用性、可修改性、安全性、可測(cè)試性、可靠性和易用性等。其中前4個(gè)質(zhì)量屬性是質(zhì)量效應(yīng)樹(shù)的重要組成部分。性能是指系統(tǒng)的響應(yīng)能力,即經(jīng)過(guò)多長(zhǎng)時(shí)間對(duì)事件做出響應(yīng)。可用性是指系統(tǒng)能夠正常運(yùn)行的比例,通過(guò)用兩次故障之間的時(shí)間長(zhǎng)度或出現(xiàn)故障時(shí)系統(tǒng)能夠恢復(fù)的速度來(lái)表示。可修改性是指系統(tǒng)能以較高的性價(jià)比對(duì)系統(tǒng)做出變更的能力。安全性是指系統(tǒng)能夠向合法用戶提供服務(wù),同時(shí)拒絕非授權(quán)用戶使用或拒絕服務(wù)的能力。
?
?????? 常用的架構(gòu)評(píng)估方法有:基于問(wèn)卷調(diào)查的評(píng)估方式、基于場(chǎng)景的評(píng)估方式和基于度量的評(píng)估方式。基于問(wèn)卷調(diào)查的評(píng)估方式是由多個(gè)評(píng)估專家通過(guò)調(diào)查問(wèn)卷的方式回答問(wèn)卷中的問(wèn)題,對(duì)多個(gè)評(píng)估結(jié)果進(jìn)行綜合,最終得到最終結(jié)果。其評(píng)價(jià)的具有主觀性不太適合本項(xiàng)目。基于度量的評(píng)估方式雖然評(píng)價(jià)比較客觀,但是需要評(píng)估者對(duì)系統(tǒng)的架構(gòu)有精確的了解,也不太適合本項(xiàng)目。而基于場(chǎng)景的評(píng)估要求評(píng)估者對(duì)系統(tǒng)中等了解,評(píng)價(jià)比較主觀,故本項(xiàng)目采用了基于場(chǎng)景的評(píng)估方式。基于場(chǎng)景的評(píng)估方式又分為架構(gòu)權(quán)衡分析法ATAM,軟件架構(gòu)分析法SAAM和成本效益分析法CBAM。本項(xiàng)目中根據(jù)不同質(zhì)量屬性使用了ATAM作為系統(tǒng)架構(gòu)評(píng)估的方法。
?
?????? 在使用ATAM進(jìn)行架構(gòu)評(píng)估時(shí),我們根據(jù)項(xiàng)目需要成立了項(xiàng)目評(píng)估小組。其主要成員包括:評(píng)估小組負(fù)責(zé)人、項(xiàng)目決策者、架構(gòu)設(shè)計(jì)師、用戶、開(kāi)發(fā)人員、測(cè)試人員、系統(tǒng)部署人員等項(xiàng)目干系人。我在這里的身份是項(xiàng)目的評(píng)估小組負(fù)責(zé)人和首席架構(gòu)師。架構(gòu)的評(píng)估經(jīng)歷了描述和介紹階段、調(diào)查和分析階段、測(cè)試階段和報(bào)告階段四個(gè)階段。下面我分別從這四個(gè)階段進(jìn)行介紹。
?
?????? 在描述和介紹階段,由于項(xiàng)目評(píng)估成員有部分人員對(duì)ATAM并不熟悉,我首先介紹ATAM的方法。它是一種基于場(chǎng)景的軟件架構(gòu)評(píng)估方法,對(duì)系統(tǒng)的多個(gè)質(zhì)量屬性基于場(chǎng)景進(jìn)行評(píng)估。通過(guò)該評(píng)估確認(rèn)系統(tǒng)存在的風(fēng)險(xiǎn),并檢查各自的非功能性需求是否滿足需求。客戶也闡述了系統(tǒng)的目的和商業(yè)動(dòng)機(jī)。項(xiàng)目是為了通過(guò)捕獲互聯(lián)網(wǎng)流量從而挖掘出有價(jià)值的漏洞信息。通過(guò)實(shí)時(shí)獲取漏洞可以有效的展開(kāi)防御,保證網(wǎng)站的安全性。客戶關(guān)注系統(tǒng)的性能及系統(tǒng)能否獲取高質(zhì)量的漏洞信息。最后作為架構(gòu)設(shè)計(jì)師的我描述了系統(tǒng)將要采用的soa架構(gòu),并將系統(tǒng)進(jìn)行了拆分,并講解了各個(gè)子模塊的功能,初步?jīng)Q定系統(tǒng)服務(wù)端在Linux下使用c語(yǔ)言進(jìn)行開(kāi)發(fā)。
?
?????? 在調(diào)查分析階段,不同的需求方基于各自的考慮都提出了各自的要求。其中客戶方提出:系統(tǒng)的要保證其可靠性,特別是針對(duì)黑客ip進(jìn)行跟蹤的時(shí),系統(tǒng)發(fā)生故障必須在1分鐘內(nèi)恢復(fù),此優(yōu)先級(jí)最高。經(jīng)過(guò)自動(dòng)化分析,系統(tǒng)對(duì)漏洞的自動(dòng)識(shí)別率必須達(dá)到90%以上,此優(yōu)先級(jí)較高。系統(tǒng)可以對(duì)規(guī)則模塊實(shí)時(shí)進(jìn)行修改,其修改工作必須在1人天完成,以便可以根據(jù)最新的規(guī)則進(jìn)行漏洞捕獲。系統(tǒng)要確保一定的安全性。安全分析人員提出:系統(tǒng)需要過(guò)濾大部分正常的流量,以減輕安全分析人員的分析難度。系統(tǒng)必須提取出有價(jià)值的高風(fēng)險(xiǎn)ip,無(wú)效的流量跟蹤將會(huì)帶來(lái)產(chǎn)出的低下。開(kāi)發(fā)人員提出為了保證系統(tǒng)的開(kāi)發(fā)效率及系統(tǒng)修改性,可以進(jìn)行并行開(kāi)發(fā)。經(jīng)過(guò)總結(jié)我們獲得了系統(tǒng)的質(zhì)量效應(yīng)樹(shù)如下(考試時(shí)回簡(jiǎn)要圖)。
?
?????? 針對(duì)這些場(chǎng)景我們分析了項(xiàng)目開(kāi)發(fā)過(guò)程中的風(fēng)險(xiǎn)點(diǎn)、敏感點(diǎn)和權(quán)衡點(diǎn)。經(jīng)過(guò)分析,該項(xiàng)目中存在以下風(fēng)險(xiǎn)點(diǎn):黑客的ip如果不能實(shí)時(shí)捕獲,將會(huì)丟失重要漏洞信息;系統(tǒng)中對(duì)消息的處理如果超過(guò)12小時(shí),將會(huì)產(chǎn)生大量的消息積壓。敏感點(diǎn)有:用戶的加密級(jí)別、漏洞規(guī)則的修改。權(quán)衡點(diǎn)有:改變漏洞規(guī)則的嚴(yán)格程度會(huì)提升漏洞的準(zhǔn)確率,同時(shí)帶來(lái)系統(tǒng)性能的下降。改變系統(tǒng)的加密級(jí)別對(duì)系統(tǒng)的安全性和性能都會(huì)產(chǎn)生影響。
?
?????? 在測(cè)試階段:經(jīng)過(guò)評(píng)估小組集體討論,確定了不同場(chǎng)景的優(yōu)先級(jí)如下:系統(tǒng)的可用性最高,性能其次,可修改性及安全性優(yōu)先級(jí)較低。在保證系統(tǒng)可用性方面,在流量捕獲部分使用雙機(jī)熱備技術(shù),在兩個(gè)捕獲系統(tǒng)之間設(shè)置心跳,當(dāng)一臺(tái)捕獲系統(tǒng)出問(wèn)題,另一臺(tái)捕獲設(shè)備接管。在流量自動(dòng)化分析部分,采用了集群部署技術(shù),一臺(tái)分析設(shè)備出問(wèn)題,不會(huì)影響整個(gè)分析系統(tǒng)。在保證數(shù)據(jù)安全性方面,磁盤采用企業(yè)磁盤陣列raid5機(jī)制。在用戶數(shù)據(jù)安全性方面,采用了非對(duì)稱加密及信息摘要技術(shù)。
?
?????? 最后形成了評(píng)估報(bào)告,經(jīng)過(guò)對(duì)架構(gòu)的評(píng)估,確定了系統(tǒng)的風(fēng)險(xiǎn)點(diǎn)、敏感點(diǎn)、權(quán)衡點(diǎn)和非風(fēng)險(xiǎn)點(diǎn),最后以文檔的形式表現(xiàn)。其包括的內(nèi)容包括:架構(gòu)分析方法文檔、架構(gòu)的不同場(chǎng)景及各自的優(yōu)先級(jí)、質(zhì)量效應(yīng)樹(shù)、風(fēng)險(xiǎn)點(diǎn)決策、非風(fēng)險(xiǎn)點(diǎn)決策及每次的評(píng)估會(huì)議記錄。
?
?????? 該項(xiàng)目開(kāi)發(fā)工作于2016年8月完工,系統(tǒng)上線后,我們的安全分析人員和客戶使用該系統(tǒng)對(duì)互聯(lián)網(wǎng)流量進(jìn)行漏洞挖掘,一共產(chǎn)生了150種以上的web流量攻擊流量特征和5個(gè)未知web漏洞。在國(guó)家某安全中心網(wǎng)研室的其他項(xiàng)目中起到了支撐作用,尤其是某變量覆蓋漏洞、某文件寫入漏洞,某sql注入漏洞在項(xiàng)目使用過(guò)程中取得了一定得效果,得到了好評(píng)。為開(kāi)展互聯(lián)網(wǎng)安全事件得防御、發(fā)現(xiàn)、預(yù)警和協(xié)調(diào)處置等工作提供了數(shù)據(jù)依據(jù),更好的維護(hù)了國(guó)家公共互聯(lián)網(wǎng)安全,保障基礎(chǔ)信息網(wǎng)絡(luò)和重要信息系統(tǒng)的安全運(yùn)行。
?
總結(jié)
- 上一篇: 放大器的传递函数_在光电流应用中补偿电流
- 下一篇: HMS Core积极探索基于硬件耳返的功