PCAP 타임스탬프 문제: 캡처 시간을 검사, 정규화 또는 다시 작성하는 시기
증거 손실 없이 잘못된 PCAP 타임스탬프, 시계 드리프트, 캡처 순서 및 제어된 타임스탬프 재작성에 대해 추론하는 방법
타임스탬프는 패킷 캡처 증거의 일부입니다. 순서, 대기 시간, 재전송 타이밍, 요청-응답 격차 및 문제가 애플리케이션 로그와 일치하는지 여부를 설명합니다. 타임스탬프가 잘못된 경우 전체 조사가 표류할 수 있습니다.
그러나 타임스탬프 복구는 민감합니다. 캡처 시간을 변경하면 분석이 더 쉬워지는 동시에 파일의 원래 이벤트에 대한 충실도가 낮아질 수 있습니다.
일반적인 타임스탬프 문제
PCAP 타임스탬프 문제는 다음과 같습니다.
- 패킷이 순서대로 나타나지 않음
- 타임스탬프가 뒤로 이동
- 타임스탬프가 모두 0입니다.
- 해상도가 생각보다 낮네요
- 캡처는 불가능한 시간 범위에 걸쳐 있습니다.
- 캡처 중 VM 또는 호스트 시계 변경
- 병합된 캡처는 다른 시계를 사용합니다.
- 시간대 가정은 사람의 보고를 혼란스럽게 합니다.
이들 중 일부는 디스플레이 문제입니다. 일부는 캡처 문제입니다. 일부는 병합 문제입니다. 수리 전략은 어느 것인지에 따라 다릅니다.
벽시계 의미와 별도 주문
패킷 순서와 벽시계 시간은 서로 관련되어 있지만 동일하지는 않습니다. 캡처는 쓸모없는 벽시계 값을 가지면서 패킷 순서를 보존할 수 있습니다. 또 다른 캡처에는 그럴듯한 벽시계 값이 있을 수 있지만 타이밍 비교가 안전하지 않게 만드는 다른 캡처 지점의 병합된 스트림이 포함됩니다.
타임스탬프를 다시 쓰기 전에 다음을 질문하십시오.
- 패킷 순서는 신뢰할 수 있나요?
- 상대적인 타이밍은 신뢰할 수 있는가?
- 절대 벽시계 시간이 필요합니까?
- 캡처가 여러 소스에서 병합되었나요?
- 애플리케이션 로그는 외부 앵커를 제공합니까?
- 다운스트림 도구가 현재 타임스탬프를 잘못 해석합니까?
이러한 질문은 검사, 주석, 정규화 또는 재작성이 적절한지 여부를 결정합니다.
정규화가 도움이 되는 경우
타임스탬프 정규화는 원래 절대 시간은 중요하지 않지만 상대 순서와 간격은 중요할 때 유용할 수 있습니다. 예를 들어, 잘못된 시스템 시계를 사용한 랩 캡처는 여전히 유효한 요청-응답 타이밍을 표시할 수 있습니다. 시작 시간을 정규화하면 관련 동작을 변경하지 않고도 보고서를 더 쉽게 읽을 수 있습니다.
출력에는 다음이 기록되어야 합니다.
- 원래의 첫 번째 타임스탬프
- 정규화된 첫 번째 타임스탬프
- 델타가 보존되었는지 여부
- 영향을 받은 패킷
- 정규화 이유
해당 기록이 없으면 미래의 엔지니어는 시간 증거가 원본인지 편집되었는지 알 수 없습니다.
재작성이 위험한 경우
캡처가 다음과 연관되어야 하는 경우 타임스탬프를 다시 작성하는 것은 위험합니다.
- 서버 로그
- 카메라 로그
- USB 또는 직렬 추적
- 사건 타임라인
- 법적 또는 규정 준수 증거
- 다중 지점 네트워크 캡처
이러한 경우 타임스탬프를 변경하면 파일을 검사하기는 더 쉬워지지만 신뢰하기는 더 어려워질 수 있습니다. 더 나은 첫 번째 단계는 주석입니다. 즉, 시계 문제를 문서화하고 원시 캡처를 그대로 두는 것입니다.
PCAP 수술이 적합한 곳
PCAP 수술은 우연한 돌연변이가 아닌 통제된 편집을 중심으로 구축되었습니다. 타임스탬프 작업은 체크섬 또는 패킷 트리밍과 동일한 규칙을 따라야 합니다. 즉, 먼저 검사하고 두 번째로 결정하고 증거가 뒷받침하는 경우에만 다시 작성해야 합니다.
좋은 PCAP 수술 작업 흐름은 다음 질문에 답하는 데 도움이 됩니다.
- 어떤 타임스탬프 이상이 존재합니까?
- 얼마나 많은 패킷이 영향을 받습니까?
- 주문은 아직도 신뢰할 수 있나요?
- 상대적인 타이밍이 여전히 유용합니까?
- 어떤 재작성 또는 정규화가 적용되었나요?
- 변경사항을 재현할 수 있나요?
프로토콜 엔지니어에게 있어 가치는 단순히 파일을 변경하는 것만이 아닙니다. 가치는 다른 엔지니어가 검증할 수 있는 캡처 및 추론 추적을 생성하는 것입니다.