IDS and IPS

IDS(intrusion detection system,入侵偵測系統)
是一種監測與識別未經授權之系統存取或更改企圖的程序,主要提供監視與警報和記錄,如同汽車警報器
原理:大都以解讀網路封包與系統日誌內容、網路流量或流向等方式來即時偵測、回報與反應可疑入侵情事,進而適時提出警訊
大部份被偵測到的安全攻擊是第三層到第六層
IDS記錄檔會記錄所有偵測到的事件,記錄會提供簡短描述,可用於分析與報告
屬於被動式的防禦行動,只能偵測已經發生的事件
缺點:無主動防禦,LOG太多也沒空看
優點:可做深層資料分析或數位證據

ps:
IDWG(intrusion detection exchange format)
定義不同廠商ids產品之間共通的語言規格與協定,採xml
目標是要在多個公司或站台間搜集並關聯資料,來偵測與對抗全球性網路入侵事件
ps:
AVDL(application vulnerability description language)
專門針對應用層的弱點,所建立的一個統一訊息傳遞標準,目前有多版本

IDS placement
通常架設在網路重要節點與主機系統之上,可監測網路流量與內容,或者是分析主機內的檔案流動
放firewall外面可看到最多攻擊情形
放firewall內部很多攻擊情形會被filter

………………

ways to detect an intrusion
signature recognition(特徵偵測);定義惡意特徵,一但比對到就alarm
 或稱Misuse detection(濫用偵測),須使用己知惡意行為與型態資料庫來進行比對分析
 大部份ids使用此方法
 優點:較不容易誤判,且識別攻擊較明確,可辨識己知惡意事件
 缺點:需時常更新特徵,無法辨識未知惡意事件
 Pattern Matching IDS:辨識方式,需常更新攻擊特徵資料庫
anomaly detection(異常偵測):定義正常情況,若超出正常情況的範圍就alarm
 使用統計原理,可偵測不尋常的現像,只能指出大概
 優點:可抓到未知特徵之攻擊,適合輔助
 缺點:誤判率較高,且定義正常情況較複雜,因此微調需花較多時間
 Behavioral(Statistical) Anomaly Detection:異常行為偵測,以行為為基礎,去找尋偏差行為
 Protocol Anomaly Detection:異常通訊協定偵測,只尋找封包標頭的差異 ex:tcp port80傳來的不是網頁,而是奇怪的data,則alarm
 Traffic Anomaly-Based:針對流量做判斷,看網路上的流量有沒有偏離正常的行為,ex:大量的封包或者是出現不明的封包
 Stateful Matching IDS:辦識方式,是先收集數個封包,在來判斷是否有攻擊的行為

……………..

Types of IDS:
host-based
network-based

Host-based(主機型),也稱HIDS
分析Logs為主,屬事後分析,可補救NIDS錯失偵測的入侵事件,適合有加密的網路
直接監視與通報發生在應用層的互動,可以檢查所有進入的命令,未經授權的檔案變更
缺點:可能因DOS失去做用,不能用來做網路的監測,監測時消耗該主機系統資源
通常使用以下技術
SIV(system integrity verifiers):或稱file-integrity(檔案完整性),snapshot(快照),checksum(檢查合)
 在己知乾淨狀態下對所有重要檔案算出hash值,並在事後重複此動作並比較其值,若發現遭變更即通報
 被動的,只能報告惡意行為的發生,而不能阻止他
behavior-monitoring(行為監視):real-time即時
 會對惡意的行為進行即時的監視攔截,提供早期預警與預防
 可在第一時間阻止惡意事件發生,但會耗費大量cpu時間host-based tool:
tripwire:siv tool
csa(cisco security agent) 

ps:
application-Based(應用型)
使用Application Logs,較易受攻擊
是在軟體應用之內分析事件的Host-Based IDSs 的一特別子集

