在 我們探討了黑客的思維,他們所具備的技能以及他們用來破解系統的很多線索和相關漏洞。在第2部分我們將討論在開發過程中可以采取哪些切實有效的措施同時最小化系統設計的風險,本文結束后大家將關注一下幾點:
執行風險評估
在這個開發周期內加入系統安全設計
積極的進行測試
選擇敏捷性而不僅僅是強硬的
保持整潔
使用云服務
執行風險評估
對整個開發環境(包括實踐)進行全面的風險評估是第一步,NIST 800-53文檔給出了風險評估的一些方法,大家可以借鑒。如果MIST文檔太過于深奧,大家也可以嘗試行業的其他方法。在Anitian公司我們使用RiskNow方法,融合了技術評估。通常使用風險評估來指導大家的安全工作目的是關注系統設計過程中威脅最大或風險最高的領域。
在這個開發周期內加入系統安全設計
不是等到系統設計或搭建完成后才對其進行安全方面保護,相反安全性考慮應該集成到系統開發周期中的每個方面,因此我們需要作出如下工作:
將開發、測試和生產環境分開
創建和遵循一套正式的變更控制流程
代碼存儲在安全的地方,不能有共享訪問權限
對于所有訪問開發源代碼或設計的訪問采用多重驗證
對集成的第三方組件進行代碼審查(或安全測試)
要求所有開發者參加每年舉辦的安全培訓研討會
使用安全的編碼標準,比如MISRA C
積極的進行測試
集成到開發過程中一個更重要的步驟就是進行安全性測試,對每個階段都進行測試:
設計階段:對你的架構設計和第三方組件進行進行安全審查
開發階段:代碼檢查和漏洞掃描
測試階段:現場部署系統進行滲透測試
生產:在實際環境中嘗試破解系統
選擇敏捷性而不僅僅是強硬的
你永遠不可能建立起足夠高的墻來阻止所有的黑客,所以不如讓你的系統變得更加的敏捷不僅僅是強硬的,如果你的系統遭受了攻擊,你能做出哪些反應:
多快能進行系統更新?
你怎么知道系統被攻擊了?
攻擊引發的后果是怎樣的?
誰有可能發動了這次攻擊?
如果你的加密系統(如果有采用)被攻擊了會怎樣?
其他技術比如防火墻能夠減輕攻擊嗎?
保持整潔
將一些潛在的弱點轉變為優勢,我們可以采取如下措施:
在接收和發送數據之前都進行驗證
禁止不必要的訪問,嚴格限制所有的訪問請求除非是絕對必須的
阻止不受信任的應用程序
嚴格限制所有的遠程訪問
對所有數據進行加密:不管是在數據保存還是發送過程中
在系統啟動前執行完整性檢查
避免系統的復雜,對系統進行模塊化細分
移除調試功能(如果可能的話)
產品為什么要這樣設計?如果沒有更好的理由開發某個功能那么不如去掉它
使用云服務
97%的公司將一些基礎設施或者全部放到云服務器上,這是由一定原因的,云服務具有敏捷性、靈活性和更高的安全性,使用云服務還可以收集日志、推送更新或發布API。
然而云服務最大的好處其實是自動化,你可以搭建整個代碼環境,并隨時銷毀然后重新創建它們。這可以稱為一次性基礎設施,系統可以被銷毀并從已知的系統鏡像將其恢復。自動化銷毀和重新創建具有很大的安全優勢,如果我們的系統每周定期的消失一次,那么黑客的攻擊不可能持續的存在,一次性基礎設施是任何復雜系統最終的理想狀態。
總結
像黑客一樣思考需要你以不同的方式來看待你設計的系統,包括觀察明顯的情況、理解人所犯的錯誤,了解黑客會去尋找并使用哪些線索。設計工程師應該并且能夠采取措施來改進系統開發流程從而將系統的風險降至最低。執行風險評估、將安全集成到整個開發流程中、測試、開發自動化一次性的基礎設施以及使用云服務都是非常關鍵的措施,這些措施應該會提升你的整個開發過程并且最小化系統風險。
-
安全系統
+關注
關注
0文章
410瀏覽量
66939 -
云服務
+關注
關注
0文章
823瀏覽量
38933
發布評論請先 登錄
相關推薦
評論