HTTP/2 ํ”„๋กœํ† ์ฝœ์˜ ๋‹ค์–‘ํ•œ ๊ตฌํ˜„์—์„œ 8๊ฐœ์˜ DoS ์ทจ์•ฝ์ ์ด ์‹๋ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋„ทํ”Œ๋ฆญ์Šค์™€ ๊ตฌ๊ธ€์˜ ์—ฐ๊ตฌ์ง„ ๋…ธ์ถœ๋œ HTTP/2 ํ”„๋กœํ† ์ฝœ์˜ ๋‹ค์–‘ํ•œ ๊ตฌํ˜„์—๋Š” ํŠน์ • ๋ฐฉ์‹์œผ๋กœ ๋„คํŠธ์›Œํฌ ์š”์ฒญ ์ŠคํŠธ๋ฆผ์„ ์ „์†กํ•˜์—ฌ ์„œ๋น„์Šค ๊ฑฐ๋ถ€๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” 2๊ฐ€์ง€ ์ทจ์•ฝ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” HTTP/XNUMX๋ฅผ ์ง€์›ํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ HTTP ์„œ๋ฒ„์— ์–ด๋Š ์ •๋„ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฉฐ ์ž‘์—…์ž ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•ด์ง€๊ฑฐ๋‚˜ ๋„ˆ๋ฌด ๋งŽ์€ CPU ๋กœ๋“œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ทจ์•ฝ์ ์„ ์ œ๊ฑฐํ•˜๋Š” ์—…๋ฐ์ดํŠธ๋Š” ์ด๋ฏธ ์ œ๊ณต๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. nginx 1.16.1/1.17.3 ะธ 2๋…„ H2.2.6O, ํ•˜์ง€๋งŒ ์ง€๊ธˆ์€ ์—†๋Š” Apache httpd์˜ ๊ฒฝ์šฐ ๋ฐ ๋‹ค๋ฅธ ์ œํ’ˆ๋“ค.

๋ฌธ์ œ๋Š” ์ด์ง„ ๊ตฌ์กฐ ์‚ฌ์šฉ, ์—ฐ๊ฒฐ ๋‚ด ๋ฐ์ดํ„ฐ ํ๋ฆ„ ์ œํ•œ ์‹œ์Šคํ…œ, ํ๋ฆ„ ์šฐ์„  ์ˆœ์œ„ ์ง€์ • ๋ฉ”์ปค๋‹ˆ์ฆ˜, HTTP/2 ์—ฐ๊ฒฐ์—์„œ ์ž‘๋™ํ•˜๋Š” ICMP์™€ ๊ฐ™์€ ์ œ์–ด ๋ฉ”์‹œ์ง€์˜ ์กด์žฌ์™€ ๊ด€๋ จ๋œ HTTP/2 ํ”„๋กœํ† ์ฝœ์— ๋„์ž…๋œ ๋ณต์žก์„ฑ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜์ค€(์˜ˆ: ํ•‘, ์žฌ์„ค์ •, ํ๋ฆ„ ์„ค์ •) ๋งŽ์€ ๊ตฌํ˜„์ด ์ œ์–ด ๋ฉ”์‹œ์ง€์˜ ํ๋ฆ„์„ ์ ์ ˆํ•˜๊ฒŒ ์ œํ•œํ•˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜, ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜, ํ๋ฆ„ ์ œ์–ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ฐจ์„  ๊ตฌํ˜„์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

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

