본문 바로가기
개발/기타

그럴리가 없는데, PostgreSQL CPU 100% 문제 해결

by snowoods 2024. 11. 14.

해킹 피해

 

나의 경우,

PostgreSQL CPU 100% 문제는 해킹이었다.

검색으로 찾은 내용은 대부분 FK, 인덱싱 등 사용자가 있는 상황에서 쿼리 효율이 떨어진다는 내용이다.

 

그럴리가 없는데...

 

개발 단계에서

혼자 접속하는 웹사이트에

PostgreSQL DB가 CPU 100%를 먹는다고??

 

그냥 가만 있어도 CPU 100% 상태가 유지된다.

정확히는 postgres 계정이 실행한 데몬이 사용하는 쓰레드 하나가 쓰는 코어가 100%를 잡아먹는다.

악성코드 일부

 

악성 코드는 BASE64로 인코딩 되어있었고 시스템 정보를 탈취하여 원격에서 조작이 가능하도록 2차 3차 공격이 가능한 가능성을 담고 있다. 보통 좀비 PC로 사용하는데 필요할 경우 DDOS 공격용 좀비, 시스템 과부하로 업무 마비, 중요 파일 암호화로 삥뜯기(랜섬웨어), 비트코인 채굴에 이용 등 다양하다.

 

확인 방법

AWS 우분투 머신에서 발견하였다.

우선 서버가 느려져서 top 명령어로 postgres 서비스 CPU가 100%로 최상단에 올라왔다.

그 이후 ps -ef | grep postgres 를 사용하여 좀더 확실하게 확인했다.

불필요한 데몬이 제거된 상태

 

지금은 해싱된 이름이 없는 깨끗한 상태다.

악성 코드가 있던 위치는

/var/lib/postgresql/.config/systemd/user/systemd-tmpfiles-cleanup/systemd-tmpfiles-cleanup-szCEGz.sh

 

stat /var/lib/postgresql/.config/systemd/user/systemd-tmpfiles-cleanup/systemd-tmpfiles-cleanup-szCEGz.sh

  File: /var/lib/postgresql/.config/systemd/user/systemd-tmpfiles-cleanup/systemd-tmpfiles-cleanup-szCEGz.sh
  Size: 2542            Blocks: 8          IO Block: 4096   regular file
Device: 259,1   Inode: 2465631     Links: 1
Access: (0700/-rwx------)  Uid: (  111/postgres)   Gid: (  114/postgres)
Access: 2024-11-13 19:47:01.701914162 +0000
Modify: 2024-04-08 15:58:39.000000000 +0000
Change: 2024-11-11 18:59:27.832280161 +0000
 Birth: 2024-11-11 18:59:27.830280146 +0000

테스트 서버에 들어온 시점은 한국 기준으로 11월 12일 새벽 4시쯤이다.

마지막 액세스 시점이 11월 14일 새벽 5시. 오늘 새벽이다. -_ -^

 

제거 방법

악성 스크립트 파일 삭제!

/var/lib/postgresql/.config/systemd/user/systemd-tmpfiles-cleanup/systemd-tmpfiles-cleanup-szCEGz.sh

 

postgres 계정으로 이동

 sudo su - postgres

 

crontab -l

 - 악성 스크립트를 실행하는 내용을 확인.

 

crontab -e 

 - 에디터에서 악성 코드 실행 부분만 편집

 

crontab -r

 - 등록된 것이 별로 없다면 그냥 초기화

 


 

평화

평화로운 시스템 상황

 

postgres 서비스 사용율이 1% 이하로 내려갔다.

 

이 일을 격고나서 다시 검색하니 이제서야 비슷한 피해자들의 글을 찾을 수 있었다.

검색어 : PostgreSQL CPU 100 systemd-tmpfiles-cleanup

 

https://medium.com/@adityaagrawal399/unexpected-cpu-hogs-cryptojacking-threats-and-postgresql-5356df24ac73

 

Unexpected CPU Hogs, Cryptojacking, and PostgreSQL

Hey there, I’d like to share an interesting experience I had while testing a Linux server running three Spring Boot applications and…

medium.com

 

https://www.reddit.com/r/cybersecurity_help/comments/17uyoi8/strange_script_running_on_my_linux_server/

 

From the cybersecurity_help community on Reddit

Explore this post and more from the cybersecurity_help community

www.reddit.com

 

https://bbs.archlinux.org/viewtopic.php?id=181218

 

[SOLVED] systemd-tmpfiles-clean takes a very long time to run / System Administration / Arch Linux Forums

I've been having an issue for a while with systemd-tmpfiles-clean.service taking a very long time to run. I've tried to just ignore it, but it's really bothering me now. Measuring by running: # time systemd-tmpfiles --clean systemd-tmpfiles --clean 11.63s

bbs.archlinux.org

 

 

ps. 어떻게 좀비 PC가 되었는가?

 

AWS 가상 머신 상태라서 피해는 최소화 되었지만

PostgreSQL 서버를 설치하고 외부에서 접속하기 위해 보통 특정 IP만 허용하도록 방화벽으로 접근 제어를 한다.

그런데 이번에 전체를 풀고 잠깐 접근 했다가 이런 낭패를 당했다.

PostgreSQL기본 포트에 postgres 기본 계정 상태에서 외부 접속을 위해 0.0.0.0 오픈!

그 즉시 좀비들이 달려들어 나도 좀비가 되었다. -_ -

 

최근 미국 대선에서 아마존 CEO가 워싱턴 포스트의 민주당 지지 선언 사설을 막으면서 20만명의 구독자가 사라졌다는데 그 영향으로 AWS를 타겟으로 강도 높게 좀비 PC 작업을 하고 있는 게 아닌가 의심된다.

이런 작업이 있다면 다양한 좀비 작업이 활성화 되었을테니 조만간 대형 DDOS 공격이 감행될 것 같다.

또 불나는 것 아닌가!?