์‚ฌ์ด๋“œ ์ฑ„๋„ ๋ถ„์„ ๊ณต๊ฒฉ

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

์‚ฌ์ด๋“œ ์ฑ„๋„ ๊ณต๊ฒฉ์€ ๋‚ด๋ถ€ ์ƒํƒœ์™€ ์ƒ๊ด€๊ด€๊ณ„๊ฐ€ ์žˆ์ง€๋งŒ ์žฅ์น˜์˜ ๋…ผ๋ฆฌ์  ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹Œ ๋ฌผ๋ฆฌ์  ๋˜๋Š” ๋งˆ์ดํฌ๋กœ ์•„ํ‚คํ…์ฒ˜์˜ โ€œ๋ˆ„์ถœโ€œ์„ ๊ด€์ฐฐํ•˜์—ฌ ๋น„๋ฐ€์„ ๋ณต๊ตฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์Šค๋งˆํŠธ ์นด๋“œ๊ฐ€ ์†Œ๋ชจํ•˜๋Š” ์ˆœ๊ฐ„ ์ „๋ฅ˜๋ฅผ ์ธก์ •ํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•œ CPU ์ „๋ ฅ ๊ด€๋ฆฌ ํšจ๊ณผ๋ฅผ ์•…์šฉํ•˜๋Š” ๊ฒƒ๊นŒ์ง€ ๋‹ค์–‘ํ•ฉ๋‹ˆ๋‹ค.


์ฃผ์š” ๋ˆ„์ถœ ์ฑ„๋„

์ฑ„๋„์ผ๋ฐ˜์ ์ธ ๋Œ€์ƒ๊ณ„์ธก
์ „๋ ฅ ์†Œ๋น„์Šค๋งˆํŠธ ์นด๋“œ, IoT MCU, FPGA์˜ค์‹ค๋กœ์Šค์ฝ”ํ”„ + ์…˜ํŠธ ์ €ํ•ญ/HS ํ”„๋กœ๋ธŒ (์˜ˆ: CW503)
์ „์ž๊ธฐ์žฅ (EM)CPU, RFID, AES ๊ฐ€์†๊ธฐH-ํ•„๋“œ ํ”„๋กœ๋ธŒ + LNA, ChipWhisperer/RTL-SDR
์‹คํ–‰ ์‹œ๊ฐ„ / ์บ์‹œ๋ฐ์Šคํฌํƒ‘ ๋ฐ ํด๋ผ์šฐ๋“œ CPU๊ณ ์ •๋ฐ€ ํƒ€์ด๋จธ (rdtsc/rdtscp), ์›๊ฒฉ ๋น„ํ–‰ ์‹œ๊ฐ„
์Œํ–ฅ / ๊ธฐ๊ณ„์ ํ‚ค๋ณด๋“œ, 3D ํ”„๋ฆฐํ„ฐ, ๋ฆด๋ ˆ์ดMEMS ๋งˆ์ดํฌ, ๋ ˆ์ด์ € ์ง„๋™๊ณ„
๊ด‘ํ•™ ๋ฐ ์—ดLED, ๋ ˆ์ด์ € ํ”„๋ฆฐํ„ฐ, DRAMํฌํ† ๋‹ค์ด์˜ค๋“œ / ๊ณ ์† ์นด๋ฉ”๋ผ, IR ์นด๋ฉ”๋ผ
๊ฒฐํ•จ ์œ ๋„ASIC/MCU ์•”ํ˜ธํด๋Ÿญ/์ „์•• ๊ธ€๋ฆฌ์น˜, EMFI, ๋ ˆ์ด์ € ์ฃผ์ž…

์ „๋ ฅ ๋ถ„์„

๋‹จ์ˆœ ์ „๋ ฅ ๋ถ„์„ (SPA)

๋‹จ์ผ ํŠธ๋ ˆ์ด์Šค๋ฅผ ๊ด€์ฐฐํ•˜๊ณ  ํ”ผํฌ/๊ณจ์งœ๊ธฐ๋ฅผ ์ž‘์—…(์˜ˆ: DES S-๋ฐ•์Šค)๊ณผ ์ง์ ‘ ์—ฐ๊ด€์‹œํ‚ต๋‹ˆ๋‹ค.

# ChipWhisperer-husky example โ€“ capture one AES trace
from chipwhisperer.capture.api.programmers import STMLink
from chipwhisperer.capture import CWSession
cw = CWSession(project='aes')
trig = cw.scope.trig
cw.connect(cw.capture.scopes[0])
cw.capture.init()
trace = cw.capture.capture_trace()
print(trace.wave)  # numpy array of power samples

Differential/Correlation Power Analysis (DPA/CPA)

N > 1 000 ํŠธ๋ ˆ์ด์Šค๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ , ํ‚ค ๋ฐ”์ดํŠธ k๋ฅผ ๊ฐ€์ •ํ•˜๋ฉฐ, HW/HD ๋ชจ๋ธ์„ ๊ณ„์‚ฐํ•˜๊ณ  ๋ˆ„์ถœ๊ณผ ์ƒ๊ด€๊ด€๊ณ„๋ฅผ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

