์ฝ˜ํ…์ธ ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

Ultralytics ๋ณด์•ˆ ์ •์ฑ…

์—์„œ Ultralytics์—์„œ๋Š” ์‚ฌ์šฉ์ž์˜ ๋ฐ์ดํ„ฐ์™€ ์‹œ์Šคํ…œ์˜ ๋ณด์•ˆ์„ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์˜ ์•ˆ์ „๊ณผ ๋ณด์•ˆ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ํƒ์ง€ํ•˜๊ณ  ์˜ˆ๋ฐฉํ•˜๊ธฐ ์œ„ํ•œ ๋ช‡ ๊ฐ€์ง€ ์กฐ์น˜๋ฅผ ์‹œํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์Šค๋‹‰ ์Šค์บ๋‹

์ €ํฌ๋Š” Snyk๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Ultralytics ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์ข…ํ•ฉ์ ์ธ ๋ณด์•ˆ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. Snyk์˜ ๊ฐ•๋ ฅํ•œ ์Šค์บ” ๊ธฐ๋Šฅ์€ ์ข…์†์„ฑ ๊ฒ€์‚ฌ๋ฅผ ๋„˜์–ด ์ฝ”๋“œ์™€ DockerํŒŒ์ผ์— ๋‹ค์–‘ํ•œ ์ทจ์•ฝ์ ์ด ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ์‚ฌ์ „์— ํŒŒ์•…ํ•˜๊ณ  ํ•ด๊ฒฐํ•จ์œผ๋กœ์จ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋” ๋†’์€ ์ˆ˜์ค€์˜ ๋ณด์•ˆ๊ณผ ์•ˆ์ •์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

ultralytics

GitHub CodeQL ์Šค์บ”

์ €ํฌ์˜ ๋ณด์•ˆ ์ „๋žต์—๋Š” GitHub์˜ CodeQL ์Šค์บ”์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. CodeQL์€ ์ฝ”๋“œ์˜ ์‹œ๋งจํ‹ฑ ๊ตฌ์กฐ๋ฅผ ๋ถ„์„ํ•˜์—ฌ SQL ์ธ์ ์…˜ ๋ฐ XSS์™€ ๊ฐ™์€ ๋ณต์žกํ•œ ์ทจ์•ฝ์ ์„ ์‹๋ณ„ํ•จ์œผ๋กœ์จ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์‹ฌ์ธต์ ์œผ๋กœ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณ ๊ธ‰ ๋ถ„์„ ์ˆ˜์ค€์€ ์ž ์žฌ์ ์ธ ๋ณด์•ˆ ์œ„ํ—˜์„ ์กฐ๊ธฐ์— ๋ฐœ๊ฒฌํ•˜๊ณ  ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

CodeQL

GitHub Dependabot ์•Œ๋ฆผ

Dependabot์€ ์›Œํฌํ”Œ๋กœ์— ํ†ตํ•ฉ๋˜์–ด ์•Œ๋ ค์ง„ ์ทจ์•ฝ์ ์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค. ์ข…์†์„ฑ ์ค‘ ํ•˜๋‚˜์—์„œ ์ทจ์•ฝ์ ์ด ๋ฐœ๊ฒฌ๋˜๋ฉด Dependabot์ด ์•Œ๋ ค์ฃผ๋ฏ€๋กœ ์‹ ์†ํ•˜๊ณ  ์ •๋ณด์— ์ž…๊ฐํ•œ ์ˆ˜์ • ์กฐ์น˜๋ฅผ ์ทจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GitHub ๋น„๋ฐ€ ์Šค์บ” ์•Œ๋ฆผ

์ €ํฌ๋Š” ์‹ค์ˆ˜๋กœ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ํ‘ธ์‹œ๋œ ์ž๊ฒฉ์ฆ๋ช… ๋ฐ ๋น„๊ณต๊ฐœ ํ‚ค์™€ ๊ฐ™์€ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•ด GitHub ๋น„๋ฐ€ ๊ฒ€์ƒ‰ ์•Œ๋ฆผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์กฐ๊ธฐ ๊ฐ์ง€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ์ž ์žฌ์ ์ธ ๋ณด์•ˆ ์นจํ•ด ๋ฐ ๋ฐ์ดํ„ฐ ๋…ธ์ถœ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

๋น„๊ณต๊ฐœ ์ทจ์•ฝ์  ๋ณด๊ณ 

