ECS CPU 100% æ•
éšœæŽ'查与安å
¨äº‹ä>>¶å¤ç›˜æŠ¥å'Š
一ã€äº‹ä>>¶æ¦‚è¿°
1.1 æ•
障现象
æŸ ECS äº'æœåŠ¡å™¨å‡ºçŽ° CPU æŒç>> 100% å ç"¨é---®é¢˜ã€‚
åˆå§‹è§‚察:
- CPU 使ç"¨çŽ‡ï¼š100%
- å†
å˜ä½¿ç"¨çŽ‡ï¼šç´„40% - ECS é
置:16GB å†
å˜ - é‡å¯ ECS åŽé---®é¢˜ä>>出现
åˆæ¥åˆ¤æ--:
ç"±äºŽå†
å˜èµ„æºå
足,é---®é¢˜ä¸åƒæ™®é€šå†
å˜ä¸è¶³å¯¼è‡´ï¼Œæ›´å¯èƒ½æ˜¯æŸä¸ªè¿›ç¨‹å¼‚常å ç"¨ CPU。
二ã€é---®é¢˜æŽ'查过程
2.1 查看 CPU é<<˜å ç"¨è¿›ç¨‹
执行:
bash
top
å'现:
PID USER CPU COMMAND
1854 root 783% kswapd00
åˆæ¥åˆ¤æ--:
CPU 消è€---æ¥æºä¸º kswapd00。
但æ£å¸¸ Linux å†
æ ¸çº¿ç¨‹åç§°åº"该是:
kswapd0
è€Œä¸æ˜¯ï¼š
kswapd00
å˜åœ¨ä¼ªè£
å¯èƒ½ã€‚
2.2 æŽ'查å†
å˜åŠ Swap 状æ€
执行:
bash
free -h
ç>>"果:
Mem:
total 15Gi
used 6.8Gi
free 8.6Gi
Swap:
total 8.0Gi
used 0B
ç>>"论:
- å†
å˜å
è¶³
- Swap 未使ç"¨
- æŽ'除å†
å˜ä¸è¶³å¯¼è‡´ CPU 异常
2.3 查看ç³>>ç>>Ÿè´Ÿè½½æƒ
况
执行:
bash
vmstat 1 10
å'现:
us sy id wa st
97 3 0 0 0
说明:
CPU å‡ ä¹Žå
¨éƒ¨è¢<<å ç"¨ã€‚
åŒæ---¶å'现:
r=8~12
å˜åœ¨å¤§é‡ç‰å¾
è¿è¡Œä>>>>务。
2.4 判æ-- kswapd 是å¦çœŸå®žå†
æ ¸çº¿ç¨‹
查看:
bash
ls -l /proc/1854/exe
ç>>"果:
/proc/1854/exe -> /root/.configrc7/a/kswapd00
å
³é"®å'现:
æ£å¸¸ Linux å†
æ ¸çº¿ç¨‹ï¼š
/proc/PID/exe
åº"该ä¸å˜åœ¨å®žé™
æ--‡ä>>¶ã€‚
但该进程:
/root/.configrc7/a/kswapd00
说明:
这是ç"¨æˆ·æ€ç¨‹åºä¼ªè£
æˆç³>>ç>>Ÿçº¿ç¨‹ã€‚
三ã€ç¡®è®¤æ¶æ„程åº
3.1 查看程åºç±>>åž‹
执行:
bash
file /root/.configrc7/a/kswapd00
ç>>"果:
ELF 64-bit LSB executable
statically linked
说明:
这是独ç<<‹äºŒè¿›åˆ¶ç¨‹åºã€‚
3.2 查看程åºç‰¹å¾
执行:
bash
strings /root/.configrc7/a/kswapd00
å'现:
POOL
ç>>"åˆï¼š
- é<<˜ CPU å ç"¨
- å¤šæ ¸è®¡ç®---
- HugePage 使ç"¨
- 伪è£
ç³>>ç>>Ÿè¿›ç¨‹
判æ--:
该程åºä¸º CPU æŒ--矿木马。
å››ã€è¿›ä¸€æ¥æŽ'查å
¥ä¾µæƒ
况
4.1 检查 SSH ç™>>录记录
执行:
bash
last -a
å'现大é‡ï¼š
root ç™>>录
æ¥æº IP:
58.253.xxx.xxx
æ---¶é---´é›†ä¸åœ¨ï¼š
6月åˆè‡³6月底。
4.2 检查 SSH ç™>>录æ---¥å¿---
执行:
bash
grep "Accepted" /var/log/secure
å'现:
Accepted password for root
说明:
æ">>å‡>>è€
通过 root å¯†ç æˆåŠŸç™>>录æœåŠ¡å™¨ã€‚
4.3 检查 SSH åŽé---¨
查看:
bash
cat /root/.ssh/authorized_keys
å'现陌ç"Ÿ SSH Key:
mdrfckr
说明æ">>å‡>>è€
å¢žåŠ äº† SSH ç™>>录å
¥å£ã€‚
4.4 æ¸
ç† SSH Key ä¿æŠ¤
åˆ é™¤ key æ---¶å'现:
Operation not permitted
检查:
bash
lsattr /root/.ssh
å'现:
----ia--------
说明目录è¢<<设置:
- immutable
- append only
解除:
bash
chattr -ia /root/.ssh
ç„¶åŽåˆ 除:
bash
rm -f /root/.ssh/authorized_keys
äº"ã€æ¸
ç†æŒä¹
åŒ--机制
5.1 查找 cron æŒä¹
åŒ--
执行:
bash
grep -R "configrc7" /var/spool/cron
å'现:
@reboot /root/.configrc7/a/upd
@reboot /root/.configrc7/b/sync
说明:
æœåС噍é‡å¯åŽä¼šè‡ªåЍæ¢å¤æœ¨é©¬ã€‚
æ¸
ç†ï¼š
ç¼--è¾':
bash
vi /var/spool/cron/root
åˆ é™¤æ¶æ„ä>>>>务。
5.2 å'现第二å¥---åŽé---¨
检查:
/root/.configrc7
å'现:
a/
â"œâ"€â"€ kswapd00
â"œâ"€â"€ init01
â"œâ"€â"€ init02
â"œâ"€â"€ upd
â""â"€â"€ delsshd
b/
â"œâ"€â"€ sync
â"œâ"€â"€ run
â""â"€â"€ stop
说明:
æ">>å‡>>è€
部署完整控制程åºã€‚
5.3 æ¸
ç† rc.local
å'现:
/etc/rc.local
å˜åœ¨ï¼š
/usr/sbin/netstat.cfg
检查:
bash
file /usr/sbin/netstat.cfg
å'现:
ELF 64-bit executable
说明:
该æ--‡ä>>¶ä¼ªè£
æˆé
ç½®æ--‡ä>>¶ï¼Œå®žé™
ä¸ºæ¶æ„程åºã€‚
åˆ é™¤ï¼š
bash
rm -f /usr/sbin/netstat.cfg
5.4 æ¸
ç†éšè---目录
å'现:
/tmp/.X291-unix/.rsync/
cron ä¸å˜åœ¨ï¼š
0 0 */3 * * /tmp/.X291-unix/.rsync/c/aptitude
说明:
还有备ç"¨æŒä¹
åŒ--程åºã€‚
需è¦ç>>§ç>>æ¸
ç†ï¼š
- cronä>>>>务
- éšè---目录
- 坿‰§è¡Œæ--‡ä>>¶
å
ã€æœ€ç>>ˆå¤„ç†ç>>"æžœ
已完æˆå¤„ç†ï¼š
- âœ
å®šä½ CPU é<<˜å ç"¨è¿›ç¨‹ - âœ
确认éžç³>>ç>>Ÿ kswapdï¼Œè€Œæ˜¯æ¶æ„ç¨‹åº - âœ
找到 CPU æŒ--矿程åº- 路径:
/root/.configrc7/a/kswapd00
- 路径:
- âœ
åœæ¢å¼‚常 CPU 进程 - âœ
åˆ é™¤æ">>å‡>>è€
SSH Key - âœ
æ¸
除 SSH key æ--‡ä>>¶ä¿æŠ¤å±žæ€§ - âœ
æ¸
ç† cron æŒä¹
åŒ-- - âœ
åˆ é™¤ï¼š/root/.configrc7 - âœ
åˆ é™¤ï¼š/usr/sbin/netstat.cfg
七ã€é---®é¢˜æ ¹å› 分æž
ä¸>>è¦åŽŸå› ï¼š
1. root å¯†ç æš´éœ²
æ">>å‡>>è€
通过:
SSH + root密ç
获å¾---æœåС噍æƒé™ã€‚
2. SSH安å
¨é
ç½®ä¸è¶³
å½"å‰é
置:
PermitRootLogin yes
PasswordAuthentication yes
风险:
- root å¯ä>>¥ç›´æŽ¥ç™>>录
- 密ç çˆ†ç ´é£Žé™©é<<˜
3. 缺å°'æœåС噍安å
¨ç›'控
æœªåŠæ---¶å'现:
- CPU异常
- 异常ç™>>录
- æ--°å¢žæ--‡ä>>¶
- cronä¿®æ"¹
å
<<ã€å®‰å
¨åŠ å›ºå>>ºè®®
8.1 ç¦æ¢ root 密ç ç™>>录
ä¿®æ"¹ï¼š
/etc/ssh/sshd_config
å>>ºè®®ï¼š
PermitRootLogin no
PasswordAuthentication no
使ç"¨ï¼š
- 普通ç"¨æˆ·
- SSH Key
- sudoæƒé™
8.2 ä¿®æ"¹æ‰€æœ‰å¯†ç
åŒ
括:
- root密ç
- æ•°æ®åº"密ç
- Redis密ç
- åº"ç"¨åŽå°å¯†ç
- 第三æ--¹æœåС坆é'¥
8.3 é™åˆ¶ SSH æ¥æº
安å
¨ç>>„é™åˆ¶ï¼š
åªå
许:
- å
¬å¸å›ºå®šIP - VPN出å£IP
访é---®ï¼š
22ç<<¯å£
8.4 å¼€å¯å®‰å
¨ç›'控
å>>ºè®®ï¼š
CPUç›'控
设置:
CPUæŒç>>:
80%
报è¦ã€‚
ç™>>录ç›'控
å
³æ³¨ï¼š
- rootç™>>录
- 异常IPç™>>录
- éžå·¥ä½œæ---¶é---´ç™>>录
æ--‡ä>>¶å˜åŒ--ç›'控
é‡ç‚¹ç›®å½•:
- /etc
- /root
- /usr/bin
- /usr/sbin
- /tmp
8.5 定期安å
¨å·¡æ£€
å>>ºè®®æ¯å'¨æ£€æŸ¥ï¼š
异常进程:
bash
ps aux --sort=-%cpu
定æ---¶ä>>>>务:
bash
crontab -l
ç™>>录记录:
bash
last
å¯ç--'æ--‡ä>>¶ï¼š
bash
find /tmp -type f -executable
ä¹ã€ç"Ÿäº§çŽ¯å¢ƒæœ€ä½³å®žè·µ
对于已ç>>å'ç"Ÿ root æƒé™æ³„露的æœåŠ¡å™¨ï¼š
推èæ--¹æ¡ˆï¼š
- 创å>>ºæ--°çš„干净 ECS
- 釿--°éƒ¨ç½²åº"ç"¨
- 导å
¥ä¸šåŠ¡æ•°æ® - æ›´æ¢æ‰€æœ‰å¯†é'¥
- 废弃æ---§æœåС噍
åŽŸå› ï¼š
root æƒé™å¤±é™·åŽï¼š
æ--- 法100%ä¿è¯æ²¡æœ‰éšè---åŽé---¨ã€‚
åã€ç>>验æ€>>ç>>"
本次æ•
障表é¢è¡¨çŽ°ï¼š
CPU 100%
实é™
åŽŸå› ï¼š
SSHå¼±å¯†ç æ³„露
â†"
æ">>å‡>>è€
获å--rootæƒé™
â†"
æ¤å
¥æŒ--矿木马
â†"
伪è£
ç³>>ç>>Ÿè¿›ç¨‹kswapd00
â†"
通过cron/rc.localä¿æŒæŒä¹
åŒ--
â†"
CPUè¢<<æŒç>>å æ>>¡
æŽ'查å
³é"®ï¼š
- ä¸è¦åªçœ‹èµ„æºæŒ‡æ ‡
- CPU异常å
ˆå®šä½å
·ä½"进程 - å
³æ³¨å¼‚常路径 - 检查æŒä¹
åŒ--机制 - root失陷åŽå¿
é¡>>釿--°è¯„ä¼°æœåС噍å¯ä¿¡åº¦
最ç>>ˆç>>"论:本次 ECS CPU 100% é---®é¢˜ä¸º Linux ä¸>>机è¢<<å
¥ä¾µåŽæ¤å
¥ CPU æŒ--çŸ¿æœ¨é©¬å¯¼è‡´ï¼Œæ ¹å› æ˜¯ SSH root 密ç ç™>>录暴露。