導航:首頁 > 凈水問答 > ftrace過濾

ftrace過濾

發布時間:2021-02-13 13:24:28

⑴ 如何選擇一個 Linux Tracer

tracer 是一個高級的性能分析和診斷工具,但是不要讓這名詞唬住你,如果你使用過 strace 和tcpmp,其實你就已經使用過 tracer 了。系統 tracer 可以獲取更多的系統調用和數據包。它們通常能跟蹤任意的內核和應用程序。
有太多的 linux tracer 可以選擇。每一種都有其官方的(或非官方的)的卡通的獨角獸吉祥物,足夠撐起一台"兒童劇"了。

那麼我們應該使用哪個 tracer 呢?
我會為兩類讀者回答這個問題,大部分人和性能/內核工程師。過一段時間這些可能會發生變化,我會持續跟進並補充,大概會一年更新一次。
多數人
多數人 (開發者,系統管理員,開發管理者,運維人員,評測人員,等等) 不關心系統追蹤器的細節。下面是對於追蹤器你應該知道和做的:
1. 使用perf_events分析CPU性能

使用 perf_events 做 CPU 性能分析。性能指標可以使用flame graph 等工具做可視化。
git clone --depth 1 https://github.com/brendangregg/FlameGraph
perf record -F 99 -a -g -- sleep 30
perf script | ./FlameGraph/stackcollapse-perf.pl | ./FlameGraph/flamegraph.pl > perf.svg

Linux perf_events (又稱 "perf",同命令名) 是 Linux 用戶的官方追蹤器和性能分析器。內置於內核代碼,有很好維護(近來獲得快速增強),通常通過 linux 命令行工具包添加。
perf 有很多功能,如果只能推薦一個,我選擇 CPU 性能分析。盡管這只是采樣,而不是從技術上追蹤事件。最難的部分是獲取完整的棧和信息,我為 java 和 node.js 做的一個演講 Linux Profiling at Netflix中已經說過這個問題
2.了解其他的Tracer
正如我一個朋友說的:「你不需要知道如何操作 X 射線機器,但是一旦你吞了一枚硬幣,你得知道這得去做 X 射線」,你應該了解各種 tracer 都能做什麼,這樣就能在你工作中真正需要 tracer 的時候,你既可以選擇稍後學習使用,也可以雇相應的人來完成。
簡短來說:幾乎所有的東西都可以使用 tracer 來進行分析和跟蹤。如,文件系統,網路處理器,硬體驅動器,全部的應用程序。可以看一下我的個人網站上關於 ftrace的文章,還有我寫的關於perf_events 文檔介紹,可以做為一個追蹤(或者性能分析)的例子。
3. 尋求前端支持工具

如果你正想買一個能支持跟蹤 Linux 的性能分析工具(有許多賣這類工具的公司)。想像一下,只需要直接點擊一下界面就能「洞察」整個系統內核,包括隱藏的不同堆棧位置的熱圖,我在Monitorama talk 中介紹了一個這樣帶圖形界面的工具。
我開源了一些我自己開發的前端工具,盡管只是 CLI (命令行界面)而不是(圖形界面)。這些工具也會讓人們更加快速容易的使用 tracer。比如下面的例子,用我的 perf_tool,跟蹤一個新進程:
# ./execsnoopTracing exec()s. Ctrl-C to end.
PID PPID ARGS
22898 22004 man ls
22905 22898 preconv -e UTF-8
22908 22898 pager -s
22907 22898 nroff -mandoc -rLL=164n -rLT=164n -Tutf8
[...]

在 Netflix 上,我們創建了一個 Vector,一個分析工具的實例同時也是 Linux 上的 tracer 的最終前端。
致性能或內核工程師

