2FA/MFA/OTP ์šฐํšŒ

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

ํ–ฅ์ƒ๋œ Two-Factor Authentication ์šฐํšŒ ๊ธฐ๋ฒ•

์ง์ ‘ Endpoint ์ ‘๊ทผ

2FA๋ฅผ ์šฐํšŒํ•˜๋ ค๋ฉด ๋‹ค์Œ ์—”๋“œํฌ์ธํŠธ์— ์ง์ ‘ ์ ‘๊ทผํ•ด์•ผ ํ•˜๋ฉฐ, ๊ฒฝ๋กœ๋ฅผ ์•„๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ์‹คํŒจํ•  ๊ฒฝ์šฐ Referrer header๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ 2FA ๊ฒ€์ฆ ํŽ˜์ด์ง€์—์„œ ์˜จ ๊ฒƒ์ฒ˜๋Ÿผ ๊ฐ€์žฅํ•ด ๋ณด๋ผ.

Token ์žฌ์‚ฌ์šฉ

๊ณ„์ • ๋‚ด์—์„œ ์ด์ „์— ์‚ฌ์šฉ๋œ ํ† ํฐ์„ ์žฌ์‚ฌ์šฉํ•˜๋ฉด ์ธ์ฆ ์šฐํšŒ์— ํšจ๊ณผ์ ์ผ ์ˆ˜ ์žˆ๋‹ค.

๋ฏธ์‚ฌ์šฉ ํ† ํฐ ํ™œ์šฉ

์ž์‹ ์˜ ๊ณ„์ •์—์„œ ํ† ํฐ์„ ์ถ”์ถœํ•ด ๋‹ค๋ฅธ ๊ณ„์ •์˜ 2FA๋ฅผ ์šฐํšŒํ•˜๋ ค ์‹œ๋„ํ•  ์ˆ˜ ์žˆ๋‹ค.

Token ๋…ธ์ถœ ํ™•์ธ

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‘๋‹ต์— ํ† ํฐ์ด ๋…ธ์ถœ๋˜๋Š”์ง€ ์กฐ์‚ฌํ•˜๋ผ.

๊ณ„์ • ์ƒ์„ฑ ์‹œ ๋ฐœ์†ก๋˜๋Š” email verification link๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด 2FA ์—†์ด ํ”„๋กœํ•„์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด post๋ฅผ ์ฐธ์กฐํ•˜๋ผ.

์„ธ์…˜ ์กฐ์ž‘

์‚ฌ์šฉ์ž์™€ ํ”ผํ•ด์ž ๊ณ„์ • ๋ชจ๋‘์— ๋Œ€ํ•ด ์„ธ์…˜์„ ์‹œ์ž‘ํ•˜๊ณ , ์‚ฌ์šฉ์ž ๊ณ„์ •์˜ 2FA๋งŒ ์™„๋ฃŒํ•œ ๋’ค ์ง„ํ–‰์„ ๋ฉˆ์ถ˜ ๋‹ค์Œ ํ”ผํ•ด์ž ๊ณ„์ • ํ๋ฆ„์˜ ๋‹ค์Œ ๋‹จ๊ณ„์— ์ ‘๊ทผ์„ ์‹œ๋„ํ•˜๋ฉด ๋ฐฑ์—”๋“œ ์„ธ์…˜ ๊ด€๋ฆฌ์˜ ํ•œ๊ณ„๋ฅผ ์•…์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ • ๋ฉ”์ปค๋‹ˆ์ฆ˜

์žฌ์„ค์ • ํ›„ ์‚ฌ์šฉ์ž๋ฅผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋กœ๊ทธ์ธ์‹œํ‚ค๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ • ๊ธฐ๋Šฅ์„ ์กฐ์‚ฌํ•˜๋ผ. ๋™์ผํ•œ ๋งํฌ๋กœ ์—ฌ๋Ÿฌ ๋ฒˆ ์žฌ์„ค์ •์ด ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ์ƒˆ๋กœ ์žฌ์„ค์ •ํ•œ ์ž๊ฒฉ์ฆ๋ช…์œผ๋กœ ๋กœ๊ทธ์ธํ•˜๋ฉด 2FA๋ฅผ ์šฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

OAuth ํ”Œ๋žซํผ ์นจํ•ด

์‹ ๋ขฐ๋˜๋Š” OAuth ํ”Œ๋žซํผ(์˜ˆ: Google, Facebook)์—์„œ ์‚ฌ์šฉ์ž์˜ ๊ณ„์ •์„ ํƒˆ์ทจํ•˜๋ฉด 2FA ์šฐํšŒ์˜ ๊ฒฝ๋กœ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.

๋ฌด์ฐจ๋ณ„ ๋Œ€์ž…(Brute Force) ๊ณต๊ฒฉ

Rate Limit ๋ถ€์žฌ

์ฝ”๋“œ ์‹œ๋„ ํšŸ์ˆ˜์— ์ œํ•œ์ด ์—†์œผ๋ฉด brute force๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋‹จ, ๋ณด์ด์ง€ ์•Š๋Š”(silent) rate limiting์ด ์žˆ๋Š”์ง€ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.

์œ ํšจํ•œ OTP๋ฅผ ๋ณด๋ƒˆ์„ ๋•Œ ์‘๋‹ต์ด ๋‹ค๋ฅธ์ง€ ํ™•์ธํ•ด๋ณด๋ผ. this post์—์„œ ๋ฒ„๊ทธ ํ—Œํ„ฐ๋Š” 20ํšŒ ์‹คํŒจ ํ›„ 401์„ ๋ฐ˜ํ™˜ํ•ด rate limit๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ๋˜๋”๋ผ๋„ ์œ ํšจํ•œ ์ฝ”๋“œ๋ฅผ ์ „์†กํ•˜๋ฉด 200 ์‘๋‹ต์„ ๋ฐ›์•˜์Œ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค.

๋А๋ฆฐ Brute Force

ํ๋ฆ„ ๋ณ„ rate limit์€ ์žˆ์œผ๋‚˜ ์ „์—ญ์ ์ธ ์ œํ•œ์ด ์—†์„ ๊ฒฝ์šฐ ๋А๋ฆฌ๊ฒŒ brute force๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฝ”๋“œ ์žฌ์ „์†ก์œผ๋กœ Rate Limit ๋ฆฌ์…‹

์ฝ”๋“œ ์žฌ์ „์†ก์ด rate limit์„ ๋ฆฌ์…‹ํ•ด ์ง€์†์ ์ธ brute force ์‹œ๋„๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค.

ํด๋ผ์ด์–ธํŠธ ์ธก Rate Limit ์šฐํšŒ

ํด๋ผ์ด์–ธํŠธ ์ธก rate limiting์„ ์šฐํšŒํ•˜๋Š” ๊ธฐ๋ฒ•์„ ์„ค๋ช…ํ•œ ๋ฌธ์„œ๊ฐ€ ์žˆ๋‹ค.

๋‚ด๋ถ€ ๋™์ž‘์—๋Š” Rate Limit ๋ถ€์žฌ

๋กœ๊ทธ์ธ ์‹œ๋„์—๋Š” rate limit์ด ์ ์šฉ๋˜๋”๋ผ๋„ ๋‚ด๋ถ€ ๊ณ„์ • ๋™์ž‘์—๋Š” ์ ์šฉ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค.

SMS ์ฝ”๋“œ ์žฌ์ „์†ก ๋น„์šฉ

SMS๋กœ ์ฝ”๋“œ๋ฅผ ๊ณผ๋„ํ•˜๊ฒŒ ์žฌ์ „์†กํ•˜๋ฉด ํšŒ์‚ฌ์— ๋น„์šฉ์ด ๋ฐœ์ƒํ•˜์ง€๋งŒ 2FA๋ฅผ ์šฐํšŒํ•˜์ง€๋Š” ๋ชปํ•œ๋‹ค.

๋ฌดํ•œ OTP ์ƒ์„ฑ

๋‹จ์ˆœํ•œ ์ฝ”๋“œ๋กœ ๋ฌดํ•œํžˆ OTP๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์†Œ์ˆ˜์˜ ์ฝ”๋“œ ์ง‘ํ•ฉ์„ ๋ฐ˜๋ณตํ•ด brute force๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

Race Condition ์•…์šฉ

2FA ์šฐํšŒ๋ฅผ ์œ„ํ•œ race condition ์•…์šฉ ๋ฐฉ๋ฒ•์€ ํŠน์ • ๋ฌธ์„œ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

CSRF/Clickjacking ์ทจ์•ฝ์ 

CSRF๋‚˜ Clickjacking ์ทจ์•ฝ์ ์„ ์ด์šฉํ•ด 2FA๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ์ „๋žต์„ ๊ฒ€ํ† ํ•˜๋ผ.

โ€œRemember Meโ€ ๊ธฐ๋Šฅ ์•…์šฉ

์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์ฟ ํ‚ค ๊ฐ’

โ€˜remember meโ€™ ์ฟ ํ‚ค ๊ฐ’์„ ์ถ”์ธกํ•˜๋ฉด ์ œํ•œ์„ ์šฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

IP ์ฃผ์†Œ ๊ฐ€์žฅ

X-Forwarded-For ํ—ค๋”๋ฅผ ํ†ตํ•ด ํ”ผํ•ด์ž์˜ IP๋ฅผ ๊ฐ€์žฅํ•˜๋ฉด ์ œํ•œ์„ ์šฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ตฌ๋ฒ„์ „ ํ™œ์šฉ

์„œ๋ธŒ๋„๋ฉ”์ธ

์„œ๋ธŒ๋„๋ฉ”์ธ์„ ํ…Œ์ŠคํŠธํ•˜๋ผ โ€” ๊ตฌ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ด 2FA ์ง€์›์ด ์—†๊ฑฐ๋‚˜ ์ทจ์•ฝํ•œ 2FA ๊ตฌํ˜„์„ ํฌํ•จํ•˜๊ณ  ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.

API ์—”๋“œํฌ์ธํŠธ

๊ตฌํ˜• API ๋ฒ„์ „(์˜ˆ: /v*/ ๊ฒฝ๋กœ)์„ ํ™•์ธํ•˜๋ผ โ€” 2FA ์šฐํšŒ ๊ธฐ๋ฒ•์— ์ทจ์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์ „ ์„ธ์…˜ ์ฒ˜๋ฆฌ

2FA ํ™œ์„ฑํ™” ์‹œ ๊ธฐ์กด ์„ธ์…˜์„ ์ข…๋ฃŒํ•˜๋ฉด ํƒˆ์ทจ๋œ ์„ธ์…˜์œผ๋กœ ์ธํ•œ ๋ฌด๋‹จ ์ ‘๊ทผ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฐฑ์—… ์ฝ”๋“œ์— ๋Œ€ํ•œ ์ ‘๊ทผ ์ œ์–ด ๊ฒฐํ•จ

2FA ํ™œ์„ฑํ™” ์‹œ ์ฆ‰์‹œ ๋ฐฑ์—… ์ฝ”๋“œ๊ฐ€ ์ƒ์„ฑ๋˜๋ฉฐ, CORS ์„ค์ • ์˜ค๋ฅ˜๋‚˜ XSS ์ทจ์•ฝ์ ์ด ์žˆ์œผ๋ฉด ๋ฐฑ์—… ์ฝ”๋“œ๋ฅผ ๋ฌด๋‹จ์œผ๋กœ ํš๋“ํ•  ์ˆ˜ ์žˆ์–ด ์œ„ํ—˜ํ•˜๋‹ค.

2FA ํŽ˜์ด์ง€์˜ ์ •๋ณด ๋…ธ์ถœ

2FA ๊ฒ€์ฆ ํŽ˜์ด์ง€์— ์ „ํ™”๋ฒˆํ˜ธ ๋“ฑ ๋ฏผ๊ฐํ•œ ์ •๋ณด๊ฐ€ ๋…ธ์ถœ๋˜๋Š” ๊ฒƒ์€ ๋ฌธ์ œ๋‹ค.

๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ •์œผ๋กœ 2FA ๋น„ํ™œ์„ฑํ™”

์šฐํšŒ ๊ฐ€๋Šฅ์„ฑ์„ ๋ณด์—ฌ์ฃผ๋Š” ํ”„๋กœ์„ธ์Šค ์˜ˆ์‹œ๋Š” ๊ณ„์ • ์ƒ์„ฑ โ†’ 2FA ํ™œ์„ฑํ™” โ†’ ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ • โ†’ ์ดํ›„ 2FA ์š”๊ตฌ ์—†์ด ๋กœ๊ทธ์ธ์ด๋‹ค.

๋””์ฝ”์ด(Decoy) ์š”์ฒญ

brute force ์‹œ๋„๋ฅผ ์€ํํ•˜๊ฑฐ๋‚˜ rate limiting์„ ์†์ด๊ธฐ ์œ„ํ•ด ๋””์ฝ”์ด ์š”์ฒญ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋„์›€์ด ๋œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ณด์•ˆ ์กฐ์น˜์™€ rate limiting ๋™์ž‘์„ ์ •๊ตํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์š”์ฒญ์„ ์„ค๊ณ„ํ•ด์•ผ ํ•œ๋‹ค.

OTP ์ƒ์„ฑ ์˜ค๋ฅ˜

OTP๊ฐ€ ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฏธ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ๋‚˜ OTP ์ƒ์„ฑ ์ „์— ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ๊ฒฝ์šฐ, ์‚ฌ์šฉ์ž๊ฐ€ ์Šค์Šค๋กœ OTP๋ฅผ ์ƒ์„ฑํ•ด ์šฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฐธ๊ณ ์ž๋ฃŒ

P

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