๋น„๊ณต๊ฐœ ์ทจ์•ฝ์  ๋ณด๊ณ ๋ฅผ ํ™œ์„ฑํ™”ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ž ์žฌ์ ์ธ ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ์‹ ์ค‘ํ•˜๊ฒŒ ๋ณด๊ณ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ฑ…์ž„๊ฐ ์žˆ๋Š” ๊ณต๊ฐœ๋ฅผ ์ด‰์ง„ํ•˜์—ฌ ์ทจ์•ฝ์ ์„ ์•ˆ์ „ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๋ณด์•ˆ ์ทจ์•ฝ์ ์ด ์˜์‹ฌ๋˜๊ฑฐ๋‚˜ ๋ฐœ๊ฒฌ๋˜๋ฉด ์ฆ‰์‹œ ์•Œ๋ ค์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋ฌธ์˜ ์–‘์‹ ๋˜๋Š” ๋ณด์•ˆ@ultralytics.com์„ ํ†ตํ•ด ์ง์ ‘ ๋ฌธ์˜ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด์•ˆํŒ€์—์„œ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ์กฐ์‚ฌํ•˜์—ฌ ๋‹ต๋ณ€ํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  Ultralytics ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ˜ธํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ๐Ÿ™.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

Ultralytics ์—์„œ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ์‹œํ–‰ํ•˜๋Š” ๋ณด์•ˆ ์กฐ์น˜๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

Ultralytics ๋Š” ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ์™€ ์‹œ์Šคํ…œ์„ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ํฌ๊ด„์ ์ธ ๋ณด์•ˆ ์ „๋žต์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์š” ์กฐ์น˜์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค:

  • ์Šค๋‹‰ ์Šค์บ”: ๋ณด์•ˆ ์Šค์บ”์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ฝ”๋“œ ๋ฐ DockerํŒŒ์ผ์˜ ์ทจ์•ฝ์ ์„ ํƒ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • GitHub CodeQL: ์ฝ”๋“œ ์‹œ๋งจํ‹ฑ์„ ๋ถ„์„ํ•˜์—ฌ SQL ์ธ์ ์…˜๊ณผ ๊ฐ™์€ ๋ณต์žกํ•œ ์ทจ์•ฝ์ ์„ ํƒ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • Dependabot ์•Œ๋ฆผ: ์•Œ๋ ค์ง„ ์ทจ์•ฝ์ ์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์‹ ์†ํ•œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด ๊ฒฝ๊ณ ๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  • ๋น„๋ฐ€ ์Šค์บ”: ์ฝ”๋“œ ์ €์žฅ์†Œ์—์„œ ์ž๊ฒฉ ์ฆ๋ช…์ด๋‚˜ ๊ฐœ์ธ ํ‚ค์™€ ๊ฐ™์€ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ง€ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์œ ์ถœ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ๋น„๊ณต๊ฐœ ์ทจ์•ฝ์  ๋ณด๊ณ : ์‚ฌ์šฉ์ž๊ฐ€ ์ž ์žฌ์ ์ธ ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ์€๋ฐ€ํ•˜๊ฒŒ ๋ณด๊ณ ํ•  ์ˆ˜ ์žˆ๋Š” ์•ˆ์ „ํ•œ ์ฑ„๋„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋„๊ตฌ๋Š” ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ์‚ฌ์ „์— ์‹๋ณ„ํ•˜๊ณ  ํ•ด๊ฒฐํ•˜์—ฌ ์ „๋ฐ˜์ ์ธ ์‹œ์Šคํ…œ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‚ด๋ณด๋‚ด๊ธฐ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Ultralytics ๋ณด์•ˆ ์Šค์บ”์— Snyk๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋‚˜์š”?

Ultralytics ๋Š” Snyk๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์ฒ ์ €ํ•œ ๋ณด์•ˆ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. Snyk๋Š” ๊ธฐ๋ณธ์ ์ธ ์ข…์†์„ฑ ๊ฒ€์‚ฌ๋ฅผ ๋„˜์–ด ์ฝ”๋“œ์™€ DockerํŒŒ์ผ์— ๋‹ค์–‘ํ•œ ์ทจ์•ฝ์ ์ด ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ž ์žฌ์ ์ธ ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ์‚ฌ์ „์— ์‹๋ณ„ํ•˜๊ณ  ํ•ด๊ฒฐํ•จ์œผ๋กœ์จ Snyk๋Š” Ultralytics' ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์˜ ๋ณด์•ˆ๊ณผ ์•ˆ์ •์„ฑ์„ ์œ ์ง€ํ•˜๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์Šค๋‹‰ ๋ฐฐ์ง€๋ฅผ ํ™•์ธํ•˜๊ณ  ๋ฐฐํฌ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด ์Šค๋‹‰ ์Šค์บ๋‹ ์„น์…˜์„ ํ™•์ธํ•˜์„ธ์š”.