我們的工作變的越來越困難,很多的人會問我們怎麼樣去追蹤,哪種路徑可以用!為了正確理解一個路徑,你經常需要花上至少100個小時才能做到。理解所有的 linux 路徑去做出理性的決定是一個浩大的工程。(我可能是唯一一個接近做到這件事情的人)
這里是我的建議,可以二選其一:
A) 選中一個全能的路徑,並且使它標准化,這將涉及花費大量的時間去弄清楚它在測試環境中的細微差別和安全性。我現在推薦 SystemTap 的最新版本(ie,從源代碼構建)。我知道有些公司已經選用 LTTng,而且他們用的很好,盡管它不是非常的強大(雖然它更安全)。Sysdig 可以成為另一個候選如果它可以增加追蹤點或者 kprobes。
B) 遵循我上面提供的流程圖,它將意味著盡可能更多的使用 ftrace 或者 perf_event, eBPF 會得到整合,之後其他的路徑像 SystemTap/LTTng 會去填補這個空白。這就是我目前在 Netflix 做的工作。
tracer 的評論:
1. ftrace
我喜歡用 ftrace,它是內核 hacker 的首選,內置於系統內核,可以使用跟蹤點(靜態檢查點),能調用內核 kprobes 和 uprobes 調試工具。並且提供幾個這樣的功能:帶可選過濾器和參數的事件追蹤功能;在內核中進行統計的事件計數和定時功能;還有函數流程遍歷的功能。可以看一下內核代碼中 ftrace.txt 例子了解一下。ftrace 由 /sys 控制,僅支持單一的 root 用戶使用(但是你可以通過緩沖區實例破解以支持多用戶)。某些時候 Ftrace 的操作界面非常繁瑣,但是的確非常「hack」,而且它有前端界面。Steven Rostedt,ftace 的主要作者,創建了 trace-cmd 命令工具,而我創建了 perf 的工具集。我對這個工具最大的不滿就是它不可編程。舉例來說,你不能保存和獲取時間戳,不能計算延遲,不能把這些計算結果保存成直方圖的形式。你需要轉儲事件至用戶級別,並且花一些時間去處理結果。ftrace 可以通過 eBPF 變成可編程的。
2.perf_events

perf_events 是 Linux 用戶的主要跟蹤工具,它內置在內核源碼中,通常通過 linux-tools-commom 加入。也稱「perf」,同前端工具名稱,通常用來跟蹤和轉儲信息到一個叫做 perf.data 的文件中,perf.data 文件相當於一個動態的緩沖區,用來保存之後需要處理的結果。ftrace 能做到的,perf_events 大都也可以做到,perf-events 不能做函數流程遍歷,少了一點兒「hack」勁兒(但是對於安全/錯誤檢查有更好的支持)。它可以進行 CPU 分析和性能統計,用戶級堆棧解析,也可以使用對於跟蹤每行局部變數產生的調試信息。它也支持多用戶並發操作。和 ftrace 一樣也不支持可編程。如果要我只推薦一款 tracer,那一定是 perf 了。它能解決眾多問題,並且它相對較安全。
3. eBPF

extended Berkeley Packet Filter(eBPF)是一個可以在事件上運行程序的高效內核虛擬機(JIT)。它可能最終會提供 ftrace 和 perf_events 的內核編程,並強化其他的 tracer。這是 Alexei Starovoitov 目前正在開發的,還沒有完全集成,但是從4.1開始已經對一些優秀的工具有足夠的內核支持了,如塊設備I/O的延遲熱圖。可參考其主要作者 Alexei Starovoitov 的BPF slides和eBPF samples。
4. SystemTap

