내 DD-WRT 공유기의 CVE-2021-27137 취약점 노출 여부는 관리자 제어판 UPnP 설정 활성화 상태로 확인할 수 있다. 비활성화라면 기본적으로 안전하다. 서비스 지장 없이 방어하려면 NAT/QoS 메뉴에서 UPnP를 끄고, 필요한 서비스만 수동 포트 포워딩으로 설정해야 한다.
CVE-2021-27137 취약점의 기술적 분석과 보안 위험성
CVE-2021-27137은 DD-WRT 펌웨어 내 UPnP(Universal Plug and Play) 서비스에서 발생하는 심각한 버퍼 오버플로우 취약점이다. 이 버그는 SSD Secure Disclosure 보안 연구원이 발견했다. 상세 분석 결과 UPnP 프로토콜 처리 과정에 치명적인 결함이 있다. 구체적으로 ssdp 파일 소스코드 내 바운드되지 않은 복사(unbounded copy) 작업이 수행될 때 발생한다. 입력값 길이를 검증하지 않고 메모리에 복사해 스택이나 힙 영역을 침범하는 전형적인 메모리 오염 취약점이다.
이 기술적 결함 때문에 인증되지 않은 공격자가 특수하게 조작된 패킷을 보내면 DD-WRT 장비에서 임의 코드를 실행(Remote Code Execution)할 수 있다. 공격에 성공하면 공유기 제어권을 장악해 네트워크 트래픽을 가로채거나 내부망 다른 기기로 공격을 확대하는 피벗팅(Pivoting) 거점으로 쓴다. 다만 UPnP는 기본적으로 꺼져 있어 모든 사용자가 위험한 것은 아니다. 사용자가 편의를 위해 해당 기능을 켠 경우에만 공격 대상이 된다.
공격의 전제 조건은 공격자가 대상 장비와 동일한 LAN(Local Area Network) 내에 있어야 한다. 외부 인터넷망에서 직접 이 취약점을 이용하기는 어렵지만, 이미 침입한 내부 기기나 악의적인 사용자가 연결된 환경에서는 매우 치명적이다. 한 가지 기술적 방어 요소로 ASLR(Address Space Layout Randomization)이 있다. ASLR이 켜진 시스템에서는 메모리 주소가 무작위로 배치되어 공격자가 실행 가능한 코드를 주입할 정확한 주소를 예측하기 어렵다. 덕분에 악용 난이도가 크게 높아진다.
DD-WRT UPnP 비활성화 및 보안 설정 방법 상세 가이드
네트워크 관리자와 홈랩 운영자는 장비 보안을 높이려면 불필요한 서비스 포트를 닫는 제로 트러스트 원칙을 적용한다. DD-WRT 환경에서 CVE-2021-27137 취약점을 원천 차단하는 설정 절차는 다음과 같다.
- DD-WRT 웹 인터페이스 접속: 웹 브라우저를 켜고 주소창에 공유기 관리 IP를 입력한다. 기본값은 192.168.1.1이며, 변경했다면 해당 IP로 접속한다.
- 관리자 인증 및 로그인: 설정된 관리자 계정과 비밀번호로 제어판에 로그인한다. 보안을 위해 기본 비밀번호는 복잡한 문자열로 변경해야 한다.
- NAT/QoS 설정 메뉴 이동: 상단 메인 메뉴 탭에서 네트워크 제어 관련 ‘NAT/QoS’ 항목을 선택한다.
- UPnP 하위 설정 진입: NAT/QoS 메뉴 내 ‘UPnP’ 세부 설정 창으로 간다. 이곳에서 현재 서비스 활성화 여부를 확인할 수 있다.
- UPnP 서비스 비활성화: ‘Enable UPnP’ 체크박스를 해제한다. 이 작업을 마치면 공유기는 UPnP 요청을 수신하거나 처리하지 않는다.
- 설정 저장 및 시스템 적용: 페이지 하단 ‘Apply Settings’ 버튼을 눌러 변경 사항을 플래시 메모리에 저장하고 즉시 적용한다.
이 과정을 거쳐 UPnP 서비스가 완전히 멈추면 SSDP 프로토콜을 이용한 외부 버퍼 오버플로우 공격 시도가 원천 차단된다. 특히 UPnP는 인증 메커니즘이 없는 UDP 기반 프로토콜이라, 프로토콜 수준에서 별도의 인증을 강제할 수 없다. 서비스 차원에서 기능을 완전히 끄는 것이 유일하고 확실한 방어책이다.
UPnP 비활성화에 따른 서비스 영향 및 최적화 전략
UPnP 기능을 끄면 편리한 자동 포트 포워딩이 작동하지 않는다. 특정 애플리케이션이나 장비가 외부 네트워크와 통신하는 데 어려움을 겪을 수 있다. 대표적으로 게임 콘솔의 NAT 타입 변경, P2P 클라이언트 연결성 저하, NAS(Network Attached Storage)의 외부 접속 불가 현상이 발생한다. 보안을 위해 이를 수동 설정으로 대체하는 것이 좋다.
수동 포트 포워딩 설정은 ‘NAT/QoS’ 메뉴의 ‘Port Forwarding’ 탭에서 진행한다. 각 서비스가 사용하는 정확한 포트 번호를 식별해 내부 IP 주소와 매핑하는 방식이다. 예를 들어 특정 게임 서버나 웹 서버를 운영한다면 해당 서비스의 TCP/UDP 포트를 개별적으로 열어 보안과 기능성을 동시에 확보할 수 있다.
아래 표는 UPnP 활성화 상태와 비활성화 후 수동 설정 상태의 차이점을 기술적으로 비교한 데이터이다.
| 구분 | UPnP 활성화 (위험) | UPnP 비활성화 + 수동 설정 (권장) |
|---|---|---|
| 포트 개방 방식 | 애플리케이션 요청 시 자동 개방 | 관리자가 지정한 포트만 고정 개방 |
| 보안 수준 | CVE-2021-27137 등 공격 노출 가능 | 공격 벡터 제거 및 접근 제어 가능 |
| 인증 메커니즘 | 없음 (UDP 기반 무인증) | 방화벽 규칙 기반의 엄격한 통제 |
| 관리 편의성 | 매우 높음 (자동 설정) | 보통 (서비스별 수동 등록 필요) |
| 주요 리스크 | 임의 코드 실행 및 내부망 장악 | 설정 누락 시 특정 서비스 접속 불가 |
실무자를 위한 추가 보안 강화 팁 및 주의사항
UPnP를 끄는 것 외에도 DD-WRT 환경의 보안을 극대화하려면 다음 실전 팁을 적용한다. 첫째, 펌웨어 업데이트를 지속적으로 수행한다. ASLR 같은 최신 메모리 보호 기법이 적용된 펌웨어일수록 취약점 악용 난이도가 비약적으로 상승하며, 알려진 보안 패치가 포함되어 있을 확률이 높다.
둘째, LAN 내부 신뢰할 수 없는 기기를 격리한다. CVE-2021-27137은 동일 네트워크 내 공격자를 전제로 한다. 게스트 네트워크를 분리하거나 VLAN을 설정해, 신뢰할 수 없는 기기가 공유기 관리 인터페이스나 UPnP 포트에 접근하는 경로를 차단해야 한다.
셋째, 취약점 점검 시 주의사항이다. 장비가 실제로 취약한지 확인하려고 PoC(Proof of Concept) 코드를 실행하거나 테스트 패킷을 보낼 때는 반드시 외부와 완전히 격리된 독립적인 테스트 환경에서만 진행한다. 운영 중인 실제 네트워크 환경에서 테스트하면 예기치 못한 시스템 크래시나 서비스 중단이 발생할 수 있다.
DD-WRT 운영자에게 UPnP는 편의성보다 보안 위험이 훨씬 큰 기능이다. CVE-2021-27137 같은 버퍼 오버플로우 취약점으로부터 장비를 보호하려면 UPnP를 반드시 비활성화하고, 필요한 포트만 선별적으로 여는 수동 포트 포워딩 전략을 채택해야 한다. 지금 바로 공유기 설정 페이지에 접속해 UPnP 상태를 점검하고 보안 설정을 최적화하자.