2010년 6월 15일 화요일

네트워크 트래픽에서 많이 보이는 SSDP 프로토콜의 정체는?

패킷 분석을 하다보면, SSDP(Simple Service Discovery Protocol) 프로토콜을 보는 경우가 많다.
M-SEARCH * HTTP/1.1, NOTIFY * HTTP/1.1 과 같은 것이다. 생긴것은 HTTP 프로토콜과 같은데
SSDP 프로트콜이라 나온다. HTTP 로 필터를 걸어서 보아도 나타난다.
이것은 UPnP 구성의 일부이다. UPnP 는 Universal Plug and Play 로 네트워킹 프로토콜이다. UPnP의
목적은 네트워크 상에서 디바이스들이 쉽게 연결이 될수 있도록 하고자 함이다.  예를들어, UPnP 를 이용한
시나리오를 가정하면 티비에서 쇼핑 관련한 상품이 나오고 광고 메시지가 나오고 있다. 이때 해당 메시지를
클릭하면 관련 정보가 이메일로 전달되고, 프린터는 50% 할인 쿠폰을 출력한다. 이건, UPnP 포럼에 있는
제품 시나리오 중에 하나이다. 주로 UPnP 는 가정의 홈 네트워킹을 타겟으로 하고 있다.

자세한 내용은 UPnP 포럼인
http://www.upnp.org 를 방문해 보기 바란다.

우리가 UPnP 를 지금 자세히 알고자 함은 아니고, SSDP 를 알아가는 과정에서 나오는 것이다. SSDP 는
유니캐스트와 멀티캐스트를 이용하며 기본적으로 UDP 1900 에 239.255.255.250 멀티캐스트 주소를 이용한다.
HTTP 와 완전히 똑같은 아니며, 그 형태는 크게 비슷하다. 큰 차이점은 TCP 를 이용하는 것이 아니라
UDP 를 사용하는 것이다. SSDP 의 시작은 다음 3가지 중에 한개로 시작된다.
  • M-SEARCH * HTTP/1.1
  • NOTIFY * HTTP/1.1
  • HTTP/1.1 200 OK
SSDP 의 세부적인 사항을 알고 싶다면 다음 문서가 도움이 될 것이다.
http://upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.1.pdf

SSDP 의 세부적인 내용은 여기서 더 설명하지는 않도록 하겠다. 자. 패킷을 분석하는 관점에서 보면
여러 다양한 트래픽 정보가 쏟아져 나오기 때문에 이런것들이 무엇인지 정확히 알아야 분석이 가능한 것이다.
내가 알고 있는 형태의 트래픽이면 "아 ~ 이건 이번 분석과 관련이 없는거야" 하고서 쉽게 넘어가지만
처음 보고, 본인이 알수없는 형태의 트래픽에 부딪히면 분석하는데 시간이 많이 소요된다.

이미 앞서 언급했지만, 불필요한 패킷은 제외하고 분석을 시작하는 것이 빠르게 원인파악을 할 수 있는
지름길이므로 평소에 본인이 사용하는 네트워크 환경에는 어떤 트래픽들이 흐르고 있는지 파악해 보고
알아두는 것이 좋다. SSDP 를 소개한 이유도 내부 네트워크 상에서 발생되는 트래픽의 한
종류이고 많이 보아왔을 것이라 판단되었기 때문이다.  그렇다면 이런것은

http and !(udp.dstport == 1900) 와 같이 필터를 적용하면 제외하고 HTTP 프로토콜을 볼 수 있다.

댓글 7개:

  1. @Ezbeat - 2010/11/12 02:58
    좋은 정보가 되었는지 모르겠네요. ^^ 방문해 주셔서 감사합니다. 좋은 하루 되세요.

    답글삭제
  2. 좋은 정보 감사합니다. :)

    답글삭제
  3. 좋은 정보 잘 보고 갑니다^^

    답글삭제
  4. 안녕하세요 저번에도 글한번남겼었는데 또 좋은 정보얻어가네요^^!! 그리구 하나 궁금한게 있어서 이렇게 글남겨봅니다. 지금 제가 토렌트를 토렌트어플리케이션 종류별로 나눌려고 시그니처를 찾고있습니다 .근데 여기서 토렌트를 발생시켰을때 SSDP가 나오는데 ㅠㅠㅠ 이게 왜나오는건가요?? 이게 연구실컴퓨터라서 안에 payload보면 upnp가 많이 나오는데 이건 프린터 장치같은거를 연결 할려고 나오는건가요?? 토렌트관해서 정보있으시면 좀알려주세용 ㅠㅠ 항상 좋은 정보 감사합니다.

    답글삭제
    답글
    1. 안녕하세요, 좋은 정보를 얻어가셨다고 하니 다행입니다. :-) 토렌트를 종류별로 나눠서 시그너처를 작성하시려고 하면 쉽지 않은 작업이 되겠네요. 사실 SSDP 프로토콜이 토렌트를 사용했다고 해서 발생되지는 않을것 같습니다. 만약 발생된다면 다른 어떤 연관된 것들이 있을것 같은데요. utorrent 클라이언트 같은 경우는 UPnP 와 관련한 버그들이 있었던 것으로 알고 있습니다. 이로 인해 발생될 수는 있을것 같은데 직접 확인해 보지는 못해서 정확히 말씀드리기는 힘드네요 ^^

      삭제
  5. 아래 글에 지극히 공감합니다.. ㅎㅎ

    "내가 알고 있는 형태의 트래픽이면 "아 ~ 이건 이번 분석과 관련이 없는거야" 하고서 쉽게 넘어가지만
    처음 보고, 본인이 알수없는 형태의 트래픽에 부딪히면 분석하는데 시간이 많이 소요된다."

    감사합니다~~

    답글삭제