Skip to content

๐Ÿ”’ package.json๋งŒ ์—…๋กœ๋“œํ•˜๋ฉด ์˜์กด์„ฑ ์ทจ์•ฝ์ ์„ ์ž๋™์œผ๋กœ ์ฐพ์•„์ฃผ๋Š” ๋ณด์•ˆ ๊ฒ€์‚ฌ ์„œ๋น„์Šค

Notifications You must be signed in to change notification settings

f-lab-edu/library-check

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

16 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Library Check

๐Ÿ”’ package.json๋งŒ ์—…๋กœ๋“œํ•˜๋ฉด, ์‚ฌ์šฉ ์ค‘์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „์— ์•Œ๋ ค์ง„ ์ทจ์•ฝ์ (CVE)์ด ์žˆ๋Š”์ง€ ์ž๋™์œผ๋กœ ๊ฒ€์‚ฌํ•ด ์ฃผ๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.
์ดˆ๊ธฐ์—๋Š” Node.js ์˜์กด์„ฑ์— ์ง‘์ค‘ํ•˜์ง€๋งŒ, ์ถ”ํ›„ Gradle ๋“ฑ ๋‹ค๋ฅธ ์–ธ์–ดยท๋นŒ๋“œ ์‹œ์Šคํ…œ์œผ๋กœ ํ™•์žฅํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.


๐ŸŽฏ ๋ชฉํ‘œ

  • ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ CVE ์‚ฌ์ดํŠธ๋ฅผ ๋Œ์•„๋‹ค๋‹ˆ๋ฉฐ ๊ฒ€์ƒ‰ํ•˜์ง€ ์•Š์•„๋„ ๋˜๋„๋ก ์˜์กด์„ฑ ์ทจ์•ฝ์  ๊ฒ€์‚ฌ๋ฅผ ์ž๋™ํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • package.json, lock ํŒŒ์ผ ๋“ฑ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ๋งŒ ์—…๋กœ๋“œํ•˜๋ฉด ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  • ์žฅ๊ธฐ์ ์œผ๋กœ๋Š” Node.js๋ฅผ ๋„˜์–ด, Java(Gradle/Maven), Python ๋“ฑ ์—ฌ๋Ÿฌ ์–ธ์–ด์˜ ์˜์กด์„ฑ ํŒŒ์ผ์„ ์ง€์›ํ•˜๋Š” ํ†ตํ•ฉ ์ทจ์•ฝ์  ์กฐํšŒ ์„œ๋น„์Šค๋ฅผ ์ง€ํ–ฅํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ— ์ „์ฒด์ ์ธ ๊ตฌ์กฐ

Frontend

  • ๋Œ€์‹œ๋ณด๋“œ UI
  • ์ฃผ์š” ํŽ˜์ด์ง€:
    • ๋กœ๊ทธ์ธ / ํšŒ์›๊ฐ€์ž…
    • ์ทจ์•ฝ์  ๋ฆฌ์ŠคํŠธ ํŽ˜์ด์ง€
    • ํ”„๋กœ์ ํŠธ ๋ฐ ์˜์กด์„ฑ ๋“ฑ๋ก ํŽ˜์ด์ง€
    • ์Šค์บ” ๊ฒฐ๊ณผ ์กฐํšŒ ํŽ˜์ด์ง€

Backend

  • NestJS ๊ธฐ๋ฐ˜ REST API ์„œ๋ฒ„
  • ์ฃผ์š” ์—ญํ• :
    • ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๊ด€๋ฆฌ
    • ํ”„๋กœ์ ํŠธ / ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ / ์Šค์บ” ๊ฒฐ๊ณผ CRUD
    • ์ทจ์•ฝ์  DB ์กฐํšŒ ๋ฐ ๋งค์นญ ๋กœ์ง

Vulnerability ๋ฐ์ดํ„ฐ

  • NVD / OSV ๋“ฑ ์™ธ๋ถ€ ์ทจ์•ฝ์  DB์—์„œ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘
  • ๋กœ์ปฌ DB์— ์ทจ์•ฝ์  ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ , ์ •๊ธฐ์ ์œผ๋กœ ๋™๊ธฐํ™”

DB (์˜ˆ์ • ์Šคํ‚ค๋งˆ)

  • users
  • projects
  • dependencies (ํ”„๋กœ์ ํŠธ๋ณ„ ์‚ฌ์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)
  • vulnerabilities (CVE ๋“ฑ ์ทจ์•ฝ์  ์ •๋ณด)
  • scan_results (๊ฒ€์‚ฌ ์‹คํ–‰ ๊ธฐ๋ก ๋ฐ ๋งค์นญ ๊ฒฐ๊ณผ)

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

1. ์˜์กด์„ฑ ํŒŒ์ผ ์—…๋กœ๋“œ

  • package.json ์—…๋กœ๋“œ ํ›„, ๋‚ด๋ถ€์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ด๋ฆ„ยท๋ฒ„์ „์„ ํŒŒ์‹ฑํ•ฉ๋‹ˆ๋‹ค.
  • ์ถ”ํ›„ package-lock.json, pnpm-lock.yaml, Gradle/Maven ํŒŒ์ผ ๋“ฑ์œผ๋กœ ํ™•์žฅ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

