VPN 로그가 브라우징에 대해 증명할 수 있는 것과 없는 것
세션, 리졸버, 흐름, 애플리케이션 기록은 서로 다른 사건을 증명합니다. 브라우징 기록이라고 부르기 전에 감사 질문과 신원 연결을 정하세요.
로그 수집기를 고르기 전에 감사가 어떤 사건을 확립해야 하는지 정하세요. 어떤 VPN 세션이 목적지 주소에 접속했는지 묻는 것은 어떤 사람이 특정 페이지를 열었는지 묻는 것과 다른 질문입니다. 둘은 서로 다른 기록, 서로 다른 연결, 서로 다른 신뢰 수준을 요구합니다. OpenVPN 연결 로그는 첫 번째에 답하고 두 번째에는 답할 수 없습니다.
수집기를 고르기 전에 사건의 이름을 붙이세요
세션 기록은 수용된 신원, 시작과 종료 시각, 서버가 자체 정책에 따라 할당한 주소를 보여 줍니다. 리졸버 로그는 그 리졸버에서 이름이 조회되었음을 보여 줍니다. 흐름 기록은 주소, 포트, 프로토콜, 시각을 보여 주고, 애플리케이션 로그는 그 애플리케이션이 실제로 처리한 거래를 보여 줍니다. 이 넷 중 어느 것도 다른 하나를 대신하지 못합니다.
각각은 하나의 사건을 확립하고 나머지는 열어 둡니다. 질문을 먼저 적어 두면 데이터가 뒷받침할 수 없는 이야기를 조립하는 일을 막을 수 있습니다.
journalctl -u [email protected] --since today | grep -i 'peer info\|assigned' cat /etc/openvpn/server/openvpn-status.log | head -20 conntrack -L -p tcp --dport 443 2>/dev/null | head -20
첫 번째 명령은 서비스 저널에서 세션 사건을 보여 줍니다. 두 번째는 할당된 주소와 함께 현재 클라이언트 목록을 인쇄하며, 이것이 감사 연결이 의존하는 매핑입니다. 세 번째는 연결이 존재하는 동안에만 유용한 실시간 흐름 상태를 보여 줍니다.
조회는 방문이 아닙니다
브라우저는 이름을 추측적으로 해석하고 응답을 캐시하며 감시 중인 리졸버에 다시 묻지 않고 재사용합니다. 따라서 리졸버 로그의 이름은 조회를 증명할 뿐 방문을 증명하지 않습니다. HTTPS를 통한 DNS는 이를 위해 설정된 브라우저가 평소 로거가 결코 보지 못하는 곳으로 질문을 보내기 때문에 이 간극을 더 넓힙니다.
목적지 주소만으로는 더 낫지 않습니다. 하나의 주소가 무관한 여러 사이트를 호스팅할 수 있고, 역방향 DNS는 재구성이 아니라 추측이며, TLS 핸드셰이크 중에 보이는 호스트 이름은 암호화된 세션 내부의 요청 경로가 아닙니다.
정확한 거래에는 애플리케이션 자체의 사건 기록이나 로깅이 명시적으로 지원되는 프록시 설계가 필요합니다. CONNECT 터널은 프록시에 목적지와 볼륨을 주지만 내부의 페이지 경로는 주지 않습니다. 네트워크에 대한 관리자 접근은 애플리케이션의 신뢰 모델을 조용히 대체할 권한이 아닙니다.
사람을 지목하기 전에 신원과 시각을 연결하세요
내부 출발지 주소를 담은 흐름 기록은 그 주소가 같은 시각에 세션과 연결되기 전까지 아무 의미가 없습니다. 주소는 재사용되며, 같은 주소가 한 시간 전에는 다른 세션의 것이었을 수 있습니다. 정적 할당은 연관을 유지하는 한 가지 방법일 뿐 유일한 방법은 아닙니다.
변환 경계는 연결을 더 약화합니다. 여러 기기가 관측 지점 이전에 이미 하나의 출발지 주소를 공유했다면 식별할 수 있는 최선은 단일 기기가 아니라 공유 게이트웨이 세션입니다. 여러 사람이 사용하는 인증서나 계정도 같은 효과를 냅니다.
시간대, 시계 출처, 관측 지점, 모든 변환 단계를 기록하세요. 누락된 기록은 흐름 항목이 만료되었거나, 센서가 우회되었거나, 애플리케이션 로그가 꺼져 있었음을 뜻할 수 있습니다. 부재는 아무 일도 일어나지 않았다는 증거가 아닙니다.
그다음 명시된 목적을 위해 최소 필드, 허용된 열람자, 보존 기간을 정의하세요. 상관과 잘못된 귀속은 나중에 덧붙이는 생각이 아니라 설계의 문제이며, 사람을 식별하는 메타데이터는 그것이 의존하는 신원 매핑만큼의 보호를 받을 자격이 있습니다.
통제하는 활동으로 감사를 시험하세요
세션과 애플리케이션을 이미 아는 허용된 트래픽을 만들고, 각 기록이 실제로 무엇을 포착했는지 확인하세요. 페이지를 로드하지 않고 조회하고, 캐시에서 페이지를 로드하고, 프록시를 통해 연결을 열어 어떤 사건이 나타나는지 보세요.
증거가 뒷받침하는 사건을 보고하고 그것이 무엇을 다루지 않는지 말하세요. 명시된 범위를 가진 소박한 기록은 검토를 견디지만, 추측으로 조립한 야심찬 브라우징 기록은 견디지 못합니다.