《黑客攻防技術寶典Web實戰篇@第2版》讀書筆記1:瞭解Web應用程序

讀書筆記第一部分對應原書的第一章,主要介紹了Web應用程序的發展,功能,安全情況。數據庫

Web應用程序的發展歷程

早期的萬維網僅由Web站點構成,只是包含靜態文檔的信息庫,隨後人們發明了Web瀏覽器用來檢索和顯示那些文檔,但這些信息只是由服務器單向傳送給瀏覽器,並不須要驗證用戶的合法性,全部用戶同等,提供一樣的信息。後端

因此當時一個Web站點的安全威脅主要來自於Web服務器系統與相關軟件的(諸多)漏洞。攻擊者入侵站點後並不能獲得敏感信息,至多修改一下服務器上的靜態文件,歪曲站點的內容,或者利用服務器自己作一些「非法的事情」。跨域

通過幾十年的發展,而今的萬維網和早期的萬維網早已不可同日而語,Web上的大多數站點實際上就是應用程序,它們功能強大,在服務器與瀏覽器之間進行雙向信息傳送。「註冊,登陸,金融交易,搜索,內容創做」等等這些內容以動態的方式成爲解決用戶特殊需求的方案,它們處理諸多信息包括私密和高度敏感的信息,所以,安全問題變的相當重要:若是人們認爲Web應用程序會將他們的信息泄露給未受權的訪問者,他們就會拒絕這個Web應用程序瀏覽器

Web應用程序的常見功能

建立Web應用程序的目的是執行能夠在線完成的任何有用功能:安全

  1. 購物(Taobao,JD,Amazon)
  2. 社交網絡(BBS,SNS)
  3. 微博(Weibo)
  4. 博客(Bloggers)
  5. 銀行服務(BOC,ICBC)
  6. Web搜索(Baidu)
  7. Web郵件(QQmail,企業Mail)
  8. 交互信息(Dingding,QQ,iMassges)

企業內部已普遍使用Web應用程序來支持關鍵業務功能,這類應用程序能夠訪問各類高度敏感的數據和功能:服務器

  1. 使用HR應用程序,訪問工資信息,績效反饋。
  2. 鏈接關鍵體系架構的管理接口:Web和郵件服務器。
  3. 共享文檔,管理工做流程,項目跟蹤。
  4. ERP軟件經過Web瀏覽器訪問。

爲下降成本,企業圈內開始推崇所謂「雲計算」業務,並將此業務開發交於外包企業實施和託管,將ERP搬至網上。在這些所謂的「雲」解決方案中,業務關鍵功能和數據向數目更龐大的潛在攻擊者開發,而組織卻愈來愈多地依賴於不受其控制的安全防護。網絡

Web應用程序的優勢

  1. HTTP是用於訪問萬維網的核心通訊協議,它是輕量級的,無須鏈接,這提供了對通訊錯誤的容錯性。這使得用戶能夠在任何網絡配置下進行安全通訊。
  2. 每一個Web用戶在其PC端和移動端上都默認裝有瀏覽器,而Web應用程序能夠在任何瀏覽器上運行。
  3. 現今的Web界面使用標準的導航和輸入控件,這保證了用戶不須要經過學習就能夠即時熟悉這些功能。
  4. 用於開發Web應用程序的核心技術和語言工具相對簡單,而且有大量的開源代碼和資源可供整合。

Web應用程序安全

應用程序各不相同,所包含的漏洞也各不相同,許多應用程序是由開發人員獨立開發,還有許多開發人員對本身所編寫的代碼可能引發的安全問題略知一二,因而一些開發人員從未在開發應用時不曾考慮到的攻擊方式在使用過程中相繼出現了,而新技術的開發也會引入新的漏洞。架構

針對Web應用程序最嚴重的攻擊,是那些可以繞到後端系統的無限訪問權限的攻擊。框架

在Web應用程序的整個發展過程當中,直到今天,甚至可預見的將來,攻擊者與防護者的戰鬥仍然在繼續,且沒有解決的跡象。工具

「本站點是安全的」

