본문 바로가기

보안/study

“Linux 서버에 악성코드가 다운된 것 같아요” 리눅스 서버 침해사고분석

 

1. 프로세스 확인: 의심스러운 실행을 추적한다

먼저 현재 실행 중인 프로세스를 확인한다.

ps aux

프로세스가 많은 경우, 다음 조건에 해당하는 프로세스를 집중적으로 살핀다:

  • UID가 0(root 권한)인 프로세스
  • 이상한 명령어, 스크립트 파일을 실행 중인 프로세스

특정 키워드나 사용자 기반 검색도 활용한다.

ps aux | grep [파일명 또는 사용자명]

의심 프로세스를 식별했다면, 해당 프로세스가 열고 있는 파일을 확인한다.

lsof -p [PID]

2. 네트워크 연결 확인: 외부와의 통신 여부를 조사한다

악성코드가 설치되었다면 외부 서버와 C2(명령제어) 통신을 시도할 가능성이 있다.
네트워크 연결 세션을 확인한다.

netstat -taopn

옵션 설명:

  • -t: TCP
  • -a: 모든 포트
  • -o: 프로세스 ID 포함
  • -p: 관련 프로세스 정보 표시
  • -n: 포트를 숫자 형식으로 표시

3. 의심 파일 탐지: 파일 생성 및 권한 이상을 점검한다

{1} 최근에 생성/수정된 파일 찾기

공격 시점 이후 생성된 파일을 추적한다.

find / -mtime -n -type f    # 최근 n일 이내 생성된 파일
find / -ctime -n -type f    # 최근 n일 이내 변경된 파일

{2} 특수권한을 가진 파일 탐지

SetUID, SetGID, Sticky-bit가 설정된 파일은 권한 상승 공격에 악용될 수 있다.

find / -uid 0 -perm -4000   # SetUID
find / -uid 0 -perm -2000   # SetGID
find / -uid 0 -perm -1000   # Sticky-bit

4. 의심 파일 실행 여부 확인

앞서 확인한 프로세스나 파일이 실제로 실행되었는지 여부를 점검한다.
실행 중이라면 우선 프로세스를 종료하고, 증적 확보 후 분석을 진행한다.


5. crontab 설정 확인: 자동 실행 스케줄 탐색

공격자는 지속적 실행을 위해 cron에 악성 명령을 등록하는 경우가 많다.
다음 명령어로 사용자 및 시스템 전체의 크론 등록 여부를 확인한다.

crontab -l
cat /etc/crontab
ls /etc/cron.*/*

6. 로그 점검: 침투 및 내부 활동 흔적을 분석한다

로그는 침해 시점, 경로, 사용자 활동 등을 파악하는 핵심 근거이다. 다음 파일들을 점검한다.

{1} 로그인 관련 로그

lastlog          # 사용자별 마지막 로그인 시간
lastb            # 로그인 실패 기록
vi /var/log/secure  # ssh, su, sudo 등 인증 로그

{2} 시스템 로그

dmesg
cat /var/log/messages

{3} 메일 / FTP / 웹 서버 로그

cat /var/log/maillog
cat /var/log/xferlog        # FTP 로그
cat /var/log/httpd/access_log  # Apache
cat /var/log/nginx/access.log  # NGINX

{4} 감사(audit) 로그

cat /var/log/audit/audit.log

7. 명령어 사용 기록 분석

공격자가 서버 내에서 어떤 명령어를 실행했는지 확인한다.

history          # bash 명령어 히스토리
lastcomm         # 명령 실행 사용자와 시간 확인 (acct 필요)
acctcom          # 명령어 실행 시간, CPU 사용량 확인

※ lastcomm, acctcom은 acct 패키지가 설치되어 있고 로깅이 활성화되어 있어야 한다.


 

Linux 서버에서 침해사고가 의심되는 경우, 프로세스, 네트워크, 파일, 로그, 명령어를 순차적으로 분석해야 한다.
기본적인 명령어만으로도 상당 수준의 정황을 포착할 수 있으며,
침해지표(IoC)나 파일 해시, 외부 C2 IP 분석 등으로 확장하면 더 정밀한 대응이 가능하다.

빠른 분석과 함께, 증거 확보 → 격리 → 사후 대응 절차까지 이어지는 체계적인 접근이 중요하다.