錯誤與例外處理

錯誤與例外處理

 

建置錯誤與例外處理是一個瑣碎的過程. 但是錯誤與例外狀況的處理卻是編碼防護重要的一環. 不恰當的錯誤處理會導致許多安全漏洞的風險:

1) 洩漏資料給駭客,讓駭客知道伺服器平台所使用的技術與設計 CWE 209. 舉例來說,回覆stack trace或是其它內部詳細錯誤的訊息都會導致讓駭客知道更多後端伺服器的運作邏輯. 駭客也會透過不同的錯誤型態(例如,錯誤的使用者或是錯誤的密碼等)來瞭解伺服器檢查的機制.

2) 完全不做錯誤檢查會導致錯誤無法被偵測到或是無法預期的結果 CWE 391. University of Toronto的研究員發現在分散式系統中,錯誤處理或是失誤是導致系統失敗的主要原因https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-yuan.pdf.

錯誤與例外處理包含商業邏輯與安全防護等. 透過程式碼的審視, 安全測試與滲透式測試, fuzzing (Fuzzing) 測試等都可以幫助找到錯誤處理的漏洞. 其中最有名的自動化工具為 Netflix’s Chaos Monkey.

建議

對於例外處理建議採用中央管理的方式避免許多重複的try/catch程式碼的片段, 確保非預期的行為都可以正確的被應用程式處理.

  • 確保顯示給使用者的錯誤訊息不會洩漏過多的資訊, 但是使用者還是可以理解問題發生的原因與解釋.
  • 確保例外狀況會被記錄下來,這些例外狀況記錄的資訊可以供未來問題的追蹤,分析或是事件回覆使用, 主要幫助研發團對理解所發生的問題.

安全防護

參考

工具

Leave a Reply

Your email address will not be published. Required fields are marked *