使用Microsoft Forefront TMG 2010作為安全Web網關
公司在建立安全策略時,一個主要目標就是使員工能夠更安全地瀏覽 Internet。當然,這涵蓋了非常廣闊的領域并涉及到多種要求,例如:
- 確保用戶遵守公司有關 Internet 訪問的策略。
- 檢查通信情況并阻止潛在的惡意軟件和可疑活動。
- 告知最終用戶其 Web 通信受到檢查。
幸運的是,使用 Microsoft Forefront Threat Management Gateway (TMG) 2010 中的安全 Web 網關功能可以幫助您滿足這些目標。圖 1 顯示了可用于實現安全 Web 訪問網關的主要 Forefront TMG 2010 功能:
圖 1 用于安全 Web 網關方案的核心 Forefront TMG 2010 功能
在圖中可以看到,Forefront TMG 使用了三個主要的云組件:Microsoft Update、Telemetry Service 和 Microsoft Reputation Service (MRS)。Microsoft Update 用于更新反惡意軟件工具和 Network Inspection System (NIS) 簽名。Microsoft 惡意軟件響應團隊使用由 TMG 提供的遙測報告來了解發現了哪些攻擊,并據此提高簽名質量。MRS 維護了一個巨大的分類 URL 數據庫,供 Forefront TMG 2010 查詢。
本文將著重介紹 URL 篩選和 HTTPS 檢查。在之前的 TechNet 雜志 2009 年二月的文章中已深入討論了惡意軟件檢查,該功能在 Forefront TMG 2010 中沒有改變。
使用 URL 篩選帶來更安全的瀏覽體驗
URL 篩選可以看作是 Forefront TMG 的第一道防線,用于幫助確保組織的 Web 訪問安全。通過使用 URL 篩選來阻止對不良網站的請求,Forefront TMG 可花費更少的時間來掃描惡意軟件,從而有更多時間來傳送有用的內容。
URL 篩選由兩個主要部分組成:用于評估 Web 請求的 Web 代理篩選器,以及提供類別定義的 MRS,后者供篩選器用于確定如何對請求分類。下面是針對 Web 請求的簡化處理形式:
- Web 應用程序通過 TMG 發送對“http://malware.contoso.com/nefarious”的請求。
- Web 代理篩選器通過 URL 篩選傳遞請求。
- URL 篩選將整個請求拆分為不同部分。在本例中,這幾個部分將為下列內容:
- Com
- Contoso.com
- Malware.contoso.com
- Malware.contoso.com/nefarious
- URL 篩選在本地 URL 類別緩存中查找各個部分。
注意:如果請求無法與本地緩存中的 URL 類別匹配,則 URL 篩選將查詢 MRS。如果 MRS 返回“未知”,或者無法訪問 MRS,則 URL 篩選向 Web 代理篩選器返回“未知”響應。
- URL 篩選知道與各個 URL 部分相關聯的類別后,即可確定將應用到整個 URL 的類別。為此,TMG 使用由 MRS 提供的預定義優先順序列表,告知 TMG 哪些類別優先。例如:
- Com = 未知
- Contoso.com = 常規業務
- Malware.contoso.com = 惡意軟件
- Malware.contoso.com/nefarious = 未知
- 如果得到的 URL 類別集與某個拒絕規則匹配,則將拒絕請求,并將一個錯誤響應返回到 Web 應用程序。
- 如果 URL 類別不與拒絕規則匹配,而是與某個允許規則匹配,則根據匹配規則的其余條件處理請求。
- 如果請求無法與用戶創建的任何拒絕規則或允許規則匹配,則 TMG 規則將由默認拒絕規則處理,并將拒絕響應返回到 Web 應用程序。
從統計角度而言,由于用戶具有 Web 使用習慣傾向,因此隨著 Forefront TMG 不斷處理用戶請求,URL 類別緩存與組織的相關度將越來越高。這樣,MRS 查詢與用戶請求的比率最終將降低。由于 URL 類別有可能改變,因此 MRS 為每個條目分配了一個生存時間。這樣,MRS 請求數永遠不會完全為零,即使用戶始終訪問相同站點。
若要徹底了解 URL 篩選如何工作,還必須了解 Web 應用程序如何創建連接和發出請求。Web 應用程序通常按是否配置為充當 Web 代理客戶端的應用程序而分為兩個類別。#p#
- Web (CERN) 代理:對此類 Web 應用程序進行配置,使其作為 Web 代理并能夠進行相應的操作。Web 應用程序將連接到 Web 代理偵聽器,并按特定格式發出請求:
- HTTP:
METHOD http://website.contoso.com/path/page.aspx?querystring HTTP/1.x METHOD http://1.2.3.4/path/page.aspx?querystring HTTP/1.x
在這種情況下,Forefront TMG 以及 URL 篩選具有完整的 URL 可用于與 URL 篩選數據庫進行比較。
注意:METHOD 可以是任何有效的 HTTP 方法,如 GET、POST 等。
- HTTPS:
CONNECT website.contoso.com:443 HTTP/1.x CONNECT 1.2.3.4:666 HTTP/1.x
對于這些請求,Forefront TMG 和 URL 篩選將只有主機名或 IP 地址(具體取決于客戶端如何發出請求)以及端口用于與 URL 篩選數據庫進行比較。
- 非 Web 代理:在 Web 應用程序未配置為充當 CERN 代理客戶端時,它嘗試將網站的名稱解析為 IP 地址,如果成功,則將使用原始 URL 中的任意端口嘗試連接到該 IP 地址。無論客戶端是 TMG Client(以前稱為防火墻客戶端)還是 SecureNET 客戶端(也稱為 SecureNAT 客戶端),將使用以下格式發送請求:
METHOD /path/page.aspx?querystring HTTP/1.x
在這種情況下,URL 篩選評估請求的能力取決于兩個條件:
- 連接是否定向到默認 HTTP 端口?如果是,則 Web 代理或許能夠截取此請求,并將它傳遞到 URL 篩選進行比較。如果不是,則 URL 篩選將看不到請求,因此就無法與數據庫進行比較。
- 如果將連接定向到默認 HTTPS 端口,則是否啟用 HTTPS 檢查?如果是,則 HTTPS 檢查可以橋接連接,并且 URL 篩選有機會將請求與數據庫進行比較。
不太明顯的一點是,URL 篩選自身不提供任何形式的阻止機制,它僅僅使用與請求的 URL 關聯的類別向 Web 代理發出響應,因為 Web 代理(從而使得 URL 篩選)能夠理解該響應。無論在什么情況下,當 URL 篩選接收到客戶端請求時,它按照圖 2 中所示運行。
圖 2 URL 篩選的基本流程
如果 Forefront TMG 需要查詢 MRS,則使用單個 Web 服務調用對 MRS Web 服務門戶發出請求。MRS 處理由 Forefront TMG 提供的數據,然后使用的當前 URL 類別進行響應,這些類別可應用于收到的數據 MRS。Forefront TMG 2010 具有預定義的域集,其中包括安裝 Forefront TMG 時啟用的門戶目標(請參見圖 3)。
圖 3 MRS 域集
如果發現 URL 篩選返回的 URL 類別符合“拒絕”規則,則 Forefront TMG 會將拒絕響應(HTTP 結果代碼 502)發送到客戶端。根據客戶端是瀏覽器還是其他 Web 應用程序,用戶或許可以看到 Forefront TMG 響應頁;如果應用程序不是瀏覽器(如 Windows Media Player 或 CERN 代理 FTP 應用程序),用戶可能只會看到應用程序自身發出的錯誤消息。
由于 Forefront TMG 為確定 URL 類別而必須執行的成本最高的任務是查詢 MRS,因此相對于允許用戶訪問網站然后對其請求的所有內容執行惡意軟件掃描,此過程在 CPU、內存和網絡資源方面的成本要低很多。#p#
使用 HTTPS 檢查對加密通道進行控制
多年以來,用戶一直被建議為執行安全的在線交易,必須使用帶有 SSL 的 HTTP (HTTPS)。但是,此安全通道也被用于惡意目的。用戶使用 HTTPS 啟動交易時,此通信通常是端到端(從用戶到目標服務器)加密,從而使在兩端之間交換的內容不會由兩端之間的任何設備訪問。雖然這是需要的行為,但由于您不希望任何人查看您的在線信用卡交易,由此造成的缺點是無法評估此通道內發生的惡意操作。圖 4 突出顯示了使用 ISA Server 2006 作為防火墻時此操作的主要部分。
圖 4 傳統 HTTPS 方案
圖 4 說明了客戶端訪問 HTTPS 站點的完整代理方案??偨Y起來,步驟分為兩個主要階段,概述如下:
階段 1 – SSL 隧道
- 客戶端連接到 Web 代理。
- 客戶端發出 SSL 隧道請求:CONNECT malicious.contoso.com:443 HTTP/1.1。
- Web 代理將 malicious.contoso.com 解析為 IP 地址 1.2.3.4。
- Web 代理在 TCP 端口 443 上連接到 1.2.3.4。
- Web 代理將“200 OK”發送到客戶端。
階段 2 – 加密對話
- 客戶端與 Web 服務器交換 SSL 握手消息、加密密鑰和證書。
- 客戶端現在與目標服務器建立了端到端的加密隧道,并將通過此隧道開始進行發送和接收方面的通信。
- ISA Server 使客戶端與服務器之間的該隧道保持打開,但不檢查通信,因為它沒有此功能。
此方案中的階段 2 存在潛在風險,邊緣防火墻并不了解該通道中真正傳輸的內容。在目標服務器已被劫持并插入了惡意代碼的情況下,存在的潛在風險是目標服務器將通過此加密通道發送惡意軟件,而客戶端將毫不遲疑地接收,因為惡意軟件來自理應受信任的連接。
Forefront TMG HTTPS 檢查功能可檢查通信,并在用戶與服務器之間維護單獨的加密通道,從而減少此威脅。圖 5 說明 Forefront TMG 如何達到此目的。
圖 5 運行中的 HTTPS 檢查
總結起來,步驟仍分為兩個主要階段,但該過程現在包括檢查:
階段 1 – 客戶端請求
- 客戶端連接到 TMG 代理偵聽器。
- 客戶端發出 SSL 隧道請求:CONNECT malicious.contoso.com:443 HTTP/1.1。
- TMG 將 malicious.contoso.com 解析為 IP 地址 1.2.3.4。
- TMG 在 TCP 端口 443 上連接到 1.2.3.4。
- TMG 與服務器協商 SSL 連接并評估證書。
- 如果證書有效可信,則 TMG 將向客戶端發送“200 OK”響應。
階段 2 – 帶有檢查的加密對話
- 客戶端和 TMG 交換 SSL 握手消息、加密密鑰和證書。請注意,由于 TMG 使用派生自 Web 服務器證書的信息構建服務器證書,因此客戶端相信自身在與 Web 服務器通信。
- 現在,客戶端與 Forefront TMG 之間有加密隧道,而 Forefront TMG 與目標服務器之間有加密隧道。Forefront TMG 將能夠按以下順序檢查客戶端與服務器之間的所有通信:
a) TMG 接收并解密來自目標服務器的加密通信。
b) TMG 將惡意軟件檢查功能和 NIS 篩選器應用到通信。c) 如果惡意軟件和 NIS 篩選器允許,TMG 會加密結果并發送到客戶端工作站。
d) 客戶端將接收、解密并處理通信。
若要與客戶端建立 SSL 握手,Forefront TMG 需要服務器證書。為了創建證書,Forefront TMG 根據原始服務器證書數據創建仿冒證書,并使用 HTTPS 檢查 CA 證書對其簽名。為確保獲得最佳性能,Forefront TMG 維護復制服務器證書的緩存。TMG 將在本地緩存中搜索復制服務器證書,如果未找到證書,則會復制上游服務器證書并放在緩存中。緩存僅存儲在內存中。因此,在重新啟動防火墻服務后,仿冒證書緩存為空。
注意:緩存的大?。ㄓ勺C書數決定)由 LowLevelSettings.ClonedCertificatesCacheSize COM 屬性控制。#p#
HTTPS 檢查選項
配置 HTTPS 檢查之前,了解組成此功能的完整功能集和選項非常重要。圖 6 顯示了可以配置 HTTPS 檢查的區域。
圖 6 HTTPS 檢查功能集
在計劃實現 HTTPS 檢查時,需要首先考慮證書設置,以確定是使用自簽名證書還是由內部 CA 發出的證書。導入現有的受信任證書頒發機構時,需要有包含頒發機構的證書及其私鑰的 PFX 文件。您需要此私鑰對 TMG 發出的仿冒證書簽名,還必須確保為證書簽名設置了證書的密鑰使用。隨后,此 CA 證書必須部署在客戶端計算機上(位于本地計算機證書存儲區的“受信任根證書頒發機構”下);否則,客戶端將不會信任從 TMG 接收的服務器證書。
在 Forefront TMG 上,可以通過 Web 訪問策略啟用 HTTPS 檢查功能。請按以下步驟操作,啟用此功能:
- 在 Forefront TMG 控制臺中,單擊“Web 訪問策略”,然后在“任務”窗格的“Web 保護任務”下選擇“配置 HTTPS 檢查”。
- 在“HTTPS 出站檢查”屏幕的“常規”選項卡上,選擇“啟用 HTTPS 檢查”復選框,如圖 7 中所示。
圖 7 啟用 HTTPS 檢查
本例中將使用 Forefront TMG 自簽名證書。單擊“生成”,此時將顯示類似于圖 8 中的頁面。
圖 8“生成證書”窗口
- 在“生成證書”頁上,根據公司需要填寫頒發者名稱、過期日期和 Issuer 語句,然后單擊“立即生成證書”。
- 此時將生成新證書并彈出“證書”頁。驗證證書配置并單擊“關閉”。
- 單擊“確定”以關閉窗口。
- 在“HTTPS 出站檢查”窗口上,單擊“HTTPS 檢查受信任的根 CA 證書選項”按鈕。此時將顯示“證書部署選項”窗口,如圖 9 中所示。
圖 9 選擇如何部署證書
- 如果 TMG 屬于某個域,則建議的部署方法為“自動通過 Active Directory”。選擇此選項時,系統會自動使用組策略將 TMG CA 證書部署到客戶端計算機。單擊“域管理員憑據”按鈕,然后鍵入將供此操作使用的憑據。單擊“確定”。請注意,在用戶名字段中不應包括域。
- 由于 Forefront TMG 使用 certutil 工具將 TMG CA 證書發布到 Active Directory,因此您可能會看到命令提示簡要窗口。依次在“自動證書部署成功”消息框和“證書部署選項”窗口上單擊“確定”。
- 單擊“確定”以完成。
重要說明:除了滿足組織的安全策略之外,在啟用 HTTPS 檢查功能之前,還需要評估所有法律和監管規章??梢詫⑷魏握J定為不適合使用 HTTPS 檢查的站點添加到例外列表中。#p#
增強的用戶體驗
Forefront TMG 中的 HTTPS 檢查和 URL 篩選不僅有助于向最終用戶提供受保護的網絡漫游環境,還包括可增強最終用戶體驗的功能,這一點可以通過提供信息性消息以及提供直接與最終用戶相關的自定義或精確錯誤消息來實現。
HTTPS 客戶端通知
為保證遵守公司的隱私策略,可以啟用客戶端通知,以便在對 SSL 站點進行檢查時提醒最終用戶,并向最終用戶提供退出該站點的選項,從而保護最終用戶認為或歸類為個人信息的內容。圖 10 說明了此行為。
圖 10 HTTPS 檢查客戶端通知
用戶要接收 HTTPS 檢查通知,客戶端計算機必須安裝了 Forefront TMG Client,并且必須在本地計算機的“受信任根證書頒發機構”證書存儲區中安裝了 HTTPS 檢查受信任根證書頒發機構。請記住,如果您具有上游和下游 TMG 配置,則需要在下游代理而非上游代理上啟用 HTTPS 通知。
若要實現 HTTPS 檢查客戶端通知,必須同時在 Forefront TMG 服務器和客戶端上啟用它。若要在服務器上啟用 HTTPS 檢查通知,請執行以下操作:
- 在 Forefront TMG 管理控制臺中,單擊“Web 訪問策略”。
- 在右側窗格中的“任務”下,單擊“配置 HTTPS 檢查”。
- 在“客戶端通知”選項卡上,單擊“通知用戶將檢查 HTTPS 內容”,然后單擊“確定”。
若要在 Forefront TMG Client 上啟用通知,請執行以下操作:
- 在系統任務欄中右鍵單擊 Forefront TMG Client 圖標,然后單擊“配置”。
- 在“安全連接檢查”選項卡上,選擇“需要檢查發送到安全網站的內容時通知我”,然后單擊“確定”。
URL 篩選錯誤消息
管理員可以根據 URL 類別允許或拒絕最終用戶的 Web 訪問。如果用戶嘗試轉到已被拒絕的站點,則將收到類似于圖 11 中所示的錯誤消息,其中說明對該站點的訪問已被拒絕,因為 Forefront TMG 管理員已將其這樣分類。
圖 11 拒絕訪問網頁
TMG 管理員可以自定義錯誤消息。為此,請執行以下操作:
- 打開 Forefront TMG 管理控制臺并單擊“Web 訪問策略”。
- 雙擊以打開由管理員創建的用于允許或拒絕訪問的規則。
- 單擊“操作”選項卡,如圖 12 中所示。
圖 12 自定義 URL 篩選錯誤消息
您可以將任何自定義消息添加到“向用戶顯示拒絕通知”文本框。您甚至可以使用 HTML 內容,只要該 HTML 在 HTML <body> 元素的上下文中有效即可,但不能包括任何腳本。
您還可以選擇顯示拒絕訪問的站點的類別。為此,請單擊“將拒絕請求類別添加到通知中”復選框。如果站點分類不正確,則這一點尤為重要,以便最終用戶可以告知您。相應地,您可以通過遙測將此反饋發送到 Microsoft,同時設置覆蓋類別來糾正分類,直至修復好。
如果您希望更改整個 URL 篩選錯誤消息頁的外觀,則需要編輯 12232.htm HTML 頁。在 Forefront TMG (ISA Server) 產品團隊博客的 Forefront TMG 2010 上的拒絕頁自定義頁上可以找到相關信息。
本文來源:微軟TechNet中文站
【編輯推薦】