import numpy as np
corr = np.corrcoef(leakage_model(k), traces[:,sample])

CPA๋Š” ์—ฌ์ „ํžˆ ์ตœ์ฒจ๋‹จ์ด์ง€๋งŒ ๊ธฐ๊ณ„ ํ•™์Šต ๋ณ€ํ˜•(MLA, ๋”ฅ ๋Ÿฌ๋‹ SCA)์ด ์ด์ œ ASCAD-v2(2023)์™€ ๊ฐ™์€ ๋Œ€ํšŒ์—์„œ ์ง€๋ฐฐ์ ์ž…๋‹ˆ๋‹ค.


์ „์ž๊ธฐ ๋ถ„์„ (EMA)

๊ทผ๊ฑฐ๋ฆฌ EM ํ”„๋กœ๋ธŒ(500 MHzโ€“3 GHz)๋Š” ์…˜ํŠธ๋ฅผ ์‚ฝ์ž…ํ•˜์ง€ ์•Š๊ณ ๋„ ์ „๋ ฅ ๋ถ„์„๊ณผ ๋™์ผํ•œ ์ •๋ณด๋ฅผ ์œ ์ถœํ•ฉ๋‹ˆ๋‹ค. 2024๋…„ ์—ฐ๊ตฌ์—์„œ๋Š” ์ŠคํŽ™ํŠธ๋Ÿผ ์ƒ๊ด€๊ด€๊ณ„์™€ ์ €๋น„์šฉ RTL-SDR ํ”„๋ก ํŠธ ์—”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ STM32์—์„œ >10 cm ๋–จ์–ด์ง„ ๊ณณ์—์„œ ํ‚ค ๋ณต๊ตฌ๋ฅผ ์ž…์ฆํ–ˆ์Šต๋‹ˆ๋‹ค.


ํƒ€์ด๋ฐ ๋ฐ ๋งˆ์ดํฌ๋กœ ์•„ํ‚คํ…์ฒ˜ ๊ณต๊ฒฉ

ํ˜„๋Œ€ CPU๋Š” ๊ณต์œ  ์ž์›์„ ํ†ตํ•ด ๋น„๋ฐ€์„ ์œ ์ถœํ•ฉ๋‹ˆ๋‹ค:

  • Hertzbleed (2022) โ€“ DVFS ์ฃผํŒŒ์ˆ˜ ์Šค์ผ€์ผ๋ง์ด ํ•ด๋ฐ ๊ฐ€์ค‘์น˜์™€ ์ƒ๊ด€๊ด€๊ณ„๊ฐ€ ์žˆ์–ด ์›๊ฒฉ์œผ๋กœ EdDSA ํ‚ค๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Downfall / Gather Data Sampling (Intel, 2023) โ€“ SMT ์Šค๋ ˆ๋“œ๋ฅผ ํ†ตํ•ด AVX-gather ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ธฐ ์œ„ํ•œ ์ผ์‹œ์  ์‹คํ–‰.
  • Zenbleed (AMD, 2023) & Inception (AMD, 2023) โ€“ ์ถ”์ธก ๋ฒกํ„ฐ ์ž˜๋ชป ์˜ˆ์ธก์ด ๋„๋ฉ”์ธ ๊ฐ„ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์œ ์ถœํ•ฉ๋‹ˆ๋‹ค.

์Œํ–ฅ ๋ฐ ๊ด‘ํ•™ ๊ณต๊ฒฉ

  • 2024๋…„ โ€œiLeakKeysโ€œ๋Š” CNN ๋ถ„๋ฅ˜๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šค๋งˆํŠธํฐ ๋งˆ์ดํฌ๋กœ Zoom์—์„œ ๋…ธํŠธ๋ถ ํ‚ค์ŠคํŠธ๋กœํฌ๋ฅผ ๋ณต๊ตฌํ•˜๋Š” ๋ฐ 95% ์ •ํ™•๋„๋ฅผ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.
  • ๊ณ ์† ํฌํ† ๋‹ค์ด์˜ค๋“œ๋Š” DDR4 ํ™œ๋™ LED๋ฅผ ์บก์ฒ˜ํ•˜๊ณ  <1๋ถ„ ์ด๋‚ด์— AES ๋ผ์šด๋“œ ํ‚ค๋ฅผ ์žฌ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค(BlackHat 2023).

๊ฒฐํ•จ ์ฃผ์ž… ๋ฐ ์ฐจ๋ณ„์  ๊ฒฐํ•จ ๋ถ„์„ (DFA)

