WebRTC DoS

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ

์ด ๋ฌธ์ œ๋Š” ์ด ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์—์„œ ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค: https://www.rtcsec.com/article/novel-dos-vulnerability-affecting-webrtc-media-servers/

WebRTC ๋ฏธ๋””์–ด ์„œ๋ฒ„์—์„œ ์„ค๋ช…๋œ ์ทจ์•ฝ์ ์€ ๋ฏธ๋””์–ด ์„ธ์…˜ ์ดˆ๊ธฐํ™” ์ค‘ ๊ฒฝ์Ÿ ์กฐ๊ฑด์—์„œ ๋ฐœ์ƒํ•˜๋ฉฐ, ํŠนํžˆ ICE ๋ฏธ๋””์–ด ๋™์˜ ๊ฒ€์ฆ๊ณผ DTLS ํŠธ๋ž˜ํ”ฝ ์‹œ์ž‘ ์‚ฌ์ด์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ž์„ธํ•œ ๋ถ„์„์ž…๋‹ˆ๋‹ค:

์ทจ์•ฝ์  ๊ธฐ์›

  1. UDP ํฌํŠธ ํ• ๋‹น: ์‚ฌ์šฉ์ž๊ฐ€ WebRTC ์ „ํ™”๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด, ๋ฏธ๋””์–ด ์„œ๋ฒ„๋Š” ๋ฏธ๋””์–ด ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด UDP ํฌํŠธ๋ฅผ ํ• ๋‹นํ•˜๋ฉฐ, IP์™€ ํฌํŠธ๋Š” ์‹ ํ˜ธ๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
  2. ICE ๋ฐ STUN ํ”„๋กœ์„ธ์Šค: ์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ €๋Š” ICE๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฏธ๋””์–ด ๋™์˜ ๊ฒ€์ฆ์„ ์ˆ˜ํ–‰ํ•˜๊ณ , STUN์„ ํ™œ์šฉํ•˜์—ฌ ๋ฏธ๋””์–ด ์„œ๋ฒ„์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ ๊ฒฝ๋กœ๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
  3. DTLS ์„ธ์…˜: STUN ๊ฒ€์ฆ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋œ ํ›„, SRTP ๋งˆ์Šคํ„ฐ ํ‚ค๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด DTLS ์„ธ์…˜์ด ์‹œ์ž‘๋˜๋ฉฐ, ๋ฏธ๋””์–ด ์ŠคํŠธ๋ฆผ์„ ์œ„ํ•ด SRTP๋กœ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค.

