老焦專欄 | 如何作一個有說服力的方案?


轉載本文需註明出處:微信公衆號EAWorld,違者必究。

常常有技術人員收到這樣的反饋:技術精通,但作方案的能力不強。其中一個緣由就是:咱們的方案一般只是論述瞭如何作,沒有證實作法是正確的。例如,須要應用安全的方案,咱們的方案是作安全掃描,而安全掃描只是保證安全的一個作法,並無證實爲何有了安全掃描就安全了(實際上僅僅作了安全掃描,也不意味着應用安全);再如,須要高可用的方案,咱們的方案是作雙機熱備,並無證實爲何雙機熱備就能夠實現高可用了。沒有自證的方案,不是一個好的方案,這裏我經過應用安全的例子,講一講在方案中如何證實本身。

首先說一個下圖的示例,一個工資管理系統,如何設計這個系統的安全性:安全

 


安全的設計要從分解系統、進行威脅建模開始:



因爲安全的內容比較多,分級威脅和緩和方案我就不具體介紹了,緩和方案就是具體的作法,這個相信你們都能作出一些,這裏主要講推導過程,即如何論證上圖的緩和方案是正確的。

首先是分解系統(應用程序):



下面是上圖的圖例,主要有交互者(外部實體)、數據流、進程、數據存儲、邊界這幾個部分。



分析了系統,下面分析威脅的各個種類,通常來講,系統的威脅分爲六個方面,簡稱 STRIDE(假冒、篡改、否定、信息泄露、拒絕服務、提高受權):



根據系統的分解,系統的每一個部分都有可能發生威脅,系統的各個部分包括外部實體、進程、數據存儲、數據流,但不是每一個方面都有上述六方面,見下表:



針對威脅,就能夠設計解決方案了,例如每一個進程均可能由於 SQL 注入漏洞,存在篡改(T)和信息泄露(I)的威脅,利用安全掃描的方式能夠消除由於SQL注入產生的篡改和信息泄露威脅。再如:



咱們能夠用下述方法,解決各類威脅:



用了這種幾步分解、系統性描述的論證方式,囊括了系統分解、威脅建模、威脅評估和緩和方案,我認爲,就是一個說服力的方案,也就是可以自我證實的解決方案。


關於做者:焦烈焱,普元信息CTO,致力於技術創新和金融創新解決方案研究。專一於企業技術架構領域,對分佈式環境的企業計算、 企業信息架構的規劃與實踐有着豐厚經驗,帶領普元技術團隊相繼在雲計算、大數據及移動開發領域取得多項突破,並主持中國工商銀行、中國建設銀行等多家大型企業技術平臺的規劃與研發。


關於EAWorld:微服務,DevOps,數據治理,移動架構原創技術分享。長按二維碼關注!微信

相關文章
相關標籤/搜索