iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 14
0
  1. 宣告式安全與程式化安全

    • 宣告式:
      指定"什麼"而不是"如何"
      定義與容器有關的安全關係
      基於容器的實體化安全性的方法
      安全規則配置為部署的一部分,而不是程式碼的一部分

    • 程式化(或命令式):
      安全實現嵌入到程式碼中
      執行更複雜的商業邏輯

    • 要在設計階段的早期階段選擇安全功能:

      1. 引導自我維持的啟動過程

        • 開機檢查(POST)
        • 引導載入程式
        • 作業系統初始化
          惡意軟體可能會中斷引導過程
          當您的應用程式依賴系統元素時,使用組態檔案來管理啟動
      2. 加密敏捷性
        通過組態文件管理程式碼中包含的加密功能的細節,而無需重新編譯
        例如:從一種演算法切換到一種更安全的演算法
        挑戰:可以通過組態文件重新配置建立軟體
        例如:使用密碼資料庫
        在國際問題上的額外協助
        例如:在某些區域不能允許單一應用層閘道(Application Layer Gateway,ALG)
        設計階段的決定,包括

      3. 處理配置參數

        • 通過分析哪些功能需要更改配置來確定關鍵性
        • 最簡單:帶有ACL的組態檔案夾
        • 最高:加密組態檔案中的敏感資料
        • 通過呼叫應用程式傳遞配置資料
  2. 記憶體管理

    從單個/多個程式動態地使用記憶體
    - 記憶體管理程式碼應用程式:
    記憶體管理程式碼和程式碼執行引擎的組合要小心
    - 非記憶體管理程式碼:
    作業系統和應用程式本身共享記憶體管理,因此幾乎所有與資源相關的操作都是開發人員的責任
    垃圾收集
    執行緒池
    記憶體洩漏
    安全類型:
    不會無意間存取記憶體的任意位置
    地區:
    隨後的記憶體存取是可預測的,並且與先前的引用非常接近
    解決方案:地址空間佈局隨機化

  3. 錯誤處理

    異常管理

  4. API設計

    應用程式介面(API),軟體的入口點

    • 在您自己的API上進行攻擊面分析
    • 檢查您要使用的第三方API
    • 認證
    • 審核(日誌)外部交互
  5. 主要緩解措施

    • 鎖定環境
    • 驗證和控制所有輸入/輸出
    • 假設可以顛覆外部組件,並且任何人都可以讀取程式碼
    • 選擇元件庫和框架
    • 行業認可的安全功能
    • 將安全性集成到整個開發生命週期中
    • 多種發現和預防弱點的方法

上一篇
常見漏洞與對策
下一篇
原始碼檢測
系列文
安全軟體開發生命週期(SSDLC)學習筆記36
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言