Skip to main content

CodeQL ๋ถ„์„์„ ์œ„ํ•œ Ruby ์ฟผ๋ฆฌ

default ๋˜๋Š” security-extended ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์„ ์„ ํƒํ•  ๋•Œ CodeQL์—์„œ Ruby๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

๋ˆ„๊ฐ€ ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

CodeQL์€(๋Š”) ๋‹ค์Œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์œ ํ˜•์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • GitHub.com์˜ ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ, GitHub CodeQL ์‚ฌ์šฉ ์•ฝ๊ด€ ์ฐธ์กฐ
  • GitHub Code Security๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •๋œ GitHub Team์˜ ์กฐ์ง ์†Œ์œ  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ

CodeQL์—๋Š” Ruby ์ฝ”๋“œ ๋ถ„์„์„ ์œ„ํ•œ ๋งŽ์€ ์ฟผ๋ฆฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. default ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์˜ ๋ชจ๋“  ์ฟผ๋ฆฌ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. security-extended ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์„ ์‚ฌ์šฉํ•˜๋„๋ก ์„ ํƒํ•˜๋ฉด ์ถ”๊ฐ€ ์ฟผ๋ฆฌ๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ CodeQL ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

Ruby ๋ถ„์„์„ ์œ„ํ•œ ๊ธฐ๋ณธ ์ œ๊ณต ์ฟผ๋ฆฌ

