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

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

선행 학습

1. 들어가며

root는 리눅스에서 모든 것을 할 수 있는 계정입니다. 그 말은 곧, 공격자가 가장 갖고 싶어 하는 것이 root라는 뜻입니다. 이번 편은 root의 위험을 줄이는 관리 원칙과, root 활동을 감시하는 SOC 관점을 정리합니다.

2. 핵심 개념

root(UID 0)는 권한 검사를 사실상 우회합니다. 파일 권한이 000이어도 읽고, 어떤 프로세스든 종료하고, 커널 모듈도 올립니다. 그래서 보안 원칙은 명확합니다.

  • 직접 root 로그인 금지 — 누가 무엇을 했는지 추적 불가해짐
  • sudo를 통한 권한 사용 — 개별 사용자 신원이 로그에 남음
  • 최소 권한 — 필요한 명령만, 필요한 시간만
  나쁜 방식                      좋은 방식
  ssh root@server        vs     ssh alice@server
     │                             │ sudo <명령>
     ▼                             ▼
  '누가?' 알 수 없음            'alice가 sudo로' 로그에 남음
  (책임 추적 불가)               (책임 추적 가능)

3. 동작 원리

직접 root로 로그인하면 이후 모든 행위가 root라는 하나의 신원으로 뭉뚱그려집니다. 여러 관리자가 root로 로그인하면 누가 무엇을 했는지 구분할 수 없습니다.

반면 sudo는 실행자의 실제 UID(auid)를 로그에 남깁니다. 그래서 감사 관점에서 sudo는 '권한 상승을 추적 가능하게 만드는' 장치입니다. SSH의 PermitRootLogin no 설정(13편)은 이 원칙을 강제하는 첫 단추입니다.

4. 명령어 실습

# root 직접 로그인 시도 흔적 (Ubuntu)
sudo grep -Ei 'root' /var/log/auth.log | grep -i 'session opened' | tail

# sudo 사용 이력
sudo grep -i 'sudo' /var/log/auth.log | grep -i 'COMMAND' | tail

# 현재 SSH의 root 로그인 정책 확인
sudo sshd -T | grep -i permitrootlogin

5. 실행 결과

sshd -T(유효 설정 덤프)의 실제 실행 결과입니다. (실제 캡처 — 실습 컨테이너)

$ sudo sshd -T | grep -i permitrootlogin
permitrootlogin prohibit-password

그리고 sudo 사용 로그는 다음 형태로 남습니다. (예시 출력 — 표준 sudo 로그 형식)

Sep 25 14:03:11 host sudo:    alice : TTY=pts/0 ; PWD=/home/alice ;
  USER=root ; COMMAND=/usr/bin/cat /etc/shadow

alice가 sudo로 root 권한을 써서 /etc/shadow를 읽었다는 사실이 명확히 남습니다. 이것이 root 직접 로그인 대비 sudo의 결정적 장점입니다.

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

  • 정상: 관리자는 개인 계정으로 로그인 후 sudo 사용. root 직접 로그인 차단.
  • 악용/위험 징후:
    • PermitRootLogin yes 설정 (특히 password 허용)
    • 심야/비정상 시간대의 root 세션
    • sudo 없이 root 쉘이 갑자기 생성됨 → 권한 상승 성공 가능성

공격자는 root를 얻은 뒤 로그를 지우거나 히스토리를 비우기도 합니다. 그래서 로그의 원격 전송/보존이 중요합니다.

7. 탐지 방법

  • root 로그인 시도/성공: auth.log(Ubuntu)·secure(RHEL)의 root 세션
  • sudo 오남용: COMMAND= 필드의 위험 명령(bash, sh, cat /etc/shadow 등)
  • 정책 점검: sshd -T | grep permitrootlogin 이 yes면 즉시 시정

8. SOC 관점 — SIEM · Wazuh · IOC

SOC에서 root 활동은 고위험 이벤트로 별도 대시보드/알람을 둡니다. SIEM 상관분석 예시: 'SSH 로그인 성공 → 곧바로 sudo su → /etc/passwd 수정'이 짧은 시간에 이어지면 권한 상승·지속성 시나리오로 판단합니다(49·50편). Wazuh는 sudo 로그와 auditd를 결합해 '누가 언제 어떤 특권 명령을 실행했는가'를 타임라인으로 재구성할 수 있습니다.

9. 실습 체크리스트

[ ] PermitRootLogin 설정을 확인한다
[ ] root 직접 로그인 흔적을 점검한다
[ ] sudo COMMAND 로그에서 위험 명령을 찾는다
[ ] 로그 보존/원격 전송 여부를 확인한다

10. 핵심 정리

  • root(UID 0)는 권한 검사를 우회하는 최고 권한이다.
  • 직접 root 로그인은 책임 추적을 불가능하게 한다.
  • sudo는 실행자 신원(auid)을 남겨 감사를 가능하게 한다.
  • PermitRootLogin은 no 또는 prohibit-password가 안전하다.
  • root 활동은 SOC의 고위험 감시 대상이다.

11. 다음 편

다음 편에서는 06. /etc/passwd 보안 분석 를 다룹니다. 이제 Part 2로 넘어가, 계정 정보가 실제로 저장되는 /etc/passwd를 보안 관점에서 해부합니다.


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

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

0개의 댓글