如今,咱們絕大多數人都會在網上購物買東西。可是不少人都不清楚的是,不少電商網站會存在安全漏洞。好比烏雲就通報過,國內不少家公司的網站都存在 CSRF 漏洞。若是某個網站存在這種安全漏洞的話,那麼咱們在購物的過程當中,就極可能會被網絡黑客盜刷信用卡。是否是有點「毛骨悚然」 的感受?php
首先,咱們須要弄清楚 CSRF 是什麼。它的全稱是 Cross-site request forgery ,翻譯成中文的意思就是「跨站請求僞造」,這是一種對網站的惡意利用。簡單而言,就是某惡意網站在咱們不知情的狀況下,以咱們的身份在你登陸的某網站上胡做非爲——發消息、買東西,甚至轉帳......瀏覽器
這種攻擊模式聽起來有點像跨站腳本(XSS),但 CSRF 與 XSS 很是不一樣,而且攻擊方式幾乎相左。XSS 利用站點內的信任用戶,而 CSRF 則經過假裝來自受信任用戶的請求來利用受信任的網站。與 XSS 攻擊相比,CSRF 攻擊每每不多見,所以對其進行防範的資源也至關稀少。不過,這種「受信任」的攻擊模式更加難以防範,因此被認爲比 XSS 更具危險性。安全
這個過程究竟是怎樣的呢?讓咱們看個簡單而鮮活的案例。服務器
銀行網站 A,它以 GET 請求來完成銀行轉帳的操做,如:網絡
http://www.mybank.com/Transfer.php?toBankId=11&money=1000
危險網站 B,它裏面有一段 HTML 的代碼以下:運維
<img src=http://www.mybank.com/Transfer.php?toBankId=11&money=1000>
可能會發生什麼?你登陸了銀行網站 A,而後訪問危險網站 B 之後,忽然發現你的銀行帳戶少了10000塊......測試
爲何會這樣呢?緣由是在訪問危險網站 B 以前,你已經登陸了銀行網站 A,而 B 中的以 GET 的方式請求第三方資源(這裏的第三方就是指銀行網站了,本來這是一個合法的請求,但這裏被不法分子利用了),因此你的瀏覽器會帶上你的銀行網站 A 的 Cookie 發出 GET 請求,去獲取資源網站
「http://www.mybank.com/Transfer.php?toBankId=11&money=1000」,
結果銀行網站服務器收到請求後,認爲這是一個合理的轉帳操做,就馬上轉帳了......spa
其實,真實的銀行網站不會如此不加防範,但即便用 POST 替代 GET,也只是讓危險網站多花些力氣而已。危險網站 B 依然能夠經過嵌入 Javascript 來嘗試盜取客戶資金,因此咱們時不時會聽到客戶資金被盜的案件,其實這並非很不稀奇。翻譯
相信,不少人瞭解到這兒,會出現一身冷汗,還讓不讓咱們在「雙11」期間可以愉快地享受網購的快感了?難道沒有什麼辦法防住它嘛?
固然是有的。能夠給網站打補丁,如 Cookie Hashing (全部表單都包含同一個僞隨機值)。這多是最簡單的解決方案了,由於理論上攻擊者不能得到第三方的 Cookie,因此表單中的數據也就構造失敗了。但這並非完美的解決方案,由於用戶的 Cookie 很容易因爲網站的 XSS 漏洞而被盜取;另外一種方法是用驗證碼,每次的用戶提交都須要用戶在表單中填寫一個圖片上的隨機字符串....這個方案能夠徹底解決 CSRF,但用戶體驗很遭罪(忒麻煩了)。還有一種是 One-Time Tokens(不一樣的表單包含不一樣的僞隨機值),須要設計令牌和 Session 管理邏輯,並修改 Web 表單,網站運維又很遭罪。
以上全部辦法都須要對網站進行修修補補,再花費不少氣力去測試。可能有人會想到用防火牆來防禦,那麼有沒有知足要求的產品呢?在去年,下一代防火牆——自適應安全防禦(RASP)這個概念橫空出世,吸引了不少企業的注意,它對請求上下文的感知能力和深刻應用內部的識別防護能力一改被動的、外部肉盾式的防禦理念,能夠在無需給網站打補丁的情形下承擔起防禦的責任,值得嘗試。
這裏推薦一個最新的解決方案,它的名字叫 RASP(實時應用自我保護),這種方式能夠有效解決這類的問題。針對 CSRF 漏洞問題,RASP 定製了規則集和防禦類,而後採用 Java 字節碼技術,在被保護的類被加載進虛擬機以前,根據規則對被保護的類進行修改,將防禦類織入到被保護的類中。你們不妨能夠一試。
目前國內僅有一家在提供 RASP 的服務廠商 OneASP。 能以最小代價而且快速解決上述難題,你只須要很是簡單的修改一下 JVM 的啓動配置,就能夠將運行。它能將攻擊過程透明化,經過控制檯能夠很是清楚的知道系統何時、哪一個模塊、哪行代碼遭受了哪一種類型的攻擊。同時還可以快速修復漏洞,只要將 OneRASP 和應用程序部署在一塊兒就能夠快速修復已知漏洞,不須要漫長的掃描 - 修復 - 掃描的過程。經過實時升級系統快速同步最新漏洞,避免零日攻擊。
固然,只有 OneRASP 也並不是萬無一失,最優的解決方案是將 OneRASP 和網絡安全解決方案、應用安全掃描與測試等安全防禦系統結合起來,造成多層次立體的防護體系。現在各類攻擊手段層出不窮,單靠其中任一技術來防範應用程序的安全是不科學的。但 OneRASP 永遠是應用程序安全保護的最後一道沒法逾越的壕溝,它能夠幫你快速提高應用程序的安全級別,你不再用擔心沒有合格的安全工程師了。固然也確保你的企業不會做爲下一個安全受害者登上頭條。
OneRASP(實時應用自我保護)是一種基於雲的應用程序自我保護服務, 能夠爲軟件產品提供實時保護,使其免受漏洞所累。