099. 계정 · 인증 보안 — 실전 시나리오 — brute-force부터 계정 탈취·권한 상승까지

changseop lee·5일 전

시스템 보안 · 취약점 › B. 계정 · 인증 보안 강화 · 49/50편 (전체 099/450)
학습 단계: 6단계 · 실전 시나리오
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

이 편은 가상의 실습 시나리오입니다. B영역 각 편의 예시(같은 출발지 192.168.56.77, 계정 devops)를 하나의 사건으로 엮어, 인증 중심의 사고 분석을 완성합니다. A영역 049편이 "설정 변경" 관점이었다면, 이 편은 "계정·인증" 관점으로 같은 사건을 봅니다.

[시나리오 — 가상] rocky9-web01, 출발지 192.168.56.77(비관리망)
흐름: 열거(071) → 돌파(074) → 로그인(019) → 상승(037) → 조작(029·030) → 지속성(017·031)
초점: 인증 로그로 "누가 어떻게 들어와 무엇이 되었나"를 재구성

2. 왜 중요한가

  • 실제 사고에서 인증 Alert는 순서 없이 들어옵니다. 이를 타임라인으로 엮어 최초 침입과 영향 범위를 확정하는 것이 분석의 목표입니다.
  • B영역 관점(인증)과 A영역 관점(설정)을 합쳐야 사건 전체가 완성됩니다.
  • 각 단계에서 "어느 탐지가 먼저 울렸어야 했나"를 돌아보면 룰·유스케이스 개선점이 나옵니다(047편).

3. 핵심 명령어 / 설정

단계탐지편
열거invalid user 다수(101190)071
돌파실패 후 성공(101220)074
이상 로그인비관리망·새벽(101171)019·027
상승sudo -i, 정찰(101050/101340)037
조작useradd UID0, 그룹(101260/101030)029·030·031
지속성authorized_keys(101150)017
결합다범주 탈취(101370)089

4. 실습 (실습 예시)

# 인증 사고 타임라인 재구성 (043편 방식)
IP=192.168.56.77; LOG=/var/log/secure
sudo grep "$IP" $LOG | grep -E 'Invalid user|Failed password|Accepted' | head -40
sudo ausearch --session 12 -i 2>/dev/null | grep -E 'USER_LOGIN|USER_CMD|ADD_USER|USER_START' | tail
# IOC 추출 (089편)
echo "출발지: $IP"; sudo grep "$IP" $LOG | grep Accepted | grep -oE 'for [^ ]+' | sort -u

5. 정상 상태

정상 기준선(비교용)은 단조롭습니다.

09:12 Accepted publickey devops 192.168.56.5
09:13 sudo devops systemctl status httpd
→ 관리망·키·업무시간·서비스 명령

6. 이상 상태

인증 사고 타임라인 (가상, 2026-10-02)

시각      계정     출발지         이벤트                              단계      탐지
02:09:50  oracle   192.168.56.77  Invalid user (다수)                 열거      101190
02:10:05  devops   192.168.56.77  Failed password (실존 확인)         표적      -
02:10:41  devops   192.168.56.77  Failed password ×219                돌파시도  5720
02:10:44  devops   192.168.56.77  Accepted password (ses=12)          돌파      101220
02:11:30  devops   192.168.56.77  sudo -i → id                        상승+정찰 101050/101340
02:14:09  sysbak   -              useradd UID=0 (auid=devops)          조작      101260
02:16:10  apache   -              add to group wheel (auid=devops)     권한확대  101030
02:20:05  apache   192.168.56.77  Accepted publickey (심은 키)        지속성    101150
  • 최초 침입 시점 = 02:10:44(돌파) → 이후 전부 영향 범위
  • 전 구간 auid=devops → 단일 행위자, ses=12 중심
  • 다범주(인증·권한·계정·지속성) 결합 → 101370 탈취 확정

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

IOC와 놓친 탐지를 정리합니다(가상의 예시).

IOC
 출발지: 192.168.56.77
 계정:   devops(탈취), sysbak(UID0 백도어), apache(키·그룹 악용)
 키 지문: SHA256:...(apache에 심긴 공격 키, 018편)
 패턴:   password 돌파, 다출발지 동시세션(028편)

놓친 탐지 → 개선
 02:10:44 돌파 시점에 101220이 즉시 대응됐다면 이후 차단 가능
 열거(02:09)에서 선제 차단했다면 돌파 자체를 막았을 수 있음
교훈개선
열거 단계 미차단열거 출발지 자동 차단(fail2ban·방화벽)
돌파 후 지연101220을 즉시 알림·자동 세션 종료 검토

8. SOC 관제 포인트

  • 인증 Alert를 출발지·계정·세션(ses) 으로 묶어 타임라인을 재구성합니다.
  • 최초 침입 시점(돌파)을 확정하고, A영역 설정 타임라인과 합쳐 통합 사건을 만듭니다.
  • IOC(출발지·계정·키 지문)로 전 서버 확산을 확인합니다(H영역 내부 확장 예고).

9. 탐지 규칙

이 시나리오 기준 탐지·대응 매핑입니다.

단계        룰              대응
열거        101190          출발지 모니터링·선제 차단 검토
돌파        101220(L13)     세션 종료·계정 잠금·IP 차단
상승        101050/101340   권한 회수
조작        101260/101030   백도어 계정·그룹 원복
지속성      101150          심은 키 전수 폐기(018편)
결합        101370(L14)     계정 탈취 Incident 선언

# 통합 상관(개념): 같은 출발지에서 열거+돌파+상승 30분 내 → Critical

10. 대응 방법

  1. 초기 확인 — 02:10:44 이후 devops 세션(ses=12)과 출발지 192.168.56.77의 전 활동을 확정합니다.
  2. 범위 확인 — IOC(IP·계정·키 지문)로 전 서버를 검색해 확산을 확인합니다(H영역).
  3. 증거 확보 — 인증 타임라인·IOC·근거 로그(원격 사본)를 보존합니다.
  4. 차단/조치 — 세션 종료·관련 계정(devops·sysbak·apache) 조치·심은 키 폐기·IP 차단·백도어 원복을 진행합니다.
  5. 재발 방지 — 열거·돌파 단계의 선제 차단과 돌파 즉시 대응을 도입합니다.

11. 핵심 정리

구분핵심 내용
재조립시각 + 계정 + 출발지 + 세션(ses)
흐름열거→돌파→로그인→상승→조작→지속성
최초 침입돌파 성공 시점(02:10:44)
통합A영역 설정 타임라인과 결합(049편)
면접 포인트"인증 Alert를 출발지·세션으로 묶으면 탈취의 전체 서사가 보인다"

12. 다음 편 예고

다음 편 100. 계정 · 인증 보안 — 인증 이상 징후 종합 분석 에서는 B영역의 마지막으로, 인증 이상 징후 종합 분석과 다음 영역(C 정보 노출·수집) 연결을 정리합니다.


이전 편: 098. 계정 · 인증 보안 — 인증 Alert 정탐·오탐 판단
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글