SystemTap 是最強大的tracer。它能做所有事情,如概要分析,跟蹤點,探針,uprobes(來自SystemTap),USDT和內核編程等。它將程序編譯為內核模塊,然後載入,這是一種獲取安全的巧妙做法。它也是從tree發展而來,在過去有很多問題(多的可怕)。很多不是 SystemTap 本身的錯——它常常是第一個使用內核追蹤功能,也是第一個碰到 bug 的。SystemTap 的最新版本好多了(必須由源代碼編譯),但是很多人仍然會被早期版本嚇到。如果你想用它,可先在測試環境中使用,並與irc.freenode.net上 的 #systemtap 開發人員交流。(Netflix 有容錯機制,我們已經使用了 SystemTap,但是可能我們考慮的安全方面的問題比你們少。)我最大的不滿是,它似乎認為你有常常沒有的內核 debug 信息。實際上沒有它也能做很多事情,但是缺少文檔和例子(我必須自己全靠自己開始學習)。
5. LTTng
LTTng 優化了事件採集,這比其他 tracers 做得好。它從 tree 發展而來,它的核心很簡單:通過一組小規模的固定指令集將事件寫入追蹤緩沖區,這種方式使它安全、快速,缺點是它沒有內核編碼的簡單途徑。我一直聽說這不是一個大問題,因為盡管需要後期處理,它也已經優化到可以充分的度量。此外,它還首創了一個不同的分析技術,更多對所有關注事件的黑盒記錄將稍後以 GUI 的方式進行研究。我關心的是前期沒有考慮到要錄制的事件缺失問題如何解決,但我真正要做的是花更多時間來看它在實踐中用的怎麼樣。這是我花的時間最少的一個 tracer(沒有什麼特殊原因)。
6. Ktap
ktap 在過去是一款前景很好的 tracer,它使用內核中的 lua 虛擬機處理,在沒有調試信息的情況下在嵌入式設備上運行的很好。它分為幾個步驟,並在有一段時間似乎超過了 Linux 上所有的追蹤器。然後 eBPF 開始進行內核集成,而 ktap 的集成在它可以使用 eBPF 替代它自己的虛擬機後才開始。因為 eBPF 仍將持續集成幾個月,ktap 開發者要繼續等上一段時間。我希??今年晚些時候它能重新開發。
7. dtrace4linux

dtrace4linux 主要是 Paul Fox 一個人在業余時間完成的,它是 Sun DTrace 的 Linux 版本。它引入矚目,還有一些 provider 可以運行,但是從某種程度上來說還不完整,更多的是一種實驗性的工具(不安全)。我認為,顧忌到許可問題,人們會小心翼翼的為 dtrace4linux 貢獻代碼:由於當年 Sun 開源DTrace 使用的是 CDDL 協議,而 dtrace4linux 也不大可能最終進入 Linux kernel。Paul 的方法很可能會使其成為一個 add-on。我很樂意看到 Linux 平台上的 DTrace 和這個項目的完成,我認為當我加入 Netflix 後將會花些時間來協助完成這個項目。然而,我還是要繼續使用內置的 tracers,如 ftrace 和 perf_events。
8.OL DTrace

Oracle Linux DTrace為了將 DTrace 引入 Linux,特別是 Oracle Linux,做出了很大的努力。這些年來發布的多個版本表明了它的穩定進展。開發者們以一種對這個項目的前景看好的態度談論著改進 DTrace 測試套件。很多有用的 provider 已經完成了,如:syscall, profile, sdt, proc, sched 以及 USDT。我很期待 fbt(function boundary tracing, 用於內核動態跟蹤)的完成,它是 Linux 內核上非常棒的 provider。OL DTrace 最終的成功將取決於人們對運行 Oracle Linux(為技術支持付費)有多大興趣,另一方面取決於它是否完全開源:它的內核元件是開源的,而我沒有看到它的用戶級別代碼。
9. sysdig

sysdig是一個使用類tcpmp語法來操作系統事件的新tracer,它使用lua提交進程。它很優秀,它見證了系統跟蹤領域的變革。它的局限性在於它只在當前進行系統調用,在提交進行時將所有事件轉儲為用戶級別。你可以使用系統調用做很多事情,然而我還是很希望它能支持跟蹤點、kprobe和uprobe。我還期待它能支持eBPF做內核摘要。目前,sysdig開發者正在增加容器支持。留意這些內容。
延伸閱讀

