숨겨진 연결 찾기: Windows에서 netstat, TCPView, CurrPorts로 확인하기

개요
사람들은 매일 점점 더 많은 시간을 온라인에서 보냅니다. 컴퓨터는 외부 서비스와 수시로 연결해 정보를 주고받습니다. 대부분의 통신은 정상적이지만, 때때로 악성 프로그램이 숨겨진 연결을 만들어 개인정보를 전송할 수 있습니다. 연결 목록과 포트/프로세스 기록을 보면 무단 연결이나 데이터 전송을 발견할 수 있습니다.
이 문서에서는 PowerShell(netstat), Microsoft TCPView, NirSoft CurrPorts 세 가지 방법을 설명합니다. 각 도구 사용법, 출력 해석 방법, 조사용 체크리스트, 간단한 사고 대응 플레이북과 테스트 기준을 함께 제공합니다.
Important: 관리자 권한이 필요합니다. 변경이나 프로세스 종료는 시스템 안정성에 영향을 줄 수 있으니 주의하세요.
핵심 용어 한 줄 정의
- 포트: 한 시스템에서 네트워크 서비스를 식별하는 번호입니다.
- 소켓/연결: 프로세스와 원격 엔드포인트(주소:포트)를 연결한 통신 경로입니다.
- PID: 프로세스 식별자, 해당 연결을 연 프로세스를 찾는 데 씁니다.
PowerShell로 연결 기록 남기기
PowerShell을 쓰면 시스템에서 발생하는 연결을 텍스트 파일로 기록해 나중에 분석할 수 있습니다. 이 방법은 포렌식(사후 분석)에 유용합니다.
- Win + X를 눌러 Power User 메뉴를 엽니다.
이미지 설명: PowerShell(관리자) 옵션이 강조된 Windows 빠른 실행 메뉴 화면
PowerShell (관리자)를 선택합니다. 관리자 권한이 필요합니다.
다음 명령을 입력하고 Enter를 누릅니다:
netstat -abf 5> activity.txt
- 설명: netstat는 열려 있는 연결을 보여줍니다. 옵션 설명: -a(모든 연결/포트), -b(어떤 바이너리가 연결을 연 건지), -f(원격 주소의 전체 이름), 5는 새 샘플 간격(초)입니다. 출력은 activity.txt로 리다이렉트됩니다.
몇 분 동안 프로그램을 실행해 둡니다. 다른 작업을 해도 됩니다.
중단하려면 Ctrl + C를 누릅니다. 그런 다음 activity.txt를 입력해 기록을 확인하거나 메모장으로 엽니다.
이미지 설명: PowerShell에서 netstat 명령을 실행하는 예시 화면
메모: activity.txt는 기본적으로 System32 폴더(예: C:\Windows\System32) 안에 저장됩니다. 관리자 권한으로 실행했기 때문에 그 위치에 생성됩니다.
이미지 설명: System32 폴더에 생성된 activity.txt 파일을 메모장으로 연 화면
해석 팁
- PID와 실행 파일명을 확인하세요. -b 옵션은 어떤 실행 파일이 연결을 여는지 보여줍니다.
- 원격 주소/호스트명을 보고 이상한 도메인이나 IP가 있는지 검사하세요.
- 반복적으로 짧은 간격으로 외부로 전송되는 항목은 의심 대상입니다.
대처
- 프로세스명이 생소하면 검색하세요. 신뢰할 수 없는 항목은 샘플링해서 격리하고 백신 또는 안티멀웨어로 검사합니다.
- 긴급하면 네트워크 포트를 차단하거나, 물리적으로 네트워크 연결을 끊고 후속 조사를 진행하세요.
TCPView로 실시간 모니터링
TCPView는 Microsoft의 SysInternals 도구 모음에 포함된 무료 GUI 도구입니다. 실시간으로 연결을 보여주며, 프로세스 종료, Whois 조회 등 작업을 즉시 실행할 수 있습니다.
- TCPView 다운로드 페이지로 이동합니다.
이미지 설명: Microsoft Sysinternals TCPView 다운로드 웹페이지 스크린샷
- download TCPView 링크를 클릭해 ZIP을 받습니다.
- ZIP을 풀고 실행 파일을 실행합니다. 설치 과정은 없고 portable 방식입니다.
이미지 설명: TCPView 실행 후 실시간 연결이 나열된 GUI 화면
사용 팁
- 목록에서 프로세스를 우클릭해 “Whois …”를 선택하면 원격 호스트 정보를 빠르게 조회할 수 있습니다.
이미지 설명: TCPView에서 특정 원격 호스트에 대해 Whois 조회를 실행하는 예시
- 색상 표시: 녹색은 새로 열린 연결, 빨간색은 닫힌 연결, 노란색은 상태 변경을 의미합니다. 화면이 자주 업데이트되므로 원하는 라인에 클릭하기 어려울 수 있습니다.
이미지 설명: TCPView가 연결 상태 변경에 따라 빨강/노랑/초록으로 하이라이트하는 예시
관리 팁
- 자주 사용한다면 .exe 파일을 데스크톱이나 고정된 폴더에 두세요. 설치 아이콘을 만들지 않습니다.
CurrPorts로 상세 정보 확인
CurrPorts는 NirSoft에서 제공하는 도구로, TCPView와 유사하지만 세부 필터링과 컬러 하이라이트(핑크: 의심스러운 항목)가 있습니다. 특정 열(예: 연결 생성 시간, 전송량 등)을 더 자세히 볼 수 있습니다.
이미지 설명: NirSoft CurrPorts 다운로드 페이지 스크린샷
설치 및 실행 방법은 TCPView와 동일합니다. 64비트 Windows인지 확인해 맞는 버전을 다운로드하세요.
이미지 설명: CurrPorts 실행 후 포트와 프로세스 정보가 표시된 GUI 화면
출력 해석을 위한 신뢰 가능한 절차(미니 SOP)
- 기록 또는 실시간 도구로 의심 항목 식별
- 프로세스 이름과 경로 확인
- 디지털 서명 확인(있으면 신뢰 가능성이 높음)
- WHOIS/DNS/역방향 DNS로 원격 호스트 확인
- 샌드박스/온라인 분석 서비스로 실행 파일 검사
- 네트워크 차단 규칙(방화벽) 적용 또는 프로세스 종료
- 전체 시스템 안티바이러스·안티멀웨어 검사 수행
- 필요 시 포렌식 기록(PCAP), 로그 수집, 이미지 백업
Important: 프로세스 종료 전에는 영향 범위를 고려하세요. 핵심 서비스 종료는 시스템 불안정을 유발할 수 있습니다.
언제 이 방법들이 실패하는지(한계와 오탐 사례)
- 암호화된 터널(VPN, Tor, 또는 악성 C2 통신)은 표면에서 정상 트래픽처럼 보입니다.
- 루트킷이나 커널 모드 악성코드는 netstat나 GUI 도구를 속일 수 있습니다.
- DNS 기반 도메인 플럭스(빠르게 바뀌는 도메인)로 짧은 샘플 기간에 포착되지 않을 수 있습니다.
- 정상 프로그램(윈도우 업데이트, 클라우드 백업 등)이 외부로 많은 데이터를 보내면 오탐으로 보일 수 있습니다.
대응
- 의심이 계속되면 오프라인 이미지 생성과 전문 포렌식 분석을 고려하세요.
- 네트워크 레벨에서 패킷 캡처(Wireshark)로 상세 분석을 수행합니다.
대안 도구 및 보완 방법
- Resource Monitor(Windows): 프로세스별 네트워크 사용량을 GUI로 보여줍니다.
- Wireshark: 패킷 캡처 및 상세 분석에 사용합니다(심층적, 학습 곡선 있음).
- Autoruns: 시작 항목을 검사해 지속성 메커니즘을 찾습니다.
- Windows Defender/타사 EDR: 자동 탐지·대응을 제공합니다.
조사 역할별 체크리스트
홈 사용자
- netstat 또는 TCPView로 연결 확인
- 생소한 프로세스 검색
- 신뢰할 수 없으면 시스템 차단·재부팅 후 전체 검사
파워 유저/IT 담당자
- netstat 로그 기록 후 패턴 분석
- Whois/DNS 조회로 원격 호스트 확인
- 프로세스 이미지를 샘플링해 온라인 분석(예: VirusTotal)
보안 분석가
- 패킷 캡처(PCAP) 수집 및 프로토콜 분석
- 메모리 덤프와 실행 파일 정적·동적 분석
- 침해지표(IOC) 생성 및 네트워크 블록 규칙 배포
사고 대응 간단 실행 플랜(런북)
- 초기 분리: 네트워크 케이블 분리 또는 호스트 격리
- 증거 수집: netstat 기록, TCPView 스크린샷, PCAP 수집, 이벤트 로그 저장
- 분석: 프로세스 경로, 디지털 서명, WHOIS, VirusTotal 검사
- 완화: 해당 프로세스 종료, 방화벽 규칙 적용, 악성 파일 제거
- 복구: 패치·비밀번호 재설정·계정 검토
- 보고: 사고 내용, 영향을 받은 자원, 재발 방지 조치 문서화
테스트 케이스 및 수용 기준
- 테스트 1: netstat로 외부 서버(예: 테스트 서버)에 일정 시간 연결 생성 → activity.txt에 해당 연결이 기록되어야 함.
- 테스트 2: TCPView 실행 후 테스트 프로세스 종료 → GUI에서 해당 연결이 빨간색으로 표시되며 목록에서 사라져야 함.
- 테스트 3: CurrPorts에서 의심 프로세스에 핑크 하이라이트 적용 → 의심 항목 필터링이 가능해야 함.
수용 기준
- 관리자 권한으로 실행 시 연결 기록/실시간 모니터링이 가능해야 함.
- 의심 항목에 대해 외부 조회(WHOIS, VirusTotal 등)를 수행할 수 있어야 함.
유용한 명령 예시와 스니펫
- 실시간 간격 5초로 기록:
netstat -abf 5> activity.txt
- 특정 포트로 필터링(예: 443 포트 관련 항목 검색, PowerShell):
Get-NetTCPConnection | Where-Object { $_.RemotePort -eq 443 }
- netstat 결과를 CSV로 저장(간단 파싱용):
netstat -ano | Out-File -FilePath netstat.txt
의사결정 흐름도
flowchart TD
A[의심 연결 발견] --> B{프로세스가 신뢰되는가}
B -- 예 --> C[문서화 후 모니터링]
B -- 아니오 --> D[WHOIS/VT 검사]
D --> E{악성으로 확인되었는가}
E -- 예 --> F[격리·프로세스 종료·방화벽 차단]
E -- 불확실 --> G[패킷 캡처 및 포렌식]
G --> H[전문가 의뢰 또는 복구]
F --> I[전체 검사 및 비밀번호 재설정]
I --> J[사후 보고]
현장 팁과 모범 사례
- 도구는 보조 수단입니다. 의심 항목을 바로 삭제하기보다 증거를 수집하세요.
- 평상시 백업과 패치 관리는 의심스러운 연결을 줄이는 최선책입니다.
- 네트워크 수준 차단(방화벽)과 엔드포인트 검사(안티멀웨어)를 병행하세요.
요약
- netstat는 기록 기반 분석에 강하고, TCPView와 CurrPorts는 실시간 GUI 모니터링에 강합니다.
- 관리자 권한으로 실행하고, 의심스러운 프로세스는 WHOIS·VirusTotal 등으로 확인하세요.
- 한계(루트킷, 암호화된 터널 등)를 인지하고, 필요하면 패킷 캡처와 포렌식을 병행하세요.
요약 주요 포인트:
- 간단한 기록부터 실시간 모니터링, 포렌식까지 목적에 맞는 도구를 선택하세요.
- 의심 발견 시 증거 수집, 격리, 전수 검사 순으로 진행하세요.
- 자동화된 엔드포인트 보안과 정기 점검으로 문제 발생 가능성을 줄이세요.