Network-based(網路型),也稱NIDS
擷取與分析網路上流通的封包,屬事先預警,可保護一群電腦主機或監視整個網路
需在有混雜模式的網路以及封包層級的驅動程式,並在想監視的網路節區上安裝一部NIDS,且消除入侵證據較困難
缺點:網路型態過大會lost許多封包,需提高效能解決,也無法調查加密過封包,以及無法判斷誰在控制NIDS

ps:
sensor(感知器):可監視一網路節區的實體裝置,通常不具ip與mac,可能以含在如hub,router,repeater等內,但switch因架構無支援
封包層級驅動程式:封包監聽軟體,ex:tcpdump,windump
promiscuous modes(混雜模式):網卡須將封包傳封包層級驅動程式,網卡預設非混雜模式

ps:
WIDS(無線網路型)
主要對抗,MAC假冒,中間人攻擊, 未經授權AP,DOS…等

……………………………………………………………………………………………………………………….

true,false,positive,negative

condition 有以下
true:alarm right
false:alarm error
positive:發現有異常,ids is alarming
negative:沒有異常事件,ids is not alarming

錯誤情況為
false-positive(誤判):positive(系統發現異常發出警訊),false(但沒狀況發生,判斷錯誤),ids主要弱點誤判過多
false-negative(偽陰性):negative(系統認為沒異常事件),false(但沒偵測到,判斷錯誤),漏失一個攻擊
正常情況下為
true-positive:ids is alarming,the is true
true-negative:ids is not alarming,the is true

……………

indications of intrusions

常見的system入侵徵兆
modifications to system software and configuration files
gaps in the system accounting
unusually slow system performance
system crashed or reboots
short or incomplete log
logs containing strange timestamps
logs with incorrect permissions or ownership
missing logs
abnormal system performance
unfamiliar processes
unusual graphic displays or text messages

常見的file system入侵徵兆
the presence of new,unfamiliar files,or programs
changes in file permissions
unexplained changes in the file’s size
rogue file on the system that do not correspond to your master list of signed files
unfamiliar file name in directories
missing files

常見的network入侵徵兆
repeated probes of the available services on your machines
connections from unusual locations
repeated log in attempts from the remote hosts
arbitrary data in log files,indicating an attempt at creating either a DoS,or a crash service

……………

ids tool:
snort:opensource,support linux,win
blackICE defender
cybercop monitor
check point realsecure
cisco secure ids
dragon sensor
netprowler
etrust internet defense
hp openview node sentry
lucent realsecure
network flight recorder
realsecure
silentrunner
vanguard enforcer

……………

steps to perform after an ids detects an attack
1 configure a firewall to filter out the ip address of the intruder
2 alert the user/admin
3 write an entry in the event log,send an snmp trap datagram to a management console, ex:ibm tivoli
4 save the attack information,ex:timestamp,intruder ip,victim ip,port,portocol information,…
5 save a tracefile of the raw packets for later analysis
6 launch a separate program to handle the event
7 terminate the session

……………………………………………………………………………………………………………………….

evading ids

字串匹配的弱點
是最早被提出和實現的
這是最基本的檢測逃避技術
設計很差的特徵碼,攻擊者可以輕鬆地破壞對其的字串匹配

攻擊者可在此基礎上再加以變化,可加大ids的防禦難度
ex:透過把字串處理技術和字元替換技術結合到一起,我們可實現更複雜的字串偽裝。
ex:對於WEB請求,為了攔截這一個字串的所有變化,你可能需要1000個以上的特徵碼進行字串匹配,這還沒有考慮UNICODE。
防禦這種攻擊困難,因為這要求ids必須能夠理解這種解譯器如何收到的命令,ids也可以對使用解譯器的可疑行為進行報警,但是它很難對攻擊行為進行精確的監視。
PS:
字串匹配演算法:一些基於特徵碼的ids幾乎完全依賴於此演算法
目前大多數主流入侵檢測系統都有非常強大的字串匹配能力,足以檢測此類攻擊的大多數變形。