๊ฒฐํ•จ๊ณผ ์‚ฌ์ด๋“œ ์ฑ„๋„ ์œ ์ถœ์„ ๊ฒฐํ•ฉํ•˜๋ฉด ํ‚ค ๊ฒ€์ƒ‰์ด ๋‹จ์ถ•๋ฉ๋‹ˆ๋‹ค(์˜ˆ: 1-ํŠธ๋ ˆ์ด์Šค AES DFA). ์ตœ๊ทผ ์ทจ๋ฏธ ๊ฐ€๊ฒฉ์˜ ๋„๊ตฌ:

  • ChipSHOUTER & PicoEMP โ€“ 1 ns ๋ฏธ๋งŒ์˜ ์ „์ž๊ธฐ ํŽ„์Šค ๊ธ€๋ฆฌ์น˜.
  • GlitchKit-R5 (2025) โ€“ RISC-V SoC๋ฅผ ์ง€์›ํ•˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ํด๋Ÿญ/์ „์•• ๊ธ€๋ฆฌ์น˜ ํ”Œ๋žซํผ.

์ „ํ˜•์ ์ธ ๊ณต๊ฒฉ ์›Œํฌํ”Œ๋กœ์šฐ

  1. ์œ ์ถœ ์ฑ„๋„ ๋ฐ ์žฅ์ฐฉ ์ง€์  ์‹๋ณ„(VCC ํ•€, ๋””์ปคํ”Œ๋ง ์ปคํŒจ์‹œํ„ฐ, ๊ทผ๊ฑฐ๋ฆฌ ์ง€์ ).
  2. ํŠธ๋ฆฌ๊ฑฐ ์‚ฝ์ž…(GPIO ๋˜๋Š” ํŒจํ„ด ๊ธฐ๋ฐ˜).
  3. ์ ์ ˆํ•œ ์ƒ˜ํ”Œ๋ง/ํ•„ํ„ฐ๋กœ >1 k ํŠธ๋ ˆ์ด์Šค ์ˆ˜์ง‘.
  4. ์ „์ฒ˜๋ฆฌ(์ •๋ ฌ, ํ‰๊ท  ์ œ๊ฑฐ, LP/HP ํ•„ํ„ฐ, ์›จ์ด๋ธŒ๋ ›, PCA).
  5. ํ†ต๊ณ„์  ๋˜๋Š” ML ํ‚ค ๋ณต๊ตฌ(CPA, MIA, DL-SCA).
  6. ์ด์ƒ์น˜ ๊ฒ€์ฆ ๋ฐ ๋ฐ˜๋ณต.

๋ฐฉ์–ด ๋ฐ ๊ฐ•ํ™”

  • ์ƒ์ˆ˜ ์‹œ๊ฐ„ ๊ตฌํ˜„ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ•ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜.
  • ๋งˆ์Šคํ‚น/์…”ํ”Œ๋ง โ€“ ๋น„๋ฐ€์„ ๋ฌด์ž‘์œ„ ๊ณต์œ ๋กœ ๋‚˜๋ˆ„๊ธฐ; ์ฒซ ๋ฒˆ์งธ ์ฐจ์ˆ˜ ์ €ํ•ญ์€ TVLA์— ์˜ํ•ด ์ธ์ฆ๋จ.
  • ์€ํ โ€“ ์˜จ์นฉ ์ „์•• ์กฐ์ ˆ๊ธฐ, ๋ฌด์ž‘์œ„ํ™”๋œ ํด๋Ÿญ, ์ด์ค‘ ๋ ˆ์ผ ๋…ผ๋ฆฌ, EM ์ฐจํ.
  • ๊ฒฐํ•จ ๊ฐ์ง€ โ€“ ์ค‘๋ณต ๊ณ„์‚ฐ, ์ž„๊ณ„๊ฐ’ ์„œ๋ช….
  • ์šด์˜ โ€“ ์•”ํ˜ธ ์ปค๋„์—์„œ DVFS/ํ„ฐ๋ณด ๋น„ํ™œ์„ฑํ™”, SMT ๊ฒฉ๋ฆฌ, ๋‹ค์ค‘ ์ž„๋Œ€ ํด๋ผ์šฐ๋“œ์—์„œ ๊ณต๋™ ์œ„์น˜ ๊ธˆ์ง€.

๋„๊ตฌ ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ

  • ChipWhisperer-Husky (2024) โ€“ 500 MS/s ์Šค์ฝ”ํ”„ + Cortex-M ํŠธ๋ฆฌ๊ฑฐ; ์œ„์™€ ๊ฐ™์€ Python API.
  • Riscure Inspector & FI โ€“ ์ƒ์—…์šฉ, ์ž๋™ํ™”๋œ ์œ ์ถœ ํ‰๊ฐ€(TVLA-2.0)๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • scaaml โ€“ TensorFlow ๊ธฐ๋ฐ˜์˜ ๋”ฅ ๋Ÿฌ๋‹ SCA ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(v1.2 โ€“ 2025).
  • pyecsca โ€“ ANSSI ์˜คํ”ˆ ์†Œ์Šค ECC SCA ํ”„๋ ˆ์ž„์›Œํฌ.

์ฐธ๊ณ  ๋ฌธํ—Œ

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