Windows NT 4.0 和 Windows 98 降低安全性威脅指南

第 3 章:網路安全性與強化

發佈日期: 2004 年 9 月 13 日 | 更新日期: 2006 年 3 月 30 日


本章說明網路安全性弱點,以及強化網路上的主機以避免受侵害的程序。本章討論網路分割、傳輸控制通訊協定/網際網路通訊協定 (TCP/IP) 堆疊強化,以及如何使用個人防火牆保護主機。

本頁內容

背景
網路安全性設計
實作
總結

背景

舊系統因為具有某些高信任等級,或能與內部應用程式高度互動,經常會成為攻擊者的目標,這可能是它們遭到攻擊的原因。當這個理論概念加上已知的弱點,讓舊系統成了非常好的攻擊目標,攻擊者的下一步行動也就很自然了。

要確保舊系統安全,您必須考慮舊系統在整個網路環境中所處的位置。考慮到整個網路的設計與設定,您可在網路中建立邏輯點,儘量限制惡意流量的容量以保護舊系統。上述措施是後續章節中特定系統強化措施的補充說明。

此外,周邊網路這個詞指的是公司網路與網際網路銜接處的獨立網路區段。必須與外部、未受保護的網際網路互動的服務與伺服器會置於周邊網路 (也稱為非軍事區 (DMZ) 或屏蔽式子網路) 中。如此一來,即使攻擊者能夠利用暴露的服務中的弱點,也只能存取可信任的內部網路。為整個網路提供進一步保護的方法之一,是使用保護周邊網路的方法來保護舊系統,也就是將舊系統置於獨立網路區段中,與網路中的其他主機隔開。上述方法有兩大優點:第一,可以降低受到攻擊的舊系統影響網路其他部分的風險;第二,可以讓進出舊電腦的網路傳輸進一步經過篩選和封鎖。

注意:Microsoft 建議您切勿將 Microsoft® Windows NT® 4.0 版或 Microsoft Windows® 98 系統直接暴露在網際網路中 (即使已置於周邊網路)。上述系統應僅限於內部網路使用。

網路安全性考量

您應該使用保護周邊環境的方式保護環境中的舊系統。要強化和保護網路,您需要綜合考慮業務需求、預算限制以及下列安全性考量 (將在後續章節中詳細說明):

  • 深度防禦

  • 周邊控制

  • 雙向威脅

  • 不同服務的分隔

  • 計畫失敗與事件回應

  • 備份

  • 時間同步化

  • 稽核與監視

  • 掌握情況

深度防禦

要防止電腦系統受到威脅,IT 管理人員應該考慮深度防禦措施。深度防禦措施主要結合兩個重點:去除增加風險的因素,以及增加降低風險的控制措施。不論軟體、硬體、程序和人員多麼優秀,蓄意攻擊者都可能找出通過單一保護層的破解方法。深度防禦安全性模型透過在環境中使用多層安全保護,防止侵入及安全性威脅,從而達到保護重要資產的目的。這個系統安全多層保護法增加了攻擊者侵入資訊系統的難度,降低整個系統暴露在外遭到攻擊的風險。

深度防禦安全保護法結合了多種不同防禦手段,可對潛在威脅提供防禦,這個方法優於僅依賴堅固外圍防禦或強化伺服器的保護方法。深度防禦法並不會減少對其他安全措施的需求,更可以和所有元件結合以提供更強保護。在重疊層級中建立安全保護主要有兩個優點:

  • 使攻擊者更難得逞。層級越多,您能夠偵測到攻擊者正在施行攻擊的機會越大,攻擊者成功侵入的可能性也就越小。

  • 有助於降低裝置中新弱點的影響。每個層級可防禦不同類型的攻擊,或提供防禦來自另一層級相同弱點攻擊的雙重保護。因此,透過完整的防禦措施封鎖交易可以防禦許多新攻擊,讓您有更充裕的時間來解決核心的缺陷。

您的營運流程需要調整以同步變更為多個層級 (如果尚未允許的話)。

分割網路

建立周邊網路即建立了界限,可用於分隔內部網路與外部網路之間的流量。有了這個界限,您就可以分類、隔離以及控制網路流量。理論上最理想的周邊網路不會向核心系統傳送任何流量,除非需要絕對極少時間來完成所需互動。穿過周邊網路的每一次額外交易均表示防禦系統中存在潛在弱點,攻擊者可能利用其他可能的媒介達到控制目的。每啟用一項新的服務即提供了另一組可能產生弱點與缺口的程式碼,從而增加系統受攻擊的可能性。

傳統安全性政策要求定義一個界限,以區分網路中與網際網路直接通訊與否的主機。然而將舊系統視為周邊網路的一部分,並密切控制常用網路與內含舊系統區段之間的互相通訊,可以獲得額外安全性。將舊系統降級為其自有的網路區段,可提供兩大主要優點:

  • 可以用周邊網路中的方式使用舊系統。由於舊版 Windows 沒有新系統的所有安全特性及功能,因此會比新系統更易遭到攻擊,所以需要視情況為其提供保護。

  • 可提供對舊系統的更好控制能力。將舊系統置於自有周邊網路中,可將其從網路外圍控制 (如防火牆) 中隔離,仔細監控不同網路中經過的傳輸。

雙向威脅

多數攻擊之所以能夠得逞,是因為攻擊者會誘使目標系統啟動與周邊網路的外界進行通訊。在與惡意系統建立通訊後,攻擊者即可反向攻擊目標系統。另一種攻擊情況通常涉及到蠕蟲等病毒,在系統遭到破壞後,惡意軟體會從一個系統擴散到另一個系統,並利用信任關係嘗試進一步向外部系統傳播病毒。感染病毒的系統也將與惡意系統建立通訊,因此能進行下一步動作。周邊網路必須設計成不僅能限制傳入保護系統的流量,還要能限制從保護系統傳出的流量。在遭到攻擊的環境中,這個設計將增大使用伺服器的難度。由於您的系統不會協助攻擊者侵入它自己的保護層,因此也會使攻擊更加困難。

