VPN 뒤의 서버는 공개 서비스 항목을 계속 유지하며, 사람들은 그것을 계속 찾아낸다. 경고 큐에 도착하는 것은 하나의 발견이 아니라 세 가지 가능성이며, 각각 의미가 다르다. 첫 번째 일은 노출된 서비스와 노출된 자격 증명을 구분하는 것이다.

관측 지점을 순서대로 살펴보되 증거의 범주가 바뀌는 지점에서 멈춰라. 다음 단계는 다른 질문에 답하기 때문이다.

첫 단계: 캡처가 실제로 본 것

패킷 캡처는 경로상 자기 지점에서 보였던 것을 기록한다. 그 지점은 이후의 필터링 결정보다 앞설 수 있다. 캡처된 패킷은 트래픽이 그곳에 도달했음을 증명한다. 그 뒤에 무슨 일이 있었는지는 아무것도 증명하지 않는다.

인터페이스도 살펴라. 공용 어댑터에서의 캡처와 터널 내부에서의 캡처는 서로 다른 도착 지점을 기술하며, 잘못된 쪽을 인용한 경고는 잘못된 결론으로 이어진다.

Windows는 스택의 여러 계층에서도 필터링하므로, 캡처 도구가 둘째 계층에 있고 방화벽이 셋째 계층에 있다는 정돈된 모델은 실제 제품과 맞닥뜨리면 버티지 못한다. Windows Filtering Platform 개요는 스택 계층 전반의 필터링을 설명하며, 그래서 관측 순서는 가정이 아니라 확인으로 정해야 한다.

둘째 단계: 드롭 기록이 확립하는 것

드롭 기록은 정책 경계가 그 패킷을 거부했다고 말한다. 이것은 강한 증거다. 동시에, 한 경계에서의 한 결정만을 다룬다는 점에서 좁은 증거이기도 하다. 스택의 다른 어떤 것도 그것으로 설명되지 않는다.

튜플과 타임스탬프로 연관시켜라. 같은 출발지, 같은 목적지, 같은 포트, 같은 초 안에서. 그 일치가 없으면 다른 로그의 비슷해 보이는 사건은 그저 다른 사건이며, 둘을 짝지으면 누구도 변호할 수 없는 이야기가 된다.

# what did the firewall actually drop, and when?
Get-NetFirewallProfile -PolicyStore ActiveStore | Select-Object Name, LogAllowed, LogBlocked
Get-Content "$env:systemroot\System32\LogFiles\Firewall\pfirewall.log" | Select-String 'DROP'

# correlate with a listening service on the same port
Get-NetTCPConnection -LocalPort 3389 -State Listen | Select-Object LocalAddress, OwningProcess

닫힌 포트와 드롭된 패킷은 밖에서 보면 동일하고 이 두 출력에서는 전혀 다르다. 그 차이가 바로 로컬 기록을 읽는 이유 전부다.

셋째 단계: 인증 이벤트가 증명하는 것

인증 이벤트는 한 구성 요소가 결과를 기록할 만큼 요청을 처리했다고 말한다. 세 단계 중 정체성을 말하는 것은 이것뿐이며, 그 전에 몇 개의 패킷이 도착했는지는 말하지 않는다.

이벤트의 실제 맥락을 읽어라. 존재하지 않는 계정에 대한 로그온 실패는 스캔의 잡음이다. 실제 계정에 대해 그럴듯한 출발지에서 온 로그온 실패는 다른 우선순위다. 성공한 세션은 전혀 다른 사건 범주다.

프로토콜 이름도 지켜봐라. RPC와 RDP는 별도 포트를 가진 별도 서비스다. 하나만 감시하는 탐지기는 다른 하나를 다루지 않는다. 네트워크 활동을 요약하는 도구가 둘 중 어느 것이 이벤트를 만들었는지 항상 밝히지는 않는다.

연관된 표본 하나가 대시보드를 이긴다

승인된 시험 하나를 골라 의도적으로 실행하고, 목적지 주소와 인터페이스, 실제 출발지 주소, 서비스 포트, 유효한 방화벽 프로필과 규칙, 일치하는 서비스 결과에 더해 상위 매핑이나 클라우드 방화벽까지 그 연쇄를 처음부터 끝까지 추적하라. 그곳의 허용 규칙이 정돈된 로컬 규칙을 덮어쓸 수 있기 때문이다.

그다음 두 의무를 분리하라. 관리가 VPN 전용이어야 한다면 승인된 복구 경로를 유지하면서 공용 경로와 터널 경로 양쪽에 그것을 강제하라. 거부된 시도를 감시하는 것은 서버가 무엇을 받아들여야 하는지 결정하는 것과 같은 작업이 아니다.

지리 규칙이나 차단된 무관한 프로토콜은 관측된 입구와 그것이 받은 결정을 찾는 일을 대신하지 못한다. VPN도 마찬가지로, 터널을 통해 나가는 트래픽을 보내는 것은 인바운드 권한에 대해 아무것도 기록하지 않는다.

관련 글