Skip to main content

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

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

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

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

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

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

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

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

์ฟผ๋ฆฌ ์ด๋ฆ„๊ด€๋ จ CWE๊ธฐ๋ณธ๊ฐ’ํ™•์žฅCopilot Autofix
Python 2์—์„œ ์‚ฌ์šฉ๋˜๋Š” 'input' ํ•จ์ˆ˜094, 095
Paramiko๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์•Œ ์ˆ˜ ์—†๋Š” SSH ํ˜ธ์ŠคํŠธ ํ‚ค ์ˆ˜๋ฝ295
์ž˜๋ชป๋œ HTML ํ•„ํ„ฐ๋ง regexp116, 020, 185, 186
๋ชจ๋“  ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์— ์†Œ์ผ“ ๋ฐ”์ธ๋”ฉ200
์ค‘์š”ํ•œ ์ •๋ณด์˜ ์ผ๋ฐ˜ ํ…์ŠคํŠธ ๋กœ๊น…312, 359, 532
์ค‘์š”ํ•œ ์ •๋ณด์˜ ์ผ๋ฐ˜ ํ…์ŠคํŠธ ์ €์žฅ312, 315, 359
์ฝ”๋“œ ์‚ฝ์ž…094, 095, 116
์‚ฌ์šฉ์ž๊ฐ€ ์ œ๊ณตํ•œ ์ž…๋ ฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฟ ํ‚ค ์ƒ์„ฑ020
CSRF ๋ณดํ˜ธ ์•ฝํ™” ๋˜๋Š” ์‚ฌ์šฉ ์•ˆ ํ•จ352
SSL/TLS์˜ ๊ธฐ๋ณธ ๋ฒ„์ „์€ ๋ณด์•ˆ์— ์ทจ์•ฝํ•  ์ˆ˜ ์žˆ์Œ327
์‚ฌ์šฉ์ž ์ œ์–ด ๋ฐ์ดํ„ฐ์˜ ์—ญ์ง๋ ฌํ™”502
๋ณด์•ˆ ์ฟ ํ‚ค ์‚ฌ์šฉ ์‹คํŒจ614, 1004, 1275
Flask ์•ฑ์ด ๋””๋ฒ„๊ทธ ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋จ215, 489
์ „์ฒด ์„œ๋ฒ„ ์ชฝ ์š”์ฒญ ์œ„์กฐ918
HTTP ์‘๋‹ต ๋ถ„ํ• 113, 079
ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์— ๋Œ€ํ•œ ๋ถˆ์™„์ „ํ•œ ์ •๊ทœ์‹020
๋ถˆ์™„์ „ํ•œ URL ๋ถ€๋ถ„ ๋ฌธ์ž์—ด ์‚ญ์ œ020
๋น„ํšจ์œจ์ ์ธ ์ •๊ทœ์‹1333, 730, 400
์˜ˆ์™ธ๋ฅผ ํ†ตํ•œ ์ •๋ณด ๋…ธ์ถœ209, 497
๋ณด์•ˆ์— ์ทจ์•ฝํ•œ ์ž„์‹œ ํŒŒ์ผ377
์‚ฌ์šฉ์ž ์ œ์–ด ์›๋ณธ์—์„œ ๋นŒ๋“œ๋œ LDAP ์ฟผ๋ฆฌ090
NoSQL ์‚ฝ์ž…943
์ง€๋‚˜์น˜๊ฒŒ ํ—ˆ์šฉ์ ์ธ ์ •๊ทœ์‹ ๋ฒ”์œ„020
์ž˜๋ชป๋œ ์‚ฌ์šฉ์œผ๋กœ ์ธํ•œ PAM ๊ถŒํ•œ ๋ถ€์—ฌ ์šฐํšŒ285
์ œ์–ด๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ์— ์‚ฌ์šฉ๋˜๋Š” ๋‹คํ•ญ์‹ ์ •๊ทœ์‹1333, 730, 400
์„œ๋ฒ„ ์ชฝ ๊ต์ฐจ ์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŒ… ๋ฐ˜์˜079, 116
์ •๊ทœ์‹ ์‚ฝ์ž…730, 400
์„œ๋ฒ„ ์ชฝ ํ…œํ”Œ๋ฆฟ ์‚ฝ์ž…074
์‚ฌ์šฉ์ž ์ œ์–ด ์›๋ณธ์—์„œ ๋นŒ๋“œ๋œ SQL ์ฟผ๋ฆฌ089
์ œ์–ด๋˜์ง€ ์•Š์€ ๋ช…๋ น์ค„078, 088
๊ฒฝ๋กœ ์‹์— ์ œ์–ด๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ๋จ022, 023, 036, 073, 099
์›๊ฒฉ ์›๋ณธ์—์„œ URL ๋ฆฌ๋””๋ ‰์…˜601
์†์ƒ๋˜์—ˆ๊ฑฐ๋‚˜ ์•ฝํ•œ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ฌ์šฉ327
์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ์— ์†์ƒ๋˜์—ˆ๊ฑฐ๋‚˜ ์•ฝํ•œ ์•”ํ˜ธํ™” ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ฌ์šฉ327, 328, 916
๋ณด์•ˆ์— ์ทจ์•ฝํ•œ SSL/TLS ๋ฒ„์ „ ์‚ฌ์šฉ327
์•ฝํ•œ ์•”ํ˜ธํ™” ํ‚ค ์‚ฌ์šฉ326
XML ์™ธ๋ถ€ ์—”ํ„ฐํ‹ฐ ํ™•์žฅ611, 827
XML ๋‚ด๋ถ€ ์—”ํ„ฐํ‹ฐ ํ™•์žฅ776, 400
์‚ฌ์šฉ์ž ์ œ์–ด ์›๋ณธ์—์„œ ๋นŒ๋“œ๋œ XPath ์ฟผ๋ฆฌ643
tarfile์˜ ์••์ถ•์„ ํ‘ธ๋Š” ์ค‘ ์ž„์˜ ํŒŒ์ผ ์“ฐ๊ธฐ022
autoescape=False์ธ Jinja2 ํ…œํ”Œ๋ฆฟ079
๋กœ๊ทธ ์‚ฝ์ž…117
์ง€๋‚˜์น˜๊ฒŒ ํ—ˆ์šฉ์ ์ธ ํŒŒ์ผ ๊ถŒํ•œ732
๋ถ€๋ถ„ ์„œ๋ฒ„ ์ชฝ ์š”์ฒญ ์œ„์กฐ918
์ธ์ฆ์„œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์—†์ด ์š”์ฒญ295
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž…๋ ฅ์—์„œ ์ƒ์„ฑ๋œ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์…ธ ๋ช…๋ น078, 088, 073