Linux 시스템 보안 기초 · 49/50편
이 글은
리눅스 시스템 기초·파일 · 권한 · 사용자 관리·서비스 · 프로세스 관리시리즈를 선행 학습으로 두고, 동일한 개념을 보안관제(SOC) 관점에서 한 단계 확장합니다.
앞선 편들이 '개별 탐지 기법'이었다면, 이번 편은 그것들을 하나의 공격 시나리오로 연결해 SOC가 어떻게 탐지·조사하는지 봅니다. 실제 관제는 단일 이벤트가 아니라 '이벤트의 연쇄'를 봅니다.
전형적 공격 시나리오와 각 단계의 탐지 포인트:
SSH Brute Force → Successful Login → sudo → New User
→ Cron Persistence → Outbound Connection → SOC Alert → Investigation
각 화살표가 탐지 룰이 되고, 여러 룰이 순차 발동하면 상관분석(correlation)이 '침해 진행 중'으로 판단해 고위험 알람을 올립니다.
SSH Brute Force (14편) 실패 급증 룰
↓
Successful Login (14편) 실패 후 성공 룰 ★고위험
↓
sudo (권한 상승) (45편) 특권 실행 감사
↓
New User (45편) useradd 감사
↓
Cron Persistence (31편) cron 변경 감사
↓
Outbound Connection (38편) C2 연결 탐지
↓
SOC Alert → Investigation (타임라인·IOC)
SIEM/Wazuh의 상관분석 엔진은 개별 룰의 발동을 '시간·자산·주체' 기준으로 묶습니다. 단일 실패 로그인은 저위험이지만, '동일 IP 다수 실패 → 같은 IP 성공 → 그 세션에서 sudo → useradd → cron → 외부 연결'이 짧은 시간에 이어지면, 엔진은 이를 하나의 고위험 사건으로 승격합니다.
이것이 관제의 핵심입니다 — 맥락과 연쇄로 판단합니다. 그래서 앞선 편들에서 각 단계의 로그·감사를 설계한 것이 여기서 하나로 수렴합니다. 각 단계가 로그를 남기지 않으면 시나리오가 끊깁니다.
# 시나리오 단계별 신속 점검 (조사 시)
echo '[1] brute force'; sudo grep -c 'Failed password' /var/log/auth.log
echo '[2] 성공 로그인'; sudo grep 'Accepted' /var/log/auth.log | tail
echo '[3] 권한상승/계정'; sudo ausearch -k account_mgmt -k priv_config -i 2>/dev/null | tail
echo '[4] cron 지속성'; sudo grep -rEi 'curl|/tmp' /etc/cron* /var/spool/cron 2>/dev/null
echo '[5] 외부 연결'; sudo ss -tnp state established | grep -vE '127\.|10\.|192\.168\.'
Wazuh 상관분석 알람의 개념적 형태입니다. (예시 출력 — SIEM 룰 발동 시나리오)
[Alert L10] sshd: Multiple authentication failures - 203.0.113.10
[Alert L12] sshd: User logged in after multiple failures - alice ★
[Alert L12] audit: New user 'hacker' created by auid=alice
[Alert L12] audit: Cron modified (persistence)
[Correlated] Possible host compromise chain: 203.0.113.10 → alice → hacker → C2
개별 알람이 상관분석으로 묶여 'compromise chain'으로 승격되었습니다. 이 지점에서 SOC 분석가는 48편의 초동 대응과 46편의 타임라인 재구성으로 조사를 시작합니다. (본 실습 컨테이너는 Wazuh 미구동으로 형식 예시입니다.)
관제에서 오탐(false positive)과 정탐(true positive)을 가르는 것은 연쇄의 존재입니다. brute force 실패만으로는 알람 피로를 유발하지만, '성공+상승+지속성'이 붙으면 확실한 정탐이 됩니다. 그래서 룰 설계 시 단계 연쇄에 가중치를 둡니다.
이 시나리오는 사용자의 실습 환경(Suricata IDS + ELK/Wazuh SIEM)에서 그대로 구현할 수 있습니다. Suricata가 네트워크단(스캔·C2)을, Wazuh가 호스트단(인증·감사·FIM)을 담당하고, ELK가 이를 시각화·상관합니다. SOC 워크플로 Triage(선별) → Investigation(조사) → Response(대응)가 이 연쇄 위에서 돌아갑니다. 다음 편에서 이 전 과정을 종합 실습으로 완성합니다.
[ ] 시나리오 단계별 로그 존재 확인
[ ] 단계 연쇄 여부 판단
[ ] 상관분석 룰 이해
[ ] Triage→Investigation 흐름 적용
다음 편에서는 50. Linux 시스템 침해사고 종합 분석 실습 를 다룹니다. 마지막으로, 이 시나리오 전체를 Evidence→Analysis→Detection→Response로 재구성하는 종합 실습을 합니다.
본 실습은 격리된 테스트 VM(Rocky Linux / Ubuntu, VMware) 및 테스트 계정 환경을 기준으로 하며, 운영 서버를 대상으로 하지 않습니다. 실행 결과는 실제 캡처와 예시 출력을 명확히 구분해 표기합니다.