Skip to content
  • Universal Plug and Play (UPnP)는 네트워크에 연결된 장치들이 자동으로 서로를 발견하고 통신할 수 있도록 지원하는 네트워크 프로토콜이다. 주로 가정용 네트워크 환경에서 사용되며, IP 기반의 네트워크에서 장치 간 편한 통신을 위해 설계되었다.
  • 장치가 UPnP 네트워크에 연결되면, 다른 장치들에게 자신의 존재와 제공 가능한 서비스를 자동으로 알린다.
  • NAT 환경에서 애플리케이션이 필요한 포트를 자동으로 열어, 사용자가 수동으로 설정할 필요를 줄인다.
  • HTTP, XML, SOAP 등의 표준 인터넷 프로토콜을 기반으로 동작한다.

활용 사례

  • DLNA/UPnP 미디어 서버를 NAS나 공유기에 저장된 사진, 음악, 동영상을 스마트폰, 스마트 TV 등에서 스트리밍하는 용도로 활용할 수 있다.
    • 일부 미디어 서버는 네트워크 상태나 디바이스 성능에 따라 실시간으로 화질을 조정하거나 포맷을 변환하여 전송하기도 한다.
  • 비트토렌트 클라이언트나 데디케이티드 서버 방식의 온라인 게임에서 필요한 포트를 자동으로 열어준다.
  • UPnP를 사용할 수 없는 경우 우회적으로 홀 펀칭(TURN 등 Relay서버)을 사용할 수 있다. 다만 Symmetric NAT 환경에서는 제한적이다.

보안 취약점

  • 인증 부재: UPnP는 기본적으로 인증 절차가 없어, 악의적인 사용자가 네트워크에 접근할 수 있다.
  • 인터넷에서의 접근 가능성: 일부 장치는 외부에서 UPnP 요청을 수락하여 보안 위협에 노출된다.
  • CallStranger 취약점: 이벤트 구독 메커니즘의 설계 결함으로 인해 DDoS 공격이나 데이터 유출이 가능하다.
  • 멀티캐스트 트래픽 문제: IGMP 스누핑이 제대로 구성되지 않으면 장치 발견에 문제가 발생할 수 있다.

보안 강화 방안

  • UPnP 비활성화: 필요하지 않은 경우 라우터나 장치에서 UPnP 기능을 비활성화한다.
  • 펌웨어 업데이트: 제조사에서 제공하는 최신 펌웨어로 업데이트하여 알려진 취약점을 해결한다.
  • 네트워크 분리: 게스트 네트워크를 활용하여 주요 장치와 IoT 장치를 분리한다.
  • 강력한 인증 사용: 가능한 경우 장치에 강력한 비밀번호나 인증 메커니즘을 적용한다.

참고