041. Linux 서버 보안 — CIS Benchmark 관점의 점검 구조

changseop lee·6일 전

시스템 보안 · 취약점 › A. Linux 서버 보안 설정 · 41/50편 (전체 041/450)
학습 단계: 4단계 · 자동 점검·로그 분석
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

CIS Benchmark 는 Center for Internet Security가 공개하는 운영체제·소프트웨어별 보안 설정 권고 문서입니다. 개인이 경험으로 만든 점검표 대신 공개된 기준에 맞춰 점검하면, 결과를 다른 사람·조직과 비교하고 설명할 수 있습니다.

CIS Benchmark (Linux 배포판별 문서)
 ├─ 섹션: 1 초기 설정 / 2 서비스 / 3 네트워크 / 4 로깅·감사 / 5 접근·인증 / 6 시스템 유지보수
 │        (버전에 따라 구성·번호가 조금씩 다름)
 ├─ 프로파일: Level 1 (영향 적은 기본 권고) / Level 2 (보안 강화, 운영 영향 가능)
 │            Server / Workstation 구분
 └─ 권고 항목 하나의 구조
      ├─ 설명(Description) · 근거(Rationale) · 영향(Impact)
      ├─ 점검 방법(Audit)       ← 명령어와 기대 결과
      ├─ 조치 방법(Remediation)
      └─ 자동 점검 가능 여부(Automated / Manual)

국내에서는 「주요정보통신기반시설 기술적 취약점 분석·평가 방법 상세가이드」의 Unix 서버 항목(U-01 root 계정 원격 접속 제한 등)이 같은 역할을 합니다. 두 기준은 표현은 달라도 점검 대상이 상당 부분 겹칩니다.

2. 왜 중요한가

  • 면접·실무에서 "어떤 기준으로 점검했나?"라는 질문에 공개 기준으로 답할 수 있어야 합니다.
  • CIS 권고 항목의 Audit 절은 그대로 자동 점검 스크립트·SCA 정책(045편) 의 원천이 됩니다.
  • Level 2 항목을 무조건 적용하면 서비스 장애가 날 수 있으므로, 영향(Impact)을 읽고 예외를 문서화하는 능력이 중요합니다.

3. 핵심 명령어 / 설정

지금까지의 편을 CIS 섹션 기준으로 다시 묶으면 다음과 같습니다(섹션 이름은 일반적인 구성 기준).

CIS 섹션(일반 구성)대표 권고 주제이 시리즈 편
초기 설정파일시스템 옵션, 모듈 차단, 패치, MAC, 배너019·020·036·024·017·018·034
서비스불필요 서비스, 시간 동기화013·032
네트워크네트워크 sysctl, 방화벽023·015·016
로깅·감사journald, rsyslog, auditd 규칙·불변 모드028·029·030·031
접근·인증cron 권한, SSH 설정, sudo, PAM, 계정 정책026·009~012·006·007·008
시스템 유지보수파일 권한, 계정 무결성(UID 0, 빈 패스워드)004·003·025

4. 실습 (실습 예시)

CIS 권고 항목 하나를 Audit → 기대값 → 결과 형식으로 직접 점검해 보는 예시입니다(문구는 요약, 실제 문서의 항목 번호·표현은 버전별로 확인).

# [접근·인증] SSH root 로그인 비활성화
sudo sshd -T | grep -i '^permitrootlogin'          # 기대: permitrootlogin no

# [로깅·감사] 감사 설정 불변 모드
sudo auditctl -s | awk '/^enabled/{print $2}'       # 기대: 2

# [초기 설정] /tmp noexec
findmnt -no OPTIONS /tmp | tr ',' '\n' | grep -x noexec   # 기대: noexec

# [시스템 유지보수] root 외 UID 0 없음
awk -F: '$3==0 && $1!="root"' /etc/passwd          # 기대: 출력 없음

점검 결과는 항목 | 기대값 | 실제값 | 판정(PASS/FAIL/예외) | 근거 형식으로 기록합니다. 이 형식이 다음 편들의 자동 점검 도구 결과와 같은 구조입니다.

5. 정상 상태

