追捕技術(shù):讓黑客無(wú)處可逃(轉載)
021yin.com /
網(wǎng)絡(luò )是個(gè)大舞臺,這個(gè)舞臺中不光有安全人員也有黑客份子所組成關(guān)于ID排目錄的問(wèn)題。。芳擊與防守自然就成了兩者之間相互論辯的話(huà)題。對于一些重要的部門(mén),一旦網(wǎng)絡(luò )遭到攻擊,如何追蹤網(wǎng)絡(luò )攻擊,追查到攻擊者并將其繩之以法,是十分必要的。下面的文章分本地追蹤和網(wǎng)絡(luò )追蹤兩部份。
本地追蹤方法
追蹤網(wǎng)絡(luò )攻擊就是找到事件發(fā)生的源頭關(guān)于ID排目錄的問(wèn)題。。它有兩個(gè)方面意義:一是指發(fā)現IP地址、MAC地址或是認證的主機名;二是指確定攻擊者的身份。網(wǎng)絡(luò )攻擊者在實(shí)施攻擊之時(shí)或之后,必然會(huì )留下一些蛛絲馬跡,如登錄的紀錄,文件權限的改變等虛擬證據,如何正確處理虛擬證據是追蹤網(wǎng)絡(luò )攻擊的最大挑戰。
在追蹤網(wǎng)絡(luò )攻擊中另一需要考慮的問(wèn)題是:IP地址是一個(gè)虛擬地址而不是一個(gè)物理地址,IP地址很容易被偽造,大部分網(wǎng)絡(luò )攻擊者采用IP地址欺騙技術(shù)關(guān)于ID排目錄的問(wèn)題。。這樣追蹤到的攻擊源是不正確的。使得以IP地址為基礎去發(fā)現攻擊者變得更加困難。因此,必須采用一些方法,識破攻擊者的欺騙,找到攻擊源的真正IP地址。
netstat命令----實(shí)時(shí)察看文擊者
使用netstat命令可以獲得所有聯(lián)接被測主機的網(wǎng)絡(luò )用戶(hù)的IP地址關(guān)于ID排目錄的問(wèn)題。。Windows系列、Unix系列、Linux等常用網(wǎng)絡(luò )操作系統都可以使用“netstat”命令。
使用“netstat”命令的缺點(diǎn)是只能顯示當前的連接,如果使用“netstat”命令時(shí)攻擊者沒(méi)有聯(lián)接,則無(wú)法發(fā)現攻擊者的蹤跡關(guān)于ID排目錄的問(wèn)題。。為此,可以使用Scheduler建立一個(gè)日程安排,安排系統每隔一定的時(shí)間使用一次“netstat”命令,并使用netstattextfile格式把每次檢查時(shí)得到的數據寫(xiě)入一個(gè)文本文件中,以便需要追蹤網(wǎng)絡(luò )攻擊時(shí)使用。
日志數據--最詳細的攻擊記錄
系統的日志數據提供了詳細的用戶(hù)登錄信息關(guān)于ID排目錄的問(wèn)題。。在追蹤網(wǎng)絡(luò )攻擊時(shí),這些數據是最直接的、有效的證據。但是有些系統的日志數據不完善,網(wǎng)絡(luò )攻擊者也常會(huì )把自己的活動(dòng)從系統日志中刪除。因此,需要采取補救措施,以保證日志數據的完整性。
Unix和Linux的日志
Unix和Linux的日志文件較詳細的記錄了用戶(hù)的各種活動(dòng),如登錄的ID的用戶(hù)名、用戶(hù)IP地址、端口號、登錄和退出時(shí)間、每個(gè)ID最近一次登錄時(shí)間、登錄的終端、執行的命令,用戶(hù)ID的賬號信息等關(guān)于ID排目錄的問(wèn)題。。通過(guò)這些信息可以提供ttyname(終端號)和源地址,是追蹤網(wǎng)絡(luò )攻擊的最重要的數據。
大部分網(wǎng)絡(luò )攻擊者會(huì )把自己的活動(dòng)記錄從日記中刪去,而且UOP和基于XWindows的活動(dòng)往往不被記錄,給追蹤者帶來(lái)困難關(guān)于ID排目錄的問(wèn)題。。為了解決這個(gè)問(wèn)題,可以在系統中運行wrapper工具,這個(gè)工具記錄用戶(hù)的服務(wù)請求和所有的活動(dòng),且不易被網(wǎng)絡(luò )攻擊者發(fā)覺(jué),可以有效的防止網(wǎng)絡(luò )攻擊者消除其活動(dòng)紀錄。
Windows NT和Windows 2000的日志
WindowsNT和Windows2000有系統日志、安全日志和應用程序日志等三個(gè)日志,而與安全相關(guān)的數據包含在安全日志中關(guān)于ID排目錄的問(wèn)題。。安全日志記錄了登錄用戶(hù)的相關(guān)信息。安全日志中的數據是由配置所決定的。因此,應該根據安全需要合理進(jìn)行配置,以便獲得保證系統安全所必需的數據。
但是,WindowsNT和Windows2000的安全日志存在重大缺陷,它不記錄事件的源,不可能根據安全日志中的數據追蹤攻擊者的源地址關(guān)于ID排目錄的問(wèn)題。。為了解決這個(gè)問(wèn)題,可以安裝一個(gè)第三方的能夠完整記錄審計數據的工具。
防火墻日志
作為網(wǎng)絡(luò )系統中的“堡壘主機”,防火墻被網(wǎng)絡(luò )攻擊者攻陷的可能性要小得多關(guān)于ID排目錄的問(wèn)題。。因此,相對而言防火墻日志數據不太容易被修改,它的日志數據提供最理想的攻擊源的源地址信息。
但是,防火墻也不是不可能被攻破的,它的日志也可能被刪除和修改關(guān)于ID排目錄的問(wèn)題。。攻擊者也可向防火墻發(fā)動(dòng)拒絕服務(wù)攻擊,使防火墻癱瘓或至少降低其速度使其難以對事件做出及時(shí)響應,從而破壞防火墻日志的完整性。因此,在使用防火墻日志之前,應該運行專(zhuān)用工具檢查防火墻日志的完整性,以防得到不完整的數據,貽誤追蹤時(shí)機。
網(wǎng)絡(luò )入侵追蹤方法
入侵者的追蹤(IntruderTracing)在區域網(wǎng)路上可能你聽(tīng)過(guò)所謂「廣播模式」的資料發(fā)送方法,此種方法不指定收信站,只要和此網(wǎng)路連結的所有網(wǎng)路設備皆為收信對象關(guān)于ID排目錄的問(wèn)題。。
入侵者的追蹤(IntruderTracing)在區域網(wǎng)路上可能你聽(tīng)過(guò)所謂「廣播模式」的資料發(fā)送方法,此種方法不指定收信站,只要和此網(wǎng)路連結的所有網(wǎng)路設備皆為收信對象關(guān)于ID排目錄的問(wèn)題。。但是這僅僅在區域網(wǎng)路上能夠實(shí)行,因為區域網(wǎng)路上的機器不多(和Internet比起來(lái))。如果象是Internet上有數千萬(wàn)的主機,本就不可能實(shí)施資料廣播(至于IPMulticast算是一種限定式廣播RestrictedBroadcast,唯有被指定的機器會(huì )收到,Internet上其他電腦還是不會(huì )收到)。假設Internet上可以實(shí)施非限定廣播,那隨便一個(gè)人發(fā)出廣播訊息,全世界的電腦皆受其影響,豈不世界大亂?因此,任何區域網(wǎng)路內的路由器或是類(lèi)似網(wǎng)路設備都不會(huì )將自己區域網(wǎng)路內的廣播訊息轉送出去。萬(wàn)一在WANPort收到廣播訊息,也不會(huì )轉進(jìn)自己的LANPort中。而既然網(wǎng)路皆有發(fā)信站與收信站,用以標示信息發(fā)送者與信息接收者,除非對方使用一些特殊的封包封裝方式或是使用防火墻對外連線(xiàn),那么只要有人和你的主機進(jìn)行通訊(寄信或是telnet、ftp過(guò)來(lái)都算)你就應該會(huì )知道對方的位址,如果對方用了防火墻來(lái)和你通訊,你最少也能夠知道防火墻的位置。也正因為只要有人和你連線(xiàn),你就能知道對方的位址,那么要不要知道對方位置只是要做不做的問(wèn)題而已。如果對方是透過(guò)一臺UNIX主機和你連線(xiàn),則你更可以透過(guò)ident查到是誰(shuí)和你連線(xiàn)的。在實(shí)行TCP/IP通訊協(xié)定的電腦上,通??梢杂胣etstat指令來(lái)看到目前連線(xiàn)的狀況。(各位朋友可以在win95、Novell以及UNIX試試看(注一),在下面的連線(xiàn)狀況中,netstat指令是在win95上實(shí)行的,以看到目前自己機器(LocalAddress處)的telnetport有一臺主機workstation.variox.int由遠端(ForeignAddress處)連線(xiàn)進(jìn)來(lái)并且配到1029號tcpport.而ccunix1主機也以ftpport連到workstation.variox.int去。所有的連線(xiàn)狀況看得一清二楚。(如A、B)
A.在UNIX主機(ccunix1.variox.int)看netstat
B.另一端在Windows95(workstation.variox.int)看netstat,
當然關(guān)于ID排目錄的問(wèn)題。,如果你想要把網(wǎng)路連線(xiàn)紀錄給記錄下來(lái),你可以用cron table定時(shí)去跑:
netstatfilename,但是UNIX系統早已考慮到這一個(gè)需求,因此在系統中有一個(gè)專(zhuān)職記錄系統事件的Daemon:syslogd,應該有很多朋友都知道在UNIX系統的/var/adm下面有兩個(gè)系統紀錄檔案:syslog與messages,一個(gè)是一般系統的紀錄,一個(gè)是核心的紀錄關(guān)于ID排目錄的問(wèn)題。。但是這兩個(gè)檔案是從哪邊來(lái)的,又要如何設定呢?
系統的紀錄基本上都是由syslogd (SystemKernelLogDaemon)來(lái)產(chǎn)生,而syslogd的控制是由/etc/syslog.conf來(lái)做的關(guān)于ID排目錄的問(wèn)題。。syslog.conf以?xún)蓚€(gè)欄位來(lái)決定要記錄哪些東西,以及記錄到哪邊去。一個(gè)最標準的syslog.conf,第一欄寫(xiě)「在什么情況下」以及「什么程度」。然后用TAB鍵跳下一欄繼續寫(xiě)「符合條件以后要做什么」。這個(gè)syslog.conf檔案的作者很誠實(shí),告訴你只能用TAB來(lái)作各欄位之間的分隔(雖然看來(lái)好像他也不知道為什么)。第一欄包含了何種情況與程度,中間小數點(diǎn)分隔。另外,星號就代表了某一細項中的所有選項。詳細的設定方式如下:
1.在什么情況:各種不同的情況以下面的字串來(lái)決定關(guān)于ID排目錄的問(wèn)題。。
auth 關(guān)于系統安全與使用者認證方面
cron 關(guān)于系統自動(dòng)排程執行(CronTable)方面
daemon 關(guān)于背景執行程式方面
kern 關(guān)于系統核心方面
lpr 關(guān)于印表機方面
mail 關(guān)于電子郵件方面
news 關(guān)于新聞?dòng)懻搮^方面
syslog 關(guān)于系統紀錄本身方面
user 關(guān)于使用者方面
uucp 關(guān)于UNIX互拷(UUCP)方面
上面是大部份的UNIX系統都會(huì )有的情況,而有些UNIX系統可能會(huì )再分出不同的項目出來(lái)關(guān)于ID排目錄的問(wèn)題。。
2.什么程度才記錄:
下面是各種不同的系統狀況程度,依照輕重緩急排列關(guān)于ID排目錄的問(wèn)題。。
none 不要記錄這一項
debug 程式或系統本身除錯訊息
info 一般性資訊
notice 提醒注意性
err 發(fā)生錯誤
warning 警告性
crit 較嚴重的警告
alert 再?lài)乐匾稽c(diǎn)的警告
emerg 已經(jīng)非常嚴重了
同樣地,各種UNIX系統可能會(huì )有不同的程度表示方式關(guān)于ID排目錄的問(wèn)題。。有些系統是不另外區分crit與alert的差別,也有的系統會(huì )有更多種類(lèi)的程度變化。在記錄時(shí),syslogd會(huì )自動(dòng)將你所設定程度以及其上的都一并記錄下來(lái)。例如你要系統去記錄info等級的事件,則notice、err.warning、crit、alert、emerg等在info等級以上的也會(huì )一并被記錄下來(lái)。把上面所寫(xiě)的1、2項以小數點(diǎn)組合起來(lái)就是完整的「要記錄哪些東西」的寫(xiě)法。例如mail.info表示關(guān)于電子郵件傳送系統的一般性訊息。auth.emerg就是關(guān)于系統安全方面相當嚴重的訊息。
lpr.none表示不要記錄關(guān)于列表機的訊息(通常用在有多個(gè)紀錄條件時(shí)組合使用)關(guān)于ID排目錄的問(wèn)題。。另外有三種特殊的符號可供應用:
1.星號(*)
星號代表某一細項中所有項目關(guān)于ID排目錄的問(wèn)題。。例如mail.*表示只要有關(guān)mail的,不管什么程度都要記錄下來(lái)。而*.info會(huì )把所有程度為info的事件給記錄下來(lái)。
2.等號(=)
等號表示只記錄目前這一等級,其上的等級不要記錄關(guān)于ID排目錄的問(wèn)題。。例如剛剛的例子,平常寫(xiě)下info等級時(shí),也會(huì )把位于info等級上面的notice、err.warning、crit、alert、emerg等其他等級也記錄下來(lái)。但若你寫(xiě)=info則就只有記錄info這一等級了。
3.驚嘆號(!)
驚嘆號表示不要記錄目前這一等級以及其上的等級關(guān)于ID排目錄的問(wèn)題。。
一般的syslogd都提供下列的管道以供您記錄系統發(fā)生的什么事:
1.一般檔案
這是最普遍的方式關(guān)于ID排目錄的問(wèn)題。。你可以指定好檔案路徑與檔案名稱(chēng),但是必須以目錄符號「/」開(kāi)始,系統才會(huì )知道這是一個(gè)檔案。例如/var/adm/maillog表示要記錄到/var/adm下面一個(gè)稱(chēng)為maillog的檔案。如果之前沒(méi)有這個(gè)檔案,系統會(huì )自動(dòng)產(chǎn)生一個(gè)。
2.指定的終端機或其他設備
你也可以將系統紀錄寫(xiě)到一個(gè)終端機或是設備上關(guān)于ID排目錄的問(wèn)題。。若將系統紀錄寫(xiě)到終端機,則目前正在使用該終端機的使用者就會(huì )直接在螢幕上看到系統訊息(例如/dev/console或是/dev/tty1.你可以拿一個(gè)螢幕專(zhuān)門(mén)來(lái)顯示系統訊息)。若將系統紀錄寫(xiě)到印表機,則你會(huì )有一長(cháng)條印滿(mǎn)系統紀錄的紙(例如/dev/lp0)。
3.指定的使用者
你也可以在這邊列出一串使用者名稱(chēng),則這些使用者如果正好上線(xiàn)的話(huà),就會(huì )在他的終端機上看到系統訊息(例如root,注意寫(xiě)的時(shí)候在使用者名稱(chēng)前面不要再加上其他的字)關(guān)于ID排目錄的問(wèn)題。。
4.指定的遠端主機
這種寫(xiě)法不將系統訊息記錄在連接本地機器上,而記錄在其他主機上關(guān)于ID排目錄的問(wèn)題。。有些情況系統碰到的是硬碟錯誤,或是萬(wàn)一有人把主機推倒,硬碟摔壞了,那你要到哪邊去拿系統紀錄來(lái)看呢?而網(wǎng)路卡只要你不把它折斷,應該是比硬碟機耐摔得多了。因此,如果你覺(jué)得某些情況下可能紀錄沒(méi)辦法存進(jìn)硬碟里,你可以把系統紀錄丟到其他的主機上。如果你要這樣做,你可以寫(xiě)下主機名稱(chēng),然后在主機名稱(chēng)前面加上「@」符號(例如@ccunix1.variox.int,但被你指定的主機上必須要有syslogd)。
電子郵件追蹤方法
在以上各種紀錄方式中,都沒(méi)有電子郵件這項關(guān)于ID排目錄的問(wèn)題。。因為電子信件要等收件者去收信才看得到,有些情況可能是很緊急的,沒(méi)辦法等你去拿信來(lái)看(BSD的Manual Page寫(xiě)著(zhù)「when you got mail,it’salreadytoolate...」:-P)。以上就是syslog各項紀錄程度以及紀錄方式的寫(xiě)法,各位讀者可以依照自己的需求記錄下自己所需要的內容。但是這些紀錄都是一直堆上去的,除非您將檔案自行刪掉,否則這些檔案就會(huì )越來(lái)越大。有的人可能會(huì )在syslogd.conf里寫(xiě):*.*/var/log/everything,要是這樣的話(huà),當然所有的情況都被你記錄下來(lái)了。但是如果真的系統出事了,你可能要從好幾十MB甚至幾百MB的文字中找出到底是哪邊出問(wèn)題,這樣可能對你一點(diǎn)幫助都沒(méi)有。因此,以下兩點(diǎn)可以幫助你快速找到重要的紀錄內容:
1.定期檢查紀錄
養成每周(或是更短的時(shí)間,如果你有空的話(huà))看一次紀錄檔的習慣關(guān)于ID排目錄的問(wèn)題。。如果有需要將舊的紀錄檔備份,可以cploglog.1,cploglog.2...或是cploglog.971013,cploglog.980101...等,將過(guò)期的紀錄檔依照流水號或是日期存起來(lái),未來(lái)考察時(shí)也比較容易。
2.只記錄有用的東西
千萬(wàn)不要像前面的例子一樣,記錄下*.*關(guān)于ID排目錄的問(wèn)題。。然后放在一個(gè)檔案中。這樣的結果會(huì )導檔案太大,要找資料時(shí)根本無(wú)法馬上找出來(lái)。有人在記錄網(wǎng)路通訊時(shí),連誰(shuí)去ping他的主機都記錄。除非是系統已經(jīng)遭到很大的威脅,沒(méi)事就有人喜歡嘗試進(jìn)入你的系統,否則這種雞毛蒜皮的小事可以不用記錄。可以提升些許系統效率以及降低硬盤(pán)使用量(當然也節省你的時(shí)間)。地理位置的追蹤如何查出入侵者的地理位置?光看IP地址可能看不出來(lái),但是你??吹脑?huà),會(huì )發(fā)現也會(huì )發(fā)現規律的。在固接式的網(wǎng)路環(huán)境中,入侵者一定和網(wǎng)路提供單位有著(zhù)密切的關(guān)系。因為假設是區域網(wǎng)路,那么距離絕對不出幾公里。就算是撥接好了,也很少人會(huì )花大筆錢(qián)去撥外縣市甚至國外的撥接伺服器。因此,只要查出線(xiàn)的單位,入侵者必然離連線(xiàn)單位不遠。
撥接式的網(wǎng)路就比較令人頭疼了關(guān)于ID排目錄的問(wèn)題。。有許多ISP為了吸引客戶(hù),弄了很多什么網(wǎng)絡(luò )卡。User這邊只要買(mǎi)了固定的小時(shí)數,不需須另外向ISP那邊提出申請,就可以按照卡片上的說(shuō)明自行撥接上網(wǎng)。這樣當然可以吸引客戶(hù),但是ISP就根本無(wú)從得知是誰(shuí)在用他們的網(wǎng)路。也就是說(shuō),雖然以網(wǎng)絡(luò )卡提供撥接服務(wù)給撥接使用者帶來(lái)相當大的便利,但卻是系統安全的大敵,網(wǎng)路管理員的惡夢(mèng)。如果入侵你的人是使用網(wǎng)絡(luò )卡來(lái)上網(wǎng),那……,要從撥號的地點(diǎn)查嗎?入侵者可以不要用自己家里的電話(huà)上網(wǎng)。
編者按:
對于老牌黑客,追蹤會(huì )相當困難,因為在網(wǎng)絡(luò )中技術(shù)決定勝敗,老牌黑客有著(zhù)優(yōu)良的技術(shù)與長(cháng)期的逃跑經(jīng)驗關(guān)于ID排目錄的問(wèn)題。。而對于網(wǎng)絡(luò )新手來(lái)說(shuō),有時(shí)日志與常用手法并不一定管用,但本文的觀(guān)點(diǎn)會(huì )讓讀者了解追蹤黑客的基本套路,對今后的工作和網(wǎng)絡(luò )生活能帶來(lái)幫助。