不同服務的分隔

對效能的更多關注,使得人們常傾向於在一台電腦中安裝多種服務,確保昂貴的硬體能得到充分利用。但不加選擇就這麼做,可能會使保護系統安全更加困難。請仔細分析系統要提供的服務以及產生的流量,並確保外圍保護措施足以限制服務與遠端系統所需的流量。反之亦然:即將類似系統與服務分在一組,並仔細分割網路,可提供更佳保護。

計畫失敗與事件回應

完善的安全保護計畫與實作程序包括考慮「如果這個措施失敗會怎樣?」,瞭解錯誤、事故及其他未預見事件所發生的後果非常重要。認識上述後果可讓您針對降低後果採取相應保護措施,還可以確保單次失敗不會引發連鎖事件,從而導致舊系統被完全侵入。例如,每個組織應有預先定義的說明如何應付蠕蟲等病毒感染的計畫,以及對懷疑遭到攻擊時採取何種措施的說明。多數組織中,事件回應小組需包括 IT 人員、法務部門以及業務管理部門的人員,上述相關人員均需參與執行安全性弱點的一致回應。Microsoft 安全指導套件可在下列網站取得:http://www.microsoft.com/taiwan/security/guidance,這個網站還提供有關如何設定與執行個人事件回應計畫的資訊。

注意:Microsoft《事件回應:Microsoft 安全管理》(英文) 白皮書中提供有關其內部事件回應程序與方法的說明,您可在下列網站取得:http://www.microsoft.com/technet/itsolutions
/msit/security/msirsec.mspx

備份

即使攻擊者成功侵入您的系統,如果您能防止其侵入關鍵資料與資料,則其攻擊成功可能是暫時性的。如果程序經過備份並能成功還原,即使發生最糟的情形,您仍有所需資料以便重建和復原系統。但確保資料備份只是第一步, 您還需要能夠快速重建所有遭到攻擊或影響的系統。如果需要在原硬體中執行鑑識分析 (通常用於保險理賠記錄或識別攻擊方法),則還需用到備用硬體與軟體,以及經過測試的安裝程序。

時間同步化

顯示攻擊的各種線索可能分佈在多個系統中,尤其是周邊網路中。如果各線索沒有以某種形式相互關聯,則有可能永遠找不出各線索並使之關聯。所有系統的時間必須相同,才能協助進行這個程序。net time 命令可使工作站/伺服器與其網域控制站的時間保持同步化。協力廠商網路時間通訊協定 (NTP) 可使伺服器與其他作業系統及網路硬體保持時間同步化,以便在整個網路中統一時間。

稽核與監視

不論您的系統防禦措施如何完善,您仍要定期稽核與監視防禦措施。值得注意的是,您必須瞭解一般的流量形式,以及系統遭到攻擊和作出回應的情況。培養出這個意識,則在惡意事件發生時,就能從網路流量形式發生變更得到提示。稽核與監視的重點在於驗證。突然出現的失敗驗證嘗試字串通常是僅有警告,它表示您的系統正在遭到惡意字典攻擊。惡意字典攻擊會使用常用單字或英數字元字串來破解簡單密碼。同樣,異常的驗證通過有可能表示系統至少已遭到某種程度的攻擊,攻擊者正利用最初的弱點嘗試存取整個系統。定期收集和擷取事件記錄,並進行自動與人工分析,可在多數情況下防止攻擊嘗試得逞,反之亦然。諸如 Microsoft Operations Manager (MOM) 的自動工具可使記錄資訊的監控與分析工作更加容易。

掌握情況

您不可能瞭解所有情況,但可清楚掌握其他系統管理員看到的威脅種類。有幾種絕佳的安全性資源,可專門提供有關目前安全性威脅及問題的最新資訊。上述資源已在本章結尾處「更多資訊」部分中列出。

網路安全性設計

您可以採取幾種特殊措施,來加強網路對內外部攻擊的防禦能力。這些措施包括:

  • 將舊系統分隔成其自有周邊網路中的區段,然後使用存取控制規則、防火牆及其他技術來保護各區段。

  • 透過網路硬體裝置、Microsoft Internet Security and Acceleration (ISA) Server 或其他產品/單一工作站部署防火牆 (無論是否處於網路層級)。

  • 對堆疊處理異常封包的方式套用更嚴格的設定,以強化 TCP/IP 堆疊。

  • 使用 Windows NT 4.0 內建的連接埠與封包篩選功能可提供額外安全保護。

必要條件

這個解決方案的先決條件:

  • 必須有未使用的網路子網路以便分割網路,還要有足夠容量以容納全部所需主機,最後要考慮到網路成本。

  • 必須瞭解 TCP/IP、網路中所用的連接埠、封包篩選以及路由。

  • 必須十分瞭解與舊系統互動的其他裝置的各種 TCP/IP 選項及特性。

結構

設計網路結構時,應考慮幾種安全性因素。

分割網路

分割網路可控制主機與其他網路區段之間的通訊流量。如果分割網路的設計適當,則可透過確保網路各區段之間傳送的僅為適當流量,達到增強效能與安全性的目的。從集線器移至交換器可使攻擊者破解網路密碼及利用其他敏感流量的可能性降至最低,但交換器並不能完全消除上述可能性。與交換器連接的系統如果受到攻擊,仍可將其用於從其他系統擷取資訊。由於這個原因,您應將交換器視為網路衝突和效能變化 (而並非網路安全) 的解決方法。

