1.初級篇:NT/2000系統(tǒng)本身的定制安裝與相關(guān)設(shè)置
用NT(2000)建立的WEB站點在所有的網(wǎng)站中占了很大一部分比例,主要因為其易用性與易管理性,使該公司不必再投入大量的金錢在服務器的管理上,這一點優(yōu)于nix系統(tǒng),不必請很專業(yè)的管理員,不必支付一份可以節(jié)省的高薪,呵呵,當然nix的管理員也不會失業(yè),因為其開放源碼和windows系統(tǒng)無與倫比的速度,使得現(xiàn)在幾乎所有的大型服務器全部采用nix系統(tǒng)。但對于中小型企業(yè)來說windows已經(jīng)足夠,但NT的安全問題也一直比較突出,使得一些每個基于NT的網(wǎng)站都有一種如履薄冰的感覺,在此我給出一份安全解決方案,算是為中國的網(wǎng)絡安全事業(yè)做出一份貢獻吧 (說明:本方案主要是針對建立Web站點的NT、2000服務器安全,對于局域網(wǎng)內(nèi)的服務器并不合適。)
一、 定制自己的NT/2000 SERVER
1.版本的選擇:
WIN2000有各種語言的版本,對于我們來說,可以選擇英文版或簡體中文版,我強烈建議:在語言不成為障礙的情況下,請一定使用英文版。要知道,微軟的產(chǎn)品是以Bug &Patch而著稱的,中文版的Bug遠遠多于英文版,而補丁一般還會遲至少半個月(也就是說一般微軟公布了漏洞后你的機子還會有半個月處于無保護狀況)
2.組件的定制:
win2000在默認情況下會安裝一些常用的組件,但是正是這個默認安裝是極度危險的你應該確切的知道你需要哪些服務,而且僅僅安裝你確實需要的服務,根據(jù)安全原則,最少的服務+最小的權(quán)限=最大的安全。典型的WEB服務器需要的最小組件選擇是:只安裝IIS的Com Files,IIS Snap-In,WWW Server組件。如果你確實需要安裝其他組件,請慎重,特別是:Indexing Service, FrontPage 2000 Server Extensions, Internet Service Manager (HTML)這幾個危險服務。
二、 正確安裝NT/2000 SERVER
不論是NT還是2000,硬盤分區(qū)均為NTFS分區(qū);
說明:
(1) NTFS比FAT分區(qū)多了安全控制功能,可以對不同的文件夾設(shè)置不同的訪問權(quán)限,安全性增強。
(2) 建議最好一次性全部安裝成NTFS分區(qū),而不要先安裝成FAT分區(qū)再轉(zhuǎn)化為NTFS分區(qū),這樣做在安裝了SP5和SP6的情況下會導致轉(zhuǎn)化不成功,甚至系統(tǒng)崩潰。
(3) 安裝NTFS分區(qū)有一個潛在的危險,就是目前大多數(shù)反病毒軟件沒有提供對軟盤啟動后NTFS分區(qū)病毒的查殺,這樣一旦系統(tǒng)中了惡性病毒而導致系統(tǒng)不能正常啟動,后果就比較嚴重,因此及建議平時做好防病毒工作。
?。?)分區(qū)和邏輯盤的分配
有一些朋友為了省事,將硬盤僅僅分為一個邏輯盤,所有的軟件都裝在C驅(qū)上,這是很不好的,建議最少建立兩個分區(qū),一個系統(tǒng)分區(qū),一個應用程序分區(qū),這是因為,微軟的IIS經(jīng)常會有泄漏源碼/溢出的漏洞,如果把系統(tǒng)和IIS放在同一個驅(qū)動器會導致系統(tǒng)文件的泄漏甚至入侵者遠程獲取ADMIN。推薦的安全配置是建立三個邏輯驅(qū)動器,第一個大于2G,用來裝系統(tǒng)和重要的日志文件,第二個放IIS,第三個放FTP,這樣無論IIS或FTP出了安全漏洞都不會直接影響到系統(tǒng)目錄和系統(tǒng)文件。要知道,IIS和FTP是對外服務的,比較容易出問題。而把IIS和FTP分開主要是為了防止入侵者上傳程序并從IIS中運行。
?。?)安裝順序的選擇:
win2000在安裝中有幾個順序是一定要注意的: 首先,何時接入網(wǎng)絡:Win2000在安裝時有一個漏洞,在你輸入Administrator密碼后,系統(tǒng)就建立了ADMIN$的共享,但是并沒有用你剛剛輸入的密碼來保護它,這種情況一直持續(xù)到你再次啟動后,在此期間,任何人都可以通過ADMIN$進入你的機器;同時,只要安裝一完成,各種服務就會自動運行,而這時的服務器是滿身漏洞,非常容易進入的,因此,在完全安裝并配置好win2000 SERVER之前,一定不要把主機接入網(wǎng)絡。 其次,補丁的安裝:補丁的安裝應該在所有應用程序安裝完之后,因為補丁程序往往要替換/修改某些系統(tǒng)文件,如果先安裝補丁再安裝應用程序有可能導致補丁不能起到應有的效果,例如:IIS的HotFix就要求每次更改IIS的配置都需要安裝
三、 安全配置NT/2000 SERVER
即使正確的安裝了WIN2000 SERVER,系統(tǒng)還是有很多的漏洞,還需要進一步進行細致地配置。
1.端口:
端口是計算機和外部網(wǎng)絡相連的邏輯接口,也是計算機的第一道屏障,端口配置正確與否直接影響到主機的安全,一般來說,僅打開你需要使用的端口會比較安全,配置的方法是在網(wǎng)卡屬性-TCP/IP-高級-選項-TCP/IP篩選中啟用TCP/IP篩選,不過對于win2000的端口過濾來說,有一個不好的特性:只能規(guī)定開哪些端口,不能規(guī)定關(guān)閉哪些端口,這樣對于需要開大量端口的用戶就比較痛苦。
2.IIS:
IIS是微軟的組件中漏洞最多的一個,平均兩三個月就要出一個漏洞,而微軟的IIS默認安裝又實在不敢恭維,所以IIS的配置是我們的重點,現(xiàn)在大家跟著我一起來:首先,把C盤那個什么Inetpub目錄徹底刪掉,在D盤建一個Inetpub(要是你不放心用默認目錄名也可以改一個名字,但是自己要記得)在IIS管理器中將主目錄指向D:\Inetpub;其次,那個IIS安裝時默認的什么scripts等虛擬目錄一概刪除,如果你需要什么權(quán)限的目錄可以自己慢慢建,需要什么權(quán)限開什么。(特別注意寫權(quán)限和執(zhí)行程序的權(quán)限,沒有絕對的必要千萬不要給)第三,應用程序配置:在IIS管理器中刪除必須之外的任何無用映射,必須指的是ASP,ASA和其他你確實需要用到的文件類型,例如你用到stml等(使用server side include),實際上90%的主機有了上面兩個映射就夠了,其余的映射幾乎每個都有一個凄慘的故事:htw, htr, idq, ida……想知道這些故事?去查以前的漏洞列表吧。在IIS管理器中右擊主機->屬性->WWW服務 編輯->主目錄配置->應用程序映射,然后就開始一個個刪吧(里面沒有全選的,嘿嘿)。接著在剛剛那個窗口的應用程序調(diào)試書簽內(nèi)將腳本錯誤消息改為發(fā)送文本(除非你想ASP出錯的時候用戶知道你的程序/網(wǎng)絡/數(shù)據(jù)庫結(jié)構(gòu))錯誤文本寫什么?隨便你喜歡,自己看著辦。點擊確定退出時別忘了讓虛擬站點繼承你設(shè)定的屬性。安裝新的Service Pack后,IIS的應用程序映射應重新設(shè)置。(說明:安裝新的Service Pack后,某些應用程序映射又會出現(xiàn),導致出現(xiàn)安全漏洞。這是管理員較易忽視的一點。)
為了對付日益增多的cgi漏洞掃描器,還有一個小技巧可以參考,在IIS中將HTTP404 Object Not Found出錯頁面通過URL重定向到一個定制HTM文件,可以讓目前絕大多數(shù)CGI漏洞掃描器失靈。其實原因很簡單,大多數(shù)CGI掃描器在編寫時為了方便,都是通過查看返回頁面的HTTP代碼來判斷漏洞是否存在的,例如,著名的IDQ漏洞一般都是通過取1.idq來檢驗,如果返回HTTP200,就認為是有這個漏洞,反之如果返回HTTP404就認為沒有,如果你通過URL將HTTP404出錯信息重定向到HTTP404.htm文件,那么所有的掃描無論存不存在漏洞都會返回HTTP200,90%的CGI掃描器會認為你什么漏洞都有,結(jié)果反而掩蓋了你真正的漏洞,讓入侵者茫然無處下手,不過從個人角度來說,我還是認為扎扎實實做好安全設(shè)置比這樣的小技巧重要的多。
最后,為了保險起見,你可以使用IIS的備份功能,將剛剛的設(shè)定全部備份下來,這樣就可以隨時恢復IIS的安全配置。還有,如果你怕IIS負荷過高導致服務器滿負荷死機,也可以在性能中打開CPU限制,例如將IIS的最大CPU使用率限制在70%。
3.帳號策略:
(1)帳號盡可能少,且盡可能少用來登錄;
說明:網(wǎng)站帳號一般只用來做系統(tǒng)維護,多余的帳號一個也不要,因為多一個帳號就會多一份被攻破的危險。
(2)除過Administrator外,有必要再增加一個屬于管理員組的帳號;
說明:兩個管理員組的帳號,一方面防止管理員一旦忘記一個帳號的口令還
有一個備用帳號;另方面,一旦黑客攻破一個帳號并更改口令,我們還有
有機會重新在短期內(nèi)取得控制權(quán)。
(3)所有帳號權(quán)限需嚴格控制,輕易不要給帳號以特殊權(quán)限;
(4)將Administrator重命名,改為一個不易猜的名字。其他一般帳號也應尊循這一原則。
說明:這樣可以為黑客攻擊增加一層障礙。
(5)將Guest帳號禁用,同時重命名為一個復雜的名字,增加口令,并將它從
Guest組刪掉;
說明:有的黑客工具正是利用了guest 的弱點,可以將帳號從一般用戶提
升到管理員組。
(6)給所有用戶帳號一個復雜的口令(系統(tǒng)帳號出外),長度最少在8位以上, 且必須同時包含字母、數(shù)字、特殊字符。同時不要使用大家熟悉的單詞(如microsoft)、熟悉的鍵盤順序(如qwert)、熟悉的數(shù)字(如2000)等。
說明:口令是黑客攻擊的重點,口令一旦被突破也就無任何系統(tǒng)安全可言了,而這往往是不少網(wǎng)管所忽視的地方,據(jù)我們的測試,僅字母加數(shù)字的5位口令在幾分鐘內(nèi)就會被攻破,而所推薦的方案則要安全的多。
(7)口令必須定期更改(建議至少兩周該一次),且最好記在心里,除此以外不要在任何地方做記錄;另外,如果在日志審核中發(fā)現(xiàn)某個帳號被連續(xù)嘗試,則必須立刻更改此帳號(包括用戶名和口令);
(8)在帳號屬性中設(shè)立鎖定次數(shù),比如改帳號失敗登錄次數(shù)超過5次即鎖定改帳號。這樣可以防止某些大規(guī)模的登錄嘗試,同時也使管理員對該帳號提高警惕。
4.安全日志:
Win2000的默認安裝是不開任何安全審核的!
那么請你到本地安全策略->審核策略中打開相應的審核,推薦的審核是:
賬戶管理 成功 失敗
登錄事件 成功 失敗
對象訪問 失敗
策略更改 成功 失敗
特權(quán)使用 失敗
系統(tǒng)事件 成功 失敗
目錄服務訪問 失敗
賬戶登錄事件 成功 失敗
審核項目少的缺點是萬一你想看發(fā)現(xiàn)沒有記錄那就一點都沒轍;審核項目太多不僅會占用系統(tǒng)資源而且會導致你根本沒空去看,這樣就失去了審核的意義。 與之相關(guān)的是:
在賬戶策略->密碼策略中設(shè)定:
密碼復雜性要求 啟用
密碼長度最小值 6位
強制密碼歷史 5次
最長存留期 30天
在賬戶策略->賬戶鎖定策略中設(shè)定:
賬戶鎖定 3次錯誤登錄
鎖定時間 20分鐘
復位鎖定計數(shù) 20分鐘
同樣,Terminal Service的安全日志默認也是不開的,我們可以在Terminal Service Configration(遠程服務配置)-權(quán)限-高級中配置安全審核,一般來說只要記錄登錄、注銷事件就可以了。
5.目錄和文件權(quán)限:
為了控制好服務器上用戶的權(quán)限,同時也為了預防以后可能的入侵和溢出,我們還必須非常小心地設(shè)置目錄和文件的訪問權(quán)限,NT的訪問權(quán)限分為:讀取、寫入、讀取及執(zhí)行、修改、列目錄、完全控制。在默認的情況下,大多數(shù)的文件夾對所有用戶(Everyone這個組)是完全敞開的(Full Control),你需要根據(jù)應用的需要進行權(quán)限重設(shè)。
在進行權(quán)限控制時,請記住以下幾個原則:
1>限是累計的:如果一個用戶同時屬于兩個組,那么他就有了這兩個組所允許的所有權(quán)限;
2>拒絕的權(quán)限要比允許的權(quán)限高(拒絕策略會先執(zhí)行)如果一個用戶屬于一個被拒絕訪問某個資源的組,那么不管其他的權(quán)限設(shè)置給他開放了多少權(quán)限,他也一定不能訪問這個資源。所以請非常小心地使用拒絕,任何一個不當?shù)木芙^都有可能造成系統(tǒng)無法正常運行;
3>文件權(quán)限比文件夾權(quán)限高
4>利用用戶組來進行權(quán)限控制是一個成熟的系統(tǒng)管理員必須具有的優(yōu)良習慣之一;
5>僅給用戶真正需要的權(quán)限,權(quán)限的最小化原則是安全的重要保障;
6.只安裝一種操作系統(tǒng);
說明:安裝兩種以上操作系統(tǒng),會給黑客以可乘之機,利用攻擊使系統(tǒng)重啟到另外一個沒有安全設(shè)置的操作系統(tǒng)(或者他熟悉的操作系統(tǒng)),進而進行破壞。
7.安裝成獨立的域控制器(Stand Alone),選擇工作組成員,不選擇域;
說明:主域控制器(PDC)是局域網(wǎng)中隊多臺聯(lián)網(wǎng)機器管理的一種方式,用于網(wǎng)站服務器包含著安全隱患,使黑客有可能利用域方式的漏洞攻擊站點服務器。
8.將操作系統(tǒng)文件所在分區(qū)與WEB數(shù)據(jù)包括其他應用程序所在的分區(qū)分開,并在安裝時最好不要使用系統(tǒng)默認的目錄,如將\WINNT改為其他目錄;
說明:黑客有可能通過WEB站點的漏洞得到操作系統(tǒng)對操作系統(tǒng)某些程序的執(zhí)行權(quán)限,從而造成更大的破壞。同時如果采用IIS的話你應該在其設(shè)置中刪除掉所有的無用的映射,同時不要安裝索引服務,遠程站點管理與服務器擴展最好也不要要,然后刪掉默認路徑下的www,整個刪,不要手軟,然后再硬盤的另一個硬盤建立存放你網(wǎng)站的文件夾,同時一定記得打開w3c日志紀錄,切記(不過本人建議采用apache 1.3.24)
系統(tǒng)安裝過程中一定本著最小服務原則,無用的服務一概不選擇,達到系統(tǒng)的最小安裝,多一個服務,多一份風險,呵呵,所以無用組件千萬不要安裝!
9.關(guān)于補?。涸贜T下,如果安裝了補丁程序,以后如果要從NT光盤上安裝新的Windows程序,都要重新安裝一次補丁程序, 2000下不需要這樣做。
說明:
(1) 最新的補丁程序,表示系統(tǒng)以前有重大漏洞,非補不可了,對于局域網(wǎng)內(nèi)服務器可以不是最新的,但站點必須安裝最新補丁,否則黑客可能會利用低版本補丁的漏洞對系統(tǒng)造成威脅。這是一部分管理員較易忽視的一點;
(2) 安裝NT的SP5、SP6有一個潛在威脅,就是一旦系統(tǒng)崩潰重裝NT時,系統(tǒng)將不會認NTFS分區(qū),原因是微軟在這兩個補丁中對NTFS做了改進。只能通過Windows 2000安裝過程中認NTFS,這樣會造成很多麻煩,建議同時做好數(shù)據(jù)備份工作。
(3) 安裝Service Pack前應先在測試機器上安裝一次,以防因為例外原因?qū)е聶C器死機,同時做好數(shù)據(jù)備份。
盡量不安裝與WEB站點服務無關(guān)的軟件;
說明:其他應用軟件有可能存在黑客熟知的安全漏洞。
10.解除NetBios與TCP/IP協(xié)議的綁定
說明:NetBois在局域網(wǎng)內(nèi)是不可缺少的功能,在網(wǎng)站服務器上卻成了黑客掃描工具的首選目標。方法:NT:控制面版——網(wǎng)絡——綁定——NetBios接口——禁用 2000:控制面版——網(wǎng)絡和撥號連接——本地網(wǎng)絡——屬性——TCP/IP——屬性——高級——WINS——禁用TCP/IP上的NETBIOS
11.刪除所有的網(wǎng)絡共享資源,在網(wǎng)絡連接的設(shè)置中刪除文件和打印共享,只留下TCP/IP協(xié)議
說明:NT與2000在默認情況下有不少網(wǎng)絡共享資源,在局域網(wǎng)內(nèi)對網(wǎng)絡管理和網(wǎng)絡通訊有用,在網(wǎng)站服務器上同樣是一個特大的安全隱患。(卸載“Microsoft 網(wǎng)絡的文件和打印機共享”。當查看“網(wǎng)絡和撥號連接”中的任何連接屬性時,將顯示該選項。單擊“卸載”按鈕刪除該組件;清除“Microsoft 網(wǎng)絡的文件和打印機共享”復選框?qū)⒉黄鹱饔谩#?
方法:
(1)NT:管理工具——服務器管理器——共享目錄——停止共享;
2000:控制面版——管理工具——計算及管理——共享文件夾———停止共享
但上述兩種方法太麻煩,服務器每重啟一次,管理員就必須停止一次
(2)修改注冊表:
運行Regedit,然后修改注冊表在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters下增加一個鍵
Name: AutoShareServer
Type: REG_DWORD
value: 0
然后重新啟動您的服務器,磁盤分區(qū)共享去掉,但IPC共享仍存在,需每次重啟后手工刪除。
12.改NTFS的安全權(quán)限;
說明:NTFS下所有文件默認情況下對所有人(EveryOne)為完全控制權(quán)限,這使黑客有可能使用一般用戶身份對文件做增加、刪除、執(zhí)行等操作,建議對一般用戶只給予讀取權(quán)限,而只給管理員和System以完全控制權(quán)限,但這樣做有可能使某些正常的腳本程序不能執(zhí)行,或者某些需要寫的操作不能完成,這時需要對這些文件所在的文件夾權(quán)限進行更改,建議在做更改前先在測試機器上作測試,然后慎重更改。
13.加強數(shù)據(jù)備份;
說明:這一點非常重要,站點的核心是數(shù)據(jù),數(shù)據(jù)一旦遭到破壞后果不堪設(shè)想,而這往往是黑客們真正關(guān)心的東西;遺憾的是,不少網(wǎng)管在這一點上作的并不好,不是備份不完全,就是備份不及時。數(shù)據(jù)備份需要仔細計劃,制定出一個策略并作了測試以后才實施,而且隨著網(wǎng)站的更新,備份計劃也需要不斷地調(diào)整。
14.只保留TCP/IP協(xié)議,刪除NETBEUI、IPX/SPX協(xié)議;
說明:網(wǎng)站需要的通訊協(xié)議只有TCP/IP,而NETBEUI是一個只能用于局域網(wǎng)的協(xié)議,IPX/SPX是面臨淘汰的協(xié)議,放在網(wǎng)站上沒有任何用處,反而會被某些黑客工具利用。
15.不要起用IP轉(zhuǎn)發(fā)功能,控制面板->網(wǎng)絡->協(xié)議->TCP/IP協(xié)議->屬性,使這個選框為空。(NT)
說明:缺省情況下,NT的IP轉(zhuǎn)發(fā)功能是禁止的,但注意不要啟用,否則它會具有路由作用,被黑客利用來對其他服務器進行攻擊。
16.安裝最新的MDAC()
說明:MDAC為數(shù)據(jù)訪問部件,通常程序?qū)?shù)據(jù)庫的訪問都通過它,但它也是黑客攻擊的目標,為防止以前版本的漏洞可能會被帶入升級后的版本,建議卸載后安裝最新的版本。注意:在安裝最新版本前最好先做一下測試,因為有的數(shù)據(jù)訪問方式或許在新版本中不再被支持,這種情況下可以通過修改注冊表來檔漏洞,祥見漏洞測試文檔。
17.設(shè)置IP拒絕訪問列表
說明:對于WWW服務,可以拒絕一些對站點有攻擊嫌疑的地址;尤其對于FTP服務,如果只是自己公司上傳文件,就可以只允許本公司的IP訪問改FTP服務,這樣,安全性大為提高。
18.禁止對FTP服務的匿名訪問
說明:如果允許對FTP服務做匿名訪問,該匿名帳戶就有可能被利用來獲取更多的信息,以致對系統(tǒng)造成危害。
19.建議使用W3C擴充日志文件格式,每天記錄客戶IP地址,用戶名,服務器端口,方法,URI字根,HTTP狀態(tài),用戶代理,而且每天均要審查日志。(最好不要使用缺省的目錄,建議更換一個記日志的路徑,同時設(shè)置日志的訪問權(quán)限,只允許管理員和system為Full Control)
說明:作為一個重要措施,既可以發(fā)現(xiàn)攻擊的跡象,采取預防措施,也可以作為受攻擊的一個證據(jù)。
20.慎重設(shè)置WEB站點目錄的訪問權(quán)限,一般情況下,不要給予目錄以寫入和允許目錄瀏覽權(quán)限。只給予.ASP文件目錄以腳本的權(quán)限,而不要給與執(zhí)行權(quán)限。
說明:目錄訪問權(quán)限必須慎重設(shè)置,否則會被黑客利用。
21.ASP編程安全:
安全不僅是網(wǎng)管的事,編程人員也必須在某些安全細節(jié)上注意,養(yǎng)成良好的安全習慣,否則,會給黑客造成可乘之機。目前,大多數(shù)網(wǎng)站上的ASP程序有這樣那樣的安全漏洞,但如果寫程序的時候注意的話,還是可以避免的。
涉及用戶名與口令的程序最好封裝在服務器端,盡量少的在ASP文件里出現(xiàn),涉及到與數(shù)據(jù)庫連接地用戶名與口令應給予最小的權(quán)限。
說明:用戶名與口令,往往是黑客們最感興趣的東西,如果被通過某種方式看到源代碼,后果是嚴重的。因此要盡量減少它們在ASP文件中的出現(xiàn)次數(shù)。出現(xiàn)次數(shù)多得用戶名與口令可以寫在一個位置比較隱蔽的包含文件中。如果涉及到與數(shù)據(jù)庫連接,理想狀態(tài)下只給它以執(zhí)行存儲過程的權(quán)限,千萬不要直接給予該用戶以修改、插入、刪除記錄的權(quán)限。
需要經(jīng)過驗證的ASP頁面,可跟蹤上一個頁面的文件名,只有從上一頁面轉(zhuǎn)進來的會話才能讀取這個頁面。
說明:現(xiàn)在的需要經(jīng)過驗證的ASP程序多是在頁面頭部加一個判斷語句,但這還不夠,有可能被黑客繞過驗證直接進入,因此有必要跟蹤上一個頁面。具體漏洞見所附漏洞文檔。
防止ASP主頁.inc文件泄露問題
當存在asp 的主頁正在制作并沒有進行最后調(diào)試完成以前,可以被某些搜索引擎機動追加為搜索對象,如果這時候有人利用搜索引擎對這些網(wǎng)頁進行查找,會得到有關(guān)文件的定位,并能在瀏覽器中察看到數(shù)據(jù)庫地點和結(jié)構(gòu)的細節(jié)揭示完整的源代碼。
解決方案:程序員應該在網(wǎng)頁發(fā)布前對其進行徹底的調(diào)試;安全專家需要固定asp 包含文件以便外部的用戶不能看他們。 首先對 .inc 文件內(nèi)容進行加密,其次也可以使用 .asp 文件代替 .inc 文件使用戶無法從瀏覽器直接觀看文件的源代碼。.inc 文件的文件名不用使用系統(tǒng)默認的或者有特殊含義容易被用戶猜測到的,盡量使用無規(guī)則的英文字母。
注意某些ASP編輯器會自動備份asp文件,會被下載的漏洞
在有些編輯asp程序的工具,當創(chuàng)建或者修改一個asp文件時,編輯器自動創(chuàng)建一個備份文件,比如:UltraEdit就會備份一個..bak文件,如你創(chuàng)建或者修改了some.asp,編輯器自動生成一個叫some.asp.bak文件,如果你沒有刪除這個 bak文件,攻擊有可以直接下載some.asp.bak文件,這樣some.asp的源程序就會給下載。
在處理類似留言板、BBS等輸入框的ASP程序中,最好屏蔽掉HTML、javascript、VBScript語句,如無特殊要求,可以限定只允許輸入字母與數(shù)字,屏蔽掉特殊字符。同時對輸入字符的長度進行限制。而且不但在客戶端進行輸入合法性檢查,同時要在服務器端程序中進行類似檢查。
說明:輸入框是黑客利用的一個目標,他們可以通過輸入腳本語言等對用戶客戶端造成損壞; 如果該輸入框涉及到數(shù)據(jù)查詢,他們會利用特殊查詢輸入得到更多的數(shù)據(jù)庫數(shù)據(jù),甚至是表的全部。因此必須對輸入框進行過濾。但如果為了提高效率僅在客戶端進行輸入合法性檢查,仍有可能被繞過,因此必須在服務器端再做一次檢查。
防止ACCESS mdb 數(shù)據(jù)庫有可能被下載的漏洞
在用ACCESS做后臺數(shù)據(jù)庫時,如果有人通過各種方法知道或者猜到了服務器的ACCESS數(shù)據(jù)庫的路徑和數(shù)據(jù)庫名稱,那么他能夠下載這個ACCESS數(shù)據(jù)庫文件,這是非常危險的。
解決方法:
(1) 為你的數(shù)據(jù)庫文件名稱起個復雜的非常規(guī)的名字,并把他放在幾目錄下。所謂 "非常規(guī)", 打個比方: 比如有個數(shù)據(jù)庫要保存的是有關(guān)書籍的信息, 可不要把他起個"book.mdb"的名字,起個怪怪的名稱,比如d34ksfslf.mdb, 再把他放在如./kdslf/i44/studi/ 的幾層目錄下,這樣黑客要想通過猜的方式得到你的ACCESS數(shù)據(jù)庫文件就難上加難了。
(2)不要把數(shù)據(jù)庫名寫在程序中。有些人喜歡把DSN寫在程序中,比如:
DBPath = Server.MapPath("cmddb.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
假如萬一給人拿到了源程序,你的ACCESS數(shù)據(jù)庫的名字就一覽無余。因此建議你在ODBC里設(shè)置數(shù)據(jù)源,再在程序中這樣寫:
conn.open "shujiyuan"
(3)使用ACCESS來為數(shù)據(jù)庫文件編碼及加密。首先在選取 "工具->安全->加密/解密數(shù)據(jù)庫,選取數(shù)據(jù)庫(如:employer.mdb),然后接確定,接著會出現(xiàn) "數(shù)據(jù)庫加密后另存為"的窗口,存為:employer1.mdb。 接著employer.mdb就會被編碼,然后存為employer1.mdb..
要注意的是,以上的動作并不是對數(shù)據(jù)庫設(shè)置密碼,而只是對數(shù)據(jù)庫文件加以編碼,目的是為了防止他人使用別的工具來查看數(shù)據(jù)庫文件的內(nèi)容。
接下來我們?yōu)閿?shù)據(jù)庫加密,首先以打開經(jīng)過編碼了的 employer1.mdb, 在打開時,選擇"獨占"方式。然后選取功能表的"工具->安全->設(shè)置數(shù)據(jù)庫密碼", 接著 輸入密碼即可。這樣即使他人得到了employer1.mdb文件,沒有密碼他是無法看到 employer1.mdb的。
22.SQL SERVER的安全
SQL SERVER是NT平臺上用的最多的數(shù)據(jù)庫系統(tǒng),但是它的安全問題也必須引起重視。數(shù)據(jù)庫中往往存在著最有價值的信息,一旦數(shù)據(jù)被竊后果不堪設(shè)想。
及時更新補丁程序。
說明:與NT一樣,SQL SERVER的許多漏洞會由補丁程序來彌補。建議在安裝補丁程序之前先在測試機器上做測試,同時提前做好目標服務器的數(shù)據(jù)備份。
給SA一個復雜的口令。
說明:SA具有對SQL SERVER數(shù)據(jù)庫操作的全部權(quán)限。遺憾的是,一部分網(wǎng)管對數(shù)據(jù)庫并不熟悉,建立數(shù)據(jù)庫的工作由編程人員完成,而這部分人員往往只注重編寫SQL 語句本身,對SQL SERVER數(shù)據(jù)庫的管理不熟悉,這樣很有可能造成SA口令為空。這對數(shù)據(jù)庫安全是一個嚴重威脅。目前具有這種隱患的站點不在少數(shù)。
嚴格控制數(shù)據(jù)庫用戶的權(quán)限,輕易不要給讓用戶對表有直接的查詢、更改、插入、刪除權(quán)限,可以通過給用戶以訪問視圖的權(quán)限,以及只具有執(zhí)行存儲過程的權(quán)限。
說明:用戶如果對表有直接的操作權(quán)限,就會存在數(shù)據(jù)被破壞的危險。
制訂完整的數(shù)據(jù)庫備份與恢復策略。
23. PCANYWHERE的安全:
目前,PCANYWHERE是最流行的基于NT與2000的遠程控制工具,同樣也需要注意安全問題。
建議采用單獨的用戶名與口令,最好采用加密手段。千萬不要采用與NT管理員一樣的用戶名與口令,也不要使用與NT集成的口令。同時在服務器端的設(shè)置時務必采用security options中的強加密方式,拒絕低加密水平的連接,同時采用口令加密與傳輸過程中的用戶名與口令加密,以防止被嗅探到,還要限制連接次數(shù),另外很重要的一點就是一定在protect item中設(shè)置高強度的口令,同時一定限制不能夠讓別人看到你的host端的任何設(shè)置,即便是要察看主機端的相關(guān)設(shè)置也必須要輸入口令!
說明:PCANYWHERE 口令是遠程控制的第一個關(guān)口,如果與NT的一樣, 就失去了安全屏障。被攻破后就毫無安全可言。而如果采用單獨的口令,即使攻破了PCANYWHERE,NT還有一個口令屏障。
及時安裝較新的版本。
2.中級篇: IIS的安全與性能調(diào)整
實際上,安全和應用在很多時候是矛盾的,因此,你需要在其中找到平衡點,畢竟服務器是給用戶用而不是做OPEN HACK的,如果安全原則妨礙了系統(tǒng)應用,那么這個安全原則也不是一個好的原則。 網(wǎng)絡安全是一項系統(tǒng)工程,它不僅有空間的跨度,還有時間的跨度。很多朋友(包括部分系統(tǒng)管理員)認為進行了安全配置的主機就是安全的,其實這其中有個誤區(qū):我們只能說一臺主機在一定的情況一定的時間上是安全的隨著網(wǎng)絡結(jié)構(gòu)的變化、新的漏洞的發(fā)現(xiàn),管理員/用戶的操作,主機的安全狀況是隨時隨地變化著的,只有讓安全意識和安全制度貫穿整個過程才能做到真正的安全。
提高IIS 5.0網(wǎng)站伺服器的執(zhí)行效率的八種方法
以下是提高IIS 5.0網(wǎng)站伺服器的執(zhí)行效率的八種方法:
1. 啟用HTTP的持續(xù)作用可以改善15~20%的執(zhí)行效率。
2. 不啟用記錄可以改善5~8%的執(zhí)行效率。
3. 使用 [獨立] 的處理程序會損失20%的執(zhí)行效率。
4. 增加快取記憶體的保存檔案數(shù)量,可提高Active Server Pages之效能。
5. 勿使用CGI程式。
6. 增加IIS 5.0電腦CPU數(shù)量。
7. 勿啟用ASP偵錯功能。
8. 靜態(tài)網(wǎng)頁采用HTTP 壓縮,大約可以減少20%的傳輸量。
簡單介紹如下。
1、啟用HTTP的持續(xù)作用
啟用HTTP的持續(xù)作用(Keep-Alive)時,IIS與瀏覽器的連線不會斷線,可以改善執(zhí)行效率,直到瀏覽器關(guān)閉時連線才會斷線。因為維持「Keep-Alive」狀態(tài)時,於每次用戶端請求時都不須重新建立一個新的連接,所以將改善伺服器的效率。此功能為HTTP1.1預設(shè)的功能,HTTP 1.0加上Keep-Alive header也可以提供HTTP的持續(xù)作用功能。
2、啟用HTTP的持續(xù)作用可以改善15~20%的執(zhí)行效率。
如何啟用HTTP的持續(xù)作用呢?步驟如下:在 [Internet服務管理員] 中,選取整個IIS電腦、或Web站臺,於 [內(nèi)容] 之 [主目錄] 頁,勾選 [HTTP的持續(xù)作用] 選項。
3、不啟用記錄
不啟用記錄可以改善5~8%的執(zhí)行效率。如何設(shè)定不啟用記錄呢?步驟如下:
在 [Internet服務管理員] 中,選取整個IIS電腦、或Web站臺,於 [內(nèi)容] 之 [主目錄] 頁,不勾選 [啟用記錄] 選項。設(shè)定非獨立的處理程序使用 [獨立] 的處理程序會損失20%的執(zhí)行效率,此處所謂 獨立」系指將 [主目錄]、[虛擬目錄] 頁之應用程式保護選項設(shè)定為 [高(獨立的)] 時。因此 [應用程式保護] 設(shè)定為 [低 (IIS處理程序)] 時執(zhí)行效率較高如何設(shè)定非「獨立」的處理程序呢?步驟如下: 在 [Internet服務管理員] 中,選取整個IIS電腦、Web站臺、或應用程式的起始目錄。於 [內(nèi)容] 之 [主目錄]、[虛擬目錄] 頁,設(shè)定應用程式保護選項為 [低 (IIS處理程序)] 。
4、調(diào)整快?。–ache)記憶體
IIS 5.0將靜態(tài)的網(wǎng)頁資料暫存於快?。–ache)記憶體當中;IIS 4.0則將靜態(tài)的網(wǎng)頁資料暫存於檔案當中。調(diào)整快?。–ache)記憶體的保存檔案數(shù)量可以改善執(zhí)行效率。ASP指令檔案執(zhí)行過後,會在暫存於快?。–ache)記憶體中以提高執(zhí)行效能。增加快取記憶體的保存檔案數(shù)量,可提高Active Server Pages之效能??梢栽O(shè)定所有在整個IIS電腦、「獨立」Web站臺、或「獨立」應用程式上執(zhí)行之應用程式的快取記憶體檔案數(shù)量。如何設(shè)定快取(Cache)功能呢?步驟如下:在 [Internet服務管理員] 中選取整個IIS電腦、「獨立」Web站臺、或「獨立」應用程式的起始目錄。於 [內(nèi)容] 之 [主目錄]、[虛擬目錄] 頁,按下 [設(shè)定] 按鈕時,即可由 [處理程序選項] 頁設(shè)定[指令檔快取記憶體] 。如何設(shè)定快?。–ache)記憶體檔案數(shù)量呢?步驟如下:在[Internet服務管理員] 中,選取整個IIS電腦、或Web站臺的起始目錄。於 [內(nèi)容] 之[伺服器擴充程式] 頁,按下 [設(shè)定] 按鈕。即可設(shè)定快?。–ache)記憶體檔案數(shù)量。
5、勿使用CGI程式
使用CGI程式時,因為處理程序(Process)須不斷地產(chǎn)生與摧毀,造成執(zhí)行效率不佳。一般而言,執(zhí)行效率比較如下: 靜態(tài)網(wǎng)頁(Static):100 ISAPI:50 ASP:10 CGI:1 換句話說,ASP比CGI可能快10倍,因此勿使用CGI程式可以改善IIS的執(zhí)行效率。以彈性(Flexibility)而言:ASP > CGI > ISAPI > 靜態(tài)網(wǎng)頁(Static)。以安全(Security)而言:ASP(獨立) = ISAPI(獨立)= CGI > ASP(非獨立) = ISAPI(非獨立)= 靜態(tài)網(wǎng)頁(Static)
6、增加IIS 5.0電腦CPU數(shù)量
根據(jù)微軟的測試報告,增加IIS 4.0電腦CPU數(shù)量,執(zhí)行效率并不會改善多少;但是增加IIS 5.0電腦CPU數(shù)量,執(zhí)行效率會幾乎成正比地提供,換句話說,兩顆CPU的IIS5.0電腦執(zhí)行效率幾乎是一顆CPU電腦的兩倍,四顆CPU的IIS 5.0電腦執(zhí)行效率幾乎是一顆CPU電腦的四倍IIS 5.0將靜態(tài)的網(wǎng)頁資料暫存於快?。–ache)記憶體當中;IIS 4.0 則將靜態(tài)的網(wǎng)頁資料暫存於檔案當中。調(diào)整快?。–ache)記憶體的保存檔案數(shù)量可以改善執(zhí)行效率。
7、啟用ASP偵錯功能
勿啟用ASP偵錯功能可以改善執(zhí)行效率。如何勿啟用ASP偵錯功能呢?步驟如下:於[Internet服務管理員] 中,選取Web站臺、或應用程式的起始目錄,按右鍵選擇[內(nèi)容],按 [主目錄]、[虛擬目錄] 或 [目錄] 頁,按下 [設(shè)定] 按鈕,選擇 [應用程式偵錯] 頁,不勾選 [啟用ASP伺服器端指令偵錯]、[啟用ASP用戶端指令偵錯] 選項。
8、靜態(tài)網(wǎng)頁采用HTTP 壓縮
靜態(tài)網(wǎng)頁采用HTTP 壓縮,大約可以減少20%的傳輸量。HTTP壓縮功能啟用或關(guān)閉,系針對整臺IIS伺服器來設(shè)定。用戶端使用IE 5.0瀏覽器連線到已經(jīng)啟用HTTP壓縮IIS5.0之Web伺服器,才有HTTP壓縮功能。如何啟用HTTP壓縮功能呢?步驟如下:若要啟用HTTP 壓縮功能,方法為在 [Internet服務管理員] 中,選取電腦之 [內(nèi)容],於 [主要內(nèi)容] 之下選取 [WWW服務]。然後按一下 [編輯] 按鈕,於 [服務] 頁上,選取 [壓縮靜態(tài)檔案] 可以壓縮靜態(tài)檔案,不選取 [壓縮應用程式檔案] 。 動態(tài)產(chǎn)生的內(nèi)容檔案(壓縮應用程式檔案)也可以壓縮,但是須耗費額外CPU處理時間,若%Processor Time已經(jīng)百分之八十或更多時,建議不要壓縮
以上是對采用IIS作為WEB服務器的一些安全相關(guān)的設(shè)置與其性能調(diào)整的參數(shù)設(shè)置,可以最大化的優(yōu)化你的IIS,不過個人認為如果不存在障礙,還是采用apache比較好一些,漏洞少,建議采用apache 1.3.24版本,因為最近經(jīng)測試,apache 1.3.23之前的版本都存在溢出漏洞,不要怕,這種漏洞很少的,呵呵。另外,個人建議不要采用ASP安全性總不叫人放心,個人認為還是采用JSP好一些,安全性好,功能強大,絕對超值,呵呵,因為PHP也存在不少的洞洞
附:IIS安全工具及其使用說明
一、IIS Lock Tool,快速設(shè)置IIS安全屬性
IIS Lock Tool的推出,還要感謝紅色代碼,因為正是紅色代碼的大面積傳播,致使微軟設(shè)計發(fā)布這款幫助管理員們設(shè)置IIS安全性的工具。
(一)、IIS Lock Tool具有以下功能和特點
1.最基本功能,幫助管理員設(shè)置IIS安全性;
2.此工具可以在IIS4和IIS5上使用;
3.即使系統(tǒng)沒有及時安裝所有補丁,也能有效防止IIS4和IIS5的已知漏洞;
4.幫助管理員去掉對本網(wǎng)站不必要的一些服務,使IIS在滿足本網(wǎng)站需求的情況下運行最少的服務;
5.具有兩種使用模式:快捷模式和高級模式??旖菽J街苯訋椭芾韱T設(shè)置好IIS安全性,這種模式只適合于只有HTML和HTM靜態(tài)網(wǎng)頁的網(wǎng)站使用,因為設(shè)置完成以后,ASP不能運行;高級模式允許管理員自己設(shè)置各種屬性,設(shè)置得當,對IIS系統(tǒng)任何功能均沒有影響。
?。ǘ?、IIS Lock Tool的使用
1. 軟件下載和安裝
IIS Lock Tool在微軟網(wǎng)站下載,下載地址:
安裝很簡單,需要注意的是,安裝以后,程序不會在系統(tǒng)的【程序】菜單出現(xiàn),也不會在【管理工具】出現(xiàn),需要安裝者在安裝目錄尋找運行該程序。
2. 軟件的使用
在以下的介紹中,我們將詳細介紹每一步設(shè)置的意義和推薦設(shè)置,之所以詳細介紹,是為了我們明白這些設(shè)置到底意味著什么,同時,和我們原來的安全設(shè)置相對照,避免出現(xiàn)設(shè)置完成以后,系統(tǒng)出現(xiàn)障礙。
運行該軟件;
以上界面介紹了IIS Lock Tool的一些基本情況和使用時需要注意的地方:1)使用時應該選擇針對本網(wǎng)站最少的服務,去掉不必要的服務;2)設(shè)置完成以后,建議對網(wǎng)站進行徹底檢查,以確定設(shè)置對本網(wǎng)站是否合適;
在以上界面,點擊【下一步】按鈕;
以上界面選擇快捷模式還是高級模式來運行軟件,在這里,軟件介紹了兩者模式的區(qū)別:
快捷模式:此設(shè)置模式關(guān)閉了IIS的一些高級服務屬性,其中包括動態(tài)網(wǎng)頁屬性(ASP);所以,我們需要再重復一遍,選擇快捷模式只適合提供靜態(tài)頁面的網(wǎng)站,當然,這種模式是相對最安全的。
高級模式:此模式運行安裝者自定義各種屬性,同時允許高級屬性的運行。
快捷模式設(shè)置我們不必介紹,點擊【下一步】按鈕就可以設(shè)置完成。我們選擇【Advanced Lockdown】(高級設(shè)置),點擊【下一步】按鈕;
以上界面幫助管理員設(shè)置各種腳本映射,我們來看每一種影射應該怎樣設(shè)置:
1)Disable support Active Server Pages(ASP),選擇這種設(shè)置將使IIS不支持ASP功能;可以根據(jù)網(wǎng)站具體情況選擇,一般不選擇此項,因為網(wǎng)站一般要求運行ASP程序;
2)Disable support Index Server Web Interface(.idq,.htw,.ida),選擇這一項將不支持索引服務,具體就是不支持.idq,.htw,.ida這些文件。我們先來看看到底什么是索引服務,然后來決定取舍。索引服務是IIS4中包含的內(nèi)容索引引擎。你可以對它進行ADO調(diào)用并搜索你的站點,它為你提供了一個很好的web 搜索引擎。如果你的網(wǎng)站沒有利用索引服務對網(wǎng)站進行全文檢索,也就可以取消網(wǎng)站的這個功能,取消的好處是:1)減輕系統(tǒng)負擔;2)有效防止利用索引服務漏洞的病毒和黑客,因為索引服務器漏洞可能使攻擊者控制網(wǎng)站服務器,同時,暴露網(wǎng)頁文件在服務器上的物理位置(利用.ida、.idq)。因此,我們一般建議在這一項前面打勾,也就是取消索引服務;
3)Disable support for Server Side Includes(.shtml,.shtm,.stm),取消服務器端包含;先來看看什么叫服務器端包含,SSI就是HTML文件中,可以通過注釋行調(diào)用的命令或指針。SSI 具有強大的功能,只要使用一條簡單的SSI 命令就可以實現(xiàn)整個網(wǎng)站的內(nèi)容更新,動態(tài)顯示時間和日期,以及執(zhí)行shell和CGI腳本程序等復雜的功能。一般而言,我們沒有用到這個功能,所以,建議取消;取消可以防止一些IIS潛在地漏洞;
4)Disable for Internet Data Connector(.idc),取消Internet數(shù)據(jù)庫連接;先看Internet數(shù)據(jù)庫連接的作用,它允許HTML頁面和后臺數(shù)據(jù)庫建立連接,實現(xiàn)動態(tài)頁面。需要注意的是,IIS4和IIS5中基本已經(jīng)不使用idc,所以,建議在此項打勾,取消idc;
5)Disable support for Internet Printing (.printer),取消Internet打??;這一功能我們一般沒有使用,建議取消;取消的好處是可以避免.printer遠程緩存溢出漏洞,這個漏洞使攻擊者可以利用這個漏洞遠程入侵IIS 服務器,并以系統(tǒng)管理員(system)身份執(zhí)行任意命令;
6)Disable support for .HTR Scripting(.htr),取消htr映射;攻擊者通過htr構(gòu)造特殊的URL請求,可能導致網(wǎng)站部分文件源代碼暴露(包括ASP),建議在此項前面打勾,取消映射;
理解以上各項設(shè)置以后,我們可以根據(jù)本網(wǎng)站情況來決定取舍,一般網(wǎng)站除了ASP要求保留以外,其他均可以取消,也就是全消第一項前面的勾,其他全部打勾,按【下一步】按鈕,出現(xiàn)以下界面(圖四)
以上界面設(shè)置可以讓管理員選擇一些IIS默認安裝文件的保留與否,我們來看怎樣選擇:
1)Remove sample web files,刪除web例子文件;建議刪除,因為一般我們不需要在服務器上閱讀這些文件,而且,這些文件可能讓攻擊者利用來閱讀部分網(wǎng)頁源程序代碼(包括ASP);
2)Remove the Scripts vitual directory,刪除腳本虛擬目錄;建議刪除;
3)Remove the MSDAC virtual directory,刪除MSDAC虛擬目錄,建議刪除;
4)Disable Distribauted Authoring and Versioning(WebDAV),刪除WEBDAV,WebDav主要允許管理者遠程編寫和修改頁面,一般我們不會用到,建議刪除,刪除的好處是可以避免IIS5的一個WebDav漏洞,該漏洞可能導致服務器停止。
5)Set file permissions to prevent the IIS anouymous user from executing system utilities(such as cmd.exe,tftp.exe),防止匿名用戶運行可執(zhí)行文件,比如cmd.exe和tftp.exe;建議選擇此項,因為紅色代碼和尼姆達均利用了以上所說的匿名執(zhí)行可執(zhí)行文件的功能;
6)Set file permissions to prevent the IIS anouymous user from writing to content directories,防止匿名用戶對目錄具有寫權(quán)限,這個不要解釋,建議選擇;
設(shè)置以上選項以后,按【下一步】按鈕;
要求確認是否接受以上設(shè)置,選擇【是】;
在以上界面中,我們可以看到對IIS的詳細設(shè)置情況。設(shè)置完成以后,建議重新啟動IIS。
二、URLScan Tool――過濾非法URL訪問
仔細觀察IIS的漏洞,我們幾乎可以得出這樣一個結(jié)論,所有利用這些漏洞實現(xiàn)對網(wǎng)站攻擊的手段均是構(gòu)造特殊的URL來訪問網(wǎng)站,一般有以下幾種類型的URL可以利用漏洞:
1、特別長的URL,比如紅色代碼攻擊網(wǎng)站的URL就是這樣:
GET/default.idaXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%u9090%u6858%ucbd3%u7801%u
9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u9090%u8190%u
00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00=a 200;
2、特殊字符或者字符串的URL,比如在URL后面加::$DATA可以看到網(wǎng)頁(ASP)源代碼;
3、URL中含有可執(zhí)行文件名,最常見的就是有cmd.exe;
既然這些攻擊利用特殊的URL來實現(xiàn),所以,微軟提供了這款專門過濾非法URL的安全工具,可以達到御敵于國門之外的效果,這款工具有以下特點和功能:
1、基本功能:過濾非法URL請求;
2、設(shè)定規(guī)則,辨別那些URL請求是合法的;這樣,就可以針對本網(wǎng)站來制定專門的URL請求規(guī)則;同時,當有新的漏洞出現(xiàn)時,可以更改這個規(guī)則,達到防御新漏洞的效果;
3、程序提供一套URL請求規(guī)則,這個規(guī)則包含已經(jīng)發(fā)現(xiàn)的漏洞利用特征,幫助管理員設(shè)置規(guī)則;
?。ㄒ唬?、軟件的下載與安裝
URLScan可以在微軟的網(wǎng)站上下載,地址如下:
和一般軟件一樣安裝,但是,此軟件不能選擇安裝路徑,安裝完成以后,我們可以在System32/InetSvr/URLScan目錄下找到以下文件:
urlscan.dll:動態(tài)連接庫文件;
urlscan.inf:安裝信息文件;
urlscan.txt:軟件說明文件;
urlscan.ini:軟件配置文件,這個文件很只要,因為對URLScan的所有配置,均有這個文件來完成。
?。ǘ④浖呐渲?
軟件的配置由urlscan.ini文件來完成,在配置此文件以前,我們需要了解一些基本知識。
2、urlscan配置文件的構(gòu)造形式
urlscan配置文件必須遵從以下規(guī)則:
?。?)此文件名必須為urlscan.ini;
?。?)配置文件必須和urlscan.dll在同一目錄;
?。?)配置文件必須是標準ini文件結(jié)構(gòu),也就是由節(jié),串和值組成;
?。?)配置文件修改以后,必須重新啟動IIS,使配置生效;
?。?)配置文件由以下各節(jié)組成:
[Option]節(jié),主要設(shè)置節(jié);
[AllowVerbs]節(jié),配置認定為合法URL規(guī)則設(shè)定,此設(shè)定與Option節(jié)有關(guān);
[DenyVerbs]節(jié),配置認定為非法URL規(guī)則設(shè)定,此設(shè)定與Option節(jié)有關(guān);
[DenyHeaders]節(jié),配置認定為非法的header在設(shè)立設(shè)置;
[AllowExtensions]節(jié),配置認定為合法的文件擴展名在這里設(shè)置,此設(shè)定與Option節(jié)有關(guān);
[DenyExtensions]節(jié),配置認定為非法的文件擴展名在這里設(shè)置,此設(shè)定與Option節(jié)有關(guān);
2、具體配置
?。?)Option節(jié)的配置,因為Option節(jié)的設(shè)置直接影響到以后的配置,因此,這一節(jié)的設(shè)置特別重要。此節(jié)主要進行以下屬性的設(shè)置:
UseAllowVerbs:使用允許模式檢查URL請求,如果設(shè)置為1,所有沒有在[AllowVerbs]節(jié)設(shè)置的請求都被拒絕;如果設(shè)置為0,所有沒有在[DenyVerbs]設(shè)置的URL請求都認為合法;默認為1;
UseAllowExtensions:使用允許模式檢測文件擴展名;如果設(shè)置為 1,所有沒在[AllowExtensions]節(jié)設(shè)置的文件擴展名均認為是非法請求;如果設(shè)置為0,所有沒在[DenyExtensions]節(jié)設(shè)置的擴展名均被認為是合法請求;默認為0;
EnableLogging:是否允許使用Log文件,如果為1,將在urlscan.dll的相同目錄設(shè)置名為urlscan.log的文件記錄所有過濾;
AllowLateScanning:允許其他URL過濾在URLScan過濾之前進行,系統(tǒng)默認為不允許0;
AlternateServerName:使用服務名代替;如果此節(jié)存在而且[RemoveServerHeader]節(jié)設(shè)置為0,IIS將在這里設(shè)置的服務器名代替默認的“Server”;
NormalizeUrlBeforeScan:在檢測URL之前規(guī)格化URL;如果為1,URLScan將在IIS編碼URL之前URL進行檢測;需要提醒的是,只有管理員對URL解析非常熟悉的情況下才可以將其設(shè)置為0;默認為1;
VerifyNormalization:如果設(shè)置為1,UrlScan將校驗URL規(guī)則,默認為1;此節(jié)設(shè)定與NormalizeUrlBeforeScan有關(guān);
AllowHighBitCharacters:如果設(shè)置為1,將允許URL中存在所有字節(jié),如果為0,含有非ASCII字符的URL將拒絕;默認為1;
AllowDotInPath:如果設(shè)置為1,將拒絕所有含有多個“.”的URL請求,由于URL檢測在IIS解析URL之前,所以,對這一檢測的準確性不能保證,默認為0;
RemoveServerHeader:如果設(shè)置為1,將把所有應答的服務頭清除,默認為0;
?。?)[AllowVerbs]節(jié)配置
如果UseAllowVerbs設(shè)置為1,此節(jié)設(shè)置的所有請求將被允許,一般設(shè)置以下請求:
GET、HEAD、POST
?。?)[DenyVerbs]節(jié)配置
如果UseAllowVerbs設(shè)置為0,此節(jié)設(shè)置的所有請求將拒絕,一般設(shè)置以下請求:
PROPFIND、PROPPATCH、MKCOL、DELETE、PUT、COPY、MOVE、LOCK、UNLOCK
?。?)[AllowExtensions]節(jié)設(shè)置
在這一節(jié)設(shè)置的所有擴展名文件將被允許請求,一般設(shè)置以下請求:
.asp、.htm、.html、.txt、.jpg、.jpeg、.gif,如果需要提供文件下載服務,需要增加.rar、.zip
?。?)[DenyExtensions]節(jié)設(shè)置
在這一節(jié)設(shè)置的所有擴展名文件請求將被拒絕,根據(jù)已經(jīng)發(fā)現(xiàn)的漏洞,我們可以在這一節(jié)增加內(nèi)容,一般為以下設(shè)置:.asa、可執(zhí)行文件、批處理文件、日志文件、罕見擴展如:shtml、.printer等。
三、總結(jié)
以上兩個工具功能強大,可以真正實現(xiàn)對IIS的保護。IIS Lock Tool簡單,相對而言,只是被動的防衛(wèi);UrlScan設(shè)置比較難,建議對IIS非常熟悉的管理員使用,只要設(shè)置得當,UrlScan的功能更加強大。在使用UrlScan的時候,切記不要設(shè)置一次萬事大吉,需要不停跟蹤新出現(xiàn)的漏洞,隨時修改URLScan的配置文件。
3.高級篇:NT/2000的高級安全設(shè)置
1.禁用空連接,禁止匿名獲得用戶名列表
Win2000的默認安裝允許任何用戶通過空用戶得到系統(tǒng)所有賬號/共享列表,這個本來是為了方便局域網(wǎng)用戶共享文件的,但是一個遠程用戶也可以得到你的用戶列表并使用暴力法破解用戶密碼。很多朋友都知道可以通過更改注冊表Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous = 1來禁止139空連接,實際上win2000的本地安全策略(如果是域服務器就是在域服務器安全和域安全策略中)就有這樣的選項RestrictAnonymous(匿名連接的額外限制),這個選項有三個值: 0:None. Rely on default permissions(無,取決于默認的權(quán)限 1 :Do not allow enumeration of SAM accounts and shares(不允許枚舉SAM帳號和共享) 2:No access without explicit anonymous permissions(沒有顯式匿名權(quán)限就不允許訪問) 0這個值是系統(tǒng)默認的,什么限制都沒有,遠程用戶可以知道你機器上所有的賬號、組信息、共享目錄、網(wǎng)絡傳輸列表(NetServerTransportEnum等等,對服務器來說這樣的設(shè)置非常危險。 1這個值是只允許非NULL用戶存取SAM賬號信息和共享信息。 2這個值是在win2000中才支持的,需要注意的是,如果你一旦使用了這個值,你的共享估計就全部完蛋了,所以我推薦你還是設(shè)為1比較好。 好了,入侵者現(xiàn)在沒有辦法拿到我們的用戶列表,我們的賬戶安全了
2.禁止顯示上次登陸的用戶名HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\winlogon項中的Don’t Display Last User Name串數(shù)據(jù)改成1,這樣系統(tǒng)不會自動顯示上次的登錄用戶名。將服務器注冊表HKEY_LOCAL_ MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon項中的Don't Display Last User Name串數(shù)據(jù)修改為1,隱藏上次登陸控制臺的用戶名。其實,在2000的本地安全策略中也存在該選項
Winnt4.0修改注冊表:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\Winlogon 中增加DontDisplayLastUserName,將其值設(shè)為1。
2.預防DoS:
在注冊表HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters中更改以下值可以幫助你防御一定強度的DoS攻擊 SynAttackProtect REG_DWORD 2 EnablePMTUDiscovery REG_DWORD 0 NoNameReleaseOnDemand REG_DWORD 1 EnableDeadGWDetect REG_DWORD 0 KeepAliveTime REG_DWORD 300,000 PerFORMRouterDiscovery REG_DWORD 0 EnableICMPRedirects REG_DWORD 0
在Win2000中如何關(guān)閉ICMP(Ping)
3.針對ICMP攻擊
ICMP的全名是Internet Control and Message Protocal即因特網(wǎng)控制消息/錯誤報文協(xié)議,這個協(xié)議主要是用來進行錯誤信息和控制信息的傳遞,例如著名的Ping和Tracert工具都是利用ICMP協(xié)議中的ECHO request報文進行的(請求報文ICMP ECHO類型8代碼0,應答報文ICMP ECHOREPLY類型0代碼0)。
ICMP協(xié)議有一個特點---它是無連結(jié)的,也就是說只要發(fā)送端完成ICMP報文的封裝并傳遞給路由器,這個報文將會象郵包一樣自己去尋找目的地址,這個特點使得ICMP協(xié)議非常靈活快捷,但是同時也帶來一個致命的缺陷---易偽造(郵包上的寄信人地址是可以隨便寫的),任何人都可以偽造一個ICMP報文并發(fā)送出去,偽造者可以利用SOCK_RAW編程直接改寫報文的ICMP首部和IP首部,這樣的報文攜帶的源地址是偽造的,在目的端根本無法追查,(攻擊者不怕被抓那還不有恃無恐?)根據(jù)這個原理,外面出現(xiàn)了不少基于ICMP的攻擊軟件,有通過網(wǎng)絡架構(gòu)缺陷制造ICMP風暴的,有使用非常大的報文堵塞網(wǎng)絡的,有利用ICMP碎片攻擊消耗服務器CPU的,甚至如果將ICMP協(xié)議用來進行通訊,可以制作出不需要任何TCP/UDP端口的木馬(參見揭開木馬的神秘面紗三)......既然ICMP協(xié)議這么危險,我們?yōu)槭裁床魂P(guān)掉它呢?
我們都知道,Win2000在網(wǎng)絡屬性中自帶了一個TCP/IP過濾器,我們來看看能不能通過這里關(guān)掉ICMP協(xié)議,桌面上右擊網(wǎng)上鄰居->屬性->右擊你要配置的網(wǎng)卡->屬性->TCP/IP->高級->選項->TCP/IP過濾,這里有三個過濾器,分別為:TCP端口、UDP端口和IP協(xié)議,我們先允許TCP/IP過濾,然后一個一個來配置,先是TCP端口,點擊"只允許",然后在下面加上你需要開的端口,一般來說WEB服務器只需要開80(www),F(xiàn)TP服務器需要開20(FTP Data),21(FTP Control),郵件服務器可能需要打開25(SMTP),110(POP3),以此類推......接著是UDP,UDP協(xié)議和ICMP協(xié)議一樣是基于無連結(jié)的,一樣容易偽造,所以如果不是必要(例如要從UDP提供DNS服務之類)應該選擇全部不允許,避免受到洪水(Flood)或碎片(Fragment)攻擊。最右邊的一個編輯框是定義IP協(xié)議過濾的,我們選擇只允許TCP協(xié)議通過,添加一個6(6是TCP在IP協(xié)議中的代碼,IPPROTO_TCP=6),從道理上來說,只允許TCP協(xié)議通過時無論UDP還是ICMP都不應該能通過,可惜的是這里的IP協(xié)議過濾指的是狹義的IP協(xié)議,從架構(gòu)上來說雖然ICMP協(xié)議和IGMP協(xié)議都是IP協(xié)議的附屬協(xié)議,但是從網(wǎng)絡7層結(jié)構(gòu)上ICMP/IGMP協(xié)議與IP協(xié)議同屬一層,所以微軟在這里的IP協(xié)議過濾是不包括ICMP協(xié)議的,也就是說即使你設(shè)置了“只允許TCP協(xié)議通過”,ICMP報文仍然可以正常通過,所以如果我們要過濾ICMP協(xié)議還需要另想辦法。
剛剛在我們進行TCP/IP過濾時,還有另外一個選項:IP安全機制(IP Security),我們過濾ICMP的想法就要著落在它身上。
打開本地安全策略,選擇IP安全策略,在這里我們可以定義自己的IP安全策略。一個IP安全過濾器由兩個部分組成:過濾策略和過濾操作,過濾策略決定哪些報文應當引起過濾器的關(guān)注,過濾操作決定過濾器是“允許”還是“拒絕”報文的通過。要新建IP安全過濾器,必須新建自己的過濾策略和過濾操作:右擊本機的IP安全策略,選擇管理IP過濾器,在IP過濾器管理列表中建立一個新的過濾規(guī)則:ICMP_ANY_IN,源地址選任意IP,目標地址選本機,協(xié)議類型是ICMP,切換到管理過濾器操作,增加一個名為Deny的操作,操作類型為"阻止"(Block)。這樣我們就有了一個關(guān)注所有進入ICMP報文的過濾策略和丟棄所有報文的過濾操作了。需要注意的是,在地址選項中有一個鏡像選擇,如果選中鏡像,那么將會建立一個對稱的過濾策略,也就是說當你關(guān)注any IP->my IP的時候,由于鏡像的作用,實際上你也同時關(guān)注了my IP->any IP,你可以根據(jù)自己的需要選擇或者放棄鏡像。再次右擊本機的IP安全策略,選擇新建IP過濾策略,建立一個名稱為ICMP Filter的過濾器,通過增加過濾規(guī)則向?qū)?,我們把剛剛定義的ICMP_ANY_IN過濾策略指定給ICMP Filter,然后在操作選框中選擇我們剛剛定義的Deny操作,退出向?qū)Т翱?,右擊ICMP Filter并啟用它,現(xiàn)在任何地址進入的ICMP報文都會被丟棄了。
雖然用IP sec能夠?qū)CMP報文進行過濾,不過操作起來太麻煩,而且如果你只需要過濾特定的ICMP報文,還要保留一些常用報文(如主機不可達、網(wǎng)絡不可達等),IP sec策略就力不從心了,我們可以利用Win2000的另一個強大工具路由與遠程訪問控制(Routing & Remote Access)來完成這些復雜的過濾操作。
路由與遠程訪問控制是Win2000用來管理路由表、配置VPN、控制遠程訪問、進行IP報文過濾的工具,默認情況下并沒有安裝,所以首先你需要啟用它,打開"管理工具"->"路由與遠程訪問",右擊服務器(如果沒有則需要添加本機)選擇"配置并啟用路由及遠程訪問",這時配置向?qū)屇氵x擇是什么樣的服務器,一般來說,如果你不需要配置VPN服務器,那么選擇"手動配置"就可以了,配置完成后,主機下將出現(xiàn)一個IP路由的選項,在"常規(guī)"中選擇你想配置的網(wǎng)卡(如果你有多塊網(wǎng)卡,你可以選擇關(guān)閉某一塊的ICMP),在網(wǎng)卡屬性中點擊"輸入篩選器",添加一條過濾策略"from:ANY to:ANY 協(xié)議:ICMP 類型:8 :編碼:0 丟棄"就可以了(類型8編碼0就是Ping使用的ICMP_ECHO報文,如果要過濾所有的ICMP報文只需要將類型和編碼都設(shè)置為255)
細心的朋友剛才可能已經(jīng)發(fā)現(xiàn),在輸入、輸出過濾器的下面,還有一個"碎片檢查"功能,這個功能使用來應付IP碎片攻擊的,這已經(jīng)超出了本文所討論的范圍,我會在以后的拒絕服務攻擊的文章中繼續(xù)和大家一起探討的。Win2000的路由及遠程訪問是一個功能非常強大的工具集
4.改變windows系統(tǒng)的一些默認值(例如:數(shù)據(jù)包的生存時間(TTL)值,不同系統(tǒng)有不同的值,有經(jīng)驗的人可以根據(jù)TTL的不同的值判斷對方使用的是何種操作系統(tǒng)(例如windows 2000默認值128),我改改改,看你怎么看)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters DefaultTTL REG_DWORD 0-0xff(0-255 十進制,默認值128)
說明:指定傳出IP數(shù)據(jù)包中設(shè)置的默認生存時間(TTL)值.TTL決定了IP數(shù)據(jù)包在到達目標前在網(wǎng)絡中生存的最大時間.它實際上限定了IP數(shù)據(jù)包在丟棄前允許通過的路由器數(shù)量.有時利用此數(shù)值來探測遠程主機操作系統(tǒng).
5.防止ICMP重定向報文的攻擊 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters EnableICMPRedirects REG_DWORD 0x0(默認值為0x1)
說明:該參數(shù)控制Windows 2000是否會改變其路由表以響應網(wǎng)絡設(shè)備(如路由器)發(fā)送給它的ICMP重定向消息,有時會被利用來干壞事.Win2000中默認值為1,表示響應ICMP重定向報文.
6.禁止響應ICMP路由通告報文
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\interface PerFORMRouterDiscovery REG_DWORD 0x0(默認值為0x2)
說明:“ICMP路由公告”功能可造成他人計算機的網(wǎng)絡連接異常,數(shù)據(jù)被竊聽,計算機被用于流量攻擊等嚴重后果.此問題曾導致校園網(wǎng)某些局域網(wǎng)大面積,長時間的網(wǎng)絡異常.因此建議關(guān)閉響應ICMP路由通告報文.Win2000中默認值為2,表示當DHCP發(fā)送路由器發(fā)現(xiàn)選項時啟用
7.防止SYN洪水攻擊
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters SynAttackProtect REG_DWORD 0x2(默認值為0x0)
說明:SYN攻擊保護包括減少SYN-ACK重新傳輸次數(shù),以減少分配資源所保留的時間.路由緩存項資源分配延遲,直到建立連接為止.如果synattackprotect=2,則AFD的連接指示一直延遲到三路握手完成為止.注意,僅在TcpMaxHalfOpen和TcpMaxHalfOpenRetried設(shè)置超出范圍時,保護機制才會采取措施.
8.禁止C$、D$一類的缺省共享
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters AutoShareServer、REG_DWORD、0x0
9.禁止ADMIN$缺省共享
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters AutoShareWks、REG_DWORD、0x0
10.限制IPC$缺省共享
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa restrictanonymous REG_DWORD 0x0 缺省
0x1 匿名用戶無法列舉本機用戶列表
0x2 匿名用戶無法連接本機IPC$共享
說明:不建議使用2,否則可能會造成你的一些服務無法啟動,如SQL Server
11.不支持IGMP協(xié)議
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters IGMPLevel REG_DWORD 0x0(默認值為0x2)
說明:記得Win9x下有個bug,就是用可以用IGMP使別人藍屏,修改注冊表可以修正這個bug.Win2000雖然沒這個bug了,但IGMP并不是必要的,因此照樣可以去掉.改成0后用route print將看不到那個討厭的224.0.0.0項了.
12.設(shè)置arp緩存老化時間設(shè)置
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services:\Tcpip\Parameters ArpCacheLife REG_DWORD 0-0xFFFFFFFF(秒數(shù),默認值為120秒)
ArpCacheMinReferencedLife REG_DWORD 0-0xFFFFFFFF(秒數(shù),默認值為600)
說明:如果ArpCacheLife大于或等于ArpCacheMinReferencedLife,則引用或未引用的ARP緩存項在ArpCacheLife秒后到期.如果ArpCacheLife小于阿ARPCacheMinReferencedLife,未引用項在ArpCacheLife秒后到期,而引用項在ArpCacheMinReferencedLife秒后到期.每次將出站數(shù)據(jù)包發(fā)送到項的IP地址時,就會引用ARP緩存中的項。
13.禁止死網(wǎng)關(guān)監(jiān)測技術(shù)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services:\Tcpip\Parameters EnableDeadGWDetect REG_DWORD 0x0(默認值為ox1)
說明:如果你設(shè)置了多個網(wǎng)關(guān),那么你的機器在處理多個連接有困難時,就會自動改用備份網(wǎng)關(guān).有時候這并不是一項好主意,建議禁止死網(wǎng)關(guān)監(jiān)測.
14.不支持路由功能
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services:\Tcpip\Parameters IPEnableRouter REG_DWORD 0x0(默認值為0x0)
說明:把值設(shè)置為0x1可以使Win2000具備路由功能,由此帶來不必要的問題.
15.做NAT時放大轉(zhuǎn)換的對外端口最大值
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services:\Tcpip\Parameters MaxUserPort REG_DWORD 5000-65534(十進制)(默認值0x1388--十進制為5000)
說明:當應用程序從系統(tǒng)請求可用的用戶端口數(shù)時,該參數(shù)控制所使用的最大端口數(shù).正常情況下,短期端口的分配數(shù)量為1024-5000.將該參數(shù)設(shè)置到有效范圍以外時,就會使用最接近的有效數(shù)值(5000或65534).使用NAT時建議把值放大點.
16.修改MAC地址
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\ 找到右窗口的說明為"網(wǎng)卡"的目錄,
比如說是{4D36E972-E325-11CE-BFC1-08002BE10318}
展開之,在其下的0000,0001,0002...的分支中找到"DriverDesc"的鍵值為你網(wǎng)卡的說明,比如說"DriverDesc"的值為"Intel(R) 82559 Fast Ethernet LAN on Motherboard"然后在右窗口新建一字符串值,名字為"Networkaddress",內(nèi)容為你想要的MAC值,比如說是"004040404040"然后重起計算機,ipconfig /all看看.
17.防止密碼被DUMP,你只需在服務里面關(guān)掉Remote regisitery services
以上是我對windows平臺服務器安全設(shè)置等的一些認識與看法,如果你有新的資料與看法,請寫信告訴我
特別感謝:以上一些安全設(shè)置我借鑒了大量的相關(guān)安全資料,與前人的相關(guān)安全文獻,特在此對他們表示感謝