서버 부하 해결기
XMRig Malware로 인한 서버 부하 해결하기
요약
마이닝 오픈 소스 SW인 XMRig Malware이 비정상적으로 높은 CPU 점유율을 차지하여 서버가 느려지고 이내 접속이 어려줘지는 상황이 발생했다. 하여 해당 프로그램을 삭제해 문제를 해결했다.
전조 증상
우선 처음에는 join과 서브 쿼리를 사용한 sql문을 실행했더니 4분 이상이 소요되어도 완료가 되지 않는 것을 보고 이상함을 느꼈다. 혹시 쿼리문의 오류가 있는 건가 싶어서 기본 select문을 실행하였더니 2분 정도가 소요되었다. 이후 서버에서 돌아가는 웹 사이트 접속이 불가능하게 되었고, 톰캣을 재실행해도 실행된 직후만 작동하고 잠시 후에는 다시 접근이 되지 않았다.
문제 확인
무엇이 문제인지 감이 잡히지 않았다. 톰캣은 재실행 했고, local에서 프로젝트를 실행하면 문제가 없고, DB도 재실행을 했다. 설사 DB 연결이 끊긴 탓이래도 기본 main 화면은 떠야 했다. 그래서 처음에는 ‘서버 멈춤’ 등의 키워드를 통해 검색을 시도했고, top
명령어를 알게 되었다.
서버에 접근하여 top 명령어를 입력하니 전체적인 CPU / Memory의 사용량 및 프로세스 단위의 리소스 사용량을 확인할 수 있게 되었다. 여러 개의 프로세스 중 가장 눈에 띄었던 것은 최상단에 위치한 XMRig
였다.
XMRig Malware란
XMRig는 암호화폐 채굴을 위한 오픈 소스 SW이나 사이버 공격자에 의해 악용되곤 한다. 사이버 공격자는 타인의 서버에 XMRig를 설치 및 실행하여 CPU를 잡아먹는다. 이로 인해 기존의 서비스가 정상적으로 제공되지 않게 만든다.
문제 해결
우선 당장 서비스를 제공해야 했기 때문에 xmrig를 삭제하고자 했다.
1. kill
1
kill -9 (PID)
top에서 확인한 XMRig의 PID를 kill 하여 프로세스를 종료했다.
2. find and rm
1
2
3
find / -name xmrig
rm -rf c3pool
find
명령어를 사용하여 xmrig라는 이름을 가진 디렉토리 / 파일을 찾았다. 위치는 제각각이지만 필자의 서버에서는 /root/c3pool 아래에 존재했다. 그리고 c3pool을 rm
명령어를 사용하여 삭제했다.
결과
XMRig를 삭제하고 나니 서비스가 정상적으로 제공되었다.
회고
이런 악성 프로그램을 마주하는 것은 처음이어서 꽤 당황했지만 1시간만에 해결하고 무사히 퇴근할 수 있어서 뿌듯했다.