最近由于某行動(dòng),自己在現(xiàn)場(chǎng)對(duì)系統(tǒng)進(jìn)行了相關(guān)的安全檢查及加固〉姹校現(xiàn)將本人的一點(diǎn)經(jīng)驗(yàn)分享如下霹疫。
不治已病治未病,預(yù)防大于治療
任何時(shí)候综芥,事前的預(yù)防遠(yuǎn)比事后的補(bǔ)救來得更為有效丽蝎。因此,對(duì)于我們來說膀藐,時(shí)刻要把“預(yù)防為主”放在首位屠阻。我們平時(shí)在應(yīng)用開發(fā)及上線部署過程中,可能需要注意的點(diǎn)有如下幾個(gè)方面:
(1)將安全因素考慮到軟件開發(fā)全生命周期中额各。要有安全意識(shí)国觉。
(2)開發(fā)中,依照安全規(guī)范編程虾啦÷榫鳎可參考《XXXXXXX》和《XXXXXXX》痕寓。
(3)產(chǎn)品發(fā)布或上線前,進(jìn)行相應(yīng)的安全漏洞掃描蝇闭。對(duì)發(fā)現(xiàn)的漏洞呻率,及時(shí)更改丁眼,防止應(yīng)用帶病上線給不法分子帶來可乘之機(jī)筷凤。
(4)對(duì)于主機(jī)安全,也要做好主機(jī)的安全基線配置苞七∶晔兀可參考《XXXXXXXX》。
有效監(jiān)控蹂风,應(yīng)急響應(yīng)
以下內(nèi)容是通過本人的一些實(shí)踐以及參考互聯(lián)網(wǎng)上某些帖子或文章進(jìn)行整理的卢厂。
1、查看可疑用戶
登錄系統(tǒng)惠啄,查看目前是否有可疑用戶登錄或已經(jīng)登錄過服務(wù)器的可疑用戶慎恒。查看方式舉例如下:
方法一:執(zhí)行“w”命令
[root@TEST root]$ w
08:37:22 up 530 days, 22:33, 2 users, load average: 0.06, 0.11, 0.11
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
nobody pts/6 172.18.124.66 23:36 0.00s 0.06s 0.02s sshd: nobody [priv]
test pts/7 172.16.124.45 23:37 8:57m 3.19s 0.01s sshd: test [priv]
方法二:執(zhí)行“last”命令
[root@TEST root]$ last -n 20
test pts/7 172.16.22.28 Mon Jun 24 23:37 still logged in
test pts/6 172.16.22.28 Mon Jun 24 23:36 still logged in
test pts/5 172.16.22.28 Mon Jun 24 18:35 - 23:45 (05:09)
test pts/2 172.16.22.28 Mon Jun 24 18:32 - 23:45 (05:12)
test pts/7 172.16.22.28 Mon Jun 24 15:04 - 15:50 (00:45)
test pts/6 172.16.22.28 Mon Jun 24 10:24 - 18:31 (08:06)
test pts/5 172.16.22.28 Mon Jun 24 10:24 - 18:31 (08:06)
通過上述兩種方式,我們需要排查是否有可疑用戶撵渡,可疑源IP融柬。如發(fā)現(xiàn)可疑用戶或可疑來源IP,我們需要對(duì)其進(jìn)行鎖定趋距。假如發(fā)現(xiàn)可疑用戶為test粒氧,鎖定方式如下:
passwd -l test
鎖定之后,有可能用戶還處于登錄狀態(tài)节腐,此時(shí)需要及時(shí)將此用戶剔出終端使其下線外盯。命令如下:
pkill -9 -t 終端號(hào) 此終端號(hào)就是上述w命令或last命令顯示出的第二列,如pts/6
另附上其他查看可疑用戶的方法:
1-1:查看是否有異常的系統(tǒng)用戶
cat /etc/passwd
1-2:查看是否產(chǎn)生了新用戶翼雀,UID和GID為0的用戶
grep "0" /etc/passwd
1-3:查看passwd
的修改時(shí)間饱苟,判斷是否在不知的情況下添加用戶
ls -l /etc/passwd
1-4:查看是否存在特權(quán)用戶
awk -F: '$3==0 {print $1}' /etc/passwd
1-5:查看是否存在空口令賬號(hào)
awk -F: 'length($2)==0 {print $1}' /etc/shadow
2、查看系統(tǒng)日志
可查看的系統(tǒng)日志有:/var/log/messages狼渊,/var/log/secure箱熬,各用戶下的.bash_history文件,特別是root用戶下的.bash_history文件狈邑,這個(gè)文件中記錄著用戶執(zhí)行的所有命令坦弟。常見日志詳情如下:
/var/log/boot.log:錄了系統(tǒng)在引導(dǎo)過程中發(fā)生的事件,就是Linux系統(tǒng)開機(jī)自檢過程顯示的信息
/var/log/lastlog :記錄最后一次用戶成功登陸的時(shí)間官地、登陸IP等信息
/var/log/messages :記錄Linux操作系統(tǒng)常見的系統(tǒng)和服務(wù)錯(cuò)誤信息
/var/log/secure :Linux系統(tǒng)安全日志,記錄用戶和工作組變壞情況烙懦、用戶登陸認(rèn)證情況
/var/log/btmp :記錄Linux登陸失敗的用戶驱入、時(shí)間以及遠(yuǎn)程IP地址
/var/log/syslog:只記錄警告信息,常常是系統(tǒng)出問題的信息,使用lastlog查看
/var/log/wtmp:該日志文件永久記錄每個(gè)用戶登錄亏较、注銷及系統(tǒng)的啟動(dòng)莺褒、停機(jī)的事件,使用last命令查看
/var/run/utmp:該日志文件記錄有關(guān)當(dāng)前登錄的每個(gè)用戶信息雪情。如 who遵岩、w、users巡通、finger等就需要訪問這個(gè)文件
詳見https://blog.csdn.net/dubendi/article/details/78782691
栗子1:查看是否有用戶嘗試進(jìn)行暴力破解服務(wù)器尘执,可通過在/var/log/secure文件中進(jìn)行查看
最近登錄失敗的次數(shù)統(tǒng)計(jì)概覽
cat /var/log/secure | grep 'Failed password' | grep sshd | awk '{print $1,$2}' | sort | uniq -c
[test@TEST ~]# cat /var/log/secure | grep 'Failed password' | grep sshd | awk '{print $1,$2}' | sort | uniq -c
5 Jun 23
12 Jun 24
具體登錄失敗詳情
cat /var/log/secure|grep Failed
[root@TEST ~]# cat /var/log/secure|grep Failed
Jun 23 10:21:00 TEST sshd[26029]: Failed password for test from 172.16.120.21 port 56835 ssh2
Jun 23 11:07:36 TEST sshd[27755]: Failed password for test from 172.22.193.22 port 1036 ssh2
Jun 23 21:33:33 TEST sshd[17490]: Failed password for test from 172.22.193.196 port 1056 ssh2
Jun 23 22:58:17 TEST sshd[20290]: Failed password for test from 172.22.193.4 port 35437 ssh2
栗子2:查看用戶對(duì)服務(wù)器操作的歷史記錄
執(zhí)行history命令,或查看用戶根目錄下的.bash_history文件
history
3宴凉、查看可疑進(jìn)程
檢查可疑進(jìn)程的命令很多誊锭,例如ps,top等弥锄。找到對(duì)應(yīng)可疑進(jìn)程的pid后丧靡,我們可以查看對(duì)應(yīng)PID目錄下exe文件的信息,命令如下:
ls -al /proc/2001/exe
其中2001就是pid的值
我們可以殺掉進(jìn)程籽暇,并刪除進(jìn)程所在的文件路徑温治。
當(dāng)然,有些時(shí)候攻擊者將攻擊程序隱藏得很深戒悠,例如rootkits后門程序熬荆,在這種情況下ps、top救崔、netstat等命令也有可能被替換惶看,如果再通過系統(tǒng)自身的命令取檢查可疑進(jìn)程就變得不可信,此時(shí)可借助于第三方的檢查工具來檢查系統(tǒng)可疑程序六孵。如chkrootkit纬黎、RKHunter、webshellkiller等工具劫窒,通過這些工具可以很方便的發(fā)現(xiàn)系統(tǒng)被替換或篡改的程序本今。下面簡(jiǎn)單介紹下chkrootkit的使用方法。
3-1主巍、下載
http://www.chkrootkit.org/download/
3-2冠息、上傳服務(wù)器后解壓
tar -xzvf chkrootkit.tar.gz
3-3、進(jìn)入解壓后的目錄孕索,編譯執(zhí)行
make
3-4逛艰、利用root用戶執(zhí)行檢查(進(jìn)入安裝目錄)
./chkrootkit | grep INFECTED 如果有信息顯示,則有問題搞旭;否則安全散怖。
4菇绵、查看可疑定時(shí)任務(wù)
攻擊者有可能未在當(dāng)前時(shí)間執(zhí)行攻擊,有可能設(shè)置了定時(shí)任務(wù)镇眷,在一定時(shí)間執(zhí)行攻擊任務(wù)咬最。此時(shí)需要我們檢查下是否存在可疑定時(shí)任務(wù)。如下三個(gè)命令可綜合一起查看:
crontab -l
cat /etc/crontab
ls /etc/cron.*
如果定時(shí)任務(wù)為可疑程序欠动,則刪除定時(shí)任務(wù)并將可疑腳本刪除永乌。
5、檢查系統(tǒng)啟動(dòng)項(xiàng)
很多攻擊者攻擊的惡意程序會(huì)修改系統(tǒng)啟動(dòng)項(xiàng)具伍,這樣即使我們對(duì)系統(tǒng)進(jìn)行重啟時(shí)翅雏,惡意程序也能自動(dòng)啟動(dòng)。所以為了避免此類問題沿猜,我們應(yīng)該查看系統(tǒng)可疑啟動(dòng)項(xiàng)枚荣,及時(shí)刪除處理。
chkconfig --list
等級(jí)0表示:表示關(guān)機(jī)
等級(jí)1表示:?jiǎn)斡脩裟J?/p>
等級(jí)2表示:無(wú)網(wǎng)絡(luò)連接的多用戶命令行模式
等級(jí)3表示:有網(wǎng)絡(luò)連接的多用戶命令行模式
等級(jí)4表示:不可用
等級(jí)5表示:帶圖形界面的多用戶模式
等級(jí)6表示:重新啟動(dòng)
6啼肩、檢查異常文件
檢查異常文件橄妆,我們的重點(diǎn)可以放在如下幾個(gè)地方:
1、很多應(yīng)用系統(tǒng)有上傳文件的功能祈坠,對(duì)于異常文件害碾,我們可以重點(diǎn)關(guān)注上傳文件的目的地,即上傳路徑赦拘。查看可疑文件慌随,不在上傳白名單目錄下的文件。
2躺同、查看敏感目錄阁猜,如/tmp目錄下的文件,同時(shí)注意隱藏文件夾蹋艺。
一些基本查看異常文件命令如下所示:
find / -uid 0 –perm -4000 –print
find / -name "…" –print
find / -name ".." –print
find / -name "." –print
find / -name " " –print
我們可以根據(jù)需要進(jìn)行查看剃袍。
以上便是本人的一點(diǎn)總結(jié),有誤之處捎谨,還請(qǐng)不吝指出民效。