์•…์šฉ ๋ฉ”์ปค๋‹ˆ์ฆ˜

  • ๊ฒฝ์Ÿ ์กฐ๊ฑด ์•…์šฉ: ๊ณต๊ฒฉ์ž๋Š” ์ •๋‹นํ•œ ์‚ฌ์šฉ์ž๋ณด๋‹ค ๋จผ์ € DTLS ClientHello ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•˜์—ฌ ๊ฒฝ์Ÿ ์กฐ๊ฑด์„ ์•…์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, TLS_NULL_WITH_NULL_NULL๊ณผ ๊ฐ™์€ ์œ ํšจํ•˜์ง€ ์•Š์€ ์•”ํ˜ธ ์Šค์œ„ํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์„œ๋ฒ„์—์„œ DTLS ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ SRTP ์„ธ์…˜์ด ์„ค์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ณต๊ฒฉ ๊ณผ์ •

  • ํฌํŠธ ์Šค์บ๋‹: ๊ณต๊ฒฉ์ž๋Š” ์–ด๋–ค UDP ํฌํŠธ๊ฐ€ ๋“ค์–ด์˜ค๋Š” ๋ฏธ๋””์–ด ์„ธ์…˜์„ ์ฒ˜๋ฆฌํ•˜๋Š”์ง€ ์ถ”์ธกํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋Ÿฌํ•œ ํฌํŠธ์— null ์•”ํ˜ธ ์Šค์œ„ํŠธ๋ฅผ ์‚ฌ์šฉํ•œ ClientHello ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•˜์—ฌ ์ทจ์•ฝ์ ์„ ์œ ๋ฐœํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณต๊ฒฉ ๋‹ค์ด์–ด๊ทธ๋žจ: ์ด ๊ณผ์ •์€ ๊ณต๊ฒฉ์ž๊ฐ€ ์„œ๋ฒ„์— ์—ฌ๋Ÿฌ ClientHello ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•˜๊ณ , ์ •๋‹นํ•œ ์‹ ํ˜ธ ๋ฐ DTLS ๋ฉ”์‹œ์ง€์™€ ๊ต์ฐจํ•˜์—ฌ ์ž˜๋ชป๋œ ์•”ํ˜ธ ์Šค์œ„ํŠธ๋กœ ์ธํ•ด ํ•ธ๋“œ์…ฐ์ดํฌ ์‹คํŒจ๋กœ ์ด์–ด์ง€๋Š” ์ˆœ์„œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ๋ฐ ์™„ํ™”

  • ์•ˆ์ „ํ•œ ํ…Œ์ŠคํŠธ: Scapy์™€ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต๊ฒฉ์ž๋Š” ํŠน์ • ๋ฏธ๋””์–ด ํฌํŠธ๋ฅผ ๋Œ€์ƒ์œผ๋กœ DTLS ClientHello ๋ฉ”์‹œ์ง€๋ฅผ ์žฌ์ƒํ•ฉ๋‹ˆ๋‹ค. ์œค๋ฆฌ์  ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด Chromium์˜ ์ˆ˜์ •(์˜ˆ: JsepTransport::AddRemoteCandidates)์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”ผํ•ด์ž ํ–‰๋™์„ ์•ˆ์ „ํ•˜๊ฒŒ ๋ชจ๋ฐฉํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์™„ํ™” ์กฐ์น˜: ํ•ด๊ฒฐ์ฑ…์€ ๊ฒ€์ฆ๋˜์ง€ ์•Š์€ ์ฃผ์†Œ์—์„œ ์˜ค๋Š” ํŒจํ‚ท์„ ์ฐจ๋‹จํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จํ•˜๋ฉฐ, ์ด๋Š” libnice์™€ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ตœ์‹  ๋ฒ„์ „์—์„œ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์š” ํ•ด๊ฒฐ์ฑ…์€ ICE ๊ฒ€์ฆ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹ ๋ขฐํ•˜๊ณ  ๊ฒ€์ฆ๋œ IP ๋ฐ ํฌํŠธ ์กฐํ•ฉ์—์„œ ์˜ค๋Š” ํŒจํ‚ท๋งŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋น„์ทจ์•ฝ ์‹œ๋‚˜๋ฆฌ์˜ค

  • DTLS ์„œ๋ฒ„ ๊ตฌ์„ฑ: ๋ธŒ๋ผ์šฐ์ €๊ฐ€ DTLS ์„œ๋ฒ„๋กœ ์ž‘๋™ํ•˜๊ฑฐ๋‚˜ ๋ฏธ๋””์–ด ์„œ๋ฒ„๊ฐ€ ๋ฏธ๋””์–ด ์„ธ์…˜์— ๋Œ€ํ•ด ์ž„์‹œ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋Š” ์ด ์ทจ์•ฝ์ ์— ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

์ด ์ทจ์•ฝ์ ์€ ๋ฏธ๋””์–ด ์„ธ์…˜ ์ดˆ๊ธฐํ™” ํ”„๋กœ์„ธ์Šค์˜ ๋ฏธ์„ธํ•œ ๊ท ํ˜•๊ณผ ์•…์šฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์ •ํ™•ํ•œ ํƒ€์ด๋ฐ ๋ฐ ๊ฒ€์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์˜ ํ•„์š”์„ฑ์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ๊ถŒ์žฅ ๋ณด์•ˆ ์ˆ˜์ •์„ ๊ตฌํ˜„ํ•˜๊ณ  ์ด๋Ÿฌํ•œ ์ทจ์•ฝ์ ์„ ์™„ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ•๋ ฅํ•œ ๊ฒ€์ฆ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณด์žฅํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