안녕하세요.
최근 가장 심각한 보안 위협으로 떠오른 랜섬웨어. 이에 대해 알아본 후 웹사이트 운영 업무를 하면서 직접 경험했던 리눅스 서버의 로그와 톰캣(Tomcat) 로그를 통해 이상 징후를 확인하고 대응했던 경험을 공유하고자 합니다.
목차
1. 랜섬웨어란 무엇인가?
2. 최근 랜섬웨어 공격 동향과 피해 사례
3. 랜섬웨어 초기 흔적 파악하기
3-1. 로그(톰캣, 아파치) 분석
3-2. 비정상 접속 탐지
3-3. 모니터링을 통한 탐지
4. 파일 변조 탐지
4-1. find, lsattr, inotify 활용 실시간 탐지
4-2. 파일 무결성 점검 및 관리
1. 랜섬웨어란 무엇인가?
Ransom(몸값) + Software(소프트웨어)의 합성어로 시스템을 잠그거나 데이터를 암호화해 사용할 수 없도록 하고 이를 인질로 금전을 요구하는 악성 프로그램
공격자는 보통 복호화 키 제공 대가로 암호화폐(비트코인 등)를 요구하지만, 돈을 지불한다고 해서 복호화 키를 받을 수 있다고 보장할 수 없습니다. 또한 암호화 데이터를 복구하더라도 다음과 같은 문제가 있을 수 있습니다.
* 일부 파일의 손상
* 시스템 파일의 비정상적인 변조
* 숨겨진 추가 악성코드
2. 최근 랜섬웨어 공격 동향과 피해 사례
최근 랜섬웨어는 단순히 데이터 암호화에서 복합적인 형태로 진화되고 있습니다.
* 이중 갈취(데이터 암호화 + 정보 유출 협박) : 데이터 암호화 후 금전 요구 방식에서 데이터 암호화와 더불어 DDos 공격을 병행하고 정보 유출 협박까지 하는 이중 갈취의 형태가 많이 나타나고 있습니다.
* 공급망 공격 : 제3자 도구나 서비스를 이용하여 표적의 시스템 또는 네트워크에 침투하는 간접 공격입니다. 전자상거래 사이트에서 공통으로 사용하는 모듈의 파일을 변조한 후 이 모듈을 통해 전자상거래 사이트들을 공격하는 방법이라고 할 수 있습니다.
* 클라우드 환경 공격 : 클라우드 환경이 증가함에 따라 클라우드 서버 자체의 취약점을 이용하거나 사용자의 설정이나 관리 부실을 악용하여 환경을 노리는 공격 또한 증가하고 있습니다.
<최근 발생한 국내 사례>
* YES24 서비스 마비 : 25년 6월 서버의 주요 데이터를 암호화하고, 이를 복구 해주는 대가로 금전을 요구한 이중 갈취 형태
* SGI서울보증 서비스 마비 : 25년 7월 SSL-VPN 장비의 취약점을 이용하여 로그인 시도 횟수 제안의 미흡함을 무차별 대입 공역으로 침투하여 공격
* 롯데카드 개인정보 유출 : 결제 시스템의 보안 취약점을 이용해 침투
이밖에 알려지지 않은 많은 기업이 지금 이 시각에도 랜섬웨어 공격을 당하고 있으며 아래의 자료와 같이 랜섬웨어 발생 건수는 나날이 증가하고 있습니다.
3. 랜섬웨어 초기 흔적 파악하기
이 악성코드는 피싱 메일 속 교묘한 링크를 통해, 또는 취약한 웹 애플리케이션의 접속 계정을 탈취하는 등 다양한 경로를 통해 서버에 몰래 침투합니다. 침투 후 파일과 데이터가 암호화되고 나면 복구는 매우 어려운 일이기 때문에 빠르게 감염 징후를 발견하고 즉시 조치를 취하는 것이 최고의 방어입니다.
랜섬웨어 침투의 대표적 초기 징후
* 비정상 파일 변경 및 암호화 내역 : 서버 내 중요 파일들이 갑자기 변경되거나 임의의 문자열로 변조된 확장자를 갖게 함
* 예기치 않은 CPU 및 디스크 사용률 증가 : 암호화 작업 등으로 인해 서버 리소스 사용량이 급격히 상승
* 네트워크 트래픽 비정상 증대 : 외부 공격자와 통신하거나, 내부에서 대규모 데이터 전송 시도 시 트래픽 급증
로그에서 반복적인 인증 실패 및 계정 이상 활동 : 접속 계정 탈취나 비정상 로그인 시도가 빈번히 기록됨
* 비정상적인 접근 시도 : 특정 IP가 짧은 시간 동안 대량의 접속 시도를 하거나 보안 취약점이나 SQL Injection 등을 찾으려는 비정상적인 요청을 보냄
* 알 수 없는 스크립트나 프로세스 실행 시도 : 평소 실행하지 않던 스크립트, 특히 PowerShell, Bash, Python 등 의심스러운 스크립트 실행 흔적이 있거나 비정상적으로 높은 리소스 사용을 일으키는 낯선 프로세스 발견
3-1. 로그(톰캣, 아파치) 분석
랜섬웨어는 시스템에 침투하고 암호화 작업을 실행하는 과정에서 흔적을 남기며, 모두 로그(Log)에 남게 됩니다. 톰캣 환경에서는 접속 로그, 에러 로그, 애플리케이션 로그를 함께 분석함으로써 비정상 요청을 조기에 식별할 수 있습니다.
주요 로그 파일
* catalina.out : 서버의 실행 및 종료기록과 애플리케이션의 코드 내 콘솔 출력 등 예기치 않은 스택 트레이스나 특정 라이브러리 로딩 오류 정보가 기록됩니다.
* localhost_access_log.txt : 클라이언트 IP, 요청 URL, 응답 코드와 서비스 접근 로그가 기록되어 공격자의 취약점 탐색, 무차별 대입 공격(Brute-force attack), SQL 인젝션 공격 시도 등이 기록될 수 있습니다.
* manager 또는 host-manager 로그 : 톰캣 관리 콘솔에 대한 로그인 접속을 기록합니다. 랜섬웨어는 관리자 권한을 탈취하여 시스템에 침투하는 경우가 많아 외부의 악의적인 접근 시도를 탐지하기 위해서 중요한 역할을 합니다.
이 외에도 아래와 같은 다양한 로그들이 있으며 이런 로그들을 주기적으로 확인해야 합니다.
3-2. 비정상 접속 탐지
랜섬웨어 침투의 주요 패턴은 비정상적인 요청, 취약점 악용, 시스템 명령 실행 흔적으로 확인할 수 있습니다.
1) 비정상적인 접근 및 업로드 요청
/admin, /phpmyadmin 등 관리자 페이지에 대한 무차별 대입 공격 흔적 또는 /shell.jsp와 같이 존재하지 않는 웹 쉘 업로드 흔적 탐색
2) 비정상 파라미터
%00, %2e, %2f 등 비정상적인 파라미터 흔적 탐색
3) 이상 응답 코드 비율 확인
공격자가 취약점을 찾기 위해 시도 할 경우 404(Not Found)나 403(Forbidden) 응답이 갑자기 증가할 수 있으므로 응답 코드 비율 확인
4) SQL 인젝션이나 스크립트 삽입 흔적 탐색
union, select, OR 1=1, <script> 등의 문자열이 포함되었는지 확인
5) 에러 및 예외 발생 내역 확인
catalina.out의 다양한 에러와 예외 발생 내역 확인
위와 같이 톰캣의 로그 파일에서는 다양한 정보를 확인할 수 있으므로, 서버 운영자는 주기적으로 로그를 확인하여 비정상 요청 및 시도를 조기에 탐지해야 합니다.
3-3. 모니터링을 통한 탐지
시각적으로 한눈에 서버의 상태를 확인할 수 있는 모니터링 서비스는 각종 위협에 빠르게 대응할 수 있기 때문에 서비스 운영자가 갖추어야 할 필수 요소입니다.
저희가 시스템을 구축하고 운영하며 가장 중요하게 여겼던 부분들을 중심으로 데이터를 수집하고 한눈에 볼 수 있는 대시보드를 만들어 서버의 상태를 수시로 확인하고 있습니다.
방대한 내용의 수집 데이터를 한눈에 파악하기 위해 핵심 지표는 큰 숫자로 표시하고 시간 흐름에 따라 변화를 볼 수 있는 그래프를 중점으로 만들었습니다.
아래의 화면은 사용 중인 모니터링 대시보드 화면으로, 이를 통해 알 수 있는 내용을 공유하도록 하겠습니다.
1) 서버 자원 현황
컨테이너(Tomcat)별 메모리 사용률과 초당 트랜잭션(TPS:Transaction per second) 개수를 확인
2) Active Service
250ms 간격으로 컨테이너와 was 단위별로 수행되는 서비스 개수를 확인
3) XLOG
종료된 트랜잭션 응답시간의 시간, 처리상태, 개수 확인
이 밖에도 서버 스토리지 용량, 비밀번호 변경 만료일, 인증서 만료일, 차단 IP 목록, 사이트별 접속 수 상위 IP 목록 등 서버 운영에 필요한 다양한 정보를 한눈에 알아볼 수 있게 대시보드를 만들어서 사용 중입니다.
4. 서버 내 파일 변조 탐지하기
랜섬웨어는 서버 내 주요 파일을 암호화하거나 임의 변조하기 때문에 서버의 파일 상태에 대한 모니터링 또한 필수입니다.
대표적인 3가지 명령어를 통해서 파일의 상태를 확인하는 방법에 대해 알아보겠습니다.
4-1. find, lsattr, inotify 활용 실시간 탐지
랜섬웨어가 서버 내부의 중요 파일을 암호화하거나 변조할 때는 파일 생성·수정·삭제 이벤트가 반드시 발생합니다. 따라서 파일 변화를 실시간으로 추적하거나 정기적으로 검사해야 합니다.
1) find : 변경 파일 탐지
파일의 생성/변경 시점을 기준으로 파일 목록 확인
2) lsattr : 파일 속성 비교
파일의 특수 속성을 표시. 공격자가 파일을 숨기거나 수정 불가 속성을 부여하는 경우를 탐지
3) inotify : 실시간 파일 변경 이벤트 감시
파일 시스템의 변화를 실시간으로 감지. inotify-tools 패키지를 사용하며 탐지 이벤트는 아래와 같음
* IN_ACCESS: 파일이 읽힐 때
* IN_MODIFY: 파일이 수정될 때
* IN_ATTRIB: 파일 속성(권한 등)이 바뀔 때
* IN_CLOSE_WRITE: 파일 작성 완료 후 닫힐 때
* IN_CREATE: 파일/폴더가 새로 생성될 때
* IN_DELETE: 파일/폴더가 삭제될 때
* IN_OPEN: 파일이 열릴 때
* IN_MOVED_FROM, IN_MOVED_TO: 파일/폴더가 이동될 때
4-2. 파일 무결성 점검 및 관리
파일 무결성 점검은 시스템 내 중요한 파일이나 데이터가 의도치 않게 변조되거나 손상되지 않았음을 확인하는 과정입니다.
1) 해시(hash) 기반 무결성 검사
파일의 내용을 고유한 해시값(디지털 지문)으로 표현
대표적으로 MD5, SHA-1, SHA-256 해시 함수가 사용되며 파일 내용이 바뀌면 해시값이 달라지므로 이전에 저장한 해시값과 비교해 변경 여부를 확인
2) 파일 무결성 모니터링 도구 도입
AIDE, Tripwire 같은 파일 무결성을 점검하는 프로그램을 이용
시스템 내 주요 파일과 디렉토리의 해시값을 데이터베이스로 저장 후 주기적으로 변조 여부 탐지
3) 운영 권장 사항
* 정상 파일의 해시값은 별도의 안전한 장소에 저장해 관리
* 무결성 점검 작업을 자동화하여 주기적으로 시행
* 해시값을 보관하는 데이터베이스나 무결성 점검 스크립트에 대한 접근 권한 관리 철저
* 변조 내역 탐지 시 즉시 차단 및 원인 분석, 피해 복구 조치 시행
이상으로 랜섬웨어의 개념부터 최근 공격 동향, 그리고 서버 운영 시 발견할 수 있는 초기 침투 흔적과 로그 분석 및 파일 무결성 점검 방법까지 살펴보았습니다.
랜섬웨어는 사전 예방과 조기 탐지가 무엇보다 중요합니다. 공격이 발생한 뒤에는 피해를 최소화하는 것 외에는 방법이 제한적이기 때문에, 로그 분석, 모니터링, 파일 무결성 검증 같은 기본적인 보안 수칙을 꾸준히 실천하는 것이 가장 확실한 대응 방법입니다.
다음 글에서는 제가 실제로 운영 중이던 서버가 공격을 받았을 때 어떤 징후를 포착했고, 어떤 방식으로 원인 분석 및 대응을 했는지를 사례 중심으로 공유하려고 합니다.
이를 통해 이론적 지식이 실제 상황에서 어떻게 적용되는지, 그리고 현업 운영자가 체감하는 보안 대응 과정은 어떤지 생생하게 전해드리겠습니다.
다음 편 예고: 보안 위협과 대응(2편) – 실제 공격 사례와 대응 경험
'유용한 정보' 카테고리의 다른 글
검색엔진 비교_Solr vs ElasticSearch (2) | 2020.03.19 |
---|---|
AWS를 이용한 서버 구축2_아마존 EC2로 구축하기 (0) | 2019.09.03 |
AWS를 이용한 서버 구축1 (0) | 2019.09.03 |
성능 TEST를 위한 보고서 3 (0) | 2019.07.09 |
성능 TEST를 위한 보고서 2 (0) | 2019.06.28 |