way to evade ids:
insertion
evasion
dos
complex attacks
obfuscation
desynchronization
fragmentation
session splicing

insertion(嵌入式攻擊):An IDS can accept a packet that an endsystem rejects
發生原因為 IDS接受目標主機所丟棄的封包
目地是為了讓ids和endsystem看的的狀況不同
加入一個欺騙性封包,讓ids可抓下來分析,但此封包會被目地端設備丟棄,讓ids判斷發生假象而無法偵測出攻擊行為

evasion(迴避攻擊):An end-system can accept a packet that an IDS rejects.
發生原因則為IDS丟棄目標主機所能接受的封包
目地是為了讓ids和endsystem看的的狀況不同
加入一個欺騙性封包,讓ids可抓下來分析,但此封包會被ids丟棄,讓ids判斷發生假象而無法偵測出攻擊行為

dos
可以達成如下目標:
消耗檢測設備的處理能力,使真正的攻擊逃過檢測。
塞滿硬碟空間,使檢測設備無法記錄日誌。
使檢測設備產生超出其處理能力的警報。
使系統管理人員無法研究所有的警報。
使檢測設備當機。

complex attacks

obfuscation:make code harder to understand or read
tool:obfuscator
ps:
第7層,HTTP 1.1裡支援zlib/gzip等Content-Encoding壓縮,可以將有惡意程式(通常為含有Java Script/VB Script 之HTML檔)壓縮而不被發現

desynchronizaition
用序列數逃避IDS的方法。有些IDS可能會對它本來期望得到的序列數感到迷惑,從而導致無法重新構建資料。
這一技術在1998年很流行,現在已經由時了,有些文章把 desynchronization這個術語代指其它IDS逃避方法。
分為:
post connection syn
desynchronization,pre connection

fragmentation
類似session splicing
tool:frateroute
碎片重組的問題是在進行字串匹配以前,入侵檢測系統必須在記憶體中暫存所有的碎片,然後進行重組。而且,他還需要知道碎片在目的主機會如何重組。
碎片攻擊包括:碎片覆蓋,碎片重寫,碎片逾時,針對網路拓撲的碎片技術(例如使用 小的TTL)等
碎片覆蓋:發送碎片覆蓋先前碎片中的資料
碎片逾時:依賴於入侵檢測系統在丟棄碎片之前會保存多少時間。大多數系統會在60秒之後將丟棄不完整的碎片流(從收到第一個碎片開始計時)。如果入侵檢測系統保存碎片的時間小於60秒,就會漏掉某些攻擊。
ps
這種技術結合其他的網路技術(例如:TTL值)將更有威脅。如果ids和被監視的系統不在同一個網段,攻擊者就可以在TTL上做手腳。
有的單位由於經費的限制,不能在自己的每個子網都部署IDS節點,只在網路的出入口部署一套IDS,監視所有的網路流量。
這種情況下,如果被攻擊的主機在其他的 子網,攻擊資料包到目標系統的Hop數就大於到IDS的Hop數。攻擊者可以偽造碎片的TTL,使某些碎片剛好能夠到達,而無法到達目標系統,
ps:
第3層,在IP層可以使用IP Fragment將含有惡意程式之封包切割為多個封包,以避免被Network IDS抓到Pattern

session splicing(會話拼接)
把會話資料放到多個資料包中發出,每次只傳送幾個字元的資料,就可能避開字串匹配入侵檢測系統的監視。
要監視這種攻擊,需要入侵檢測系統或者能夠理解、監視網路會話 (即使IDS有這種能力,攻擊者也可以透過其他的方式避開監視),或者採用其他的技術監視這種攻擊。
為了真正有效地檢測這種攻擊,需要入侵檢測系統能夠完整地理解網路會話,不過這是非常困難的。
應該注意的是目前大多數系統能夠重組會話,在所有的會話資料到達之前,它們會等待一些時間。而等待時間的長短與程式有關。
ps:
Apache/RedHat的會話超時時間是6分鐘,IIS /Win2K等待的時間非常長。因此,攻擊者完全可以每15分鐘發送一個字元的會話資料, 而IIS還會認為是有效的會話。
最新版本的snort能夠監視長期的會話和網路層欺騙,例如:小TTL值。

