2023年3月,我公司承擔了國家某安全中心漏洞挖掘系統的開發工作,我在該專案中承擔系統架構設計師的職務,主要負責系統的架構設計。該項目的主要目的是依託大資料平台從網際網路流量中挖掘未知漏洞。
本文以漏洞挖掘系統為例,論述了軟體系統的架構評估。首先分析了軟體架構評估所普遍關注的質量屬性並闡述了其效能、可用性、可修改性和安全性的具體含義。整個系統採用了面向服務soa的架構設計方法。在架構設計完成之後,對sa評估採用了基於場景的評估方式中的體系結構權衡分析方法atam,並詳細描述了其評估過程,專案評估小組經過對專案的風險點、敏感點和權衡點的討論後生成了質量效應樹。目前系統已穩定執行一年多,從而驗證了該專案採用atam架構評估保證了系統的順利完成。
隨著網際網路的快速發展,網路上出現的安全問題越來越多,從網際網路發展至今,已經爆發了眾多的網路攻擊事件,如網路蠕蟲病毒感染、主機被控制、資料庫被非法訪問、非法電子銀行轉賬等等。針對這些安全問題,很有必要開發一種web漏洞的發現和利用技術。2023年3月我公司承接了國家某安全中心漏洞挖掘系統的開發工作。該專案通過對網際網路中的流量進行特徵分析,從中提取出相關的攻擊內容,並將這些內容儲存到大資料平台,結合大資料分析技術,對攻擊者進行跟蹤分析,從而捕獲出未知漏洞。通過這種漏洞挖掘技術可以極大的解決大資料,大流量背景下web攻擊入侵,幫助使用者做好「事中」的安全工作,協助安全廠商對網際網路攻擊進行針對性過濾。
系統在整體架構上採用了面向服務的架構soa。前端採用了php進行開發,後台流量分析工作採用執行性較教高的c語言在linux伺服器上開發,流量包儲存使用了企業磁碟陣列,資料儲存採用了mysql。通過將系統拆分為多個子模組,各個子模組的構建上用服務進行了封裝,它們之間通過訊息進行通訊。經過對客戶需求的分析,我將該系統拆分為了流量捕獲模組(負責從網際網路中捕獲流量)、pcap檔案儲存模組(負責將網際網路中的流量儲存到大資料平台)、流量分析模組(負責對流量進行分析驗證)、資料庫模組(負責漏洞資料的儲存)和web管理模組(負責下發漏洞規則和檢視漏洞資訊)。下面先介紹下軟體架構評估的質量屬性。
架構評估是軟體開發過程中的重要環節,在軟體架構評估中的質量屬性有:效能、可用性、可修改性、安全性、可測試性、可靠性和易用性等。其中前4個質量屬性是質量效應樹的重要組成部分。效能是指系統的響應能力,即經過多長時間對事件做出響應。可用性是指系統能夠正常執行的比例,通過用兩次故障之間的時間長度或出現故障時系統能夠恢復的速度來表示。可修改性是指系統能以較高的價效比對系統做出變更的能力。安全性是指系統能夠向合法使用者提供服務,同時拒絕非授權使用者使用或拒絕服務的能力。
常用的架構評估方法有:基於問卷調查的評估方式、基於場景的評估方式和基於度量的評估方式。基於問卷調查的評估方式是由多個評估專家通過調查問卷的方式回答問卷中的問題,對多個評估結果進行綜合,最終得到最終結果。其評價的具有主觀性不太適合本專案。基於度量的評估方式雖然評價比較客觀,但是需要評估者對系統的架構有精確的了解,也不太適合本專案。而基於場景的評估要求評估者對系統中等了解,評價比較主觀,故本專案採用了基於場景的評估方式。基於場景的評估方式又分為架構權衡分析法atam,軟體架構分析法saam和成本效益分析法cbam。本專案中根據不同質量屬性使用了atam作為系統架構評估的方法。
在使用atam進行架構評估時,我們根據專案需要成立了專案評估小組。其主要成員包括:評估小組負責人、專案決策者、架構設計師、使用者、開發人員、測試人員、系統部署人員等專案干係人。我在這裡的身份是專案的評估小組負責人和首席架構師。架構的評估經歷了描述和介紹階段、調查和分析階段、測試階段和報告階段四個階段。下面我分別從這四個階段進行介紹。
在描述和介紹階段,由於專案評估成員有部分人員對atam並不熟悉,我首先介紹atam的方法。它是一種基於場景的軟體架構評估方法,對系統的多個質量屬性基於場景進行評估。通過該評估確認系統存在的風險,並檢查各自的非功能性需求是否滿足需求。客戶也闡述了系統的目的和商業動機。專案是為了通過捕獲網際網路流量從而挖掘出有價值的漏洞資訊。通過實時獲取漏洞可以有效的展開防禦,保證**的安全性。客戶關注系統的效能及系統能否獲取高質量的漏洞資訊。最後作為架構設計師的我描述了系統將要採用的soa架構,並將系統進行了拆分,並講解了各個子模組的功能,初步決定系統服務端在linux下使用c語言進行開發。
在調查分析階段,不同的需求方基於各自的考慮都提出了各自的要求。其中客戶方提出:系統的要保證其可靠性,特別是針對黑客ip進行跟蹤的時,系統發生故障必須在1分鐘內恢復,此優先順序最高。經過自動化分析,系統對漏洞的自動識別率必須達到90%以上,此優先順序較高。系統可以對規則模組實時進行修改,其修改工作必須在1人天完成,以便可以根據最新的規則進行漏洞捕獲。系統要確保一定的安全性。安全分析人員提出:系統需要過濾大部分正常的流量,以減輕安全分析人員的分析難度。系統必須提取出有價值的高風險ip,無效的流量跟蹤將會帶來產出的低下。開發人員提出為了保證系統的開發效率及系統修改性,可以進行並行開發。經過總結我們獲得了系統的質量效應樹如下(考試時回簡要圖)。
針對這些場景我們分析了專案開發過程中的風險點、敏感點和權衡點。經過分析,該專案中存在以下風險點:黑客的ip如果不能實時捕獲,將會丟失重要漏洞資訊;系統中對訊息的處理如果超過12小時,將會產生大量的訊息積壓。敏感點有:使用者的加密級別、漏洞規則的修改。權衡點有:改變漏洞規則的嚴格程度會提公升漏洞的準確率,同時帶來系統效能的下降。改變系統的加密級別對系統的安全性和效能都會產生影響。
在測試階段:經過評估小組集體討論,確定了不同場景的優先順序如下:系統的可用性最高,效能其次,可修改性及安全性優先順序較低。在保證系統可用性方面,在流量捕獲部分使用雙機熱備技術,在兩個捕獲系統之間設定心跳,當一台捕獲系統出問題,另一台捕獲裝置接管。在流量自動化分析部分,採用了集群部署技術,一台分析裝置出問題,不會影響整個分析系統。在保證資料安全性方面,磁碟採用企業磁碟陣列raid5機制。在使用者資料安全性方面,採用了非對稱加密及資訊摘要技術。
最後形成了評估報告,經過對架構的評估,確定了系統的風險點、敏感點、權衡點和非風險點,最後以文件的形式表現。其包括的內容包括:架構分析方法文件、架構的不同場景及各自的優先順序、質量效應樹、風險點決策、非風險點決策及每次的評估會議記錄。
該專案開發工作於2023年8月完工,系統上線後,我們的安全分析人員和客戶使用該系統對網際網路流量進行漏洞挖掘,一共產生了150種以上的web流量攻擊流量特徵和5個未知web漏洞。在國家某安全中心網研室的其他專案中起到了支撐作用,尤其是某變數覆蓋漏洞、某檔案寫入漏洞,某sql注入漏洞在專案使用過程中取得了一定得效果,得到了好評。為開展網際網路安全事件得防禦、發現、預警和協調處置等工作提供了資料依據,更好的維護了國家公共網際網路安全,保障基礎資訊網路和重要資訊系統的安全執行。
論軟體系統架構
軟體構架是有關如下問題的設計層次 在計算的演算法和資料結構之外,設計並確定系統整體結構成為了新的問題。結構問題包括總體組織結構和全域性控制結構 通訊 同步和資料訪問的協議 設計元素的功能分配 物理分布 設計元素的組成 定標與效能 備選設計的選擇。軟體架構 software architecture ...
論軟體系統架構風格
宣告 本文為本人在軟考系統架構設計師備考期間的練手寫作,不保證內容的原創性與正確性,僅供參考,請勿照抄和用於學術 等正規場合,因不當使用產生後果一律自負。前端web服務主要提供給使用者使用的介面,分為前置nginx負載均衡伺服器 前端 nginx集群。當使用者通過網路訪問系統時,首先會訪問到前置的n...
軟體架構評估指導書
1.概述 我們常說軟體架構是軟體專案取得成功的關鍵要素。那麼什麼是軟體架構呢?sei認為乙個程式或計算機系統的軟體架構是指此系統的乙個或多個結構,乙個系統包含多個元件以及這些元件的外部可見屬性和各元件之間的關係。外部可見 屬性是指其他元件使用該元件時的假設,如它提供的服務 效能特徵 錯誤處理 共享資...