ํ™•์ธ๋œ ์ทจ์•ฝ์ :

  • CVE-2019-9511(๋ฐ์ดํ„ฐ ๋“œ๋ฆฌ๋ธ”) - ๊ณต๊ฒฉ์ž๋Š” ์Šฌ๋ผ์ด๋”ฉ ์ฐฝ ํฌ๊ธฐ์™€ ์Šค๋ ˆ๋“œ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์กฐ์ž‘ํ•˜์—ฌ ์„œ๋ฒ„๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ 1๋ฐ”์ดํŠธ ๋ธ”๋ก์œผ๋กœ ๋Œ€๊ธฐ์—ด์— ๋„ฃ๋„๋ก ํ•˜์—ฌ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ์— ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.
  • CVE-2019-9512(Ping Flood) - ๊ณต๊ฒฉ์ž๋Š” HTTP/2 ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์ง€์†์ ์œผ๋กœ ping ๋ฉ”์‹œ์ง€๋ฅผ ๊ฐ์—ผ์‹œ์ผœ ์ „์†ก๋œ ์‘๋‹ต์˜ ๋‚ด๋ถ€ ํ๊ฐ€ ์ƒ๋Œ€๋ฐฉ์—์„œ ํ”Œ๋Ÿฌ๋”ฉ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • CVE-2019-9513(๋ฆฌ์†Œ์Šค ๋ฃจํ”„) - ๊ณต๊ฒฉ์ž๋Š” ์—ฌ๋Ÿฌ ์š”์ฒญ ์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์Šค๋ ˆ๋“œ์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ง€์†์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์šฐ์„ ์ˆœ์œ„ ํŠธ๋ฆฌ๋ฅผ ์„ž์Šต๋‹ˆ๋‹ค.
  • CVE-2019-9514(Reset Flood) - ๊ณต๊ฒฉ์ž๊ฐ€ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
    ๊ทธ๋ฆฌ๊ณ  ๊ฐ ์Šค๋ ˆ๋“œ๋ฅผ ํ†ตํ•ด ์œ ํšจํ•˜์ง€ ์•Š์€ ์š”์ฒญ์„ ๋ณด๋‚ด ์„œ๋ฒ„๊ฐ€ RST_STREAM ํ”„๋ ˆ์ž„์„ ๋ณด๋‚ด๊ฒŒ ํ•˜์ง€๋งŒ ์‘๋‹ต ๋Œ€๊ธฐ์—ด์„ ์ฑ„์šฐ๋„๋ก ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • CVE-2019-9515(์„ค์ • ํ”Œ๋Ÿฌ๋“œ) - ๊ณต๊ฒฉ์ž๋Š” ๋นˆ "SETTINGS" ํ”„๋ ˆ์ž„ ์ŠคํŠธ๋ฆผ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ์„œ๋ฒ„๋Š” ๊ฐ ์š”์ฒญ์˜ ์ˆ˜์‹ ์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • CVE-2019-9516(0 ๊ธธ์ด ํ—ค๋” ๋ˆ„์ถœ) โ€“ ๊ณต๊ฒฉ์ž๊ฐ€ null ์ด๋ฆ„๊ณผ null ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ํ—ค๋” ์ŠคํŠธ๋ฆผ์„ ๋ณด๋‚ด๊ณ , ์„œ๋ฒ„๋Š” ๊ฐ ํ—ค๋”๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ์— ๋ฒ„ํผ๋ฅผ ํ• ๋‹นํ•˜๊ณ  ์„ธ์…˜์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ์ด๋ฅผ ํ•ด์ œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ;
  • CVE-2019-9517(๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ ๋ฒ„ํผ๋ง) - ๊ณต๊ฒฉ์ž ์˜คํ”ˆ
    ์„œ๋ฒ„๊ฐ€ ์ œํ•œ ์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ HTTP/2 ์Šฌ๋ผ์ด๋”ฉ ์ฐฝ์ด์ง€๋งŒ TCP ์ฐฝ์„ ๋‹ซ์•„ ๋‘์–ด ์‹ค์ œ๋กœ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ๊ฐ€ ๊ธฐ๋ก๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ ๊ณต๊ฒฉ์ž๋Š” ๋Œ€๊ทœ๋ชจ ์‘๋‹ต์ด ํ•„์š”ํ•œ ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

  • CVE-2019-9518(๋นˆ ํ”„๋ ˆ์ž„ ํ”Œ๋Ÿฌ๋“œ) - ๊ณต๊ฒฉ์ž๋Š” DATA, HEADERS, CONTINUATION ๋˜๋Š” PUSH_PROMISE ์œ ํ˜•์˜ ํ”„๋ ˆ์ž„ ์ŠคํŠธ๋ฆผ์„ ์ „์†กํ•˜์ง€๋งŒ ๋นˆ ํŽ˜์ด๋กœ๋“œ์™€ ํ๋ฆ„ ์ข…๋ฃŒ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š” ๊ณต๊ฒฉ์ž๊ฐ€ ์†Œ๋น„ํ•˜๋Š” ๋Œ€์—ญํญ์— ๋น„ํ•ด ๊ฐ ํ”„๋ ˆ์ž„์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ์†Œ๋น„ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€