Search

zeek로그, syn로그 파악하기

Zeek 로그 파일 확인

먼저, conn.log 파일은 Zeek가 네트워크 연결 상태를 기록하는 파일입니다. conn.log 파일에서 TCP 세션 상태를 확인하고, S0 상태를 필터링하여 SYN 패킷이 전송되었지만 세션이 완료되지 않은 비정상적인 상태를 찾아낼 수 있습니다.

2. Zeek 로그 파일 위치로 이동

Security Onion 서버에 접속한 후, Zeek 로그가 저장된 디렉터리로 이동합니다. 기본적으로 Zeek 로그는 다음 경로에 저장됩니다:
bash 코드 복사 cd /nsm/zeek/logs/current/
Shell
복사
current 디렉터리는 Zeek가 현재 기록 중인 로그 파일이 위치한 디렉터리입니다. 이곳에서 conn.log 파일을 찾을 수 있습니다.

3. conn.log 파일에서 SYN 패킷 상태 필터링

SYN 패킷이 전송되었으나 세션이 완료되지 않은 상태(S0)를 필터링하려면 다음 명령어를 사용합니다:
bash 코드 복사 cat conn.log | grep -E "S0"
Shell
복사
위 명령어는 TCP 세션 상태에서 S0 상태를 가진 모든 연결을 출력합니다. S0는 SYN 패킷이 전송되었으나 응답을 받지 못하고 연결이 완료되지 않은 상태를 의미합니다. 이는 SYN Flood 공격의 전형적인 패턴입니다.

4. 출력 예시 분석

conn.log 파일에서 출력된 내용을 보면 다음과 같은 형식의 로그가 나타납니다:
plaintext 코드 복사 1633024681.340304 CcnYnW1mthG 192.168.1.10 4321 192.168.1.20 80 tcp - - S0 T 0 0 0 0 0 - -
Plain Text
복사
로그의 각 필드는 다음과 같은 정보를 제공합니다:
첫 번째 필드: 타임스탬프 (연결이 시작된 시간)
두 번째 필드: Zeek에서 자동으로 생성된 연결 ID
세 번째 필드: 출발지 IP (SYN 패킷을 보낸 쪽)
네 번째 필드: 출발지 포트
다섯 번째 필드: 목적지 IP (SYN 패킷을 받은 쪽)
여섯 번째 필드: 목적지 포트
일곱 번째 필드: 프로토콜 (TCP)
아홉 번째 필드: 세션 상태 (S0은 SYN 패킷이 전송되었으나 응답을 받지 못하고 세션이 완료되지 않은 상태)
S0 상태가 여러 번 발생하면 SYN Flood 공격일 가능성이 높습니다.

5. 추가적인 SYN 패킷 분석

SYN Flood 공격 여부를 더 정밀하게 분석하기 위해서 SYN 패킷이 비정상적으로 많이 전송되었는지 확인할 수 있습니다. conn.log 파일에서 SYN 상태만 확인하려면 다음 명령어를 사용할 수 있습니다:
bash 코드 복사 cat conn.log | grep "SYN"
Shell
복사
이 명령어는 SYN 플래그가 있는 모든 TCP 연결을 확인하여 SYN Flood 패턴을 탐지하는 데 유용합니다.

6. 실시간 모니터링

실시간으로 conn.log 파일에서 SYN Flood와 관련된 활동을 모니터링하려면 tail -f 명령어를 사용합니다:
bash 코드 복사 tail -f conn.log | grep -E "S0|SYN"
Shell
복사
이 명령어를 사용하면 새로운 SYN Flood 패턴이 실시간으로 기록되는 것을 확인할 수 있습니다.

7. 결과 분석

S0 상태: 다수의 S0 상태가 확인되면 SYN 패킷이 비정상적으로 많이 전송되었고, 세션이 제대로 완료되지 않았음을 나타냅니다.
출발지 IP와 목적지 IP 분석: 공격자의 IP와 공격 대상 서버의 IP를 분석하여 SYN Flood 공격을 발생시킨 출발지와 대상 서버를 식별할 수 있습니다.