์ด ํ‘œ์—๋Š” CodeQL ์ž‘์—…๊ณผ CodeQL CLI์˜ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ฟผ๋ฆฌ๊ฐ€ ๋‚˜์—ด๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ CodeQL ์„ค๋ช…์„œ ์‚ฌ์ดํŠธ์—์„œ CodeQL ๋ณ€๊ฒฝ ๋กœ๊ทธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ฟผ๋ฆฌ ์ด๋ฆ„๊ด€๋ จ CWE๊ธฐ๋ณธ๊ฐ’ํ™•์žฅCopilot Autofix
์ž˜๋ชป๋œ HTML ํ•„ํ„ฐ๋ง regexp116, 020, 185, 186
์ž˜๋ชป ๊ณ ์ •๋œ ์ •๊ทœ์‹020
์ค‘์š”ํ•œ ์ •๋ณด์˜ ์ผ๋ฐ˜ ํ…์ŠคํŠธ ๋กœ๊น…312, 359, 532
์ค‘์š”ํ•œ ์ •๋ณด์˜ ์ผ๋ฐ˜ ํ…์ŠคํŠธ ์ €์žฅ312, 359, 532
์ฝ”๋“œ ์‚ฝ์ž…094, 095, 116
CSRF ๋ณดํ˜ธ๊ฐ€ ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์Œ352
CSRF ๋ณดํ˜ธ ์•ฝํ™” ๋˜๋Š” ์‚ฌ์šฉ ์•ˆ ํ•จ352
์•”ํ˜ธํ™”๋˜์ง€ ์•Š์€ ํ†ต์‹  ์ฑ„๋„์„ ์‚ฌ์šฉํ•˜์—ฌ ์ข…์†์„ฑ ๋‹ค์šด๋กœ๋“œ300, 319, 494, 829
์‚ฌ์šฉ์ž ์ œ์–ด ๋ฐ์ดํ„ฐ์˜ ์—ญ์ง๋ ฌํ™”502
๋ณด์•ˆ์— ์ทจ์•ฝํ•œ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์ค‘์š”ํ•œ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ829
๋ถˆ์™„์ „ํ•œ ๋‹ค์ค‘ ๋ฌธ์ž ์‚ญ์ œ020, 080, 116
ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์— ๋Œ€ํ•œ ๋ถˆ์™„์ „ํ•œ ์ •๊ทœ์‹020
๋ถˆ์™„์ „ํ•œ ๋ฌธ์ž์—ด ์ด์Šค์ผ€์ดํ”„ ๋˜๋Š” ์ธ์ฝ”๋“œ020, 080, 116
๋ถˆ์™„์ „ํ•œ URL ๋ถ€๋ถ„ ๋ฌธ์ž์—ด ์‚ญ์ œ020
๋น„ํšจ์œจ์ ์ธ ์ •๊ทœ์‹1333, 730, 400
์˜ˆ์™ธ๋ฅผ ํ†ตํ•œ ์ •๋ณด ๋…ธ์ถœ209, 497
์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๋Œ€๋Ÿ‰ ํ• ๋‹น915
์ง€๋‚˜์น˜๊ฒŒ ํ—ˆ์šฉ์ ์ธ ์ •๊ทœ์‹ ๋ฒ”์œ„020
์ œ์–ด๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ์— ์‚ฌ์šฉ๋˜๋Š” ๋‹คํ•ญ์‹ ์ •๊ทœ์‹1333, 730, 400
์„œ๋ฒ„ ์ชฝ ๊ต์ฐจ ์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŒ… ๋ฐ˜์˜079, 116
์ •๊ทœ์‹ ์‚ฝ์ž…1333, 730, 400
GET ์š”์ฒญ์—์„œ ์ฝ์€ ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ598
์„œ๋ฒ„ ์ชฝ ์š”์ฒญ ์œ„์กฐ918
์‚ฌ์šฉ์ž ์ œ์–ด ์›๋ณธ์—์„œ ๋นŒ๋“œ๋œ SQL ์ฟผ๋ฆฌ089
์ €์žฅ๋œ ๊ต์ฐจ ์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŒ…079, 116
์ œ์–ด๋˜์ง€ ์•Š์€ ๋ช…๋ น์ค„078, 088
๊ฒฝ๋กœ ์‹์— ์ œ์–ด๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ๋จ022, 023, 036, 073, 099
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž…๋ ฅ์—์„œ ์ƒ์„ฑ๋œ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ HTML079, 116
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž…๋ ฅ์—์„œ ์ƒ์„ฑ๋œ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์…ธ ๋ช…๋ น078, 088, 073
์›๊ฒฉ ์›๋ณธ์—์„œ URL ๋ฆฌ๋””๋ ‰์…˜601
๋น„์ƒ์ˆ˜ ๊ฐ’๊ณผ ํ•จ๊ป˜ Kernel.open, IO.read ๋˜๋Š” ์œ ์‚ฌ ์‹ฑํฌ ์‚ฌ์šฉ078, 088, 073
์‚ฌ์šฉ์ž ์ œ์–ด ์ž…๋ ฅ๊ณผ ํ•จ๊ป˜ Kernel.open, IO.read ๋˜๋Š” ์œ ์‚ฌ ์‹ฑํฌ ์‚ฌ์šฉ078, 088, 073
์†์ƒ๋˜์—ˆ๊ฑฐ๋‚˜ ์•ฝํ•œ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ฌ์šฉ327
์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ์— ์†์ƒ๋˜์—ˆ๊ฑฐ๋‚˜ ์•ฝํ•œ ์•”ํ˜ธํ™” ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ฌ์šฉ327, 328, 916
์™ธ๋ถ€์—์„œ ์ œ์–ด๋˜๋Š” ํ˜•์‹ ๋ฌธ์ž์—ด ์‚ฌ์šฉ134
์•ฝํ•œ ์ฟ ํ‚ค ๊ตฌ์„ฑ732, 1275
XML ์™ธ๋ถ€ ์—”ํ„ฐํ‹ฐ ํ™•์žฅ611, 776, 827
์ฝ”๋“œ๋กœ ํ•ด์„๋˜๋Š” ํ•˜๋“œ ์ฝ”๋“œ๋œ ๋ฐ์ดํ„ฐ506
๋กœ๊ทธ ์‚ฝ์ž…117
์ •๊ทœ์‹ ์•ต์ปค ๋ˆ„๋ฝ020
ํŒŒ์ผ์— ๊ธฐ๋ก๋œ ๋„คํŠธ์›Œํฌ ๋ฐ์ดํ„ฐ912, 434
์ธ์ฆ์„œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์—†์ด ์š”์ฒญ295
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž…๋ ฅ์—์„œ ์ƒ์„ฑ๋œ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์ฝ”๋“œ094, 079, 116