과정 |
설명 |
NIC promiscuous 모드 설정 |
Snort가 실행되면 NIC는 libpcap에 의해 promiscuous 모드로 설정된다. |
패킷 복사 |
promiscuous로 설정된 Snort 서버의 NIC는 허브를 지나가는 패킷을 캡처해서 네트워크 드라이버로 복사한다. |
ProcessPacket() 함수 호출 |
lipcap 라이브러리는 무한 루프를 돌면서 패킷을 기다리다가 패킷을 받을 경우 ProcessPacket()함수를 실행한다. (decode.c) |
DecodeEthPkt() 함수 호출 |
ProcessPacket 함수는 이더넷 프레임을 디코딩하는 DecodeEthPkt 함수를 호출한다. |
DecodeIP() 함수 호출 |
DecodeEthPkt 함수 내에서는 IP 프로토콜을 디코딩하는 DecodeIP 함수를 호출한다. |
DecodeTCPPkt() 함수 호출 |
마지막으로 TCP 패킷을 디코딩하는 DecodeTCPPkt 함수가 호출된다. |