宣告式安全與程式化安全
宣告式:
指定"什麼"而不是"如何"
定義與容器有關的安全關係
基於容器的實體化安全性的方法
安全規則配置為部署的一部分,而不是程式碼的一部分
程式化(或命令式):
安全實現嵌入到程式碼中
執行更複雜的商業邏輯
要在設計階段的早期階段選擇安全功能:
引導自我維持的啟動過程
加密敏捷性
通過組態文件管理程式碼中包含的加密功能的細節,而無需重新編譯
例如:從一種演算法切換到一種更安全的演算法
挑戰:可以通過組態文件重新配置建立軟體
例如:使用密碼資料庫
在國際問題上的額外協助
例如:在某些區域不能允許單一應用層閘道(Application Layer Gateway,ALG)
設計階段的決定,包括
處理配置參數
記憶體管理
從單個/多個程式動態地使用記憶體
- 記憶體管理程式碼應用程式:
記憶體管理程式碼和程式碼執行引擎的組合要小心
- 非記憶體管理程式碼:
作業系統和應用程式本身共享記憶體管理,因此幾乎所有與資源相關的操作都是開發人員的責任
垃圾收集
執行緒池
記憶體洩漏
安全類型:
不會無意間存取記憶體的任意位置
地區:
隨後的記憶體存取是可預測的,並且與先前的引用非常接近
解決方案:地址空間佈局隨機化
錯誤處理
異常管理
API設計
應用程式介面(API),軟體的入口點
主要緩解措施