WEB服務器架構:

認證與授權安全
認證安全
1、認證方式
- 基于HTML表格的認證
- 客戶端的SSL證書
- HTTP的基礎型和摘要型(digest)認證
- 認證服務如SSO
- 使用NTLM或者Kerberos的windows集成式認證
- 認證機制自身的缺陷:如允許其他用戶使用該用戶的權限;只驗證口令的前幾位
- 用戶名與口令可以預測,如一些網站的初始密碼、一些密碼生成具備一定規律
2、認證機制的設計缺陷
- 低質量的用戶口令:用戶人為過于簡單的設定如123456
- 口令暴力破解:攻擊者使用暴力破解的方式,沒有防爆破的登錄界面很容易中招
- 口令猜測攻擊:在忘記密碼的界面、登錄界面嘗試輸入密碼
- 用戶憑證沒有獲得加密傳輸或者放在易被獲取的地方如請求引數
3、認證機制的實作缺陷
- 系統例外導致登錄機制開放
- 多階段登錄機制缺陷
- 用戶口令憑證的不安全存盤,如明文存盤
會話管理
原理:在用戶通過認證之后持續保證用戶身份的真實性
如果攻擊者可以破壞系統的會話管理,他就可以輕易的繞過系統的驗證機制
會話管理主要通過令牌實作,一般來說使用cookie作為會話令牌,
1、會話令牌生成中的安全問題
- 令牌生成出的結果易被發現規律
2、會話令牌處理中的安全問題
- 傳輸安全沒有得到保障,如以非加密的方式傳輸密鑰
- 會話令牌的存盤沒有得到安全的存盤,服務端沒有將存放會話關鍵細節的日志保護好
- 令牌劫持
- 令牌時效性問題導致在會話結束后令牌依然有效
訪問控制
訪問控制建立在認證和會話管理之上,包括:垂直訪問控制、水平訪問控制、背景關系相關訪問控制,
訪問控制方法
基于引數的訪問控制
- 任何知道分配給管理員引數的用戶,只需在他自己的請求中使用該引數即可獲得相應權限
基于Referer的訪問控制
- Refer訊息頭完全由用戶控制,可以設定為任何值
基于位置的訪問控制
- 使用位于所允許位置的Web代理服務器
- 使用位于所允許位置的VPN
- 使用支持資料漫游的移動設備
- 修改客戶端地理位置
訪問控制中的安全缺陷
訪問控制的安全問題按表現形式主要可以分為三種:
垂直越權、水平越權、業務邏輯漏洞:

按照缺陷形式,又可以細分為如下這幾類處理漏洞:
- 完全不受保護的功能:敏感的功能和資料可能被任何知道相關URL的用戶訪問
- 基于識別符號的功能:特殊資源以識別符號方式表示且任何用戶可以訪問
- 多階段功能:在多階段的功能中開發者往往會認為任何到達驗證程序后續階段的用戶一定擁有了相關的權限
- 靜態檔案:靜態資源本身不受訪問控制限制
- 平臺配置錯誤:平臺級訪問控制基于:1)HTTP請求方法;2)URL路徑;3)用戶角色
解決方案
- 防止對URL和識別符號的未授權訪問
- 不信任用戶提交的表示訪問權限的引數
- 不要認為用戶將按順序訪問程式頁面
- 不要認為用戶不會篡改客戶端的資料
資料與后端安全
1、資料存盤區安全
常用的資料存盤區如:SQL資料庫、XML資料庫
對應的安全問題有代碼注入:
- XPath注入
- NoSQL注入
- LDAP注入
2、后端組件安全
后端組件,首先,組件化是web開發的一個核心點,將功能模塊化,后端組件也就是處于服務器后端的具備具體功能的模塊化代碼
其對應的安全與傳統的web安全沒有太多出入,包括命令執行、檔案包含、命令注入等攻擊
應用架構與邏輯安全
1、攻擊應用程式邏輯
所有應用程式都通過邏輯操作實作各種功能
邏輯操作代表著一個復雜的受攻擊面:
- SQL注入、跨站等漏洞具有容易辨別的”簽名”
- 邏輯缺陷沒有共用的”簽名”,每一處幾乎都是唯一的,自動化漏洞掃描器無法發
例如,程式開發者的假設存在缺陷,沒有做好每一步的訪問控制:

2、攻擊應用程式架構

一個web服務的整體架構,包括客戶端的瀏覽器語言,應用層的前端組件和后端組件,
攻擊方式
(1)攻擊分層架構
- 利用層之間的信任關系擴大攻擊范圍,通過一層入侵其他層
- 破壞其他層
(2)共享服務環境下的安全問題
- 針對訪問機制的攻擊,如FTP控制下的不同用戶的權限分配問題
- 應用程式之間的攻擊,即攻擊下一個程式后利用程式之間的關系一帶一路控制另一個程式
(3)攻擊云
3、攻擊WEB服務器
WEB服務器配置缺陷
- 許多web服務器包含可被公眾訪問的管理介面,這些介面使用安裝時的默認證書
- Web服務器中含有可用于攻擊服務器或目標程式的默認內容
- Web服務器中含有可用于攻擊服務器或目標程式的默認內容
- Web應用收到一個訪問目錄而非真實檔案的請求時,可能泄露敏感資料
- 虛擬主機配置缺陷
- Web服務器作為代理服務器
保護方式:
- 修改所有默認憑證,包括用戶名、口令,洗掉不必要的賬戶
- 組織公眾訪問管理介面,在Web根目錄的相關路徑上設定應用訪問控制串列
- 洗掉所有并不完全需要的默認功能與內容
- 如需保留默認功能,盡量對其強化,禁用不必要的選項
- 禁用目錄串列
- 禁用除常用web方法外的其他所有方法
- 確保沒有將web服務器配置為代理服務器
- 如果web服務器支持虛擬主機,確保在默認主機上實施服務器強化措施
WEB服務器軟體安全
- 應用程式框架缺陷——.NET填充提示(Padding Oracle)
- 記憶體管理漏洞,如Apache mod_isapi懸掛指標
- 編碼與規一化漏洞,如Apple iDisk Server路徑遍歷
- 查找Web服務器漏洞,即能夠通過漏洞資料庫發現該網站存在一些漏洞
- 保障Web服務器軟體的安全,使用入侵防御(應用程式防火墻)或執行入侵檢測,
參考文獻
《軟體安全原理》——霍瑋
轉載請說出處:from 信安科研人

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/401552.html
標籤:其他
下一篇:sql注入--布爾盲注
