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