์ทจ์•ฝ์ ์ด ์ˆ˜์ •๋œ PostgreSQL ์—…๋ฐ์ดํŠธ์ž…๋‹ˆ๋‹ค. pgcat ๋ณต์ œ ์‹œ์Šคํ…œ ์ถœ์‹œ

๊ฒฐ์„ฑ๋จ ์ง€์›๋˜๋Š” ๋ชจ๋“  PostgreSQL ๋ธŒ๋žœ์น˜์— ๋Œ€ํ•œ ์ˆ˜์ • ์—…๋ฐ์ดํŠธ: 12.2, 11.7, 10.12, 9.6.17, 9.5.21 ะธ 9.4.26. ๋ฆด๋ฆฌ์Šค 9.4.26์ด ์ตœ์ข… ๋ฒ„์ „์ž…๋‹ˆ๋‹ค - ๋ธŒ๋žœ์น˜ 9.4์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ ์ค€๋น„ ์ค‘ ๋‹จ์ข…. ๋ถ„๊ธฐ 9.5์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๋Š” 2021๋…„ 9.6์›”๊นŒ์ง€, 2021 - 10๋…„ 2022์›”๊นŒ์ง€, 11 - 2023๋…„ 12์›”๊นŒ์ง€, 2024 - XNUMX๋…„ XNUMX์›”๊นŒ์ง€, XNUMX - XNUMX๋…„ XNUMX์›”๊นŒ์ง€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์ƒˆ ๋ฒ„์ „์—์„œ๋Š” 75๊ฐœ ๋ฒ„๊ทธ๊ฐ€ ์ˆ˜์ •๋˜๊ณ  ์ทจ์•ฝ์ ์ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
(CVE-2020-1720) "ALTER ... DEPENDS ON EXTENSION" ๋ช…๋ น์„ ์‹คํ–‰ํ•  ๋•Œ ๊ถŒํ•œ ๋ถ€์—ฌ ํ™•์ธ์ด ๋ˆ„๋ฝ๋˜์–ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํŠน์ • ์ƒํ™ฉ์—์„œ๋Š” ์ทจ์•ฝ์ ์œผ๋กœ ์ธํ•ด ๊ถŒํ•œ์ด ์—†๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํ•จ์ˆ˜, ํ”„๋กœ์‹œ์ €, ๊ตฌ์ฒดํ™”๋œ ๋ทฐ, ์ธ๋ฑ์Šค ๋˜๋Š” ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž๊ฐ€ ํ™•์žฅ์„ ์„ค์น˜ํ–ˆ๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ CREATE ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ํ™•์žฅ ์†Œ์œ ์ž๊ฐ€ DROP EXTENSION ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋„๋ก ํ™•์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ณต๊ฒฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์ƒˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ชจ์–‘์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. pgcat, ์—ฌ๋Ÿฌ PostgreSQL ์„œ๋ฒ„ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ๊ทธ๋žจ์€ ๋ฉ”์ธ ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋˜๋Š” SQL ๋ช…๋ น ์ŠคํŠธ๋ฆผ์„ ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ์—์„œ ๋ธŒ๋กœ๋“œ์บ์ŠคํŒ…ํ•˜๊ณ  ์žฌ์ƒํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์„ ์œ ๋„ํ•˜๋Š” ๋…ผ๋ฆฌ์  ๋ณต์ œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” Go ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ ๋ฐฐํฌ์ž Apache 2.0์— ๋”ฐ๋ผ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด์žฅ๋œ ๋…ผ๋ฆฌ์  ๋ณต์ œ ๋ฉ”์ปค๋‹ˆ์ฆ˜๊ณผ์˜ ์ฃผ์š” ์ฐจ์ด์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ชจ๋“  ์œ ํ˜•์˜ ๋Œ€์ƒ ํ…Œ์ด๋ธ”(๋ทฐ, fdw(์™ธ๋ถ€ ๋ฐ์ดํ„ฐ ๋ž˜ํผ), ์„ธ๊ทธ๋จผํŠธํ™”๋œ ํ…Œ์ด๋ธ”, ๋ถ„์‚ฐ๋œ citus ํ…Œ์ด๋ธ”) ์ง€์›
  • ํ…Œ์ด๋ธ” ์ด๋ฆ„์„ ์žฌ์ •์˜ํ•˜๋Š” ๊ธฐ๋Šฅ(ํ•œ ํ…Œ์ด๋ธ”์—์„œ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”๋กœ ๋ณต์ œ)
  • ๋กœ์ปฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋งŒ ์ „์†กํ•˜๊ณ  ์™ธ๋ถ€์—์„œ ๋“ค์–ด์˜ค๋Š” ๋ณต์ œ๋Š” ๋ฌด์‹œํ•˜์—ฌ ์–‘๋ฐฉํ–ฅ ๋ณต์ œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • LWW(last-writer-win) ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์ถฉ๋Œ ํ•ด๊ฒฐ ์‹œ์Šคํ…œ์˜ ๊ฐ€์šฉ์„ฑ
  • ๋ณต์ œ ์ง„ํ–‰ ์ƒํ™ฉ๊ณผ ์ ์šฉ๋˜์ง€ ์•Š์€ ๋ณต์ œ๋ณธ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ณ„๋„์˜ ํ…Œ์ด๋ธ”์— ์ €์žฅํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ, ์ผ์‹œ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์ˆ˜์‹  ๋…ธ๋“œ๊ฐ€ ๋ณต์›๋œ ํ›„ ๋ณต๊ตฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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