經典的信息保密性安全模型Bell-LaPadula模型指出,進程是整個計算機系統的一個主體,它需要通過一定的安全等級來對客體發生作用。進程在一定條件下可以對諸如文件、數據庫等客體進行操作。如果進程用作其他不法用途,將給系統帶來重大危害。在現實生活當中,許多網絡黑客都是通過種植“木馬”的辦法來達到破壞計算機系統和入侵的目的,而這些“木馬”程序無一例外的是需要通過進程這一方式在機器上運行才能發揮作用的。另外,許多破壞程序和攻擊手段都需要通過破壞目標計算機系統的合法進程尤其是重要系統進程,使得系統不能完成正常的工作甚至無法工作,從而達到摧毀目標計算機系統的目的。作為服務器中占絕大多數市場份額的Linux系統,要切實保證計算機系統的安全,我們必須對其進程進行監控和保護。
用戶級進程監控工具
Linux系統提供了who、w、ps和top等察看進程信息的系統調用,通過結合使用這些系統調用,我們可以清晰地了解進程的運行狀態以及存活情況,從而采取相應的措施,來確保Linux系統的安全。它們是目前在Linux下最常見的進程狀況查看工具,它們是隨Linux套件發行的,安裝好系統之後,用戶就可以使用。
1.who命令:該命令主要用於查看當前在線上的用戶情況。系統管理員可以使用who命令監視每個登錄的用戶此時此刻的所作所為。
2.w命令:該命令也用於顯示登錄到系統的用戶情況,但是與who不同的是,w命令功能更加強大,它不但可以顯示有誰登錄到系統,還可以顯示出這些用戶當前正在進行的工作,w命令是who命令的一個增強版。
3.ps命令:該命令是最基本同時也是非常強大的進程查看命令。利用它可以確定有哪些進程正在運行及運行的狀態、進程是否結束、進程有沒有僵死、哪些進程占用了過多的資源等。ps命令可以監控後台進程的工作情況,因為後台進程是不和屏幕鍵盤這些標准輸入/輸出設備進行通信的,如果需要檢測其情況,可以使用ps命令。下面是一個ps命令的例子
$ ps x PID TTY STAT TIME COMMAND 5800 ttyp0 S 0:00 -bash 5813 ttyp1 S 0:00 -bash 5921 ttyp0 S 0:00 man ps 5922 ttyp0 S 0:00 sh -c /usr/bin/gunzip -c /var/catman/cat1/ps.1.gz/ 5923 ttyp0 S 0:00 /usr/bin/gunzip -c /var/catman/cat1/ps.1.gz 5924 ttyp0 S 0:00 /usr/bin/less -is 5941 ttyp1 R 0:00 ps x4.top命令:top命令和ps命令的基本作用是相同的,顯示系統當前的進程及其狀態,但是top是一個動態顯示過程,可以通過用戶按鍵來不斷刷新當前狀態。如果在前台執行該命令,它將獨占前台,直到用戶終止該程序為止。比較准確地說,top命令提供了實時的對系統處理器的狀態監視。它可以顯示系統中CPU最“敏感”的任務列表。該命令可以按CPU使用、內存使用和執行時間對任務進行排序,而且它的很多特性都可以通過交互式命令或者在個人定制文件中進行設定。下面是一個top命令的例子:
1:55pm up 7 min, 4 user, load average:0.07,0.09,0.06 29 processes:28 sleeping, 1 running, 0 zombie, 0 stopped CPU states: 4.5% user, 3.6% system, 0.0% nice, 91.9% idle Mem: 38916K av, 18564K used, 20352K free, 11660K shrd, 1220K buff Swap: 33228K av, 0K used, 33228K free, 11820K cached PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND 363 root 14 0 708 708 552 R 0 8.1 1.8 0:00 top 1 root 0 0 404 404 344 S 0 0.0 1.0 0:03 init 2 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kflushd 3 root -12 -12 0 0 0 SW< 0 0.0 0.0 0:00 kswapd需重點監控的一些進程