업데이트됨 1개월 전
Universal Plug and Play(UPnP)는 실질적인 문제를 해결합니다. 대부분의 사람들은 포트 포워딩을 설정하는 방법을 모르고, 사실 알 필요도 없습니다. 게임 콘솔이 멀티플레이를 위해 외부 연결을 받아야 하거나, 미디어 서버가 집 밖에서 접근 가능해야 할 때 UPnP가 자동으로 처리해 줍니다. 라우터에 로그인할 필요도, 포트 번호를 입력할 필요도, 혼란도 없습니다.
하지만 이 편의에는 상당한 대가가 따릅니다. UPnP는 "예"라고 말하는 프로토콜입니다. 네트워크에 있는 어떤 기기든 라우터에게 인터넷을 향한 포트를 열어달라고 요청할 수 있고, 라우터는 그냥... 열어버립니다. 비밀번호도 없이. 승인도 없이. 아무것도 묻지 않고.
작동 방식
UPnP는 기기들이 서로를 발견하고 네트워크 서비스를 자동으로 구성할 수 있도록 하는 프로토콜 모음입니다. 홈 네트워크에서 중요한 부분은 자동 포트 포워딩을 처리하는 인터넷 게이트웨이 기기(IGD) 프로토콜입니다.
애플리케이션이 인터넷에서 외부 연결을 받아야 할 때, 로컬 네트워크에 탐색 메시지를 보냅니다. 라우터가 응답하며 자신이 게이트웨이임을 알립니다. 그런 다음 애플리케이션은 이런 요청을 보냅니다. "외부 포트 25565를 TCP 프로토콜로 내 내부 IP 주소의 포트 25565로 전달해 주세요."
라우터는 즉시 규칙을 생성합니다. 인증도 없이. 사용자 확인도 없이. 승인 절차도 없이.
애플리케이션은 임대 시간을 설정해서 규칙이 자동으로 만료되도록 할 수 있어, 프로그램이 충돌하거나 삭제될 때 불필요하게 남은 포트 매핑이 쌓이는 것을 방지합니다. 하지만 근본적인 동작은 그대로입니다. 요청하면 들어줍니다.
왜 이렇게 설계되었나
이 프로토콜은 1990년대 후반에 등장했는데, 당시에는 하나의 단순한 가정이 유효했습니다. 로컬 네트워크에 있다면 신뢰할 수 있다는 것이었습니다.
그 가정은 당시에는 타당했습니다. 홈 네트워크에 있는 기기들은 내 기기들이었습니다—컴퓨터 한두 대, 아마 프린터 하나. 로컬 네트워크에 연결되어 있다는 것은 물리적으로 집 안에 있다는 의미였고, 그것은 거기 있어야 할 사람임을 뜻했습니다. 로컬 네트워크는 신뢰의 경계였습니다.
UPnP는 편의를 위해 인증을 포기했고, 오랫동안 그것은 합리적으로 보였습니다. 집 안에 있고, 네트워크에 연결되어 있다면, 아마도 설정할 권한이 있는 사람일 테니까요.
그런데 우리는 전구를 인터넷에 연결하기 시작했습니다.
보안 문제
그 가정은 산산조각 났습니다. 이제 로컬 네트워크에는 오래된 펌웨어를 가진 스마트 TV, 폐업한 제조사의 IP 카메라, 음성 어시스턴트, 스마트 온도 조절기, 연결된 가전제품들이 포함됩니다. 이런 기기들 중 상당수는 보안이 취약합니다. 일부는 다른 나라의 서버에 데이터를 전송합니다. 일부는 해킹당하지만 당신은 절대 알지 못합니다.
UPnP는 여전히 이 모든 기기에게 "예"라고 말합니다.
네트워크의 어떤 기기라도 감염된 악성코드는 당신 모르게 조용히 포트를 열 수 있습니다. 해킹된 스마트 전구가 라우터에게 자신에게로 포트를 포워딩하도록 지시해 백도어를 만들 수 있습니다. 컴퓨터의 트로이목마는 절대 인터넷에 노출되어서는 안 될 서비스를 외부에 드러낼 수 있습니다.
대부분의 라우터 인터페이스는 수동으로 생성된 포트 포워딩 규칙과 UPnP가 생성한 규칙을 구별하지 않습니다. 무엇이 열려 있는지, 왜 열려 있는지 쉽게 알 방법이 없습니다.
더 심각한 문제는, 많은 라우터에 버그가 있어 UPnP 요청이 인터넷 쪽에서도 전송될 수 있었다는 점입니다. 이를 통해 공격자들은 로컬 네트워크에 전혀 접근하지 않고도 라우터를 원격으로 재구성할 수 있었습니다. 보안 연구자들은 이런 구현 결함을 계속해서 발견합니다. 패치가 이루어집니다. 새로운 결함이 등장합니다.1
Mirai 봇넷과 그 변종들은 취약한 기기들을 악용해 대규모 공격 네트워크를 구축했습니다. Akamai의 연구에 따르면 취약한 UPnP 구현을 실행하는 기기가 277,000개 이상이며, UPnProxy 캠페인에서 45,000개 이상이 침해된 것으로 확인되었습니다.2 CISA—미국 사이버보안 및 인프라 보안국—은 봇넷 감염에 대한 보호 조치로 UPnP 비활성화를 명시적으로 권장합니다.3
보안 전문가들의 권고
보안 전문가들은 수년간 UPnP 비활성화를 권고해 왔습니다. 논리는 단순합니다. UPnP는 로컬 네트워크 트래픽을 신뢰할 수 있다고 가정하는데, 그 가정은 더 이상 유효하지 않으며, 이 프로토콜은 호환성을 깨지 않고는 신뢰 검증을 추가할 방법을 제공하지 않습니다.
UPnP를 고칠 수는 없습니다. 끌 수 있을 뿐입니다.
UPnP를 써도 괜찮은 경우
포트 포워딩을 수동으로 설정할 수 없는 비기술적인 사용자가 그냥 작동하기를 원한다면, UPnP가 여전히 현실적인 선택일 수 있습니다. UPnP가 활성화된 네트워크는 게임을 연결하지 못해 답답함에 방화벽을 완전히 비활성화한 사용자의 네트워크보다 아마 더 안전할 것입니다.
UPnP를 사용한다면:
- 라우터 펌웨어를 최신 상태로 유지하세요. 제조사들은 UPnP 취약점을 정기적으로 패치합니다.
- 모든 기기에 보안 소프트웨어를 실행하세요. UPnP 요청은 로컬 네트워크에서 오기 때문에 엔드포인트 보호가 방어 계층을 제공합니다.
- 라우터의 포트 포워딩 테이블을 주기적으로 확인하세요. 알 수 없는 규칙이 있는지 살펴보세요.
일부 사용자는 필요할 때만 UPnP를 활성화합니다—게임이나 애플리케이션을 설정할 때 켜고, 그 후에 비활성화합니다.
비활성화해야 할 경우
기업 네트워크는 절대 UPnP를 사용해서는 안 됩니다. 수동 포트 포워딩이나 VPN 접근 방식으로 적절한 네트워크 아키텍처를 구현하세요.
IoT 기기가 많은 네트워크는 위험도가 높습니다. IP 카메라, 스마트 가전, 또는 보안 관행이 의심스러운 제조사의 기기가 네트워크에 있다면 UPnP를 비활성화하세요.
기본적인 라우터 설정에 익숙한 사용자는 UPnP를 비활성화하고 필요한 애플리케이션을 위해 수동으로 포트를 포워딩해야 합니다. 이렇게 하면 무엇이 외부에 노출되어 있는지 완전히 파악할 수 있습니다.
UPnP의 혜택을 받는 게임 콘솔의 경우, 네트워크 분리를 고려해 보세요—침해가 발생해도 주요 기기에 영향을 미치지 않도록 별도의 네트워크 세그먼트에 배치하세요.
이득과 위험 사이에서
UPnP는 더 신뢰롭던 시대의 프로토콜로, 그 가정을 깨뜨린 세상에서 여전히 실행되고 있습니다. 포트 포워딩에서 인증을 제거함으로써 홈 네트워킹을 더 쉽게 만듭니다. 그것이 바로 UPnP의 가치이자 취약점입니다.
결정은 당신의 상황에 달려 있습니다. 얼마나 기술적인 지식을 갖고 있나요? 어떤 기기들이 네트워크를 공유하고 있나요? 침해의 비용과 수동 설정의 비용을 비교해 보면 어떤가요?
UPnP가 실제로 무엇을 하는지—로컬 기기가 승인 없이 포트를 열 수 있게 해준다는 것—를 이해하면 결정이 더 명확해집니다. 문제는 UPnP가 좋은지 나쁜지가 아닙니다. 문제는 모든 것에 "예"라고 말하는 것이 당신의 네트워크에서 허용 가능한지입니다.
UPnP에 관한 자주 묻는 질문
라우터에서 UPnP가 활성화되어 있는지 어떻게 확인하나요?
라우터 관리 인터페이스에 로그인하세요(보통 브라우저에서 192.168.1.1 또는 192.168.0.1로 이동하면 됩니다). "고급", "NAT", 또는 "방화벽"과 같은 섹션에서 UPnP 설정을 찾아보세요. 정확한 위치는 제조사마다 다릅니다.
UPnP를 비활성화하면 게임이나 애플리케이션이 작동하지 않나요?
일부 애플리케이션은 UPnP 없이도 잘 작동합니다. 다른 것들은 포트 포워딩을 수동으로 설정해야 할 수 있습니다. UPnP가 비활성화되면 게임 콘솔은 "개방"이 아닌 "보통" 또는 "엄격한" NAT 상태를 표시할 수 있으며, 이는 매치메이킹에 영향을 줄 수 있지만 일반적으로 플레이를 완전히 막지는 않습니다.
UPnP가 생성한 포트 포워딩 규칙을 볼 수 있나요?
대부분의 라우터는 모든 포트 포워딩 규칙을 하나의 목록에 표시하며, 보통 "포트 포워딩" 또는 "NAT" 아래에 있습니다. 일부 라우터는 UPnP가 생성한 규칙에 다른 레이블을 붙이지만, 많은 라우터는 수동 규칙과 구별하지 않습니다. 사용된 포트를 보고 식별해야 할 수도 있습니다.
UPnP와 포트 포워딩은 같은 것인가요?
아닙니다. 포트 포워딩은 특정 포트로 들어오는 트래픽을 네트워크의 특정 기기로 전달합니다. UPnP는 포트 포워딩 규칙을 자동으로 생성할 수 있는 프로토콜입니다. UPnP 없이도 포트 포워딩을 할 수 있지만(규칙을 수동으로 설정하면), UPnP의 주된 목적은 그 과정을 자동화하는 것입니다.
출처
이 페이지가 도움이 되었나요?