軟件工程師應該采用和支持網絡安全的八個實踐
令人驚訝的是,網絡安全可以像遵循最佳實踐一樣簡單,理想情況下應該將其融入企業文化本身。在這篇文章中了解更多。
網絡安全的重要性
在當今的網絡安全期望中,軟件工程師應該優先考慮他們的計算機系統和內部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.是否有事件響應計劃
制定的事件響應計劃有助于指導實體在網絡威脅(如數據泄露或勒索軟件滲透)期間采取行動。它包括預防措施、響應協議、恢復策略和通信程序。該計劃的定期排練和持續改進確保組織為潛在的安全突發事件做好準備。
大多數情況下,軟件工程師將參與到事件中,他們將承擔大部分緩解責任。作為一名軟件工程師,有這樣一個計劃可以確保你知道自己的角色和責任。
總結
總之,雖然這些實踐乍一看很簡單,但軟件工程師必須記住它們的重要性。有時候,好的解決方案是最簡單的。有了復雜的政策,就會產生混亂,這正是惡意行為者所希望看到的。當這些實踐融入到組織的文化中時,效果會更好。