- 論壇徽章:
- 0
|
翻譯信息:
英-->;中:包子
http://secu.zzu.edu.cn
原文出自http://www.linuxfocus.org
摘要:
今天,許多信息都是存儲(chǔ)在計(jì)算機(jī)系統(tǒng)中,因此很容易通過計(jì)算機(jī)網(wǎng)絡(luò)遠(yuǎn)程訪問他們并獲取數(shù)據(jù),無論是財(cái)政,行政,軍事,工業(yè)還是金融信息。不幸的是,這些數(shù)據(jù)很容易被一些惡意的人獲取并摧毀,因?yàn)樗麄儾恢朗裁唇械赖隆?br />
關(guān)于道德方面,我們無能為力,在本文中我將談?wù)勗贒ebian GNU/Linux系統(tǒng)使用一些工具來發(fā)現(xiàn)和跟蹤入侵者。
介紹
當(dāng)我們選擇了Linux系統(tǒng)之后,我們得考慮在那么多個(gè)發(fā)行版中到底使用哪個(gè)版本,他們許多都是基于RedHat,例如Conectiva (巴西), Hispa source(西班牙), Mandrake (法國), SuSE (德國), Caldera和其他的版本都使用RPM 包管理器,而Slackware更象傳統(tǒng)的Unix盡量使用.tgz包,他們幾乎都是商業(yè)公司開發(fā)的,但Debian例外。 Debian提供了一個(gè)叫DPKG的包管理器幫助我們自動(dòng)在Internet上查找和升級(jí)軟件,檢查信任關(guān)系,這樣使系統(tǒng)管理更加簡單并且可以及時(shí)的打上安全補(bǔ)丁。
為什么使用Debian GNU/Linux ?
Debian也有一些很重要的功能:
1) 他不包含商業(yè)意圖并且不按照市場規(guī)則運(yùn)作。
2) 他有一個(gè)非常優(yōu)秀的漏洞跟蹤系統(tǒng),問題將在48小時(shí)內(nèi)得到解決。
3) 他從一開始就是想開發(fā)一個(gè)完善和可信的操作系統(tǒng)。
4) 他是由全球的志愿者一起開發(fā)的。
每個(gè)新的版本都對(duì)一些新的硬件體系提供支, 現(xiàn)在他支持Alpha, ARM, HP PA-RISC, Intel x86, Intel IA-64, Motorola 680x0, MIPS, MIPS (DEC), Power PC, IBM S/390, Sparc并且可以工作在Sun UltraSparc和Hitachi SuperH。他是Linux系統(tǒng)中支持硬件體系最多的平臺(tái)。
在現(xiàn)有的Debian發(fā)行版中,有很多實(shí)時(shí)入侵檢測工具可以幫助我們檢測到惡意的連接。他有兩種類型,一個(gè)是監(jiān)視整個(gè)網(wǎng)絡(luò)的(NIDS),另外一類是監(jiān)視單個(gè)主機(jī)的(HIDS)。
主機(jī)工具
我們使用PortSentry來發(fā)現(xiàn)端口掃描,TripWire來檢測系統(tǒng)完整性和使用LogSentry做日志分析。第一個(gè)和最后一個(gè)工具都是Psionic Technologies的TriSentry套件。
端口掃描檢測
PortSentry監(jiān)視我們系統(tǒng)的端口,當(dāng)他發(fā)現(xiàn)一個(gè)非正常的連接請(qǐng)求的時(shí)候,他可以采取一些行動(dòng)(一般是阻攔)。
他的主頁在http://www.psionic.com/products/portsentry.html 同時(shí)PortSentry也支持Solaris, BSD, AIX, SCO, Digital Unix, HP-UX, and Linux系統(tǒng).
在Debian中,輸入下面的命令就可以把他裝上了:
apt-get install portsentry
有三種不同的模式可供選擇:基本模式,隱蔽模式和高級(jí)模式。他的配置文件在/usr/local/psionic/portsentry/portsentry.conf file
他的主要參數(shù)如下:
TCP_PORTS,這里你定義在基本模式或者隱蔽模式下需要控制的端口,作者按照不同的控制級(jí)別提供了三個(gè)端口列表,最大的端口數(shù)量是64個(gè)。
UDP_PORTS,和上面的相似,不同的只是UDP端口
ADVANCED_PORTS_TCP, ADVANCED_PORTS_UDP, 在高級(jí)模式中可能會(huì)用到高端口檢測,最大可以定義到65535,但是建議不要超過1024,以免誤報(bào)。
ADVANCED_EXCLUDE_TCP, ADVANCED_EXCLUDE_UDP,提供了一個(gè)排除列表,在高級(jí)模式中,里面的端口將不會(huì)被監(jiān)視。在這里,你可以寫上你提供特殊服務(wù)的端口,但不要是真正的服務(wù),例如: ident
IGNORE_FILE, 在這里我們可以寫上需要忽略IP的文件的位置,在這里可以找到回環(huán)地址,你同樣可以在這里添加一個(gè)本地地址。
KILL_ROUTE,在這里我們可以添加一個(gè)命令來阻攔惡意的主機(jī),例如: iptables -I INPUT -s $TARGET$ -j DROP,$TARGET$指的是惡意主機(jī).
KILL_RUN_CMD, 在阻攔惡意主機(jī)之前執(zhí)行的命令.
SCAN_TRIGGER, 定義超過多少次攻擊才啟動(dòng)報(bào)警.
PORT_BANNER, 在端口被連接之后顯示的banner信息
在配置完之后,你最好使用下面的參數(shù)執(zhí)行其中的一中模式:TCP是使用-tcp (基本模式), -stcp (隱蔽模式)和-atcp (高級(jí)模式);UDP就相應(yīng)的改為 -udp, -sudp, -audp.
完整性檢查
可以使用TripWire進(jìn)行系統(tǒng)完整性檢查,他的主頁在http://www.tripwire.org他的linux版本是免費(fèi)的而Windows NT, Solaris, AIX and HP-UX的版本則是商業(yè)化的.
在Debian中,我們使用下面的命令安裝他:
apt-get install tripwire
保存信息需要兩個(gè)密鑰: 第一個(gè)是"site key",他是用來加密策略和配置文件的,另外一個(gè)是"local key"是用來加密檢測的信息的。
一個(gè)準(zhǔn)備好的配置文件在/etc/tripwire/twpol.txt ,你可以使用下面的命令初始化他:
twadmin -m P /etc/tripwire/twpol.txt
我們使用下面的命令創(chuàng)建一個(gè)當(dāng)前文件系統(tǒng)初始的數(shù)據(jù)庫:
tripwire -m i 2
檢測系統(tǒng)完整性就使用下面的命令:
tripwire -m c
使用下面的命令刪除配置文件,以免被入侵者發(fā)現(xiàn)了你改動(dòng)了什么文件:
rm /etc/tripwire/twcfg.txt /etc/tripwire/twpol.txt
如果你需要重新創(chuàng)建配置文件,你可以使用下面的命令:
twadmin -m p >; /etc/tripwire/twpol1.txt twadmin -m f >; /etc/tripwire/twcfg.txt
日志分析
日志檢測是LogSentry的一部分,他以一個(gè)非常有效的方法分類和產(chǎn)生可讀性強(qiáng)的活動(dòng)和錯(cuò)誤報(bào)告。他分為忽略,忽略異常,異;顒(dòng),入侵四種不同的日志等級(jí)。
他的主頁在http://www.psionic.com/products/logsentry.html. 他可以很好的運(yùn)行在Solaris, BSD, HP-UX和Linux系統(tǒng)中。
在Debian中,我們使用下面的命令安裝他:
apt-get install logcheck
logtail程序被安裝在/usr/local/bin,下面相應(yīng)的程序也被安裝:
Logcheck.sh,
日志檢測腳本
Logcheck.hacking,
入侵的規(guī)則文件
Logcheck.ignore,
忽略的規(guī)則文件
Logcheck.violations,
異常的規(guī)則文件
Logcheck.violations.ignore,
忽略異常的規(guī)則文件
你可以使用cron讓他每小時(shí)執(zhí)行一次: 0 * * * * /bin/sh /usr/local/etc/logcheck.sh
網(wǎng)絡(luò)工具
我們使用Snort來發(fā)現(xiàn)網(wǎng)絡(luò)攻擊,他的主頁在http://www.snort.org他同樣可以很好的運(yùn)行在多種操作系統(tǒng)上,包括BSD, Solaris, AIX, Irix, Windows, MacOS X和Linux.
在Debian中,我們使用下面的命令安裝他:
apt-get install snort
他有三中工作模式:包括嗅探模式,包記錄模式和入侵檢測模式。
他有下面的幾個(gè)主要的參數(shù):
-l 日志的存放目錄
指定日志存放的目錄。
-h IP
指定需要監(jiān)控的IP地址。
-b
使用TcpDump的格式輸出。
-r 文件
處理一個(gè)TcpDump的格式的文件。
Snort的嗅探和包記錄模式
在嗅探模式,他讀取任何流過網(wǎng)絡(luò)數(shù)據(jù)并把他輸出到終端,而包記錄模式就會(huì)把數(shù)據(jù)記錄到一個(gè)目錄中。
Snort -v
顯示IP頭信息
Snort -dv
以TcpDump的格式詳細(xì)輸出
Snort -dev
以TcpDump的格式詳細(xì)輸出并顯示第二層頭信息
Snort的入侵檢測模式
在這個(gè)模式中snort將檢測端口掃描, DoS (拒絕服務(wù)攻擊), exploits, etc. 他由位于/usr/local/share/snort的規(guī)則決定,你可以從他的網(wǎng)站得到最新的規(guī)則庫。
配置他很簡單,只須對(duì)snort.conf做一些小小的修改,比如網(wǎng)絡(luò)信息和工作目錄等,下面先改變IP設(shè)置:
var HOME_NET IP
簡單的執(zhí)行Snort只須輸入:
snort -c snort.conf
日志文件在/var/log/snort,我們可以在這里看到攻擊者的IP地,當(dāng)然這絕對(duì)不夠,我建議可以認(rèn)真的看看他的說明,絕大多數(shù)的組織,雜志和安全小組都把他評(píng)價(jià)他為各種系統(tǒng)下最好的入侵檢測系統(tǒng)并且強(qiáng)烈推薦他,并且有象Silicon Defense,Source Fire和GUIs這樣的商業(yè)公司開始提供對(duì)他更廣泛的軟件支持。
有時(shí)一些緊急事件的發(fā)生需要強(qiáng)大的分析器,這些問題一般是由入侵者由于某些原因嘗試非法訪問我們的服務(wù)或者其他的服務(wù)器,無論是隱蔽的還是明顯的,或者是安裝一個(gè)嗅探器甚至是得到更加高的權(quán)限造成的。
其他有用的工具
嗅探器檢測
嗅探器就是一個(gè)可以把網(wǎng)卡的設(shè)置成混雜模式的工具,并且監(jiān)聽整個(gè)網(wǎng)絡(luò)的信息,使用ifconfig程序可以得到詳細(xì)的網(wǎng)絡(luò)接口信息:
eth0 Link encap:Ethernet HWaddr 00:50:BF:1C:41:59
inet addr:10.45.202.145 Bcast:255.255.255.255 Mask:255.255.128.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7180 errors:0 dropped:0 overruns:0 frame:0
TX packets:4774 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:8122437 (7.7 MiB) TX bytes:294607 (287.7 KiB)
Interrupt:10 Base address:0xc000
但是如果ifconfig程序被篡改或者嗅探器工作在網(wǎng)絡(luò)中的其他機(jī)器,你必須進(jìn)行更深一步的檢查,例如發(fā)封郵件給“陌生”的用戶或者嘗試查找嗅探器的記錄。
有一個(gè)叫neped由一個(gè)西班牙黑客組織設(shè)計(jì)的工具,他可以發(fā)現(xiàn)整個(gè)網(wǎng)絡(luò)的接口工作模式是不是被設(shè)置成了混雜模式,但是現(xiàn)在他并沒有被移植到Debian中,我們可以在這里下載ftp://apostols.org/AposTools/snapshots/neped/neped.c
注意:這個(gè)服務(wù)器似乎幾個(gè)星期之前就當(dāng)?shù)袅?
這個(gè)程序的執(zhí)行結(jié)果會(huì)產(chǎn)生下面的輸出:
neped eth0
----------------------------------------------------------
>; My HW Addr: 00:80:F6:C2:0E:2A
>; My IP Addr: 192.168.0.1
>; My NETMASK: 255.255.255.0
>; My BROADCAST: 192.168.1.255
----------------------------------------------------------
Scanning ....
* Host 192.168.0.2, 00:C2:0F:64:08:FF **** Promiscuous mode detected !!!
End.
當(dāng)我們從191.168.0.1發(fā)送IP包到192.168.0.2的時(shí)候,我們需要知道他的MAC地址,我們可以通過發(fā)一個(gè)廣播包來查詢我們所需要IP對(duì)應(yīng)的MAC地址,所有的機(jī)器都會(huì)接到這個(gè)包,但是只有“真正”的機(jī)器才會(huì)響應(yīng)。
neped不通過廣播,而是使用一個(gè)不存在的IP查詢網(wǎng)絡(luò)中的每個(gè)IP, 這樣只有處于混雜模式的接口才會(huì)響應(yīng)這個(gè)包。
Rootkits檢測
rootkits可以讓入侵者得到更高的權(quán)限,一般情況下,他通過覆蓋一些系統(tǒng)二進(jìn)制程序來達(dá)到目的。 這就是我們要檢測我們的程序是否被篡改的原因。 我們可以這樣安裝他:
apt-get install chkrootkit
他的網(wǎng)站在www.chkrootkit.org并且他檢測下列文件:
aliens, asp, bindshell, lkm, rexedcs, sniffer, wted, z2, amd, basename, biff, chfn, chsh, cron, date, du, dirname, echo, egrep, env, find, fingerd, gpm, grep, hdparm, su, ifconfig, inetd, inetdconf, identd, killall, ldsopreload, login, ls, lsof, mail, mingetty, netstat, named, passwd, pidof, pop2, pop3, ps, pstree, rpcinfo, rlogind, rshd, slogin, sendmail, sshd, syslogd, tar, tcpd, top, telnetd, timed, traceroute, w, write
可以使用下面的命令啟動(dòng)他:
chkrootkit
他檢測上面的文件,查找嗅探器和rootkits,還有其他的工具檢查日志警告(chkwtmp和chklastlog)并且ifpromisc告訴我們的網(wǎng)卡是否處于混雜模式
參考文獻(xiàn)
很有必要讀一讀上面軟件的man文檔,如果你有任何建議或注釋,你可以發(fā)郵件給我
Alexander Reelsen, Securing Debian How To, version 1.4, 18 February 2001
Anónimo, Linux Máxima Seguridad, Pearson Educación, Madrid 2000
Brian Hatch, Hackers in Linux, Mc Graw Hill 2001
Jim Mellander, A Stealthy Sniffer Detector, Network Security
Antonio Villalón Huerta, Seguridad en Unix y redes, Open Publication License, octubre 2000
CSI FBI Computer Crime and Security Survey, CSI Issues&Trends, Vol.7
Who's Sniffing Your Network?, www.linuxsecurity.com/articles/intrusion_detection_article-798.html
Root-kits and integrity: November 2002 Linuxfocus article |
|