大多數網站聲稱本身使用128位安全套接層(Secure Socket Layer, SSL)技術設計,遵循支付卡行業(PCI)標準,來證實本身的加密協議是無懈可擊的。

但實際上,大多數Web應用程序不安全,不只僅是技術應用上的,還有開發人員在基礎設計上的漏洞:

  1. 不完善的身份驗證措施
  2. 不完善的訪問控制措施
  3. SQL注入
  4. 跨站點腳本
  5. 信息泄露
  6. 跨站點請求僞造

SSL在機密性與安全性上是出色的技術,但它的問題在於它並不能抵禦直接針對某個應用程序的服務器或客戶端組件的攻擊,而許多成功的攻擊都偏偏屬於這種類型。

因此SSL並不能阻止上述任何漏洞或許多其餘使應用程序受到威脅的漏洞。

核心安全問題:用戶可提交任意輸入

Web應用程序有個根本性問題,即沒法控制客戶端,因此用戶幾乎可向服務器端提交任意輸入。因此應用程序必須假設用戶輸入的都是惡意信息。

這個核心問題表如今多個方面:

  1. 用戶可干預客戶端與服務器間傳送的全部數據。
  2. 用戶可按任何順序發送請求,並可在應用程序要求以外的不一樣階段不止一次提交或根本不提交參數。
  3. 用戶交不限於使用一種Web瀏覽器訪問應用程序,這致使大量各類各樣的工具能夠協助攻擊Web應用程序。

絕大多數針對Web應用程序的攻擊都涉及向服務器提交信息:

  1. 更改隱藏的HTML表單字段提交的產品價格,以更低價格欺詐性購買。
  2. 修改在HTTP Cookie中的會話令牌,支持另外一個驗證用戶的會話。
  3. 利用應用程序處理過程當中的邏輯錯誤刪除某些正常提交的數據。
  4. 改變由後端數據庫處理的某個輸入,從而注入一個惡意數據庫查詢以訪問敏感數據。

關鍵問題因素

  1. 不成熟的安全意識
  2. 獨立開發
  3. 欺騙性的簡化
  4. 迅速發展的威脅形勢
  5. 資源與時間限制
  6. 技術上強其所難
  7. 對功能的需求不斷加強

開發人員的技術能力,開發時間的限制,開發資源的有限利用,單一框架多程序開發使用,大量增長第三方插件,爲實現功能對數據庫或程序直接進行二次開發而忽視二開的安全措施,以上這些種種行爲大大增長了安全問題的出現率。

新的安全邊界

Web應用程序的普遍應用使得典型組織的安全邊界發生了變化,以往咱們關注防火牆與防護主機,而如今咱們應該更關注Web應用程序自己。

Web應用程序接收用戶輸入的方式多式多樣,數據傳輸的方式也多式多樣,這每一步都是潛在攻擊的關口,尤爲是PHP,Java,JS這些語言和平臺的「聚合」,每個鏈接方式都成爲了攻擊關口。

因而站點的安全邊界從服務器自己延伸到了第三方插件,聚合接口,API,某一行代碼,跨域鏈接方式。

Web應用程序安全邊界發生變化的另外一緣由,在於惡意攻擊者利用一個良性的易受攻擊的應用程序攻擊任何訪問它的用戶,並控制用戶的瀏覽器,若是用戶位於企業內部,那麼從用戶的可信位置攻擊者可向本網絡改動攻擊。

Web應用程序安全的將來

目前網絡上的Web應用程序仍然充滿了漏洞,整個行業也沒有統一而成熟的意識。

但隨意着行業的發展,各類漏洞也在被不斷的修復,現有的漏洞也變得更難以發現和利用。

而攻擊目標也由傳統的服務器端應用程序轉向用戶應用程序。

 


 

版權全部,轉載請註明出處。

轉載自 《黑客攻防技術寶典Web實戰篇@第2版》讀書筆記1:瞭解Web應用程序 | XDY.ME@Dy大叔的平常

XDY.ME@Dy大叔的平常

相關文章
相關標籤/搜索