항목                        기대값              실제값              판정
SSH root 로그인 비활성화     no                  no                  PASS
감사 설정 불변 모드          2                   2                   PASS
/tmp noexec                  noexec              noexec              PASS
root 외 UID 0                없음                없음                PASS
IP 포워딩 비활성화           0                   1                   예외(VPN 게이트웨이, CHG-2026-0901)

FAIL이 없거나, 있더라도 승인된 예외로 문서화된 상태가 정상입니다.

6. 이상 상태

항목                        이전 점검(09-15)    현재(10-01)         판정
SSH root 로그인 비활성화     PASS                FAIL(yes)
감사 설정 불변 모드          PASS                FAIL(1)
/tmp noexec                  PASS                FAIL
root 외 UID 0                PASS                FAIL(sysbak)

이전에 PASS였던 항목이 동시에 FAIL로 바뀐 것은 점검 기준 문제가 아니라 서버 상태 변화입니다. 037편의 드리프트 원인 분류 절차로 넘깁니다.

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

점검 결과도 로그로 남겨 SIEM에 보내면 시간에 따른 준수율 변화를 추적할 수 있습니다(가상의 예시 로그 — 자체 점검 결과를 syslog로 남긴 형태).

Oct  1 05:00:01 rocky9-web01 hardening-check[10001]: benchmark=CIS-L1-Server item=ssh_permitrootlogin expected=no actual=yes result=FAIL
Oct  1 05:00:01 rocky9-web01 hardening-check[10001]: benchmark=CIS-L1-Server item=audit_immutable expected=2 actual=1 result=FAIL
Oct  1 05:00:02 rocky9-web01 hardening-check[10001]: benchmark=CIS-L1-Server summary pass=41 fail=4 exception=1 score=89

key=value 형식으로 남기면 Wazuh·Logstash에서 별도 디코더 없이도 필드 추출이 쉽습니다(044편에서 표준화).

8. SOC 관제 포인트

  • 점검 기준(CIS 버전·프로파일, 국내 가이드 버전)을 결과와 함께 기록합니다.
  • PASS→FAIL 전환 항목을 Alert 대상으로 삼고, 상시 FAIL(승인 예외)은 예외 목록으로 관리합니다.
  • 점수(준수율)보다 어떤 항목이 바뀌었는가를 우선 봅니다.

9. 탐지 규칙

<!-- 자체 점검 결과 로그에서 PASS→FAIL 의미의 FAIL 이벤트 상향 (예시) -->
<rule id="100460" level="9">
  <match>hardening-check</match>
  <regex>result=FAIL</regex>
  <description>보안 설정 기준 점검 실패 항목 발생</description>
</rule>

Wazuh SCA(045편)를 쓰면 CIS 기반 정책이 기본 제공되어(배포판별 정책 파일) 이와 같은 점검·Alert를 별도 스크립트 없이 운영할 수 있습니다.

10. 대응 방법

  1. 초기 확인 — FAIL 항목과 이전 점검 결과(PASS 여부)를 비교합니다.
  2. 범위 확인 — 같은 FAIL 패턴이 다른 서버에도 있는지(이미지 문제 vs 개별 변경) 확인합니다.
  3. 증거 확보 — 점검 결과 원본(일시·기준 버전 포함)과 관련 설정 파일을 보존합니다.
  4. 차단/조치 — FAIL 항목 조치 또는 예외 승인 문서화를 진행합니다.
  5. 재발 방지 — 정기 점검 일정과 기준 버전 관리, PASS→FAIL 알림을 운영합니다.

11. 핵심 정리

구분핵심 내용
CIS 구조섹션 · 프로파일(Level 1/2, Server/Workstation) · 권고 항목
권고 항목설명 · 근거 · 영향 · Audit · Remediation · Automated/Manual
국내 기준주요정보통신기반시설 Unix 서버 항목(U-xx)
결과 형식항목 | 기대값 | 실제값 | 판정 | 근거
면접 포인트"Level 2는 영향 검토 후 적용, 예외는 문서화"

12. 다음 편 예고

다음 편 042. Linux 서버 보안 — OpenSCAP 자동 점검과 결과 해석 에서는 CIS 기반 점검을 자동화하는 OpenSCAP 점검과 결과 해석을 다룹니다.


이전 편: 040. Linux 서버 보안 — 신규 리스닝 서비스·비인가 유닛 이상 징후
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글