連接埠與封包篩選與個人防火牆配合使用,也能協助保護舊系統免遭侵入和攻擊。然而出於對間接管理費用的考慮,在某些情況下,要在使用者電腦中安裝與管理防火牆軟體顯得不太實際。除非在安裝防火牆軟體後,可以透過中央伺服器與資料庫進行遠端管理與設定。在部署安裝後,還需要系統管理員多次修改每台電腦的設定,以滿足單一使用者的需求。還有可能額外要求您完成各個新應用程式的其他管理工作,以反應應用程式可能帶來的其他弱點與失敗點。

某些組織並無專人管理可能達數百個的個人防火牆。在上述情況下,各組織可將分割網路作為替代選擇或額外的安全機制,以便為網路提供進一步保護。如前所述,分割網路代表隔離周邊網路中的某些伺服器。也表示將網路分成獨立區段,以為各區段中的系統提供額外層級的保護。網路分割還具有相當大的靈活性,可用於流量成形、連接埠監視與篩選以及其他網路管理工作。由於各區段可潛在具有自己的獨立設定,在滿足群組中使用者需求的同時,亦能滿足網路的安全性要求。在保護效果上,分割網路會將防火牆置於工作群組層級,以與外圍防火牆配合使用,以達到進一步保護整個網路安全的目的。

分割網路存在兩種潛在威脅:來自網路外部的威脅,以及來自網路內部的威脅。經典範例如:工程部一名較聰明的員工找到方法可進入人力資源部的檔案伺服器,這個範例最能說明分割網路對區域網路 (LAN) 帶來的益處。人力資源部門區段前端的防火牆設定可監視流量,以防其他部門未經授權存取其電腦。同樣,工程部門區段也可以防止來自其他區段未經授權的存取操作。

分割網路可讓您將網路分成獨立的安全區域,並為各區段提供唯一的、基於特定規則的流量管理能力。分割網路的方法有數種。例如,您可以選擇在各區段部署硬體防火牆,以實體分割網路。或者,部署具有虛擬 LAN/分割功能的單一中央防火牆,以為單一群組提供保護。您最終選擇的解決方案將視網路拓撲及各群組的安全性需求而定。最後,您應將引起最大風險的區段 (如無線網路) 與網路中剩餘區段隔離,並施加強制規則防止未經授權的流量進出上述區段。

要決定最適用於網路的網路分割,請先從檢閱網路結構開始, 然後找出引起最大風險的區段,最後制訂解決方案。您現有的防火牆廠商可能會提供技術資訊與產品,以協助部署解決方案。

Trey Research 會選擇在其總部將舊系統分割,即將其 Windows NT 4.0 伺服器與 Windows 98 用戶端置於獨立網路區段中,然後在該區段與企業網路的剩餘區段之間安裝防火牆。透過在該防火牆中啟用網路位址轉譯 (NAT),讓 Trey 的工程師封鎖或篩選上述區段中的輸入/輸出流量,從而提供額外的防禦能力。

個人防火牆

儘管 Windows NT 的 TCP/IP 堆疊中內建有保護措施,但它具有很大局限性,因此並不適用於許多部署工作, 並且也無法保護 Windows 98 用戶端的安全性。軟體防火牆 (亦稱為個人防火牆) 通常能提供額外保護。這些專業應用程式位於網路堆疊的頂層,可阻止網路活動、將網路依其設定的允許流量資料庫分類,還可以允許或拒絕存取嘗試。

個人防火牆的最大優勢在於:它能夠根據每台獨立電腦的流量形式專門作出調整。但另一方面,由於軟體防火牆也是一種應用程式,它也可能具有更易被存取和干擾的弱點,無論上述行為是偶然的還是惡意的。

儘管如此,個人防火牆可為舊伺服器與用戶端增加額外的安全性層級,並且提供舊系統缺少的重要功能,例如,限制指定主機特定連接埠中的流量之功能,以及降低因所需服務引發攻擊風險之功能。視防火牆是否連接網路堆疊而定,防火牆可在惡意流量到達作業系統或監聽應用程式中的弱點之前,將惡意流量封鎖。

個人防火牆也有助於限制特洛伊木馬程式、病毒及蠕蟲造成的損壞。上述惡意軟體通常會起始輸出流量,並會「聆聽」連接埠以進行非法連線。這個流量有多種目的,包括轉送垃圾郵件 (內部及外部訊息系統),以及掃描其他主機與網路以尋找弱點與缺口等,造成磁碟空間、處理器循環、記憶體及網路頻寬的浪費。上述應用程式及其初始連線除造成感染和清除問題以外,通常還會導致拒絕服務 (DoS) 期限。

除增強輸入與輸出篩選能力以外,許多個人防火牆還可以根據執行檔的要求允許或拒絕網路存取。無論使用哪種連接埠或通訊協定,這項功能都可用於封鎖特定應用程式 (或僅允許預先核准的應用程式) 對網路的存取。如此一來可防止使用者透過通訊協定靈活的應用程式來規避安全性設定,如透過對等檔案共用、立即訊息或其他透過超文字傳輸通訊協定 (HTTP) 嘗試連線的應用程式。

由於每次交易都要逐字細察,至少要一直到交易已適當分到允許還是拒絕類別中,所以可能需要一些時間才能正確安裝和設定個人防火牆。任何一項交易遭到封鎖,都有可能很微妙的影響到所需程式的執行,因此個人防火牆需要掌握由授權應用程式和服務產生的每一位元網路流量的詳細資料。個人防火牆還需要定期維護、修補及更新。請尋找功能適用於企業的個人防火牆,如具有集中式管理及維護設定資料庫功能的防火牆。

與 ISA 伺服器配合使用的 ISA 防火牆用戶端,可以提供更為復雜的篩選及增強原則功能;可讓您根據使用者身份以及流量的來源或目的地控制流量。所有流量可在提供策略的伺服器中進行監控,整個企業內的政策也易於快速更新。

