161. 권한 변경 이상 — 실행 파일 권한 변경 탐지

changseop lee·6일 전

시스템 보안 · 취약점

목록 보기
161/450

시스템 보안 · 취약점 › D. 권한 변경 이상 징후 · 11/50편 (전체 161/450)
학습 단계: 파일 권한 변경 이상
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

실행 파일의 권한 변경은 "실행 가능하게 만들기"와 "SUID 설정"이 핵심입니다. 공격자는 업로드한 악성 파일에 실행 권한을 주거나, 정상 바이너리에 SUID를 설정해 상승을 노립니다.

실행 파일 권한 변경
 chmod +x /tmp/payload     → 업로드 파일 실행 가능화
 chmod +x /dev/shm/x       → 메모리 경로 실행
 chmod 4755 /usr/bin/xxx   → SUID 설정(상승, D22)
 chmod 777 바이너리         → 변조 가능화

위험: 비표준 경로(+x) / 시스템 바이너리(SUID·변조)

특히 /tmp·/dev/shm·업로드 경로의 파일에 실행 권한을 주는 것은 강한 공격 신호입니다.

2. 왜 중요한가

  • 공격자는 파일을 업로드한 뒤 chmod +x로 실행 권한을 부여합니다(실행 전 필수 단계).
  • 비표준 경로(/tmp·/dev/shm)의 실행 권한 부여는 정상 운영에서 드뭅니다.
  • 시스템 바이너리 SUID 설정은 상승(D22), 쓰기 완화는 바이너리 변조입니다.

3. 핵심 명령어 / 설정

변경경로위험
chmod +x/tmp,/dev/shm높음(페이로드 실행)
chmod +x업로드 경로높음(웹셸 등)
chmod 4755/usr/bin높음(SUID 상승)
chmod 777시스템 바이너리높음(변조)
chmod +x배포 스크립트낮음(정상)

4. 실습 (실습 예시)

# 실행 파일 권한 변경 탐지 (분석 방법)
# 비표준 경로 실행 권한 부여
sudo ausearch -k perm_change -i --start recent 2>/dev/null | grep -E 'chmod.*\+x|chmod.*7[0-7][0-7]' | grep -E '/tmp/|/dev/shm/|/var/tmp/' | tail

# 현재 비표준 경로의 실행 파일
find /tmp /dev/shm /var/tmp -type f -perm /111 2>/dev/null

5. 정상 상태

$ (비표준 경로 +x) (없음)
$ (비표준 실행 파일) (없음)

/tmp·/dev/shm 등에 실행 권한 파일이 없고, 배포 경로의 정상 스크립트에만 실행 권한이 있는 상태가 정상입니다.

6. 이상 상태

$ (비표준 경로 +x)
02:30 auid=www-data proctitle="chmod +x /tmp/.x"
$ (비표준 실행 파일)
/tmp/.x
/dev/shm/payload
  • www-data(웹 서비스 계정)가 /tmp/.x에 실행 권한 → 웹셸·페이로드 실행 준비
  • 숨김 이름(.x)·메모리 경로(/dev/shm) → 은닉 의도
  • 실행 권한 부여 직후 실행(프로세스 생성)으로 이어지는지 확인

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

실행 파일 권한 변경 흐름입니다(가상의 예시 로그).

[업로드] /tmp/.x 생성 (웹 업로드 등)
type=PROCTITLE ... proctitle=chmod +x /tmp/.x auid=www-data key="perm_change"
[이후] /tmp/.x 실행 (프로세스 생성, G영역)
관찰해석
chmod +x /tmp/.x페이로드 실행 가능화
auid=www-data웹 계정(비정상)
숨김·메모리 경로은닉
이후 실행페이로드 가동

업로드 → 실행 권한 → 실행의 흐름을 세션으로 연결해 탐지합니다.

8. SOC 관제 포인트

  • 실행 파일 권한 변경은 비표준 경로 +x 와 시스템 바이너리 SUID/변조가 핵심입니다.
  • /tmp·/dev/shm의 실행 권한 부여는 페이로드 실행 준비로 높은 우선순위입니다.
  • 실행 권한 부여 직후 실행으로 이어지는지 연계 감시합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_d,perm_change,">
  <rule id="103090" level="12">
    <if_sid>103000</if_sid>
    <field name="audit.proctitle" type="pcre2">chmod\s+.*(\+x|[0-7][0-7][1357]|7[0-7][0-7]).*(/tmp/|/dev/shm/|/var/tmp/)</field>
    <description>비표준 경로(tmp/shm) 실행 권한 부여</description>
    <mitre><id>T1222.002</id><id>T1059</id></mitre>
  </rule>
</group>

웹 서비스 계정(www-data)의 실행 권한 부여는 더 높은 레벨로 둡니다(웹셸 가능성).

10. 대응 방법

  1. 초기 확인 — 실행 권한을 받은 파일의 경로·이름·주체·시점을 확인합니다.
  2. 범위 확인 — 비표준 경로 여부·업로드 연관·실행 권한 부여 후 실행을 확인합니다.
  3. 증거 확보 — 권한 변경 로그와 대상 파일(해시·내용)을 보존합니다.
  4. 차단/조치 — 악성 파일은 실행 권한 제거·격리, 세션 종료를 진행합니다.
  5. 재발 방지 — 비표준 경로 실행 권한 부여 탐지를 운영합니다.

11. 핵심 정리

변경위험
+x /tmp·/dev/shm페이로드 실행 준비
+x 업로드 경로웹셸
4755 바이너리SUID 상승
777 바이너리변조
면접 포인트"/tmp·/dev/shm의 chmod +x는 실행 직전 단계 — 강한 신호"

12. 다음 편 예고

다음 편 162. 권한 변경 이상 — 디렉터리 권한 변경 탐지 에서는 디렉터리 권한 변경을 다루는 디렉터리 권한 변경 탐지를 다룹니다.


이전 편: 160. 권한 변경 이상 — 설정 파일 권한 변경 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글