我關於 tracer 的工作包括:
ftrace:我的 perf-tools工具集(參考實例目錄);我在 lwn.net 上的 關於ftrace的文章;LISA14的發言;還有帖子:函數計數, iosnoop,opensnoop,execsnoop,TCP轉發, uprobes 以及USDT。
perf_evenets:我的網頁 perf_events實例;SCALE上的發言Netflix的Linux性能分析;還有帖子CPU采樣,靜態追蹤點,熱點圖,計數,內核行追蹤,off-CPU時間圖。
eBPF:帖子eBPF:邁出一小步,和一些BPF工具(我需要發布更多)。
SystemTap:我很久以前寫了一篇有點過期的帖子使用SystemTap。最近,我發布了一些工具systemtap-lwtools來演示如何在沒有內核診斷信息的情況下使用SystemTap。
LTTng:我只花了一點時間,還不足以發表任何內容。
ktap:我的網頁ktap實例包含一些早期版本的單行小程序和腳本。
dtrace4linux:我在系統性能一書中給出了一些實例,並曾經開發了一些小的修復程序,如timestamps。
OL DTrace:由於它直接由DTrace轉變而來,很多我早期關於DTrace的工作都有相關性(如果在這里給出鏈接的話就太多了,可以在我的主頁上搜索)。當它更完善時,我會開發一些特殊工具。
sysdig:我向 fileslower 和 subsecond offset spectrogram 貢獻了代碼。
其他:我寫了關於strace 的注意事項。
請不要有更多的 tracer!如果你想知道為什麼 Linux 不僅僅只有一個 tracer,或者只用本身的DTrace,你可以在我的演講稿從DTrace到Linux中找到答案,從28張幻燈片開始。
感謝Deirdré Straughan的編輯,以及與 General Zoi 的小馬寶莉創作者一起創作的 tracing 小馬。

⑵ ROOTKIT什麼病毒

在網路安全中經常會遇到rootkit,NSA安全和入侵檢測術語字典( NSA Glossary of Terms Used in Security and Intrusion Detection)對rootkit的定義如下:A hacker security tool that captures passwords and message traffic to and from a computer. A collection of tools that allows a hacker to provide a backdoor into a system, collect information on other systems on the network,mask the fact that the system is compromised, and much more. Rootkit is a classic example of Trojan Horse software. Rootkit is available for a wide range of operating systems.
好多人有一個誤解,他們認為rootkit是用作獲得系統root訪問許可權的工具。實際上,rootkit是攻擊者用來隱藏自己的蹤跡和保留root訪問許可權的工具。通常,攻擊者通過遠程攻擊獲得root訪問許可權,或者首先密碼猜測或者密碼強制破譯的方式獲得系統的訪問許可權。進入系統後,如果他還沒有獲得root許可權,再通過某些安全漏洞獲得系統的root許可權。接著,攻擊者會在侵入的主機中安裝rootkit,然後他將經常通過rootkit的後門檢查系統是否有其他的用戶登錄,如果只有自己,攻擊者就開始著手清理日誌中的有關信息。通過rootkit的嗅探器獲得其它系統的用戶和密碼之後,攻擊者就會利用這些信息侵入其它的系統。
什麼是rootkit
Rootkit出現於二十世紀90年代初,在1994年2月的一篇安全咨詢報告中首先使用了rootkit這個名詞。這篇安全咨詢就是CERT-CC的CA-1994-01,題目是Ongoing Network Monitoring Attacks,最新的修訂時間是1997年9月19日。從出現至今,rootkit的技術發展非常迅速,應用越來越廣泛,檢測難度也越來越大。