對於 Windows NT,您還可以選擇下載路由及遠端存取服務 (RRAS)。儘管 RRAS 主要對動態路由通訊協定 (如路由資訊通訊協定、撥號及虛擬私人網路功能) 提供支援,對超過 Windows NT 內建基本連接埠篩選的傳入網路流量,它還提供定義存取控制的功能。RRAS 可以在<路由與遠端存取服務下載>頁面取得:http://www.microsoft.com/ntserver/nts/downloads
/winfeatures/rras/rrasdown.asp

使用 RRAS 或任何附加解決方案有一項重大缺點。附加解決方案為軟體子系統,會作為 Windows 服務執行,因而會在啟用網路介面及通訊協定後啟動。如此一來,會在重新啟動或服務中止時,為惡意流量提供可乘之機。在未提供其他形式/層級保護措施的情況下,使用個人防火牆、ISA 伺服器防火牆用戶端或 RRAS,並不能保証網路絕對安全。如前所述,用於彌補和抵消各層級之弱點的多層防禦措施,才能提供最佳保護效果。

Trey Research 已在其部分系統中使用網際網路連線防火牆 (ICF,Windows XP 的一部分)。Trey 已為其執行 Windows 98 與 Windows NT Workstation 4.0 的電腦購買了協力廠商個人防火牆產品的授權,並已完成安裝。上述操作將為公司整合網路中的內部流量提供輸入/輸出篩選功能,還可以提供集中資料收集功能,以便 Trey 監控網路流量的類型與容量。

Windows NT 連接埠與封包篩選器

保護網路電腦的最佳方法是限制電腦接收和處理的網路流量之類型,這通常要用到某種類型的封包篩選器。多數系統管理員在設計封包篩選策略時,會考慮用到路由器與網路關卡 (Chokepoint)。然而 Windows NT 已隨附基本封包篩選功能 (稱為 TCP/IP 安全性), 儘管這項功能本身並不能提供足夠保護,但只要與狀態良好的封包篩選裝置配合使用,即能提供極佳的第二層防禦能力。

Windows NT 內建 TCP/IP 安全性功能的主要優點是,它能夠作為通訊協定驅動程式的完整部分在 TCP/IP 網路堆疊中執行。這種深度整合的益處在於,只要受保護的介面一啟用,所有設定會永遠啟用,避免在無法篩選網路流量時 (如啟動時) 產生空窗期。即使 TCP/IP 安全性可干擾某些個人防火牆軟體,但它對應用程式而言是完全透明的。

TCP/IP 安全性 (無論使用哪種名稱) 允許使用 TCP 的連接埠與連接埠篩選、使用者資料包通訊協定 (UDP) 以及其他 IP 通訊協定。現用篩選器會封鎖輸入的流量,但會允許輸出的流量以及對本機主機起始的 TCP 連線作出的回應。但有以下限制條件:

  • 連接埠篩選器必須允許或封鎖來自所有主機的流量。您無法建立任何更高層級的細部控制,雖然使用 Windows 2000、Windows XP 及 Microsoft Windows Server™ 2003 內建的 IP 安全性 (IPsec) 擴充功能可實現這個目的。

  • 篩選器並不能真的進行狀態檢視,且無法進行動態連結以允許次要連線的流量通過。在更新版本的 Windows 中執行 IPsec 將提供允許次要連線流量通過的特性,這個特性與大多數硬體防火牆相似。

