資安JAVA(十三):Know Your Framework

來源:John Melton's Weblog
標題:YEAR OF SECURITY FOR JAVA – WEEK 13 – KNOW YOUR FRAMEWORKS
作者:John Melton
內文:
Mirror mirror which's the securest framework of all ?
What is it and why should I care?

函式庫(Libraries)和框架(Framework) 是每個 J2EE 開發者或任何開發者的必需品。我們可以更快速的開發MVC、DB、登入、Web Service、安全元件、XML等等。雖然越來越依賴其他人開發的、未經仔細檢查的程式碼,但我們還是用得很開心。甚至應用程式中第三方的程式碼比自己寫的還多。

請花時間了解你使用的 Framework,而不要盲目引用。當你引用後便繼承了 Framework 的一切問題,你便有責任解決問題。以功能性而言,只要壞掉了,你就要負責修好。從資安的角度,只要有漏洞,你就必須修補。最重要的、最困難的任務是 ─ 我們必須負責第三方程式碼的功能性和安全性。


What should I do about it?

當你使用框架(Framework)應該考慮以下兩件事情:

第一,當弱點爆發時,雖然會花很多時間測試和調整,你應該馬上更新 Framework。越是熱門的Framework,越常發生重大弱點。有時候你也可以藉由 WAF 來達到更新的作用,但重點是只要漏洞被揭露時,就要採取行動。

第二,你應該完全了解框架如何運作。一般來說大部份的Framework的更新都很合理的迅速,他們通常不會更新"設計模式"。通常是屬於功能的更新而不是安全性的更新。其中熱門的模式是 mass assignment ,常見於Ruby on Rails 的實作當中,用來快速的實作可存取資料的網頁表單,類似.NET 的資料表綁定(前陣子 Github 因此被熱心的駭客糾正)。然而有些入門的開發者會忘記要設定安全性(設定 Sattr_accessible 不然...)。所以了解Framework的運作,和如何影響到應用程式的功能性和安全性是很重要的。

Framework 是現在應用程式中必需的部分,但不能盲目的相信其安全性。注意他們如何運作,並記得更新,才能幫助你控制應用程式的資安風險。

作者這篇文章寫得很急迫, Aspect Security 提出一篇很棒的 論文 (可惜要註冊...)。他們分析Maven Central Repository 有關 JAVA 函式的一億一千三百萬下載量,發現26%都存在已知漏洞的。這份分析報告並沒有說明下載之後,使用者是否有更新函式庫,但作者認為應該是沒有。

參考資料
https://www.aspectsecurity.com/blog/the-unfortunate-reality-of-insecure-libraries/
http://www.openfoundry.org/tw/tech-column/8650--github-hack-rails-
http://lesseverything.com/blog/archives/2008/03/11/use-attr_protected-or-we-will-hack-you/

———–———–
資安Java: 上一篇 || 下一篇
———–———–

留言

這個網誌中的熱門文章

資安JAVA(四):Session Cookie HTTPOnly Flag

以 SharpPcap 實作可收聽封包的 C# 程式

資安JAVA(八):HTTP強制傳輸安全(HSTS)