rootkit介紹Rootkit是一種奇特的程序,它具有隱身功能:無論靜止時(作為文件存在),還是活動時,(作為進程存在),都不會被察覺。換句話說,這種程序可能一直存在於我們的計算機中,但我們卻渾然不知,這一功能正是許多人夢寐以求的——不論是計算機黑客,還是計算機取證人員。黑客可以在入侵後置入Rootkit,秘密地窺探敏感信息,或等待時機,伺機而動;取證人員也可以利用Rootkit實時監控嫌疑人員的不法行為,它不僅能搜集證據,還有利於及時採取行動。!
一、背景知識
我們通常所說的智能機器,大至超級計算機,中到個人PC,小至智能手機,通常都有兩部分組成:硬體和軟體。並且,設備的智能是通過軟體來實現的。所有軟體中,有一種是必不可少的,那就是操作系統。操作系統可以簡單理解為一組高度復用的核心程序,一方面,它要管理低層的硬體設備,另一方面,為上層其它程序提供一個良好的運行環境。真是同人不同命,同為軟體,操作系統卻享有至高無上的特權:它不僅管理硬體,而且其他所有軟體也都受制於它。
因為在應用程序和硬體之間隔著操作系統,所以應用程序不能直接訪問硬體,而是通過調用操作系統提供的介面來使用硬體。也就是說,對應用程序而言,硬體是不可見的。當然,凡事是沒有絕對的,應用程序繞過操作系統來直接訪問硬體也不是不可能的,但這樣做會付出高昂的代價。設想一個軟體開發商在開發一款功能豐富的軟體,功能本身就夠他頭痛得了,現在他還得操心某個數據在某個磁軌的某個簇上,某個字元在某品牌顯示器上的顏色的二進制代碼等等繁瑣的事情,不用說財力和物力,單說開發周期就是無法容忍的。所以,現在的應用程序都是使用操作系統提供的簡單明了的服務來訪問系統的,因為畢竟沒有誰願意自討苦吃。
二、內核的主要功能
從上文中我們已經了解,內核在系統中處於核心樞紐的地位,下面我們具體介紹內核中與Rootkit緊密相關的幾個主要功能,更重要的是這些功能對Rootkit的意義所在:
進程管理。進程可以簡單理解為運行中的程序,它需要佔用內存、CPU時間等系統資源。現在的操作系統大多支持多用戶多任務,也就是說系統要並行運行多個程序。為此,內核不僅要有專門代碼來負責為進程或線程分配CPU時間,另一方面還要開辟一段內存區域存放用來記錄這些進程詳細情況的數據結構。內核是怎麼知道系統中有多少進程、各進程的狀態等信息的?就是通過這些數據結構,換句話說它們就是內核感知進程存在的依據。因此,只要修改這些數據結構,就能達到隱藏進程的目的。
文件訪問。文件系統是操作系統提供的最為重要的功能之一。內核中的驅動程序把設備的柱面、扇區等原始結構抽象成為更加易用的文件系統,並提供一個一致的介面供上層程序調用。也就是說,這部分代碼完全控制著對硬碟的訪問,通過修改內核的這部分代碼,攻擊者能夠隱藏文件和目錄。
安全控制。對大部分操作系統來說,因為系統中同時存在多個進程,為了避免各進程之間發生沖突,內核必須對各進程實施有效的隔離措施。比如,在MS-Windows系統中,每個進程都被強制規定了具體的許可權和單獨的內存范圍。因此,對攻擊者而言,只要對內核中負責安全事務的代碼稍事修改,整個安全機制就會全線崩潰。
內存管理。現在的硬體平台(比如英特爾的奔騰系列處理器)的內存管理機制已經復雜到可以將一個內存地址轉換成多個物理地址的地步。舉例來說,進程A按照地址 0x0030030讀取內存,它得到值的是「飛機」;然而,進程B也是按照同樣的地址0x0030030來讀取內存,但它取得的值卻是「大炮」。像上面這樣,同一個地址指向截然不同的兩個物理內存位置,並且每個位置存放不同的數據這種現象並不足以為怪——只不過是兩個進程對虛擬地址到物理地址進行了不同的映射而已。如果這一點利用好了,我們可以讓Rootkit躲避調試程序和取證軟體的追蹤。
上面介紹了內核的主要功能,以及它們對 Rootkit的重大意義。說到這里,我們就要切入正題了,即:只要我們顛覆(即修改)了操作系統的核心服務(即內核),那麼整個系統包括各種應用就完全處於我們的掌控之下了。要想顛覆內核,前提條件是能把我們的代碼導入內核。

