「伺服器端模板注入」漏洞被披露出來,那麼,它與跨站指令碼之間有何區別?相應地,防禦策略也是否有所不同?
michael cobb:驗證並清除來自不受信任**的輸入是軟體開發人員需要遵守的重要原則,以防止惡意**注入攻擊如跨站指令碼(xss)和sql注入等。儘管清理使用者輸入是安全程式設計的核心原則,然而資料未被清理的情況仍舊時有發生,且生成黑客可以攻擊使用者及系統的漏洞。
web安全公司portswigger的研究人員研製了web應用安全測試工具burp suite,該工具最新發現乙個不知名的注入漏洞級別的漏洞,他們將其稱作「伺服器端模版注入」。
模版引擎廣泛用於從展示層分離程式邏輯,維基、部落格和內容管理系統都傾向於使用模版引擎。不僅因為這是良好的程式設計實踐,也因為它能夠使懂很少html知識的員工輕鬆地更新和維護**內容或編寫html格式的電子郵件。它們也讓專業的網頁設計師利用這些**快速而高效地建站。流行的模板包括twig、jade以及xwike enterprise。
一些引擎使用簡單的字串,佔位符由資料替換。舉個例子,一封電子郵件模板開頭可能是 "dear " ,在模板引擎中,"user_firstname" 則由底層資料庫中的』first name『所取代。其他模板也用所謂的"if-defined-conditionals"來測試資料存在與否,有些則包括額外的靈活性,諸如用for-each迴圈、遞迴巨集和嵌入式表達來提供更豐富的功能。
對於駐留在伺服器上的模板引擎**來說,驗證和清理任何使用者提供的新增進模板的輸入和內容都是非常必要的;否則,則很可能發生伺服器端模板注入攻擊。不像xss攻擊,它能夠直接攻擊底層web伺服器,而非只是它的使用者。儘管一些模板引擎部署了沙箱來限制訪問,確保能安全處理不信任的輸入,portswigger公司發現很多這類注入攻擊都能繞過這些沙箱。該項研究解釋了檢測和利用模板注入漏洞的方法,並演示了利用五個最流行模板引擎的各種利用方式,包括沙箱逃避。
目前portswigger並不確定該模板注入攻擊有多普遍,不過它打算使用burp suite來檢測這類注入漏洞。簡單和相對扁平的模板如mustache不會引起風險,使用者無法從模板語言中呼叫函式,儘管html輸出仍然需要被清理。wikipedia背後的開源模板引擎mediawiki是更為靈活的引擎,根據portswigger,其沙箱環境在防止沾染潛在危險模組和功能方面做的非常好。
該研究表明企業開發團隊不應該盲目依賴**開發工具來實現最佳實踐。安全團隊需要仔細評估模板引擎是如何處理使用者輸入的以及內建安全檢查或沙箱是否會被規避。閱讀福袋文件可以在輸入檢查使顯示明顯的缺點,不過分析師應該仔細檢查模板的**以及是哪些引擎能夠允許使用者輸入以及檢視是否安全檢查會被繞過。緩解技巧之一就是將模板引擎置於乙個強化的docker容器沙箱環境中,來追蹤任何惡意**執行。
兼顧效率與安全 如何制止新模版注入漏洞
伺服器端模板注入 漏洞被披露出來,那麼,它與跨站指令碼之間有何區別?相應地,防禦策略也是否有所不同?michael cobb 驗證並清除來自不受信任 的輸入是軟體開發人員需要遵守的重要原則,以防止惡意 注入攻擊如跨站指令碼 xss 和sql注入等。儘管清理使用者輸入是安全程式設計的核心原則,然而資料...
物聯網時代如何兼顧資料傳輸的效率與成本
過去25年來,無線標準發生了翻天覆地的變化,我們傳遞資訊的方式也變的更加多樣,感測器,相機和麥克風都可以將大量的資料同步到雲端,在需要時又可以隨時取用。正因如此,人們才不厭其煩的討論物聯網可能帶來的好處。在物聯網時代,困擾應用開發者的乙個重要問題就是如何在功率,覆蓋範圍,傳輸速率和成本之間找到那個微...
機器學習相關從業者如何兼顧理論與工程能力
理論與工程 首先,小夕說一下自己目前對理論與工程的理解吧,這也是小夕當前研究理論和熟練工程時主要的出發點。僅為個人思考,請勿當成真理 理論注重的是學科中各個知識點的大一統,將各種散亂的演算法 現象 技巧來歸結到一張大網中。這樣在新理論 新技術到來的時候,你可以很快的從這張大網中get到新理論 新技術...