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

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

선행 학습

1. 들어가며

SSH 무차별 대입은 인터넷에 서버를 올리면 몇 분 안에 시작되는, 가장 흔한 공격입니다. 선행 시리즈에서 기본 로그를 봤다면, 이번 편은 공격의 패턴을 정량적으로 분석하고 성공 여부를 판별하는 방법에 집중합니다.

2. 핵심 개념

무차별 대입 로그의 3대 신호입니다.

  • Failed password for <user>: 존재하는 계정에 대한 비밀번호 실패
  • Invalid user <user>: 존재하지 않는 계정 시도(계정 열거)
  • Accepted password for <user>: 성공 — 앞에 대량 실패가 있었다면 침해 성공 신호

핵심 판별: '동일 IP에서 다수 실패 후 성공'이 있으면 무차별 대입이 뚫린 것으로 간주합니다.

203.0.113.10
   │ Failed × 47  (admin, root, test, oracle ...)  ← 계정 열거+대입
   │ Invalid user × 30
   ▼
 Accepted password for alice   ← 성공! (침해 발생 지점)
   │
   ▼
 session opened → 이후 sudo/파일변경 추적 필요

3. 동작 원리

공격 도구는 사전(wordlist)을 돌며 계정×비밀번호 조합을 반복 시도합니다. 각 실패는 sshd와 pam_unix가 로그로 남기며, MaxAuthTries에 걸리면 연결이 끊기고 다시 연결해 재시도합니다. 그래서 연결 수가 많고, 짧은 간격, 다수 계정명이라는 특징이 로그에 그대로 드러납니다.

분석의 요령은 개별 줄이 아니라 집계입니다. IP별·계정별·시간대별로 묶어야 공격의 규모와 성공 여부가 보입니다.

4. 명령어 실습

# 실패 상위 출발 IP (Ubuntu)
sudo grep 'Failed password' /var/log/auth.log \
  | grep -oE 'from [0-9.]+' | awk '{print $2}' | sort | uniq -c | sort -rn | head

# 시도된 계정명 분포
sudo grep -E 'Failed password|Invalid user' /var/log/auth.log \
  | grep -oE 'for (invalid user )?[a-z0-9_-]+' | awk '{print $NF}' | sort | uniq -c | sort -rn | head

# 성공 로그인 (실패 폭주 뒤 이게 있으면 침해 의심)
sudo grep 'Accepted' /var/log/auth.log | tail

5. 실행 결과

전형적인 무차별 대입 분석 결과입니다. (예시 출력 — 표준 auth.log 집계 형식)

# 실패 상위 IP
    312 203.0.113.10
     47 198.51.100.23

# 시도된 계정명
     88 root
     51 admin
     33 test
     19 oracle

# 성공
Accepted password for alice from 203.0.113.10 port 51999 ssh2

실패 312회를 기록한 203.0.113.10에서 alice 로그인이 성공했습니다. 출발 IP가 실패 목록의 1위와 동일하다는 점이 결정적 — 무차별 대입이 성공한 것으로 판단합니다.

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

  • 정상: 소수의 우발적 실패, 성공은 신뢰된 내부 IP에서.
  • 공격/침해 징후:
    • 동일 IP 수십~수백 실패 + Invalid user 다수
    • 실패 폭주 IP에서 Accepted 발생(성공)
    • 성공 직후 sudo·계정 생성·cron 등록(49·50편 연계)

성공이 확인되면 단순 차단을 넘어 침해사고 대응 절차(48편)로 전환해야 합니다.

7. 탐지 방법

  • IP별/계정별 실패 집계로 임계 초과 탐지
  • '실패 폭주 IP의 성공' 상관 탐지(가장 중요)
  • Invalid user 급증으로 열거 탐지

8. SOC 관점 — SIEM · Wazuh · IOC

이 패턴은 SIEM/Wazuh의 대표 상관분석 룰입니다. Wazuh 기본 룰은 '동일 소스의 다중 인증 실패'를 레벨 10으로, '실패 후 성공'을 더 높은 레벨로 분류합니다. active-response로 fail2ban처럼 출발 IP를 방화벽에서 자동 차단할 수 있습니다. 성공 IP·시도 계정명은 즉시 IOC로 등록합니다.

9. 실습 체크리스트

[ ] 실패 상위 IP 집계
[ ] 시도 계정명 분포 확인
[ ] 실패 폭주 IP의 성공 여부 확인
[ ] 성공 시 침해 대응 절차 전환 판단

10. 핵심 정리

  • 무차별 대입은 Failed/Invalid user/Accepted 세 신호로 읽는다.
  • 개별 줄이 아니라 IP·계정·시간 집계로 분석한다.
  • 실패 폭주 IP의 성공은 침해 성공의 결정적 신호다.
  • 성공 확인 시 차단을 넘어 대응 절차로 전환한다.
  • 성공 IP와 시도 계정명은 즉시 IOC로 등록한다.

11. 다음 편

다음 편에서는 15. SSH Key 인증 보안 를 다룹니다. 무차별 대입의 근본 대안인 SSH 키 인증을, 키 탈취와 지속성 관점에서 봅니다.


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

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

0개의 댓글