Skip to main content

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

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

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

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

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

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

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

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

์ฟผ๋ฆฌ ์ด๋ฆ„๊ด€๋ จ CWE๊ธฐ๋ณธ๊ฐ’ํ™•์žฅCopilot Autofix
'requireSSL' ํŠน์„ฑ์ด true๋กœ ์„ค์ •๋˜์ง€ ์•Š์Œ319, 614
๋ณด๊ด€ ํŒŒ์ผ์˜ ์••์ถ•์„ ํ‘ธ๋Š” ์ค‘ ์ž„์˜ ํŒŒ์ผ ์•ก์„ธ์Šค("Zip Slip")022
ASP.NET ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ฒ€์ƒ‰ ์‚ฌ์šฉ ์„ค์ •5:48
์–ด์…ˆ๋ธ”๋ฆฌ ๊ฒฝ๋กœ ์‚ฝ์ž…114
์ค‘์š”ํ•œ ์ •๋ณด์˜ ์ผ๋ฐ˜ ํ…์ŠคํŠธ ์ €์žฅ312, 315, 359
์ฟ ํ‚ค ๋ณด์•ˆ: ์ง€๋‚˜์น˜๊ฒŒ ๊ด‘๋ฒ”์œ„ํ•œ ๋„๋ฉ”์ธ287
์ฟ ํ‚ค ๋ณด์•ˆ: ์ง€๋‚˜์น˜๊ฒŒ ๊ด‘๋ฒ”์œ„ํ•œ ๊ฒฝ๋กœ287
์ฟ ํ‚ค ๋ณด์•ˆ: ์˜๊ตฌ์  ์ฟ ํ‚ค539
ASP.NET ๋””๋ฒ„๊ทธ ์ด์ง„ ํŒŒ์ผ์„ ๋งŒ๋“ค๋ฉด ์ค‘์š”ํ•œ ์ •๋ณด๊ฐ€ ๋…ธ์ถœ๋  ์ˆ˜ ์žˆ์Œ011, 532
๊ต์ฐจ ์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŒ…079, 116
๊ณ ๊ฐ€์˜ ์ •๊ทœ์‹๊ณผ ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๋น„๊ต์—์„œ ์„œ๋น„์Šค ๊ฑฐ๋ถ€1333, 730, 400
์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๋ฐ์ดํ„ฐ์˜ ์—ญ์ง๋ ฌํ™”502
์—ญ์ง๋ ฌํ™”๋œ ๋Œ€๋ฆฌ์ธ502
ECB๋ฅผ ์‚ฌ์šฉํ•œ ์•”ํ˜ธํ™”327
๊ฐœ์ธ ์ •๋ณด ๋…ธ์ถœ359
์„ธ์…˜ ์ค‘๋‹จ ์‹คํŒจ384
ํ—ค๋” ๊ฒ€์‚ฌ ์‚ฌ์šฉ ์•ˆ ํ•จ113
๋ถ€์ ์ ˆํ•œ ์ฝ”๋“œ ์ƒ์„ฑ ์ œ์–ด094, 095, 096
์˜ˆ์™ธ๋ฅผ ํ†ตํ•œ ์ •๋ณด ๋…ธ์ถœ209, 497
์ „์†ก๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•œ ์ •๋ณด ๋…ธ์ถœ201
๋ณด์•ˆ์— ์ทจ์•ฝํ•œ ์ž„์˜์„ฑ338
์‚ฌ์šฉ์ž ์ œ์–ด ์›๋ณธ์—์„œ ๋นŒ๋“œ๋œ LDAP ์ฟผ๋ฆฌ090
์‚ฌ์šฉ์ž ์ž…๋ ฅ์œผ๋กœ ๋งŒ๋“  ๋กœ๊ทธ ํ•ญ๋ชฉ117
๊ต์ฐจ ์‚ฌ์ดํŠธ ์š”์ฒญ ์œ„์กฐ ํ† ํฐ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ˆ„๋ฝ352
์ „์—ญ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๊ธฐ ๋ˆ„๋ฝ012, 248
X-Frame-Options HTTP ํ—ค๋” ๋ˆ„๋ฝ451, 829
ํŽ˜์ด์ง€ ์š”์ฒญ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ016
์ •๊ทœ์‹ ์‚ฝ์ž…730, 400
๋ฆฌ์†Œ์Šค ์‚ฝ์ž…099
์‚ฌ์šฉ์ž ์ œ์–ด ์›๋ณธ์—์„œ ๋นŒ๋“œ๋œ SQL ์ฟผ๋ฆฌ089
์ œ์–ด๋˜์ง€ ์•Š์€ ๋ช…๋ น์ค„078, 088
๊ฒฝ๋กœ ์‹์— ์ œ์–ด๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ๋จ022, 023, 036, 073, 099
์ œ์–ด๋˜์ง€ ์•Š์€ ํ˜•์‹ ๋ฌธ์ž์—ด134
์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” XML์ด ์•ˆ์ „ํ•˜์ง€ ์•Š๊ฒŒ ์ฝํž˜611, 827, 776
์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊ฐ€ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์€ ๋กœ์ปฌ ํฌ์ธํ„ฐ ์‚ฐ์ˆ  ์—ฐ์‚ฐ119, 120, 122, 788
์›๊ฒฉ ์›๋ณธ์—์„œ URL ๋ฆฌ๋””๋ ‰์…˜601
์ค‘์š”ํ•œ ๋ฉ”์„œ๋“œ์˜ ์‚ฌ์šฉ์ž ์ œ์–ด ์šฐํšŒ807, 247, 350
์•ฝํ•œ ์•”ํ˜ธํ™”327
์•ฝํ•œ ์•”ํ˜ธํ™”: ๋ถ€์ ์ ˆํ•œ RSA ํŒจ๋”ฉ327, 780
์•ฝํ•œ ์•”ํ˜ธํ™”: ํ‚ค ํฌ๊ธฐ ๋ถ€์กฑ326
XML ์‚ฝ์ž…091
XPath ์‚ฝ์ž…643
๊ตฌ์„ฑ ํŒŒ์ผ์˜ ๋นˆ ๋น„๋ฐ€๋ฒˆํ˜ธ258, 862
๋ณด์•ˆ์— ์ทจ์•ฝํ•œ ์ง์ ‘ ๊ฐœ์ฒด ์ฐธ์กฐ639
๋ณด์•ˆ์— ์ทจ์•ฝํ•œ SQL ์—ฐ๊ฒฐ327
ํ•จ์ˆ˜ ์ˆ˜์ค€ ์•ก์„ธ์Šค ์ œ์–ด ๋ˆ„๋ฝ285, 284, 862
XML ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ˆ„๋ฝ112
Serialization ๊ฒ€์‚ฌ ์šฐํšŒ020
ICryptoTransform ๊ฐœ์ฒด์˜ ์Šค๋ ˆ๋“œ๋กœ๋ถ€ํ„ฐ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์บก์ฒ˜362
์ •์  ICryptoTransform ํ•„๋“œ์˜ ์Šค๋ ˆ๋“œ๋กœ๋ถ€ํ„ฐ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์‚ฌ์šฉ362
ํŒŒ์ผ ์—…๋กœ๋“œ ์‚ฌ์šฉ434
๊ฐ’ ์„€๋„์ž‰348
๊ฐ’ ์„€๋„์ž‰: ์„œ๋ฒ„ ๋ณ€์ˆ˜348