other
第4層,將含有惡意程式之TCP連線切成多個TCP Segments,以避免被 Network IDS抓到Pattern
第7層,HTTP/1.1裡支援了Transfer-Encoding 可以在傳輸時加上類似unix裡split能將一份要傳送的message切割成多份

polymorphic shell code(多型shell代碼)
這種技術只用於緩衝區溢位攻擊,對付基於特徵碼的檢測系統非常有效,而對於智慧化的或者基於協定分析的檢測系統的效果要差很多。
polymorphic shell code使用很多方法逃避字串匹配系統的檢測。
首先(以x86架構為例),使用其他的字元代替0x90執行無操作(no-op)指令。對於X86架構, 有55種替代方式,其他的要少一些。這些替代方式以一種偽隨機的方式結合在一起,建立緩衝區溢位shell代碼包含無操作(no-op)指令的部分。除此 之外,shell代碼本身也採用XOR機制編碼。透過這種方式建立的緩衝區溢位shell代碼被重組後不會包含以上的特徵碼,從而能夠逃過字串匹配檢測。
ps:使用這種技術重新構造的shell代碼更為危險,入侵檢測設備非常難以檢測到,對基於特徵碼檢測的IDS是一個很大的挑戰。
ps:設計構想來自於病毒逃避(virus evasion)技術。

透過搜索無操作(no-op)字元的一個特定長度的正則運算式,可以實現對多型shell代碼的精確檢測。
spp_fnord:用於檢測多型shell代碼的 snort預處理外掛,這個外掛採用了和上面相似的檢測技術。這個預處理外掛有Port和長度兩個配置選項。
ex:如果某個人在配置時設置了80、21、23和53等Port,它就只對這幾個Port的資料流量進行多型shell代 碼的檢測,而不會對其他Port(例如:22)進行檢測。

…………………

tools to evade ids

evade tool有
sidestep
admutate:use polymorphic shell code
 accept a buffer overflow exploit as input,and randomly creates a functionally equivalent version which bypasses ids
mendax
stick
fragrouter
anzen nidsbench

packet generators tool
aicmpsend
blast:可產生一些封包測 ids
cybercop scanner’s casl
ethercap:
hping2 beta 54
icmpush
ipsend
libnet
mgen toolset
net::rawip
sing

…..

firewall,ids test tool:
firewall tester
traffic iq professional
nides(next-generation intrusion detection expert system),第一個perl寫的
secure host
snare
tcpopera: 可以對設備測payload
firewall informer

………………………………………………………………………………………………..

IPS(Intrusion Prevention System,入侵防禦系統)
=IDS+主動防禦
能夠主動地將符合資格的攻擊行為立即切斷,讓攻擊尚未達成前就立即阻擋

intrusion prevention strategies:
host-based memory and process protection
session interception
gateway intrusion detection

ips deployment risks:
session interception and ids identification
exploit defeat the attempted block
self-inflicted Dos
blocking legitmate traffic

type of ips
host based ips
network based ips
content based ips
rate based ips

information flow in ids and ips:
raw packet capture
filtering
packet decoding
storage
fragment reassembly
stream assembly
stateful inspection of tcp sessions
firewalling

ips products
ibm:proventia network ips
cisco:ios ips,ips4200series sensors
mcafee:host intrusion prevention
checkpoint:ips-1,interspect
sourcefire:ips
3com:airprotect sentry 5850 wireless ips
radware:defensepro
securitymetrics:appliance
codeplex:wehntrust
lan secure:security center
privacyware:threatsentry
untangle:intrusion prevention
infoprocess:antihook
tippingpoint:intrusion prevention systems