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

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

선행 학습

1. 들어가며

선행 시리즈에서 rwx와 chmod는 충분히 다뤘습니다. 이번 편은 그 지식을 접근통제(access control) 라는 보안 렌즈로 다시 봅니다. 권한 비트는 단순한 설정이 아니라, 커널이 매 접근마다 실행하는 '판정 규칙'입니다.

2. 핵심 개념

권한 판정의 실제 순서를 이해해야 합니다. 커널은 다음 순서로 딱 한 그룹만 적용합니다.

  1. 프로세스 EUID == 파일 owner UID? → owner 비트 적용(끝)
  2. 아니면, 프로세스가 파일 group에 속함? → group 비트 적용(끝)
  3. 둘 다 아니면 → other 비트 적용

핵심 함정: owner여도 owner 비트만 봅니다. owner 비트가 ---면, group/other가 열려 있어도 owner는 접근하지 못합니다. '가장 먼저 매칭된 그룹만 적용'이 접근통제의 실제 규칙입니다.

접근 요청 (프로세스 EUID/EGID)
        │
        ▼
  EUID == owner? ──yes──> owner 비트(rwx)로 판정 → 끝
        │no
        ▼
  그룹 소속?      ──yes──> group 비트로 판정 → 끝
        │no
        ▼
                          other 비트로 판정

3. 동작 원리

권한 비트는 inode에 저장된 12비트(특수 3 + rwx 9)입니다. 커널의 inode_permission() 계열 함수가 위 순서로 검사합니다. 디렉터리의 권한은 파일과 의미가 다릅니다.

  • 디렉터리 r: 목록 조회(ls)
  • 디렉터리 x: 진입/내부 접근(cd, 경로 통과)
  • 디렉터리 w: 내부 파일 생성/삭제(파일 내용과 무관!)

그래서 디렉터리에 w가 있으면 그 안의 파일을 삭제할 수 있습니다 — 파일 자체 권한과 별개입니다. 이 오해가 실무 사고의 흔한 원인입니다.

4. 명령어 실습

# 권한을 기호+8진수로 함께 보기
stat -c '%A %a %U:%G %n' /etc/passwd /etc/shadow /tmp

# 특정 사용자 관점에서 접근 가능 여부 테스트(설명적)
sudo -u alice test -r /etc/shadow && echo 'alice can read' || echo 'alice denied'

5. 실행 결과

실습 환경 실제 실행 결과입니다. (실제 캡처)

$ stat -c '%A %a %U:%G %n' /etc/passwd /etc/shadow /tmp
-rw-r--r-- 644 root:root /etc/passwd
-rw-r----- 640 root:shadow /etc/shadow
drwxrwxrwt 1777 root:root /tmp

$ sudo -u alice test -r /etc/shadow && echo yes || echo 'alice denied'
alice denied

alice는 shadow의 owner도 shadow 그룹도 아니므로 other 비트(---)에 걸려 거부됩니다. /tmp의 1777에서 끝의 t(Sticky Bit)는 20편에서 다룹니다.

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

  • 정상: 민감 파일은 최소 권한(shadow 640, 개인키 600), 공용 디렉터리는 Sticky Bit.
  • 위험 징후:
    • 설정/키 파일이 group·other에 쓰기 허용(변조 가능)
    • 웹 루트가 777 (웹셸 업로드·실행)
    • 디렉터리 w 남발로 임의 삭제 가능

접근통제 점검은 '누가 이 파일을 읽고/쓸 수 있는가'를 EUID 관점에서 재구성하는 작업입니다.

7. 탐지 방법

  • 민감 파일 권한 기준선과 비교(stat)
  • 과도한 권한 파일 스캔(17·18편의 find 활용)
  • 권한 변경 감사(auditd의 chmod syscall)

8. SOC 관점 — SIEM · Wazuh · IOC

권한은 예방 통제지만, 권한 변경 이벤트는 탐지 대상입니다. auditd로 중요 경로의 chmod/chown syscall을 감사하면 '공격자가 방어를 약화시키는 순간'을 잡습니다. Wazuh SCA/FIM은 민감 파일 권한이 기준을 벗어나면 알람을 올립니다.

9. 실습 체크리스트

[ ] 권한 판정의 owner→group→other 순서 이해
[ ] 디렉터리 w의 삭제 의미 이해
[ ] 민감 파일 권한 기준선 확인
[ ] sudo -u로 접근 가능성 점검

10. 핵심 정리

  • 권한은 커널이 매 접근마다 실행하는 판정 규칙이다.
  • owner→group→other 중 먼저 매칭된 한 그룹만 적용된다.
  • 디렉터리 w는 내부 파일 삭제 권한을 뜻한다.
  • 웹 루트 777 등 과도한 권한은 웹셸의 통로다.
  • 권한 변경 이벤트는 방어 약화 지표로 감사한다.

11. 다음 편

다음 편에서는 17. World-Writable 파일 보안 점검 를 다룹니다. 누구나 쓸 수 있는 World-Writable 파일이 왜 위험한지, 어떻게 찾는지 봅니다.


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

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

0개의 댓글