Linux 시스템 보안 기초 · 40/50편
이 글은
리눅스 시스템 기초·파일 · 권한 · 사용자 관리·서비스 · 프로세스 관리시리즈를 선행 학습으로 두고, 동일한 개념을 보안관제(SOC) 관점에서 한 단계 확장합니다.
공격은 대개 '정찰(스캔)'로 시작해 '침투(brute force/exploit)'로 이어집니다. 이 흔적들이 네트워크 연결과 로그에 어떻게 남는지 알면, 공격의 초기 단계를 조기에 포착할 수 있습니다. Part 5의 종합편입니다.
대표 네트워크 공격 흔적:
| 공격 | 흔적 |
|---|---|
| Port Scan | 짧은 시간 다수 포트로의 SYN, 다수 연결 시도 |
| SYN Scan | 연결 미완성(SYN만) 다발 |
| Brute Force | 특정 서비스 포트로의 반복 인증 실패(14편) |
| 비정상 outbound | 내부→외부 C2/유출(38편) |
호스트 단독으로는 스캔 탐지가 제한적이라, 네트워크 IDS(Suricata/Snort)와 결합하는 것이 이상적입니다.
공격 진행 흔적이 남는 곳
1. 정찰: Port Scan → 방화벽 로그, IDS(다수 포트 SYN)
2. 침투: Brute Force → auth.log/secure (반복 실패, 14편)
3. 장악: 리버스 쉘 → ss established (외부 연결, 38편)
4. 유출: 대량 outbound → 네트워크 플로우, egress 로그
포트 스캔은 여러 포트에 짧은 연결을 시도합니다. SYN 스캔은 3-way handshake를 완성하지 않아(SYN만 보내고 RST) 연결 테이블에 미완성 흔적을 남깁니다. 호스트의 ss로는 순간 포착이 어렵고, 방화벽 로그나 IDS가 패턴을 잡습니다.
brute force는 특정 서비스 포트(주로 22)로의 반복 연결과 인증 실패로 로그에 명확히 남습니다(14편). 그래서 네트워크 흔적과 인증 로그를 시간순으로 결합하면 공격 전체 흐름이 재구성됩니다(46편 타임라인).
# 방화벽 로그에서 차단/스캔 흔적 (설정에 따라)
sudo journalctl -k | grep -iE 'DPT=|nft|drop' | tail
# 인증 실패 급증(brute force, 14편 연계)
sudo grep 'Failed password' /var/log/auth.log | wc -l
# 현재 다수 SYN-RECV(SYN 스캔/플러드 정황)
sudo ss -tan state syn-recv | head
# Suricata 경보(IDS 운영 시)
sudo tail -n 20 /var/log/suricata/fast.log 2>/dev/null
Suricata 경보와 방화벽 로그의 전형적 형태입니다. (예시 출력 — IDS 운영 환경 기준)
# Suricata fast.log (포트 스캔 탐지)
09/25/2026-14:10:02 [**] [1:2001219:20] ET SCAN Potential SSH Scan [**]
{TCP} 203.0.113.10:52011 -> 192.168.10.20:22
# 방화벽 drop 로그
kernel: [FW-DROP] SRC=203.0.113.10 DST=192.168.10.20 PROTO=TCP DPT=3306
동일 출발 IP 203.0.113.10이 스캔과 차단 로그에 반복 등장합니다. 이 IP는 즉시 IOC로 등록하고, 이후 auth.log에서 같은 IP의 brute force로 이어지는지 추적합니다. (본 실습 컨테이너는 IDS 미운영으로 형식 예시입니다.)
단일 이벤트보다 동일 IP의 단계 진행을 보는 것이 핵심입니다 — 이것이 공격 캠페인의 시그니처입니다.
네트워크 공격 흔적은 SIEM에서 여러 소스(방화벽·IDS·auth 로그)를 동일 IP로 상관분석할 때 진가를 발휘합니다. 사용자의 실습 환경(Suricata IDS + ELK/Wazuh)이 바로 이 목적에 맞습니다. '스캔→침투→장악'을 한 IP의 타임라인으로 묶으면 공격 전모가 드러나며, 이는 50편 종합 실습으로 이어집니다.
[ ] IDS/방화벽 로그에서 스캔 흔적 확인
[ ] 인증 실패 급증 확인
[ ] SYN-RECV 다발 점검
[ ] 동일 IP의 단계 진행 상관분석
다음 편에서는 41. Linux 보안 로그 구조 를 다룹니다. Part 6로 넘어가, 모든 증거의 원천인 리눅스 로그 구조(journald/rsyslog/auditd)를 정리합니다.
본 실습은 격리된 테스트 VM(Rocky Linux / Ubuntu, VMware) 및 테스트 계정 환경을 기준으로 하며, 운영 서버를 대상으로 하지 않습니다. 실행 결과는 실제 캡처와 예시 출력을 명확히 구분해 표기합니다.