.NET企業應用安全開發動向-概覽

溪源More發表於2023-12-10

太長不讀版:試圖從安全的全域性視角觸發,探討安全的重要性,討論如何識別安全問題的方法,介紹.NET提供的與安全相關的基礎設施,以及一些與時俱進的安全問題,為讀者建立體系化的安全思考框架。

引言

關於“安全”二字,“一千個讀者有一個哈姆雷特”,有人說安全就是防毒軟體,有人說安全就是第三方軟體的安全掃描,有人說安全就是滲透性攻擊,而提到安全開發,大部分人則基本上沒有進一步的認知,這又是什麼新詞?

由於不同理解的存在,使得企業應用開發者們很難從全域性視角看待安全問題。如果我們聯絡當下的網際網路新故事,或許會對這個概念有進一步的理解。

近期大事件:

近期網際網路大廠系統有點不太穩定,前不久發生的熱點:

阿里雲崩了,由於RAM 系統出現故障,長達兩小時的時間,使用了ak/sk 的應用呼叫都出現了問題,沒過幾天,阿里雲的資料庫也崩了,影響範圍之大,一度被人以為是“年度之最”。然而,沒過幾天滴滴又崩了,據滴滴通報,由於底層系統原因,造成系統故障。本次事故預計持續時間長達20小時,由於滴滴面向全國人民、叫車也是許多人日常出行的首選,其影響範圍堪稱空前絕後,重新整理年度之最。隨後,騰訊影片也出現了一些故障,與前兩者相比可能沒那麼大,但事故方同樣作為網際網路頂流,自然而然也就備受關注。連續幾起事故,使大家不得不懷疑,懷疑過去大廠所吹噓的“安全”,搞不好都是人肉運維的功勞。

再往前,某直播平臺CEO失聯,有人說是平臺上出現了賭博行為,一些主播利用直播平臺進行操作,吸引觀眾下注,從中獲取收益,有些“房間”一度每天流水幾個億,這種騷操作真的讓人想都想不到。

再往前,某大型電商平臺出現了個人資訊洩漏事故,據說幾十億訂單資料被人打包販賣,根據圖片來看,訂單資料中包含使用者真實姓名、訂單號、商品名稱型號、訂單網址、使用者手機號、地址等詳細隱私資訊。國人為數不多的隱私資料又一次當成了商品。

當然,除了國內有這種事故,國外也有,年初,推特推特發生資訊洩漏,約2.35億使用者個人資訊被洩。由此說明人類命運相互聯絡,跨越時空,無論你身處何處,總會被人關注,而你我的隱私資料,也是一些人最為關注的金礦。

安全是什麼,安全開發是什麼?

新聞再多,只要沒發生在自己身上,終究只是故事,但只要發生在我們身邊,就得成為“事故”,如果我們悲催的成為當事人,到時候肯定沒辦法去冷靜的旁觀事態的發展,得想盡辦法去做各種善後措施,所以如果我們能利用這些教訓,將助我們快人一步。

總結經驗有三種方法,一種從別人的教訓中總結經驗,一種從自己的教訓中總結經驗,還有一種是從不總結經驗。這些大廠們付出了鉅額代價,給我們留下了思考:我們該怎麼做以便避免此類事故的發生?這便是個安全話題。

安全,從廣義上分為內容安全,資料安全,裝置安全,行為安全。通俗理解,內容就是合規性問題,資料是指資料的產生、儲存、分發的安全,行為是指操作過程和方法,裝置就是主機和環境,透過這四個維度,使安全得以全方向的覆蓋。

在軟體開發過程中,如何將程式碼與各大安全結合起來,這就是屬於安全開發的工作範圍,筆者認為,安全開發貫穿在四大安全主題之中,是軟硬體架構的一大核心關注點。這就要求我們在開發過程中,建立一套好的安全開發指導規則,這種開發準則不應受到軟體部署架構複雜性的影響,放諸單體和服務化而皆準。

這就意味著我們應升維思考,不僅僅需要考慮解決問題,更需要考慮如何識別和防範問題,問題STRIDE和TARA 方法是兩種常見的威脅建模分析方法。這兩種方法,各有利弊,有時候可能還要結合起來使用。

作為成熟的企業應用框架,ASP.NET CORE 也推出了一系列與安全相關的基礎設施,依託這些基礎設施,使得我們能快速的將安全融入到產品開發之中。這些基礎設施涵蓋四大安全主題,如認證和鑑權,即便成熟如斯,它也在不斷的升級完善,加密演算法庫又進一步充實,在應對安全性問題面前,我們的彈藥又多了一點。

時代在發展,新技術也在不斷湧現,以DevOps為代表的新型生產方式既在推動產業變革,也帶來了新的挑戰,而安全性問題首當其衝,引入的工具並非高枕無憂,說不定哪天就引入了新的風險因素,例如Jenkins ,作為一款專業的持續整合工具,它也幾度因安全問題而帶來罵名,容器也同樣如此,一個小小的日誌就可能把主機給打崩了。

結語

軟體開發,看似稀鬆平常,奈何總有***民想要謀害我們(當然,有時候可能是自己人挖坑),所以有時候我們需要提前防範。作為一位開發者,筆者由於經常關注這些問題,形成了一些思考,並在.NET Conf China上與業界同仁共同探討,期待能借助.NETCONF這個平臺,拋磚引玉。

歡迎大家透過掃描二維碼關注,同時還有幾張講師權益票,需要的朋友可以聯絡我,先到先得,送完為止。

相關文章