CodeQL์ด๋ž€ ๋ฌด์—‡์ด๋ฉฐ Ultralytics ์˜ ๋ณด์•ˆ์„ ์–ด๋–ป๊ฒŒ ๊ฐ•ํ™”ํ•˜๋‚˜์š”?

CodeQL์€ GitHub๋ฅผ ํ†ตํ•ด Ultralytics' ์›Œํฌํ”Œ๋กœ์— ํ†ตํ•ฉ๋œ ๋ณด์•ˆ ๋ถ„์„ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์‹ฌ์ธต์ ์œผ๋กœ ๋ถ„์„ํ•˜์—ฌ SQL ์ธ์ ์…˜ ๋ฐ ํฌ๋กœ์Šค ์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŒ…(XSS)๊ณผ ๊ฐ™์€ ๋ณต์žกํ•œ ์ทจ์•ฝ์ ์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. CodeQL์€ ์ฝ”๋“œ์˜ ์‹œ๋งจํ‹ฑ ๊ตฌ์กฐ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ๊ณ ๊ธ‰ ์ˆ˜์ค€์˜ ๋ณด์•ˆ์„ ์ œ๊ณตํ•จ์œผ๋กœ์จ ์ž ์žฌ์ ์ธ ์œ„ํ—˜์„ ์กฐ๊ธฐ์— ๊ฐ์ง€ํ•˜๊ณ  ์™„ํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

CodeQL ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub CodeQL ์Šค์บ” ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

Dependabot์€ Ultralytics' ์ฝ”๋“œ ๋ณด์•ˆ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ์–ด๋–ป๊ฒŒ ๋„์›€์ด ๋˜๋‚˜์š”?

Dependabot์€ ์•Œ๋ ค์ง„ ์ทจ์•ฝ์ ์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์ž๋™ํ™”๋œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. Dependabot์€ Ultralytics ํ”„๋กœ์ ํŠธ ์ข…์†์„ฑ์—์„œ ์ทจ์•ฝ์ ์„ ๊ฐ์ง€ํ•˜๋ฉด ๊ฒฝ๊ณ ๋ฅผ ๋ณด๋‚ด ํŒ€์ด ๋ฌธ์ œ๋ฅผ ์‹ ์†ํ•˜๊ฒŒ ํ•ด๊ฒฐํ•˜๊ณ  ์™„ํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ข…์†์„ฑ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜์—ฌ ์ž ์žฌ์ ์ธ ๋ณด์•ˆ ์œ„ํ—˜์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub Dependabot ์•Œ๋ฆผ ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

Ultralytics ์—์„œ๋Š” ๋น„๊ณต๊ฐœ ์ทจ์•ฝ์  ์‹ ๊ณ ๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋‚˜์š”?

Ultralytics ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋น„๊ณต๊ฐœ ์ฑ„๋„์„ ํ†ตํ•ด ์ž ์žฌ์ ์ธ ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ์‹ ๊ณ ํ•˜๋„๋ก ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ๋ฌธ์˜ ์–‘์‹์„ ํ†ตํ•ด ๋˜๋Š” ๋ณด์•ˆ@ultralytics.com์œผ๋กœ ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด ์ทจ์•ฝ์ ์„ ์‹ ์ค‘ํ•˜๊ฒŒ ๋ณด๊ณ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ฑ…์ž„๊ฐ ์žˆ๋Š” ๊ณต๊ฐœ๋ฅผ ๋ณด์žฅํ•˜๊ณ  ๋ณด์•ˆํŒ€์ด ์ทจ์•ฝ์ ์„ ์•ˆ์ „ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ์กฐ์‚ฌํ•˜๊ณ  ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋น„๊ณต๊ฐœ ์ทจ์•ฝ์  ๋ณด๊ณ ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋น„๊ณต๊ฐœ ์ทจ์•ฝ์  ๋ณด๊ณ  ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๐Ÿ“…1 ๋…„ ์ „ ์ƒ์„ฑ๋จ โœ๏ธ 2๊ฐœ์›” ์ „ ์—…๋ฐ์ดํŠธ๋จ