軟體工程師應該採用並支援網路安全的八個實踐
令人驚訝的是,網路安全可以像遵循最佳實踐一樣簡單,理想情況下應該將其融入企業文化本身。在這篇文章中了解更多。
網路安全的重要性
在當今的網路安全期望中,軟體工程師應該優先考慮他們的電腦系統和內部IT網路的安全性。我認為嚴重依賴科技是個錯誤,因為許多風險本質上都是非技術性的。網路可能使企業容易受到資料外洩和勒索軟體的攻擊,從而導致持久的聲譽損害。這些非技術風險確實可以使用技術解決方案來處理。
這些事件也可能導致重大的經濟損失和潛在的法律問題。在我看來,實施強大的網路安全措施不僅是一項技術要求,而且是任何希望加強其防禦和彈性的企業的關鍵舉措。
在這篇文章中,我想說明的是,軟體工程師不應該再把安全視為安全工程師的責任,而應該接受它是他們的責任。您不需要成為工程經理或主管來提出和實施最佳實務。軟體工程師應該使用說服、數據和展示投資回報的力量,輕輕地推動他們的組織朝這個方向發展。
重大網路安全事故
(1)Equifax資料洩露
這可能是人們記憶最深刻的漏洞,也可能是有史以來最大的安全漏洞之一。在這次事件中,1.445億人的社會保險號碼和信用卡資料被盜。該漏洞的發生是因為web應用程式框架的一個弱點沒有及時修復。這顯示及時更新軟體是多麼重要。
(2)WannaCry勒索軟體攻擊
這次攻擊造成了持久的破壞,成千上萬的電腦網路癱瘓。英國國家醫療服務體系(NationalHealthService)必須用紙和筆來管理其設施。這次勒索軟體攻擊對全球150個國家的20萬多台電腦造成了影響。它是由未修補的Windows漏洞引起的。
(3)SolarWinds網路攻擊
對太陽風獵戶座平台的網路攻擊是一種相對罕見的供應鏈攻擊。駭客在軟體更新中插入病毒。這項漏洞影響了許多美國政府機構和私部門公司,凸顯了與第三方軟體相關的漏洞。
8個網路安全最佳實踐
1.是否有資料分類策略並強制執行
沒有人比編寫軟體來處理和管理資料的人更了解資料了。軟體工程師有責任如預期使用數據。軟體工程師應該推動健壯的資料分類策略和執行機制。在一天結束的時候,如果有誤用,軟體工程師將被追究責任,即使是部分責任。
資料分類是根據(a)資料的敏感程度和(b)如果被錯誤的人看到會造成多大的傷害,將資料分成不同的組別。這樣的分類,雖然簡單,但有效,因為有一個計劃的資料分類:我們可以確保重要的資訊保持安全,只有應該看到它的人。定期檢查我們是否遵守規則並在需要時對群組進行更改也很重要。
2.有數據、設備和政策的清單嗎
軟體工程師應該有足夠的工具、資訊和指導方針來實現安全性。他們應該成為這樣一種文化的支持者,最終會讓他們的生活輕鬆得多。
在任何有效的網路安全管理系統中,維護所有資料、設備和政策的最新庫存都是至關重要的。這樣的清單可以幫助您了解哪些資料儲存在何處以及如何保護它們。它還確保硬體文件、軟體安裝和漏洞識別配置。
3.定期進行風險評估並提出改進建議
軟體工程師工具箱中最大的工具之一是威脅模型。它包括所有涉及到的軟體元件的設計圖,它們之間的交互,以及客戶請求的進出口點。彼此之間提出尖銳的問題有助於我們評估風險,避免陷入毫無根據的假設的陷阱。
定期的風險評估使您能夠識別開發環境中的威脅或漏洞。這些評估必須包括內部和外部因素,包括員工和第三方供應商,以及新的網路攻擊趨勢。基於這些發現,您必須提出改進建議,以加強組織的安全態勢。
4.對所有登入嘗試實施雙重認證(2FA)
雙重認證提供了額外的安全性,因為使用者必須提供兩種類型的識別才能存取帳戶或系統。因此,即使登入憑證暴露,這也會減少未經授權的個人進入的機會。在所有平台和應用程式上實現2FA是保護敏感資料的基礎。
雖然這聽起來像是IT需求,但應該使用2FA來存取所有關鍵的軟體工程平台和入口網站。您是否想要登入一個跳轉主機,以便存取雲端環境?請確保您的工作流程啟用了2FA。如果不是,你能說服管理相關基礎建設的人嗎?
5.是否有全公司範圍的密碼管理系統
密碼管理系統提供了一種安全的儲存和管理密碼的方式,從而為各種帳戶開發出可靠且唯一的密碼。它降低了密碼外洩的風險,簡化了個人登入憑證管理。
可能存在許多沒有單一登入的外部系統,我們需要建立另一組憑證,其中一些可以與團隊共用。密碼管理器是在工程師和其他員工之間共享這些密碼或秘密的最佳方法-不再透過電子郵件或聊天訊息發送秘密。
6.安全意識培訓和釣魚測試
對員工進行網路安全威脅和最佳實踐的培訓,對於創建具有安全意識的文化至關重要。安全意識培訓應定期涵蓋識別網路釣魚電子郵件、安全使用網路和正確的資料處理程序等領域。偶爾可以進行網路釣魚測試,以確定員工是否能夠注意到或報告可疑事件。
身為軟體工程師,如果您使用內部工具(通常提供更廣泛的權限),這一點就更為重要。與您的安全團隊或IT部門討論安全意識培訓。
7.加密所有內部和外部通信
加密可確保在組織內外發送的敏感資訊保持機密性和安全性。應該在所有通訊管道上部署健全的加密協議,包括電子郵件系統、訊息傳遞應用程式和檔案傳輸。因此,即使資訊在傳輸過程中被截獲,也可以防止對資訊的未經授權的存取。
AES-256對於靜態資料是一個很好的加密演算法。對於傳輸中的數據,最好使用用於通訊的任何TLS庫的預設值。它們通常預設為AES-256,但選擇預設可以確保我們不會嘗試任何不太為人所知、較少研究的加密演算法。即使是點對點的機器通訊也應該理想地使用加密。在專用網路的端點之間使用明文通訊是可能的,但它需要大量的經驗來鎖定它。
8.是否有事件回應計劃
制定的事件回應計畫有助於指導實體在網路威脅(如資料外洩或勒索軟體滲透)期間採取行動。它包括預防措施、回應協定、復原策略和通訊程序。該計劃的定期排練和持續改進確保組織為潛在的安全突發事件做好準備。
大多數情況下,軟體工程師將參與事件中,他們將承擔大部分緩解責任。身為軟體工程師,有這樣一個計畫可以確保你知道自己的角色和責任。
總結
總之,雖然這些實踐乍看很簡單,但軟體工程師必須記住它們的重要性。有時候,好的解決方案是最簡單的。有了複雜的政策,就會產生混亂,這正是惡意行為者所希望看到的。當這些實踐融入組織的文化時,效果會更好。