除上述簡單連接埠篩選功能以外,Windows NT TCP/IP 堆疊還提供許多可調參數,以特定用於斷絕或減少帶來威脅的網路流量。隨著利用 Windows NT 4.0 TCP/IP 網路程式碼中弱點的施以攻擊的各種手段不斷發展,即便 service pack 與安全更新中已提到這些弱點,仍值得對可調參數進行變更,以為網路提供更佳保護。參數調整通常需要透過 regedit32regedit 工具直接編輯登錄。Microsoft 知識庫文件編號 120642<Windows 2000 或 Windows NT 的 TCP/IP 及 NBT 設定參數>(英文) (http://support.microsoft.com/?kbid=120642) 提供了一長串可調整參數,與網路及系統安全最相關的參數將在以下部分中說明。

Trey Research 已在其舊主機上定義連接埠與封包篩選,以限制 Microsoft 知識庫文件編號 150543<Windows NT、終端機伺服器和 Microsoft Exchange 服務使用 TCP/IP 連接埠>(http://support.microsoft.com/?kbid=150543) 中所列連接埠以外的流量,或限制其網路中其他應用程式所用連接埠的流量,以防流量從內部網路輸出到網際網路中。如此一來,可防止敏感網路流量傳送到不受控制的網路中。

SYN 要求 (SYN Flooding) 攻擊保護

SYN (同步化) 要求是攻擊 TCP 服務的常見方式。TCP 用戶端起始新的連線時,會將帶有 SYN 旗標集的空 TCP 封包傳送至接聽伺服器,表示要求進行新的連線。伺服器會傳回帶有 SYN 和 ACK (確認) 旗標的回應封包。然後,用戶端會以 ACK 封包回應,從而完成三向信號交換操作,連線隨即開啟。

收到最終確認之前,TCP/IP 驅動程式會將這個連線指定為 SYN_RCVD (收到 SYN) 狀態。如果 Windows 因故未收到對 SYN+ACK 封包的回應,預設為會等待一秒鐘,然後重新傳送 SYN+ACK 封包。三秒逾時過後,會再一次重新傳送。最後一次六秒逾時過後,會執行最後一次重新傳送。每次連線均要求伺服器配置特定記憶體容量及其他核心結構,一波大量的輸入要求可能會迅速耗盡資源,並導致 DoS。可用登錄機碼如下所示:

HKLM\SYSTEM\CurrentControlSet\Services\
Tcpip\Parameters\SynAttackProtect (REG_DWORD):

  • 0 = 停用 (預設值)

  • 1 = 延遲建立路由快取項目,直到連線建立

  • 2 = 延遲通知 Winsock 驅動程式,直到完成三向信號交換操作 (建議使用)

HKLM\SYSTEM\CurrentControlSet\Services\
Tcpip\Parameters\TcpMaxHalfOpen (REG_DWORD):

  • 這個機碼會定義在觸發 SynAttack 狀態之前,允許 IP 堆疊處於 SYN_RCVD 狀態的最大連線次數。預設值為 100

HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\
Parameters\TCPMaxHalfOpenRetried (REG_DWORD):

  • 這個機碼會定義在觸發 SynAttack 狀態之前,處於 SYN_RCVD 狀態並已執行一次以上重新傳送操作的最大連線次數。預設值為 80

HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\
Parameters\TCPMaxPortsExhausted (REG_DWORD):

  • 這個機碼會定義在觸發 SynAttack 狀態之前,因未取得積存而導致連線請求遭拒的次數。預設值為 5

HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
TCPMaxConnectResponseRetransmissions (REG_DWORD):

  • 這個機碼會定義在 SYN_RCDV 狀態下嘗試重新傳送的次數。預設值設為 3 會導致重新傳送三次。將該值設為 1 將僅導致重新傳送一次。

Microsoft 知識庫文件編號 146241<惡意 SYN 攻擊導致網際網路伺服器無法使用>(英文) (http://support.microsoft.com/?kbid=142641) 中可以找到有關設定的詳細說明。

在舊主機中,Trey Research 已加強限制之前所述所有登錄機碼的設定,從而降低了 SYN 攻擊對舊系統造成負面影響的可能性。Trey Research 並未使用限制最嚴格的設定,因為正常 SYN 傳輸需要通過網路,且 Trey 不希望干擾正常網路傳輸。Trey 的系統管理員瞭解對預設值所作的變更需要重新檢查,並會主動監視其網路中 SYN 的傳輸量。

積存大小控制

利用 TCP/IP 的應用程式會使用 Winsock 應用程式設計介面 (API),這個介面由 Winsock 的核心模式驅動程式 afd.sys 提供。Winsock API 將為應用程式提供機制,以便其開啟用戶端連線,並在用於伺服器連接的連接埠上建立接聽服務。listen() 功能用於提示 Winsock 聆聽特定連接埠的連線嘗試,並將其轉送至應用程式。

這項功能必須指定的一個參數為積存大小,也就是可以保留擱置的傳入連線直到堆疊可以進行處理的佇列。積存會提供最大佇列長度,在 Windows NT Server 中預設為 200,在 Windows NT Workstation 中預設為 5。Windows NT 4.0 Service Pack 2 (SP2) 採用了動態積存功能,允許 TCP/IP 堆疊根據需要調整積存佇列的大小,以回應目前的網路狀況。

根據預設會關閉調整積存佇列大小的功能,需要透過下列登錄項目才能啟用。此外,呼叫應用程式要求的積存佇列必須大於 MinimumDynamicBacklog 參數,才能應用這項功能。可用登錄機碼如下所示:

HKLM\SYSTEM\CurrentControlSet\Services\AFD\
Parameters\EnableDynamicBacklog (REG_DWORD):

  • 0 = 停用 (預設值)

  • 1 = 啟用 (建議使用)

HKLM\SYSTEM\CurrentControlSet\Services\
AFD\Parameters\MinimumDynamicBacklog (REG_DWORD):

  • 這個機碼會定義積存佇列中的最小項目數量;如果可用項目的數量小於這個最小值,則需要建立更多項目。建議值為 20

HKLM\SYSTEM\CurrentControlSet\Services\
AFD\Parameters\MaximumDynamicBacklog (REG_DWORD):

  • 這個機碼會定義能在積存佇列中建立的最大項目數量。在每 32 MB 系統隨機存取記憶體 (RAM) 中,如果將這個數量設為高於 5,000,則會導致遭到攻擊時耗盡記憶體。請記住,每個網路服務都會建立獨立積存佇列。由於 Trey Research 的目標伺服器會佔用 512 MB 的系統 RAM,因此用來計算這個登錄值上限的公式為:

  • (512/32)*5000=144000。

  • 對於工作站 (總共佔用 256 MB RAM),其計算值為 (256/32)*5000 = 72000。

HKLM\SYSTEM\CurrentControlSet\Services\AFD\
Parameters\DynamicBacklogGrowth-Delta (REG_DWORD):

  • 這個機碼會定義要求多個連線時,每次可新增至 Backlog 的新連線數量。建議值為 10

Microsoft 知識庫文件編號 146241<惡意 SYN 攻擊導致網際網路伺服器無法使用>(英文) (http://support.microsoft.com/?kbid=142641) 中可以找到有關設定的詳細說明。

Trey Research 選擇為之前列出的所有登錄機碼設定建議值,以控制輸入連線的數量,從而防止輸入的要求造成公司系統壅塞。

TCP 持續作用計時器

TCP 持續作用計時器是一種先進的 TCP 功能,可使閒置連線保持作用中。當連線經過防火牆與網路位址轉譯 (NAT) 裝置時,尤其需要使用這項功能,這項功能會定期清除各連線與偽裝表中的過期項目。

Windows NT 提供了啟用與定義 TCP 持續作用逾時的功能。將這個值設低,有助於防止失效連線使用資源的時間過長。要設定這個值,請使用下列登錄機碼:

HKLM\SYSTEM\CurrentControlSet\Services\
Tcpip\Parameters\KeepAliveTime (REG_DWORD):

  • 這個機碼可定義兩次持續作用檢查之間的毫秒數;其預設值為 7,200,000 (兩小時)。

HKLM\SYSTEM\CurrentControlSet\Services\
Tcpip\Parameters\KeepAliveInterval (REG_DWORD):

  • 這個機碼會定義未收到回應時,兩次持續作用重新傳送封包之間的毫秒數;其預設值為 1000 (一秒)。

Trey Research 並未改變其 TCP 持續作用計時器的設定,因為迄今為止,還沒有遇到任何與連線作用時間長度有關的問題。

路徑最大傳輸單位探索

路徑最大傳輸單位 (MTU) 探索功能可讓 Windows 自動探索主機間所有網路區段支援的最大封包大小。這項功能將傳送具有「不分段」單位元定址的大容量封包。如果由於這個封包大於區段的 MTU,而造成中間路由器無法轉送封包,路由器會傳回一則網際網路控制訊息通訊協定 (ICMP) 訊息。然後 Windows 會降低封包大小,並再次嘗試傳送,直到封包成功傳送至目的地。

透過為遠端主機設定適當的 MTU,Windows 可以避免產生封包片段,避免降低效能或資料遺失及重新傳送的可能。分散的封包也存在安全性風險;片段封包處理常式是一種緩衝區溢位的資源,它具有在邊界篩選封包片段的功能,能降低受到攻擊的風險。路徑 MTU 探索應保持啟用,但需要透過防火牆路由 ICMP 第 3 類程式碼 4。要設定該值,請使用下列登錄機碼:

HKLM\SYSTEM\CurrentControlSet\Services\
Tcpip\Parameters\EnablePathMTUDiscovery (REG_DWORD):

  • 1 = 啟用 (預設值,建議使用)

  • 0 = 停用

對於設定的本機子網路以外的所有傳輸,數值 0 會將 MTU 的大小設為 576 位元組。此外,如果使用這個設定,Windows 將不允許要求變更 MTU。

HKLM\SYSTEM\CurrentControlSet\Services\
Tcpip\Parameters\EnablePathMTUBHDetect (REG_DWORD):

  • 0 = 停用 (預設值)

  • 1 = 啟用

數值 1 可讓 Windows 在路徑 MTU 探索過程中嘗試偵測黑洞路由器;如果封包過大,黑洞路由器會丟棄帶有「不分段」旗標集的封包而不加以通知,也不會傳送正確的 ICMP 回覆。啟用該值將導致更多的重新傳送嘗試。

Trey Research 並未改變路徑 MTU 探索的預設值,停用這項功能可能導致某些遠端系統無法連線。Trey Research 不希望在通訊路徑中的系統無法支援降低 MTU 大小時中斷商業交易。

來源路由

來源路由可讓應用程式覆寫路由表,並為輸出資料包指定一個或多個中間目的地。儘管這項功能對疑難排解有一些幫助,但請勿在生產網路中使用這項功能。成功攻擊者可利用這項功能直接將所有網路流量傳送到集中收集點以擷取封包。使用下列登錄機碼停用來源路由;另外,請確定已使用來源路由選項組,將邊界路由器設為停用所有 IP 資料包:

HKLM\SYSTEM\CurrentControlSet\Services\
Tcpip\Parameters\DisableIPSourceRouting (REG_DWORD):

  • 0 = 啟用 (預設值)

  • 1 = 在啟用 IP 轉送時停用

  • 2 = 完全停用 (建議使用)

Trey Research 已停用其控制範圍內所有主機上的來源路由,以防攻擊者擷取網路資料。

失效閘道偵測

失效閘道偵測可讓 Windows 偵測何時預設閘道停止回應並失敗替換到額外設定的預設閘道。實際上,這項功能很少使用,從而給 DoS 攻擊提供可乘之機。使用下列登錄機碼控制這項功能:

HKLM\SYSTEM\CurrentControlSet\Services\
Tcpip\Parameters\EnableDeadGWDetect (REG_DWORD):

  • 0 = 停用 (建議使用)

  • 1 = 啟用 (預設值)

Trey Research 已在所有主機上啟用失效閘道偵測功能,幫助降低網路遭到 DoS 攻擊的可能性。

路由器探索

路由器探索會使用 ICMP 路由器探索訊息,找出並設定預設路由與閘道。同樣,攻擊者可利用這項功能重新導向網路流量,以達到包括竊聽與攔截式攻擊在內的各種目的。支援這項功能的路由器必須要傳送 ICMP 網際網路路由器探索通訊協定 (IRDP) 訊息,而這項功能本來應該停用。此外,還必須使用適當選項設定動態主機設定通訊協定 (DHCP),介面才能接受 IRDP 訊息。

您應該編輯下列登錄機碼,以防惡意設定變更;如果需要使用多個路由功能,請考慮部署 RRAS 附加程式,並使用安全的路由通訊協定。

HKLM\SYSTEM\CurrentControlSet\Services\
Tcpip\Parameters\PerformRouterDiscovery (REG_DWORD):

  • 0 = 停用 (建議使用)

  • 1 = 啟用

Trey Research 已在所有主機上停用路由器探索,以防他人未經授權變更其網路設定。

ICMP 重新導向

ICMP 重新導向是另一項潛在弱點,該弱點會允許任意傳送者偽造封包,並改變受害者的路由表。這項功能預設為啟用,請使用下列機碼停用該功能,以防遭到惡意攻擊:

HKLM\SYSTEM\CurrentControlSet\Services\
Tcpip\Parameters\EnableICMPRedirect (REG_DWORD):

  • 0 = 停用 (建議使用)

  • 1 = 啟用 (預設值)

Trey Research 已在所有主機上停用 ICMP 重新導向功能,為各主機中的路由表提供保護。

RPC 連接埠關閉

許多服務已預設為在網路介面 (包括本機回送介面) 上接聽。例如,Microsoft 遠端程序呼叫 (RPC) 連接埠對應程式會在 TCP/135、UDP/135、TCP/1027 及 TCP/1028 上接聽。RPC 用戶端、RPC 伺服器及 RPC 終端對應程式這三種服務可設定為將所有已開啟的連接埠關閉。但必須對所作變更仔細進行測試,不僅要在遠端主機上測試,還要在本機服務之間進行測試,以防變更影響功能的正常操作。

Microsoft Exchange 與 Microsoft SQL Server™ 是需要用到 RPC 的兩種最常部署的應用程式。此外,在伺服器遠端管理過程中會用到 RPC 呼叫。依存 RPC 服務的常見內建公用程式有:

  • DHCP 管理員

  • DNS 系統管理員

  • WINS 管理員

  • 效能監視器

  • 事件檢視器

  • 登錄編輯程式

  • 伺服器管理員

  • 使用者管理員

若要確定某個應用程式是否使用 RPC,請使用 Windows NT 4.0 CD 安裝網路監視工具及代理程式,然後評估應用程式是否在之前指定的連接埠上使用 RPC。

移除下列登錄機碼,停用 RPC 用戶端:

HKLM\SOFTWARE\Microsoft\RPC\ClientProtocols\ncacn_ip_tcp

HKLM\SOFTWARE\Microsoft\RPC\ClientProtocols\ncacn_ip_udp

移除下列登錄機碼,停用 RPC 伺服器:

HKLM\SOFTWARE\Microsoft\RPC\ServerProtocols\ncacn_ip_tcp

HKLM\SOFTWARE\Microsoft\RPC\ServerProtocols\ncacn_ip_udp

如果啟用 RPC 伺服器,RPC 終端對應程式 (rpcss.exe) 會開啟多個連接埠,但也可以將其設定為拒絕非本機分散式元件物件模型 (DCOM) 連線嘗試。請注意上述操作會嚴重影響您對系統的遠端管理能力;第 4 章<強化 Microsoft Windows NT 4.0>中所述的目錄服務用戶端擴充功能會受到一定程度的影響,因為它對 Windows Management Instrumentation (WMI) 提供者的弱點程度很高,而該提供者也同樣是 DCOM 物件。使用下列登錄機碼可停用非本機 DCOM 連線:

HKLM\SOFTWARE\Microsoft\OLE\EnableDCOM (REG_SZ):

  • 將其值設為 N 可以停用遠端 DCOM 連線。

Trey Research 並未改變其內部主機上的 RPC 連接埠設定,因為需要將這些連接埠保持在作用中,才能使用各種網路服務。關閉 RPC 主機將導致使用者無法存取某些應用程式。

實作

必要條件

為了使這些實作細節能夠正常運作,您必須如第 2 章<Trey Research 安全性風險管理法則應用案例>所述,實作基本的 Trey Research 基礎結構。

概觀

實作這個解決方案案例需要執行以下作業:

  • 設定原生 Windows NT 4.0 連接埠篩選。

  • 設定 Windows NT 4.0 IP 可調參數。

多數這些設定的登錄檔案可在本指南隨附的工具及範本中找到。

設定原生 Windows NT 4.0 連接埠篩選

在 Windows NT 伺服器中啟用 TCP/IP 連接埠篩選之前,您必須完全瞭解對於指定角色的伺服器來說,其適當的操作需要使用哪種傳輸。Microsoft 提供了 Windows NT 4.0 最常用連接埠的基本清單,可以從<MS TCP/IP 連接埠參照>(英文) 中取得,網址為:http://www.microsoft.com/technet/prodtechnol
/winntas/support/port_nts.mspx

其他應用程式應有自己的可用文件。對於 Windows Server 系統,請參閱 Microsoft 知識庫文件編號 832017<Microsoft Windows Server 系統連接埠需求>(英文),網址為:http://support.microsoft.com/?kbid=832017。關於未在上述清單中列出的其他應用程式,請參閱應用程式廠商的文件,或使用 Netmon.exe (為 Windows NT 4.0 隨附元件)、Netstat (內建 Windows NT 公用程式,可顯示目前使用的連接埠) 或 TCPView (可從 Sysinternals 網站 www.sysinternals.com 取得的免費工具) 等網路流量監視工具確認應用程式所用的連接埠。

設定 Windows NT 連接埠篩選器的程序很簡單,只需執行下列程序。

設定原生 Windows NT 連接埠篩選

  1. 若要開啟 [控制台] 中的 [網路],請按一下 [開始]、[設定]、[控制台],然後按兩下 [網路]。

  2. 在 [通訊協定] 索引標籤中,選擇 [TCP/IP 通訊協定],然後按一下[內容]。

  3. 在 [IP 位址] 索引標籤中,按一下 [進階]。

  4. 在 [進階 IP 位址] 對話方塊中,選取 [啟用安全性] 核取方塊。

  5. 按一下 [設定]。

  6. 在 [TCP/IP 安全性] 對話方塊中,選擇相關介面卡 (如果伺服器有多重主目錄)。

  7. 根據預設值,不會定義任何篩選器,且允許所有 TCP、UDP 及 IP 流量 (請參閱圖 3.1)。若要啟用篩選器,請在 TCP、UDP 或 IP 通訊協定上選取 [只允許] 核取方塊,然後新增允許流量通過的連接埠與通訊協定編號。請務必允許基本基礎結構服務。

    nt980301.gif

    圖 3.1 設定原生 Windows NT 連接埠篩選

設定 Windows NT 4.0 IP 可調參數

設定 Windows NT IP 可調參數即為編輯下列登錄參數。

注意:一旦變更用於調整 TCP/IP 堆疊的參數,即會變更網路子系統與路由器、交換器及網路中其他電腦進行通訊的方式。上述變更可能會影響產品應用程式的效能或穩定性。對產品環境進行任何變更之前,請務必在具有相同產品伺服器和用戶端行為與設定的實驗環境中,徹底測試要執行的變更。

為伺服器設定 Windows NT IP 可調參數

  1. 執行登錄編輯程式 (Regedt32.exe)。

  2. 確定已對 HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 機碼套用下列登錄項目 (TCP_Params.reg):

    • SynAttackProtect (REG_DWORD) = 2

    • TcpMaxHalfOpen (REG_DWORD) = 100

    • TCPMaxHalfOpenRetried (REG_DWORD) = 80

    • TCPMaxPortsExhausted (REG_DWORD) = 5

    • TCPMaxConnectResponseRetransmissions (REG_DWORD) = 1

    • KeepAliveTime (REG_DWORD) = 7200000

    • KeepAliveInterval (REG_DWORD) = 1000

    • EnablePathMTUDiscovery (REG_DWORD) = 1

    • EnablePathMTUBHDetect (REG_DWORD) = 0

    • DisableIPSourceRouting (REG_DWORD) = 2

    • EnableDeadGWDetect (REG_DWORD) = 0

    • PerformRouterDiscovery (REG_DWORD) = 0

    • EnableICMPRedirect (REG_DWORD) = 0

  3. 確定已對 HKLM\SYSTEM\CurrentControlSet\Services\AFD\Parameters 機碼套用下列登錄項目 (AFD_Params.reg):

    • EnableDynamicBacklog (REG_DWORD) = 1

    • MinimumDynamicBacklog (REG_DWORD) = 20

    • MaximumDynamicBacklog (REG_DWORD) = 144000

    • DynamicBacklogGrowth-Delta (REG_DWORD) = 10

  4. 確定已對 HKLM\SOFTWARE\Microsoft\OLE 機碼套用下列登錄項目 (DisableDCOM.reg):

    • EnableDCOM (REG_SZ) = N

      注意:停用 DCOM 將會停用部分基本遠端管理功能以及其他應用程式,如「目錄服務」用戶端擴充功能、WMI、遠端管理列印與檔案共用等功能。將這個變更套用至產品伺服器之前,請在實驗環境中仔細測試該變更。

  5. 如果確定未使用任何 RPC 服務、應用程式或公用程式,請刪除下列子機碼:

    • HKLM\SOFTWARE\Microsoft\RPC\ClientProtocols\ncacn_ip_tcp

    • HKLM\SOFTWARE\Microsoft\RPC\ClientProtocols\ncacn_ip_udp

    • HKLM\SOFTWARE\Microsoft\RPC\ServerProtocols\ncacn_ip_tcp

    • HKLM\SOFTWARE\Microsoft\RPC\ServerProtocols\ncacn_ip_udp

  6. 結束登錄編輯程式。

為工作站設定 Windows NT IP 可調參數

  1. 執行登錄編輯程式 (Regedt32.exe)。

  2. 確定已對 HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 機碼套用下列登錄項目 (NT4WS_TCP_Params.reg):

    • SynAttackProtect (REG_DWORD) = 2

    • TcpMaxHalfOpen (REG_DWORD) = 100

    • TCPMaxHalfOpenRetried (REG_DWORD) = 80

    • TCPMaxPortsExhausted (REG_DWORD) = 5

    • TCPMaxConnectResponseRetransmissions (REG_DWORD) = 1

    • KeepAliveTime (REG_DWORD) = 3600000

    • KeepAliveInterval (REG_DWORD) = 1000

    • EnablePathMTUDiscovery (REG_DWORD) = 1

    • EnablePathMTUBHDetect (REG_DWORD) = 0

    • DisableIPSourceRouting (REG_DWORD) = 2

    • EnableDeadGWDetect (REG_DWORD) = 0

    • PerformRouterDiscovery (REG_DWORD) = 0

    • EnableICMPRedirect (REG_DWORD) = 0

  3. 確定已對 HKLM\SYSTEM\CurrentControlSet\Services\AFD\Parameters 機碼套用下列登錄項目 (NT4WS_AFD_Params.reg):

    • EnableDynamicBacklog (REG_DWORD) = 1

    • MinimumDynamicBacklog (REG_DWORD) = 20

    • MaximumDynamicBacklog (REG_DWORD) = 72000

    • DynamicBacklogGrowth-Delta (REG_DWORD) = 10

  4. 結束登錄編輯程式。


總結

延伸周邊網路的概念是一種保護舊系統安全的有效方法,它可為整個網路的總體設計與設定提供額外保護。個人防火牆軟體、Windows NT 4.0 原生連接埠篩選、Windows NT 4.0 IP 調節功能提供的流量控制與這些自然關卡相結合,可以為您提供多層保護,幫助本指南後續章節中說明的特定強化指示。

其他資訊

  • NTBUGTRAQ 郵件清單是討論目前的 Windows 安全性問題的有用資源。清單管理人 Russ Cooper 並不屬於 Microsoft,但對於系統安全相當專精。要訂閱清單或閱讀封存檔案,請瀏覽 www.ntbugtraq.com/。

  • CERT Coordination Center (CERT/CC) 是提供安全性諮詢與公告的中央交換中心。如需更多資訊,請瀏覽 www.cert.org/。

  • SANS Institute 主要提供有關電腦安全性問題的各種培訓、認證及研究成果。如需更多資訊,請瀏覽 www.sans.org/。

  • US Computer Emergency Readiness Team (US-CERT) 主要為美國提供電腦安全性諮詢與弱點預警,是獲得目前弱點資訊的理想管道。如需更多資訊,請瀏覽
    www.us-cert.gov/。

  • National Security Agency 提供有關多個作業系統與應用程式的各種安全性設定指南,請瀏覽 www.nsa.gov/snac/。

  • 適用於 Windows NT 4.0 的 RRAS 可以在<路由與遠端存取服務下載>(英文) 找到:http://www.microsoft.com/ntserver/nts/downloads
    /winfeatures/rras/rrasdown.asp


顯示: