๐Ÿ’ญ Minji's Archive

[KT Cloud TechUp] heartbleed ์‹ค์Šต

October 14, 2025

Heartbleed

  • 2014๋…„ 4์›”์— ๋ฐœ์ƒํ•œ OpenSSL ๋ฒ„๊ทธ CVE-2014-0160
  • OpenSSL 1.0.1 ๋ฒ„์ „์—์„œ ๋ฐœ๊ฒฌ๋œ ๋งค์šฐ ์œ„ํ—˜ํ•œ ์ทจ์•ฝ์ . TLS/DTLS์˜ HeartBeat ํ™•์žฅ๊ทœ๊ฒฉ์—์„œ ๋ฐœ๊ฒฌ๋œ ์ทจ์•ฝ์ ์œผ๋กœ, OpenSSL์€ ์–ด๋””์„œ๋“  ๋‹ค ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ์œ„ํ—˜๋•Œ๋ฌธ์— ๋งค์šฐ ์œ„ํ—˜

SSL์ด๋ž€?

  • Secure Socket Layer์˜ ์•ฝ์ž๋กœ, ์›น์‚ฌ์ดํŠธ์™€ ๋ธŒ๋ผ์šฐ์ € ๊ฐ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•ด ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ์„ ๋ณดํ˜ธํ•˜๋Š” ๋ณด์•ˆ ๊ธฐ์ˆ ์ž„. ํ˜„์žฌ๋Š” TLS(Transport Layer Security)๋กœ ๋Œ€์ฒด๋˜์–ด ์‚ฌ์šฉ ์ค‘
  • SSL/TLS ์ธ์ฆ์„œ๊ฐ€ ์žˆ๋Š” ์›น์‚ฌ์ดํŠธ๋Š” HTTPS๋กœ ํ‘œ์‹œ๋œ๋‹ค.
  • ๊ทธ๋ ‡๋‹ค๋ฉด OpenSSL์€ ์•”ํ˜ธํ™”์™€ ๋ณด์•ˆ ํ”„๋กœํ† ์ฝœ์„ ๊ตฌํ˜„ํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ SSL/TLS ํ”„๋กœํ† ์ฝœ์„ ์ง€์›ํ•ด ์•ˆ์ „ํ•œ ๋ฐ์ดํ„ฐ ํ†ต์‹ ์„ ์ œ๊ณตํ•œ๋‹ค.

HeartBeat๋ž€?

  • ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ์ฒดํฌํ•˜๊ธฐ ์œ„ํ•œ OpenSSL ํ™•์žฅ ๋ชจ๋“ˆ
  • TLS/DTLS ํ”„๋กœํ† ์ฝœ์—์„œ ๋งค๋ฒˆ ์—ฐ๊ฒฐ์„ ์žฌํ˜‘์ƒํ•˜์ง€ ์•Š์•„๋„ ํ†ต์‹ ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜๊ฒŒ ํ•ด์คŒ
  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•˜ํŠธ๋น„ํŠธ๋ฅผ ์š”์ฒญํ•˜๋ฉฐ payload์™€ ํ•ด๋‹น payload์˜ ๊ธธ์ด๋ฅผ ๋ณด๋‚ด๋ฉด ์„œ๋ฒ„ ์ธก์—์„œ๋Š” ํ•˜ํŠธ๋น„ํŠธ ์‘๋‹ต์— ๋‚ด์šฉ์„ ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌํ•ด์„œ ๋Œ๋ ค์ฃผ๋ฉฐ ์—ฐ๊ฒฐ์„ ํ™•์ธํ•จ
  • ์—ฌ๊ธฐ์—์„œ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ๋ฐ์ดํ„ฐ ๊ธธ์ด ๊ฒ€์ฆ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์•„ ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ 64kb ํฌ๊ธฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์™ธ๋ถ€์—์„œ ์•„๋ฌด๋Ÿฐ ์ œํ•œ ์—†์ด ํƒˆ์ทจํ•  ์ˆ˜ ์žˆ๋Š” ์ทจ์•ฝ์ ์ด heartbleed
  • ์œ„ ๊ทธ๋ฆผ์€ payload ๊ธธ์ด๊ฐ€ ์กฐ์ž‘๋œ ํ•˜ํŠธ๋น„ํŠธ ๋ฉ”์‹œ์ง€ ๊ตํ™˜์ด๋‹ค.

์‹ค์Šต

  • ์‹ค์Šต ํ™˜๊ฒฝ
    • ๊ณต๊ฒฉ์ž PC (Kali Linux): ์ทจ์•ฝ์  ์Šค์บ๋‹ ๋ฐ ์ต์Šคํ”Œ๋กœ์ž‡ ์ˆ˜ํ–‰
    • ํ”ผํ•ด์ž PC (Kali Linux): ์ทจ์•ฝํ•œ ์›น ์„œ๋ฒ„ ๊ตฌ์„ฑ
    • ๋„คํŠธ์›Œํฌ: ๊ฐ€์ƒ ํ™˜๊ฒฝ

1. ์ทจ์•ฝํ•œ ์„œ๋ฒ„ ๊ตฌ์„ฑ (ํ”ผํ•ด์ž PC)

  • IP: 172.30.1.88 (1) Docker์œผ๋กœ ์ทจ์•ฝํ•œ Ubuntu 14.04 ํ™˜๊ฒฝ ๊ตฌ์„ฑ Docker ์„œ๋น„์Šค ์‹œ์ž‘ Ubuntu 14.04 ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ (์ทจ์•ฝํ•œ OpenSSL 1.0.1 ํฌํ•จ)

(2) ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์ทจ์•ฝํ•œ ์›น ์„œ๋ฒ„ ์„ค์ •

# ํŒจํ‚ค์ง€ ์ €์žฅ์†Œ ์—…๋ฐ์ดํŠธ
apt-get update

# ํ•„์š”ํ•œ ํŒจํ‚ค์ง€ ์„ค์น˜
apt-get install -y openssl apache2 ssl-cert

# Apache SSL ๋ชจ๋“ˆ ํ™œ์„ฑํ™”
a2enmod ssl

# ๊ธฐ๋ณธ SSL ์‚ฌ์ดํŠธ ํ™œ์„ฑํ™”  
a2ensite default-ssl

# Apache ์›น์„œ๋ฒ„ ์‹œ์ž‘
service apache2 start

(3) ์„œ๋ฒ„ ์ƒํƒœ ํ™•์ธ ์ž˜ ์„ค์ •๋œ ๊ฒƒ ํ™•์ธ ์™„๋ฃŒ

(4) ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰ (ctrl+p, ctrl+q)

2. ์ทจ์•ฝ์  ์Šค์บ๋‹ (๊ณต๊ฒฉ์ž PC)

์„ ํ• ๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ์นผ๋ฆฌ ํ•˜๋“œ๋””์Šคํฌ ์šฉ๋Ÿ‰ ๋ถ€์กฑ์œผ๋กœ ๋ป‘๋‚˜์„œโ€ฆ ์ˆ˜์Šตํ• ๋ ค๋‹ค๊ฐ€ ๊ทธ๋ƒฅ ์‚ญ์ œํ–ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ๊น”์•˜๋‹ค. ์™€์ค‘์— ํ•œ๊ธ€ ์„ค์ •์ด ๋˜ ๊ผฌ์—ฌ์„œ ๊ฑฐ์˜ ํ•œ์‹œ๊ฐ„์„ ๋‚ ๋ฆผ;

(1) ํƒ€๊ฒŸ ์ •๋ณด ์ˆ˜์ง‘

(2) Heartbleed ์ทจ์•ฝ์  ์Šค์บ” ์Šค์บ”์ด ์•ˆ ๋จโ€ฆ ์ฐพ์•„๋ณด๋‹ˆ Ubuntu 14.04์—์„œ OpenSSl 1.0.1f๋Š” ์ทจ์•ฝํ•œ ๋ฒ„์ „์ด ๋งž์ง€๋งŒ heartbeat ํ™•์žฅ ๊ธฐ๋Šฅ์ด ์ปดํŒŒ์ผ ์‹œ์— ๋น„ํ™œ์„ฑํ™” ๋˜์–ด ์žˆ์„ ์ˆ˜๋„ ์žˆ์–ด์„œ ์ง์ ‘ ์ทจ์•ฝํ•œ openSSL์„ ์ปดํŒŒ์ผํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ๊ฐ€์žฅ ์ง๋นต์ด๋ผ๊ณ  ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์˜ค๋Š˜์€ ์ปจ๋””์…˜ ๋‚œ์กฐ + ํ•  ์ผ ์Œ“์—ฌ์žˆ์Œ์œผ๋กœ ์ผ๋‹จ passโ€ฆ.. ์–ธ์  ๊ฐ€ ๋‹ค์‹œ ๋„์ „ํ•ด๋ณผ๊ฒƒโ€ฆ.

https://sudo-minz.tistory.com/8