一、IPS系統簡介 (應用層上應用)
防火牆只在網絡層上應用,IPS 和防火牆相比,檢測及過濾功能更為強大,它通過串聯在網絡主干線路上,對防火
牆所不能過濾的攻擊進行過濾。這樣一個兩級的過濾模式,可以最大地保證系統的安全。在
一些專業的機構,或對網絡安全要求比較高的地方,IPS和其他審計跟蹤產品結合,可以提
供針對網絡信息資源全面的審計資料,這些資料對於攻擊還原、入侵取證、異常事件識別、
網絡故障排除等等都有很重要的作用。
作為串接部署的設備,IPS必須要確保用戶業務不受影響,錯誤的阻斷必定意味着影響
正常業務,在錯誤阻斷的情況下,各種所謂擴展功能、高性能都是一句空話。這就引出了
IPS設備所設計的重點——精確阻斷,即精確判斷各種深層的攻擊行為, 並實現實時的阻斷。
同時,作為一款防御入侵攻擊的設備,毫無疑問,防御各種深層入侵行為同樣是IPS的重點,
這也是IPS系統區別於其他安全產品的本質特點。這也給精確阻斷加上了一個修飾語:保障
深層防御情況下的精確阻斷,即在確保精確阻斷的基礎上,盡量多地發現攻擊行為(如 SQL
注入攻擊、緩沖區溢出攻擊、惡意代碼攻擊、后門、木馬、間諜軟件),這是 IPS 發展的主
線功能。
全球最佳的新一代IPS (NGIPS): HP TippingPoint
TippingPoint的主動式入侵防御系統能夠阻止蠕蟲、病毒、木馬、拒絕服務攻擊、間諜軟件、VOIP攻擊以及點到點應用濫用。通過深達第七層的流量偵測,TippingPoint的入侵防御系統在發生損失之前阻斷惡意流量。利用TippingPoint提供的數字疫苗服務,入侵防御系統能得到及時的特征、漏洞過濾器、協議異常過濾器和統計異常過濾器更新從而主動地防御最新的攻擊。此外,TippingPoint的入侵防御系統是目前能夠提供微秒級時延、高達5G的吞吐能力和帶寬管理能力的最強大的入侵防御系統。
通過全面的數據包偵測,TippingPoint的入侵防御系統提供吉比特速率上的應用、網絡架構和性能保護功能。應用保護能力針對來自內部和外部的攻擊提供快速、精准、可靠的防護。由於具有網絡架構保護能力,TippingPoint的入侵防御系統保護VOIP系統、路由器、交換機、DNS和其他網絡基礎免遭惡意攻擊和防止流量異動。TippingPoint的入侵防御系統的性能保護能力幫助客戶來遏制非關鍵業務搶奪寶貴的帶寬和IT資源,從而確保網路資源的合理配置並保證關鍵業務的性能。
TippingPoint 應用情境:
1、網絡忽快忽慢,不知原因
2、經常AD lock,無法登入網域
3、防火牆常被塞爆
4、上微軟Patch(補丁)卻沒時間重開機
5、希望虛擬化環境中,提供IPS保護
6、希望管理上網行為
二、構建企業Web安全防護
一個Web服務器,從上到下可以分為上中下三層。最低層為操作系統層,如Windows或者Linux操作系統;中間層是Web服務程序、數據庫服務等通用組件;最上面一層是與內容和業務相關的網頁程序。
我們知道WEB服務器可以分為三層結構,而其中任何一層出現問題就可能會導致整個網站的安全受到威脅。所以企業安全管理人員在部署WEB服務器安全策略是應當全面的構建企業Web安全防護網。才可以真正有效的做到web安全防護。
構建企業Web安全防護一:每一層都可能存在安全漏洞
在這里筆者要告訴大家一個非常不幸的消息。在Web服務器的三層架構中,任何一層都有或大或小的漏洞。在操作系統層面,無論采用Windows操作系統還是采用Linux操作系統,都不時的會有黑客可以遠程利用的安全漏洞被發現。相比之下,Linux操作系統要比Windows操作系統安全一點。而中間層,如IIS、ASP、SQLServer也不時的有“漏洞門”的問題。最上層的網頁程序,漏洞更是不少。如著名的SQL注入式攻擊漏洞就是出現在網頁程序層中。
雖然現在有比較多的安全防護產品,但是比較可惜的是,他們往往都只是針對一個特定的層面。或者說目前很多Web網站的防護技術並不過硬。如不少企業在Web服務器外面都會部署一個防火牆。但是因為針對Web服務器的攻擊,很多是直接對應用層的漏洞發起的攻擊行為,他們可以直接通過80端口來完成攻擊的行為。在這種情況下,即使采用了防火牆也無濟於事。當任何一層被攻破,那么其它兩層即使保護的再好,最后的結果都只有一個,那就是失敗。
總之,Web服務器的每一層都存在着比較嚴重的漏洞。如果要確保Web服務器的安全,那么必須要構建一個立體的防護網。
構建企業Web安全防護二:利用IPS構建一個立體的Web防護網
IPS(入侵防御系統)是一個集成入侵防御與檢測、病毒過濾、帶寬管理和URL過濾等功能的一個綜合性的防御系統。對於Web服務器來說,其基本上涵蓋了上中下三個層面的內容。為此借助IPS技術,就可以為Web服務器構建一個立體的Web防護網。
眾所周知,防火牆等設備,其主要關注的是網絡層的基礎安全,而不會涉及到應用層。而像SQL注入式攻擊等等基本上都發生在應用層。為此對於Web服務器的安全貢獻不是很大。而IPS技術與防火牆不同,其可以深入到應用層面。IPS防御系統會檢測從報文頭到報文負載的每一個字節,將數據流流與攻擊特征字節進行對比,從而有效的發現隱藏在正常數據流中的攻擊報文。可見通過IPS系統可以為Web服務器構建一個立體的防護網。
IPS防御系統的理論知識大家可以去查看具體的書籍,這不是筆者這里要重點討論的內容。筆者這里需要強調的是,在部署IPS系統時需要注意的內容。
構建企業Web安全防護三:IPS選購時要選品牌、看技術實力
IPS與普通的安全產品不同,其核心的內容就是技術。具體的說,就是檢測引擎。雖然現在市面上提供IPS產品的廠商有很多。但是根據筆者的了解,其效果是層次不齊。有些IPS產品,雖然打着ISP旗號,但是基本上起不到IPS的功能。這主要是因為檢測引擎等核心技術,各個廠商都非常的看重。有些技術實力稍微薄弱一點的企業,就無法研發完善的檢測引擎。而由於缺乏這個核心的技術,則IPS功能就只成了一個擺設。
為此企業在選購IPS防御系統的時候,主要需要關注的是廠商的技術實力。簡單的說,就是需要選品牌的。國內有幾家廠商的技術實力還比較雄厚,對於檢測引擎的升級也比較快。能夠在最短的時間內,發現可疑的攻擊行為。
構建企業Web安全防護四:IPS選購時需要關注其涉及的層面
在文章一開始,筆者就談到過,Web服務器從上到下可以分為三層。如果任何一層出現漏洞,那么都會給服務器帶來致命的打擊。為此我們在選擇IPS防御系統的時候,也需要關注,其選擇的產品到底是否能夠對這個三個層面構成一個立體的防御體系。
如針對Web網頁程序的攻擊,管理員需要評估產品是否會分析網頁程序ud每一個HTTP請求,並根據常見的網頁漏洞原理對每個客戶端提交的HTTP請求進行攻擊特征匹配。如果發現有可疑的請求,能夠自動將攻擊報文阻斷並報警。
而對於中間層來說,需要IPS防御系統能夠分析跟蹤Web服務器中間層組建的攻擊特點以及常見的漏洞,並在IPS系統中實現核心的防護措施。如對於SQLServer數據庫服務器來說,IPS系統需要根據已有的信息,來判斷SQLServer服務器是否存在可以被攻擊的漏洞等等。
對於底層的操作系統來說,需要IPS系統能夠對其提供防護。如系統需要分析常見操作系統的每一個可以被遠程利用的漏洞,分析漏洞的原因和利用這個漏洞發生攻擊的常見手段。並從歷史的攻擊案例中分析出攻擊的特征。然后將這個結果與現有的數據流進行匹配,以判斷是否有可以的攻擊行為。
在選型時,安全技術人員需要評估IPS能否在以上三個層面提供足夠安全的技術保障。如果不能股從技術層面進行測試的話,那么至少要看看其是否通過了相關的國際認證。如對於操作系統層的防火,可以考察其是否通過了微軟的MAPP認證。因為只要通過了這個認證,那么廠商就可以提前獲得微軟的漏洞信息(在微軟正式發布漏洞聲明之前)。對於安全防護來說,有時候時間就是生命。提早一步知道系統的漏洞,那么就可以在攻擊者發起攻擊之前就采取防護措施。
另外有些廠商提供的IPS防御系統,其關注的內容並不是很全面。如只管住中間層和Web網頁程序層的內容。他們認為操作系統層的安全可以有系統管理員來負責或者由微軟的Update服務來實現。雖然這也有一定的道理,但是其會增加管理人員的工作量。需要同時從多個平台上來可以Web服務器的安全。這不是很理想。
構建企業Web安全防護五:根據Web服務器的規模來選擇不同規格的產品
Web服務器是一個很特殊的應用。其客戶多則有上億,而少則可能只有幾百個(如一個B/S架構的OA應用)。這就對IPS的選型提出了一個額外的挑戰。因為所有的通信都需要經過IPS系統的檢測。為此對於其性能肯定會造成一定程度的影響。
當Web服務的並發性訪問數量比較高時,這個負面影響會非常的嚴重。此時對於IPS服務器就需要采用比較高的配置,以縮短檢測過程所占用的時間。而對於規模比較小的應用,其流量本身就不是很大,此時采用的配置可以底一點。畢竟一分錢一分貨。高配置與低配置在最后的結果上可能沒有多少的差異,但是在性能上會相差很多。當然在價格上,也是一個天上、一個地下。
總之,在選擇IPS防御系統的時候,要根據自己企業的Web規模來選擇合適的規格。此時主要是從IPS的吞吐量,即性能角度進行考慮。一個基本的原則,就是盡可能的減少由於采用了IPS系統而給用戶帶來的負面影響。
三、企業Linux開源系統主機入侵檢測及防御實戰
在開源系統中,例如Linux操作系統,從應用到內核層面上提供了3種入侵檢測系統來對網絡和主機進行防御,它們分別是網絡入侵檢測系統Snort、主機入侵檢測系統LIDS以及分布式入侵檢測系統SnortCenter。
企業在實際的入侵檢測及防御體系的構建中,有的以網絡為主,進行網絡威脅的發現和封堵;有的以主機防御為主,主要保證主機不遭受入侵。如果光針對其中一方面進行構建的話,則會存在偏差,建議綜合多方面的信息,進行縱深的綜合性防御,這樣才能起到很好的效果。
在開源系統中,例如Linux操作系統,從應用到內核層面上提供了3種入侵檢測系統來對網絡和主機進行防御,它們分別是網絡入侵檢測系統Snort、主機入侵檢測系統LIDS以及分布式入侵檢測系統SnortCenter。其中,Snort專注於在網絡層面進行入侵檢測;LIDS則側重於在主機層面進行入侵檢測和防御;SnortCenter則是為了在分布式環境中提升入侵檢測的實時性和准確性的一種分布式檢測機制。
在企業的實際應用過程中,經常會忽略LIDS的特殊作用。其實,作為植根於內核層次的主機入侵檢測機制,它是開源系統作為主機尤其是服務器不可缺少的安全機制。本文將詳細介紹如何使用它進行逐級安全防御。
簡介
LIDS是Linux下的入侵檢測和防護系統,是Linux內核的補丁和安全管理工具,它增強了內核的安全性,它在內核中實現了參考監聽模式以及強制訪問控制(Mandatory Access Control)模式。區別於本文在前面部分介紹的Snort入侵檢測系統,它屬於網絡IDS范疇,而LIDs則屬於主機IDS范疇。
一般來說,LIDS主要功能包括如下幾方面:
重要系統資源保護:保護硬盤上任何類型的重要文件和目錄,如/bin、/sbin、/usr/bin、/usr/sbin、/etc/rc.d等目錄和其下的文件,以及系統中的敏感文件,如passwd和shadow文件,防止未被授權者(包括root用戶)和未被授權的程序進入。保護重要進程不被終止,任何人包括root也不能殺死進程,而且可以隱藏特定的進程。防止非法程序的I/O操作,保護硬盤,包括MBR保護等等。
入侵檢測:LIDS可以檢測到系統上任何違反規則的進程。
入侵響應:來自內核的安全警告,當有人違反規則時,LIDS會在控制台顯示警告信息,將非法的活動細節記錄到受LIDS保護的系統log文件中。LIDS還可以將log信息發到用戶的信箱中。並且,LIDS還可以馬上關閉與用戶的會話。
安裝LIDS
第一步:打補丁並配置Linux內核選項安裝
LIDS通常需要下載其最新版本的LIDS內核補丁包,然后進行安裝。下載的網站為:http://www.lids.org/,目前網站上的最新版本為:lids-2.2.3rc7-2.6.28.patch。首先將下載的LIDS內核補丁包保存到/usr/src目錄下,然后以根用戶的權限進入命令行模式進行如下步驟地操作:
(1)假設系統內核文件在/usr/src/Linux目錄下,通過下列命令安裝LIDS內核補丁包:
# cd /usr/src/Linux
# patch p1 < /usr/src/ lids-2.2.3rc7-2.6.28.patch
(2)編輯內核,選取相關選項:
//進入編輯內核界面
# make menuconfig
進入內核編譯菜單界面后,建議把有關LIDS的所有項都選中。這樣做的目的能讓不太熟悉內核編譯的用戶能省去很多不必要的麻煩,並且將所有的LIDS項都選擇上也不會占用多少的內核空間,對加入LIDS后的內核性能也不會產生多少的影響。下面對一些選項進行解釋:
Prompt for development and/or incomplete code/drivers
Sysctl support
Linux Intrusion Detection System support.
[ ] Hang up console when raising a security alert
當收到一個安全警告掛起控制台
[ ] Security alert when execing unprotected programs before sealing LIDS
當執行沒有受LIDS保護的程序時發送安全警告
[ ] Do not execute unprotected programs before sealing LIDS
在安裝LIDS前不執行沒有受保護的程序
[ ] Try not to flood logs
盡量不要讓日志溢出
[ ] Allow switching LIDS protections
允許轉換LIDS保護
[ ] Allow remote users to switch LIDS protections
允許遠程用戶來轉換LIDS保護
[ ] Allow any program to switch LIDS protections
允許任何程序來轉換LIDS保護
[ ] Allow reloading config. File
允許重新引導配置文件
[ ] Port Scanner Detector in kernel
內核的端口掃描器
[ ] Send security alerts through network
通過網絡發送安全警告
[ ] Hide klids kernel thread
隱藏內核進程
[ ] Use generic mailer pseudo-script
使用通用的郵件發送腳本
(3)在選擇好要加入到內核中的LIDS項后,就可以通過下列命令重新編譯內核:
# make dep
# make clean
# make bzImage
# make modules
# make modules_install
完成上述內核編譯工作后,一個加入了LIDS的內核就重新編譯好了。要使加入了LIDS的新內核工作,必需重新啟動系統。
第二步:源代碼安裝LIDS工具包
同樣,首先從上述網站上下載LIDS工具包的安裝文件,目前網站上的最新版本為:lids-2.3.rc7-2.6.28.patch,然后按如下步驟安裝它:
(1)解壓縮源碼包
# tar -zxvf lids-2.3.rc7-2.6.28.patch
(2)切換目錄並生成makefile文件
# cd lids-2.3.rc7-2.6.28
# ./configure
(3)安裝
# make
# make install
這樣就會將Lidsadm和Lidsconf這兩個工具安裝到/sbin/目錄中,同時會創建一個/etc/lids的目錄,並會在此目錄下生成一個默認的配置文件。
配置和使用LIDS
基本配置
必須配置LIDS系統,使其符合用戶的安全需要。用戶可以定義受保護的文件、受保護的進程等等。
首先,更新缺省lids.conf的inode/dev值:
# /sbin/lidsadm –U
然后,獲得一個RipeMD-160加密口令:
# /sbin/lidsadm -P
缺省情況下,lidsadm將把缺省配置文件安裝到/etc/lids/。用戶必須根據自己的需要重新配置。當內核啟動時,配置信息就把相關信息讀入內核來初始化LIDS系統。需要特別注意該目錄中的如下幾個相關的配置文件:
lids.conf:這個文件用來存儲LIDS ACLs信息。它包括定義對象訪問類型的ACLs(訪問控制列表);
lids.cap:這個文件包括系統的所有性能,可以編輯這個文件來配置這些性能;
lids.net:這個文件用來配置發給管理員信箱的警告信息。用戶可以定義SMTP服務器、端口、消息頭等。僅在配置內核時,選擇了Send security alerts through network內核配置選項才有該文件;
lids.pw:這個文件存儲由“lidsadm –P”命令生成的密碼文件。配置內核時需要選擇Allow switching LIDS protections選項,就必須有該文件。
Lidsadm工具
Lidsadm是LIDS的管理工具單元,可以用它來管理系統中的LIDS。Lidsadm的作用主要就是啟用或停用LIDS,以及封存LIDS到內核中和查看LIDS狀態。
使用下列命令可以列出Lidsadm的所有可用選項:
# lidsadm –h
其常用命令參數的具體含義如下:
-s:開關某些保護選項時指示應提交密碼;
-I:開關某些保護選項時不提交密碼
LIDS_FLAG:為Lidsadm的標志值
-v:顯示版本
-V:查看現在LIDS狀態
-h:列出所有選項
另外,Lidsadm還包括了許多常用的部分主要功能模塊,它們的列表和主要功能說明如表1所示:
表1 Lidsadm主要功能模塊說明
另外,Lidsadm還有如下可用的標志值(Available flags):
LIDS:禁止或激活本地LIDS;
LIDS_CLOBAL:完全禁止或激活LIDS;
RELOAD_CONF:重新加載配置文件。
Lidsconf工具
Lidsconf主要用來為LIDS配置訪問控制列表(ACLs)和設置密碼。輸入以下命令能顯示Lidsconf所有的可用選項:
# lidsconf –h
此命令執行后會返回以下命令參數:
-A:增加一條指定的選項到已有的ACL中
-D:刪除一條指定的選項
-E:刪除所有選項
-U:更新dev/inode序號
-L:列出所有選項
-P:產生用Ripemd-160加密的密碼
-V:顯示版本
-h:顯示幫助
-H:顯示更多的幫助
-s [--subject]:指定一個子對像,可以為任何程序,但必須是文件。
-o[object]:可以是文件、目錄或功能(capabilities)和socket名稱。
-j:它有以下幾個參數:
DENY:禁止訪問
READONLY:只讀
APPEND:增加
WRITE:可寫
GRANT:對子對像授與能力
ignore:對設置的對像忽略所有權限
disable:禁止一些擴展特性
其它選項:
-d:目標的可執行domain
-i:繼承級別
-t:指定從某一時段到某一時段可以進行怎樣的操作
-e:擴展列表
主要使用方法
(1)配置LIDS保護的文件和目錄
首先,用戶需要根據具體的情況來確定要保護哪些文件。一般情況下,為了保證Linux系統安全,至少需要保護系統二進制文件和系統配置文件,比如:/bin、/sbin/、/usr/、/etc/、/var/log/等。
其次,需要確定以什么方式來保護文件。LIDS提供了如下四種保護類型:
1)拒絕任何人訪問:帶有DENY標志的文件和目錄沒有人能夠看見,也不能修改。那些非常敏感的文件應該加上DENY標志。其用法如下:
lidsconf -A -o file_to_protected -j DENY
例如,可以使用如下命令來拒絕用戶(包括root用戶)對/etc/passwd文件的訪問:
# lidsconf -A -o /etc/ passwd -j DENY
在重啟或重新加載配置文件后,用戶將會看到相應的操作遭到LIDS的拒絕,從而保護該文件:
# ls /etc/passwd
ls: /etc/passwd: No such file or directory
2)配制只讀文件:任何用戶不能改變帶有只讀標記的文件。比如/etc/passwd、/bin/passwd文件一般屬於此類。
其用法如下:
lidsconf -A -o file_to_protect -j READONLY
例如,我們可以保護整個/bin/目錄,使之只讀,如下命令所示:
# /sbin/lidsconf -A -o /bin/ -j READONLY
也可以保護/etc/passwd文件為只讀,如下命令:
# /sbin/lidsconf -A -o /etc/passwd -j READONLY
3)只能追加的文件:一般來說,系統日志文件應定義成此類。比如/var/log/message、/var/log/secure。這些文件只能以追加的模式打開,用戶不能修改前面的部分。
其用法如下:
lidsconf -A -o filename_to_protect -j APPEND
例如,我們可以保護系統日志文件,如下命令所示:
# /sbin/lidsconf -A -o /var/log/message -j APPEND
# /sbin/lidsconf -A -o /var/log/secure -j APPEND
我們也可以針對具體的網絡服務器日志進行保護:
//保護httpd日志文件
# /sbin/lidsconf -A -o /var/log/httpd -j APPEND
//保護vsftpd日志文件
# /sbin/lidsconf –A –o /var/log/vsftpd –
參考: http://netsecurity.51cto.com/art/201009/227742.htm
http://baike.baidu.com/view/5027516.htm?fr=aladdin
http://www.rising.com.cn/newsletter/news/2012-08-20/12156.html
本文出自 “Ricky's Blog” 博客,請務必保留此出處http://57388.blog.51cto.com/47388/1555098