其中針對SunOS和Linux兩種操作系統的rootkit最多(樹大招風:P)。所有的rootkit基本上都是由幾個獨立的程序組成的,一個典型rootkit包括:
1 乙太網嗅探器程程序,用於獲得網路上傳輸的用戶名和密碼等信息。
2 特洛伊木馬程序,例如:inetd或者login,為攻擊者提供後門。
3 隱藏攻擊者的目錄和進程的程序,例如:ps、netstat、rshd和ls等。
4 可能還包括一些日誌清理工具,例如:zap、zap2或者z2,攻擊者使用這些清理工具刪除wtmp、utmp和lastlog等日誌文件中有關自己行蹤的條目。
一些復雜的rootkit還可以向攻擊者提供telnet、shell和finger等服務。
還包括一些用來清理/var/log和/var/adm目錄中其它文件的一些腳本。
攻擊者使用rootkit中的相關程序替代系統原來的ps、ls、netstat和df等程序,使系統管理員無法通過這些工具發現自己的蹤跡。接著使用日誌清理工具清理系統日誌,消除自己的蹤跡。然後,攻擊者會經常地通過安裝的後門進入系統查看嗅探器的日誌,以發起其它的攻擊。如果攻擊者能夠正確地安裝rootkit並合理地清理了日誌文件,系統管理員就會很難察覺系統已經被侵入,直到某一天其它系統的管理員和他聯系或者嗅探器的日誌把磁碟全部填滿,他才會察覺已經大禍臨頭了。但是,大多數攻擊者在清理系統日誌時不是非常小心或者乾脆把系統日誌全部刪除了事,警覺的系統管理員可以根據這些異常情況判斷出系統被侵入。不過,在系統恢復和清理過程中,大多數常用的命令例如ps、df和ls已經不可信了。許多rootkit中有一個叫做FIX的程序,在安裝rootkit之前,攻擊者可以首先使用這個程序做一個系統二進制代碼的快照,然後再安裝替代程序。FIX能夠根據原來的程序偽造替代程序的三個時間戳(atime、ctime、mtime)、date、permission、所屬用戶和所屬用戶組。如果攻擊者能夠准確地使用這些優秀的應用程序,並且在安裝rootkit時行為謹慎,就會讓系統管理員很難發現。

LINUX ROOTKIT IV
前面說過,大部分rootkit是針對Linux和SunOS的,下面我們介紹一個非常典型的針對Linux系統的rootkit--Linux Rootkit IV。Linux Rootkit IV是一個開放源碼的rootkit,是Lord Somer編寫的,於1998年11月發布。不過,它不是第一個Linux Rootkit,在它之前有lrk、lnrk、lrk2和lrk3等Linux Rootkit。這些rootkit包括常用的rootkit組件,例如嗅探器、日誌編輯/刪除工具、和後門程序的。
經過這么多年的發展,Linux Rootkit IV功能變的越來越完善,具有的特徵也越來越多。不過,雖然它的代碼非常龐大,卻非常易於安裝和使用,只要執行make install就可以成功安裝。如果你還要安裝一個shadow工具,只要執行make shadow install就可以了。注意:Linux Rootkit IV只能用於Linux 2.x的內核。下面我們簡單地介紹一下Linux Rootkit IV包含的各種工具,詳細的介紹請參考其發布包的README文件。
隱藏入侵者行蹤的程序
為了隱藏入侵者的行蹤,Linux Rootkit IV的作者可謂煞費心機,編寫了許多系統命令的替代程序,使用這些程序代替原由的系統命令,來隱藏入侵者的行蹤。這些程序包括:
ls、find、

這些程序會阻止顯示入侵者的文件以及計算入侵者文件佔用的空間。在編譯之前,入侵者可以通過ROOTKIT_FILES_FILE設置自己的文件所處的位置,默認是/dev/ptyr。注意如果在編譯時使用了SHOWFLAG選項,就可以使用ls -/命令列出所有的文件。這幾個程序還能夠自動隱藏所有名字為:ptyr、hack.dir和W4r3z的文件。
ps、top、pidof

這幾個程序用來隱藏所有和入侵者相關的進程。

netstat

隱藏出/入指定IP地址或者埠的網路數據流量。

killall

不會殺死被入侵者隱藏的進程。

ifconfig

如果入侵者啟動了嗅探器,這個程序就阻止PROMISC標記的顯示,使系統管理員難以發現網路介面已經處於混雜模式下。