2. ์ทจ์•ฝ์  ๋งค์นญ

  • ์—…๋กœ๋“œ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชฉ๋ก์„ ๊ธฐ๋ฐ˜์œผ๋กœ, ์ทจ์•ฝ์  DB์—์„œ ํ•ด๋‹น ํŒจํ‚ค์ง€ยท๋ฒ„์ „์— ํ•ด๋‹นํ•˜๋Š” ์ทจ์•ฝ์ ์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
  • ์ทจ์•ฝ์  ์‹ฌ๊ฐ๋„(์˜ˆ: Critical / High / Medium / Low)์™€ ํ•จ๊ป˜ ๊ฒฐ๊ณผ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

3. ์ทจ์•ฝ์  ๋ฆฌ์ŠคํŠธ/๊ฒ€์ƒ‰

  • ์ „์ฒด ์ทจ์•ฝ์  ๋ชฉ๋ก์„ ํ…Œ์ด๋ธ” ํ˜•ํƒœ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ด๋ฆ„, ๋ฒ„์ „, ์‹ฌ๊ฐ๋„, ๊ณต๊ฐœ์ผ ๋“ฑ์œผ๋กœ ํ•„ํ„ฐ๋ง/๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

4. ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ

  • ์‚ฌ์šฉ์ž๊ฐ€ ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ๋ฅผ ๋“ฑ๋กํ•˜๊ณ , ๊ฐ ํ”„๋กœ์ ํŠธ๋ณ„๋กœ ์˜์กด์„ฑ ๋ฐ ์Šค์บ” ๊ฒฐ๊ณผ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

5. ํ–ฅํ›„ ๊ณ„ํš

  • ์‹ ๊ทœ ์ทจ์•ฝ์ ์ด ๋“ฑ๋ก๋˜์—ˆ์„ ๋•Œ, ์˜ํ–ฅ์„ ๋ฐ›๋Š” ํ”„๋กœ์ ํŠธ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ด๋ฉ”์ผ ์•Œ๋ฆผ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ ์–ธ์–ด/์—์ฝ”์‹œ์Šคํ…œ(Gradle, Maven, pip ๋“ฑ) ์ง€์›์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿž ์ด์Šˆ์™€ ํ•ด๊ฒฐ ๊ณผ์ •

1. ๋ฐฉ๋Œ€ํ•œ CVE ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฃฐ ๊ฒƒ์ธ๊ฐ€?

  • ์ด์Šˆ
    CVE/NVD ๋ฐ์ดํ„ฐ๋Š” ๋งค์šฐ ๋ฐฉ๋Œ€ํ•ด์„œ, ์ „๋ถ€ ์ˆ˜์ง‘ยท์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ๋ถ€๋‹ด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ณ ๋ฏผํ•œ ๋ฐฉํ–ฅ

    • ์ „์ฒด CVE๋ฅผ ๋กœ์ปฌ DB์— ๋ชจ๋‘ ์ ์žฌํ• ์ง€
    • ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ์™ธ๋ถ€ API๋ฅผ ์กฐํšŒํ• ์ง€
    • ํ•˜์ด๋ธŒ๋ฆฌ๋“œ(์ž์ฃผ ์“ฐ๋Š” ํŒจํ‚ค์ง€๋งŒ ์บ์‹ฑ)๋กœ ๊ฐˆ์ง€ ๋น„๊ต
  • ํ˜„์žฌ ์„ ํƒ

    • ์ดˆ๊ธฐ MVP ๋‹จ๊ณ„์—์„œ๋Š” OSV/NVD ๋“ฑ์—์„œ ํŒจํ‚ค์ง€ ๋‹จ์œ„ ์กฐํšŒ + ์บ์‹ฑ ์ „๋žต์œผ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
    • ์„œ๋น„์Šค ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๋ฉด, ์ •๊ธฐ์ ์œผ๋กœ JSON ํ”ผ๋“œ๋ฅผ ๋‚ด๋ ค๋ฐ›์•„ ๋กœ์ปฌ ๋ฏธ๋Ÿฌ๋งํ•˜๋Š” ๊ตฌ์กฐ๋กœ ํ™•์žฅํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

2. AI๋ฅผ ์–ด๋””๊นŒ์ง€ ์“ธ ๊ฒƒ์ธ๊ฐ€?

  • ์ด์Šˆ
    ๋ชจ๋“  ๊ฒƒ์„ AI๋กœ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํ•˜๋ฉด, ์ •ํ™•๋„ยท์‹ ๋ขฐ์„ฑ ๋ฌธ์ œ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค.

  • ๊ฒฐ์ •

    • โ€œ์ด ๋ฒ„์ „์— ์ทจ์•ฝ์ ์ด ์žˆ๋Š”๊ฐ€?โ€๋ผ๋Š” ํŒ๋‹จ ๋กœ์ง์€ ๊ณต์‹ DB ๊ธฐ๋ฐ˜์œผ๋กœ๋งŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
    • AI๋Š” ์ทจ์•ฝ์  ์„ค๋ช… ์š”์•ฝ, ์˜ํ–ฅ ๋ถ„์„, ๋ฆฌํฌํŠธ ์ƒ์„ฑ ๋“ฑ ๋ณด์กฐ ๊ธฐ๋Šฅ์—๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

About

๐Ÿ”’ package.json๋งŒ ์—…๋กœ๋“œํ•˜๋ฉด ์˜์กด์„ฑ ์ทจ์•ฝ์ ์„ ์ž๋™์œผ๋กœ ์ฐพ์•„์ฃผ๋Š” ๋ณด์•ˆ ๊ฒ€์‚ฌ ์„œ๋น„์Šค

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •