Linux 시스템 보안 기초 · 38/50편
이 글은
리눅스 시스템 기초·파일 · 권한 · 사용자 관리·서비스 · 프로세스 관리시리즈를 선행 학습으로 두고, 동일한 개념을 보안관제(SOC) 관점에서 한 단계 확장합니다.
침해된 서버는 대개 '밖으로' 연결합니다 — 공격자 서버(C2)에 명령을 받으러, 또는 데이터를 유출하러. 그래서 outbound(나가는) 연결 분석은 침해 탐지의 핵심입니다. 이번 편은 established 연결에서 이상을 찾습니다.
비정상 연결의 판별 기준:
정상 outbound 의심 outbound (C2)
apt → 미러서버:443 /tmp/.x → 203.0.113.10:4444
(패키지 업데이트) (은닉 프로세스가 외부 연결)
│
└ 프로세스+상대+포트 모두 이상
ss는 현재 established 연결과 그 소켓을 소유한 프로세스를 함께 보여줍니다. 침해 분석에서는 이 '연결-프로세스' 쌍을 봅니다. C2 통신은 종종 은닉 프로세스(27편)나 예상 밖 프로세스(예: 웹서버 자식)가 외부 IP로 연결하는 형태로 나타납니다.
정교한 C2는 443/80 같은 정상 포트를 위장에 씁니다. 그래서 '포트만'으로 판단하지 말고, 연결을 만든 프로세스의 정상성과 상대 IP의 평판을 함께 봐야 합니다.
# 확립된 연결 + 프로세스
sudo ss -tnp state established
# 외부(비사설) IP로의 연결만 대략 필터
sudo ss -tnp state established | grep -vE '127\.|10\.|192\.168\.|172\.(1[6-9]|2[0-9]|3[01])\.'
# 특정 프로세스가 만든 연결
sudo lsof -i -nP -p <PID> 2>/dev/null
의심 outbound 탐지 형식입니다. (예시 출력 — C2 연결 가정)
$ sudo ss -tnp state established
ESTAB 0 0 192.168.10.20:51002 203.0.113.10:4444 users:(("x",pid=8123,fd=4))
은닉 프로세스 x(27편)가 외부 IP 203.0.113.10:4444로 연결 중입니다. 포트 4444와 은닉 프로세스 조합은 리버스 쉘/C2의 강한 정황입니다. 상대 IP는 즉시 IOC로 등록하고 차단합니다. (본 실습 컨테이너에는 이런 연결이 없어 형식 예시입니다.)
outbound 분석은 방화벽 egress 정책(39편)과 결합할 때 가장 강력합니다.
C2 탐지는 SOC의 핵심 임무입니다. 호스트 auditd connect(이 시리즈 user_connect 키)와 네트워크 IDS (Suricata) 로그를 결합하고, 상대 IP/도메인을 위협 인텔(예: 알려진 C2 목록)과 대조합니다. Wazuh는 established 연결을 수집·상관분석하며, 매칭된 악성 IP는 active-response로 차단할 수 있습니다.
[ ] established 연결의 상대 IP 확인
[ ] 연결 소유 프로세스 정상성 확인
[ ] 외부 IP를 위협 인텔과 대조
[ ] 비컨(주기) 패턴 점검
다음 편에서는 39. Linux Firewall 보안 를 다룹니다. 이런 연결을 통제하는 리눅스 방화벽(nftables/iptables/firewalld)의 관계를 정리합니다.
본 실습은 격리된 테스트 VM(Rocky Linux / Ubuntu, VMware) 및 테스트 계정 환경을 기준으로 하며, 운영 서버를 대상으로 하지 않습니다. 실행 결과는 실제 캡처와 예시 출력을 명확히 구분해 표기합니다.