crontab

隱藏有關攻擊者的crontab條目。

tcpd

阻止向日誌中記錄某些連接
syslogd

過濾掉日誌中的某些連接信息

木馬程序

為本地用戶提供後門,包括:
chfn

提升本地普通用戶許可權的程序。運行chfn,在它提示輸入新的用戶名時,如果用戶輸入rookit密碼,他的許可權就被提升為root。默認的rootkit密碼是satori。
chsh
也是一個提升本地用戶許可權的程序。運行chsh,在它提示輸入新的shell時,如果用戶輸入rootkit密碼,他的許可權就被提升為root。
passwd

和上面兩個程序的作用相同。在提示你輸入新密碼時,如果輸入rookit密碼,許可權就可以變成root。

login
允許使用任何帳戶通過rootkit密碼登錄。如果使用root帳戶登錄被拒絕,可以嘗試一下rewt。當使用後門時,這個程序還能夠禁止記錄命令的歷史記錄。
木馬網路監控程序

這些程序為遠程用戶提供後門,可以向遠程用戶提供inetd、rsh、ssh等服務,具體因版本而異。隨著版本的升級,Linux Rootkit IV的功能也越來越強大,特徵也越來越豐富。一般包括如下網路服務程序:

inetd

特洛伊inetd程序,為攻擊者提供遠程訪問服務。
rshd
為攻擊者提供遠程shell服務。攻擊者使用rsh -l rootkitpassword host command命令就可以啟動一個遠程root shell。

sshd

為攻擊者提供ssh服務的後門程序。

工具程序

所有不屬於以上類型的程序都可以歸如這個類型,它們實現一些諸如:日誌清理、報文嗅探以及遠程shell的埠綁定等功能,包括:
fix

文件屬性偽造程序
linsniffer

報文嗅探器程序。
sniffchk
一個簡單的bash shell腳本,檢查系統中是否正有一個嗅探器在運行。
wted

wtmp/utmp日誌編輯程序。你可以使用這個工具編輯所有wtmp或者utmp類型的文件。

z2

utmp/wtmp/lastlog日誌清理工具。可以刪除utmp/wtmp/lastlog日誌文件中有關某個用戶名的所有條目。不過,如果用於Linux系統需要手工修改其源代碼,設置日誌文件的位置。

bindshell rootkit

在某個埠上綁定shell服務,默認埠是12497。為遠程攻擊者提供shell服務。

如何發現rootkit

很顯然,只有使你的網路非常安全讓攻擊者無隙可乘,才能是自己的網路免受rootkit的影響。不過,恐怕沒有人能夠提供這個保證,但是在日常的網路管理維護中保持一些良好的習慣,能夠在一定程度上減小由rootkit造成的損失,並及時發現rootkit的存在。

首先,不要在網路上使用明文傳輸密碼,或者使用一次性密碼。這樣,即使你的系統已經被安裝了rootkit,攻擊者也無法通過網路監聽,獲得更多用戶名和密碼,從而避免入侵的蔓延。

使用Tripwire和aide等檢測工具能夠及時地幫助你發現攻擊者的入侵,它們能夠很好地提供系統完整性的檢查。這類工具不同於其它的入侵檢測工具,它們不是通過所謂的攻擊特徵碼來檢測入侵行為,而是監視和檢查系統發生的變化。Tripwire首先使用特定的特徵碼函數為需要監視的系統文件和目錄建立一個特徵資料庫,所謂特徵碼函數就是使用任意的文件作為輸入,產生一個固定大小的數據(特徵碼)的函數。入侵者如果對文件進行了修改,即使文件大小不變,也會破壞文件的特徵碼。利用這個資料庫,Tripwire可以很容易地發現系統的變化。而且文件的特徵碼幾乎是不可能偽造的,系統的任何變化都逃不過Tripwire的監視(當然,前提是你已經針對自己的系統做了准確的配置:P,關於Tripwire和aide的使用請參考本站的相關文章)。最後,需要能夠把這個特徵碼資料庫放到安全的地方。

Rootkit 是一種特殊類型的 malware(惡意軟體)。Rootkit 之所以特殊是因為您不知道它們在做什麼事情。Rootkit 基本上是無法檢測到的,而且幾乎不可能刪除它們。雖然檢測工具在不斷增多,但是惡意軟體的開發者也在不斷尋找新的途徑來掩蓋他們的蹤跡。
Rootkit 的目的在於隱藏自己以及其他軟體不被發現。它可以通過阻止用戶識別和刪除攻擊者的軟體來達到這個目的。Rootkit 幾乎可以隱藏任何軟體,包括文件伺服器、鍵盤記錄器、Botnet 和 Remailer。許多 Rootkit 甚至可以隱藏大型的文件集合並允許攻擊者在您的計算機上保存許多文件,而您無法看到這些文件。
Rootkit 本身不會像病毒或蠕蟲那樣影響計算機的運行。攻擊者可以找出目標系統上的現有漏洞。漏洞可能包括:開放的網路埠、未打補丁的系統或者具有脆弱的管理員密碼的系統。在獲得存在漏洞的系統的訪問許可權之後,攻擊者便可手動安裝一個 Rootkit。這種類型的偷偷摸摸的攻擊通常不會觸發自動執行的網路安全控制功能,例如入侵檢測系統。
找出 Rootkit 十分困難。有一些軟體包可以檢測 Rootkit。這些軟體包可劃分為以下兩類:基於簽名的檢查程序和基於行為的檢查程序。基於簽名(特徵碼)的檢查程序,例如大多數病毒掃描程序,會檢查二進制文件是否為已知的 Rootkit。基於行為的檢查程序試圖通過查找一些代表 Rootkit 主要行為的隱藏元素來找出 Rootkit。一個流行的基於行為的 Rootkit 檢查程序是 Rootkit Revealer.
在發現系統中存在 Rootkit 之後,能夠採取的補救措施也較為有限。由於 Rootkit 可以將自身隱藏起來,所以您可能無法知道它們已經在系統中存在了多長的時間。而且您也不知道 Rootkit 已經對哪些信息造成了損害。對於找出的 Rootkit,最好的應對方法便是擦除並重新安裝系統。雖然這種手段很嚴厲,但是這是得到證明的唯一可以徹底刪除 Rootkit 的方法。
防止 Rootkit 進入您的系統是能夠使用的最佳辦法。為了實現這個目的,可以使用與防範所有攻擊計算機的惡意軟體一樣的深入防衛策略。深度防衛的要素包括:病毒掃描程序、定期更新軟體、在主機和網路上安裝防火牆,以及強密碼策略等。

⑶ 命令ls -rlt 意思

-r:反向排序

-t:列出文件按照最後修改時間(最新的在上面)
-l:長格式顯示
總結:列出目錄下面的文件或目錄,按照修改時間反向排序(長格式顯示)

閱讀全文

與ftrace過濾相關的資料

熱點內容
環氧樹脂能用金屬離子固化 瀏覽:451
格力5033凈水器濾芯怎麼設置 瀏覽:817
洗車店的污水處理設備 瀏覽:29
水杯子有水垢怎麼洗掉 瀏覽:785
觀瀾凈水器哪裡有賣 瀏覽:686
環保車污水處理 瀏覽:479
採油廢水處理 瀏覽:168
噴臉里的蒸餾水 瀏覽:932
含銅廢水加雙氧水破絡 瀏覽:514
蒸餾水能泡燕窩嗎 瀏覽:751
小米空氣凈化器顯示數字代表什麼 瀏覽:909
家庭污水提升器 瀏覽:856
靖江高溫濾芯多少錢 瀏覽:487
反滲透膜專用有機物阻垢劑 瀏覽:775
離子筆去汗管瘤 瀏覽:804
純水機的廢水比例是多少 瀏覽:793
ro膜水機組裝接法簡圖 瀏覽:814
鋁鍋的水垢化學式 瀏覽:524
水處理過能喝嗎 瀏覽:142
冷凍污水冷卻塔多少錢 瀏覽:239