์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 
์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 

DevSecOps Basic (/w SAST)

DevSecOps ๋ž€ ๋ฌด์—‡์ธ๊ฐ€? CI ๋นŒ๋“œ ํ™˜๊ฒฝ ๋ฐ Build ์‹œ ์ž๋™์œผ๋กœ SAST ์ ๊ฒ€์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ™˜๊ฒฝ ๊ตฌ์„ฑํ•ด๋ณด๊ธฐ

Thumbnail

์ž…๋ฌธ์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[๋ณด์•ˆ, ๋ฐ๋ธŒ์˜ต์Šค ยท ์ธํ”„๋ผ] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

  • DevSecOps๋ž€

  • DevSecOps Models

  • CI/CD Pipeline SAST ์ž๋™ ์ ๊ฒ€ ํ™˜๊ฒฝ ๊ตฌ์„ฑ

DevSecOps ๋ผ๋Š” ์–˜๊ธฐ๋Š” ๋งŽ์ด ๋“ค์—ˆ๋Š”๋ฐ ๋„๋Œ€์ฒด ๋ญ์•ผ?

DevSecOps ํ™˜๊ฒฝ์ด๋ž€ ๋ฌด์—‡์ธ์ง€, ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ค ๋ถ€๋ถ„์— ๋…ธ๋ ฅ์„ ๊ธฐ์šธ์—ฌ์•ผ ํ•˜๋Š”์ง€ ๋ชฉํ‘œ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์š”!

๋ณด์•ˆํŒ€ ์ž…์žฅ์—์„œ DevOps (CI/CD) ํ™˜๊ฒฝ์„ ์ด์šฉํ•˜๊ณ  ์‹ถ์€๋ฐ ์–ด๋””์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์•ผ ํ• ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋Š” ๋ถ„!

  • ์—ฌ๋Ÿฌ DevSecOps ๊ธฐ์ค€์„ ํ†ตํ•œ ์ž์ฒด ํ‰๊ฐ€ ๋ฐ ๋ชฉํ‘œ ์„ค์ • ๋ฐฉ์•ˆ ์ œ์‹œ

  • DevSecOps ํ™˜๊ฒฝ ๊ตฌ์„ฑ์„ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค(Github, Jenkins, SonarQube ๋“ฑ)๋ฅผ ์ด์šฉํ•œ ์˜ˆ์ œ ํ™˜๊ฒฝ ๊ตฌ์„ฑ

ํ•™์Šต ๋‚ด์šฉ

  • DevSecOps ์˜ ๊ธฐ๋ณธ์ ์ธ ๋‚ด์šฉ๊ณผ ์‹ค์Šต ํ™˜๊ฒฝ ๊ตฌ์„ฑ์„ ์œ„์ฃผ๋กœ ์ œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • ์„น์…˜ 1 : What is DevSecOps? , DevSecOps Models

  • ์„น์…˜ 2 : CI ํ™˜๊ฒฝ ๊ตฌ์„ฑ๊ณผ CI ํ™˜๊ฒฝ์—์„œ SAST(Source Code ์ทจ์•ฝ์  ์ ๊ฒ€) ์ž๋™ ์ ๊ฒ€ ํ™˜๊ฒฝ ๊ตฌ์„ฑํ•˜๊ธฐ

  • ์„น์…˜ 3: ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐฉ์•ˆ

์„น์…˜ (1) DevSecOps Basic

DevSecOps ๊ฐ€ ๋ฌด์—‡์ด๊ณ  ํ™˜๊ฒฝ์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ์–ด๋–ป๊ฒŒ ๊ณ„ํš์„ ์ˆ˜๋ฆฝํ•ด์•ผ ํ•˜๋Š”์ง€ ํ™•์ธํ•ด๋ด…๋‹ˆ๋‹ค.

ํ•ด์™ธ ์—ฌ๋Ÿฌ ๊ธฐ์—…์—์„œ ์ œ์•ˆํ•œ DevSecOps์˜ ๋ชจ๋ธ์„ ํ™•์ธํ•˜๊ณ  ์ž์ฒด ํ‰๊ฐ€ ๋ฐ ํ–ฅํ›„ ๊ณ„ํš์„ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์„น์…˜ (2) CI & SAST

DevOps ํ™˜๊ฒฝ์—์„œ Sec๋ฅผ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด SAST(Source Code ์ทจ์•ฝ์  ์ ๊ฒ€ ๋„๊ตฌ) ์ž๋™ ์ ๊ฒ€์„ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•ด์•ผ ํ• ์ง€ ์‹ค์Šต์„ ํ†ตํ•ด ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ ๋„๊ตฌ : Jenkins & Github

์„น์…˜ (3) Monitor

SAST ์ž๋™ ์ ๊ฒ€ ์ดํ›„ ์ •์ƒ์ ์œผ๋กœ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•œ Monitoring ๋ฐฉ์•ˆ์„ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ ๋„๊ตฌ : Prometheus & Grafana

์‹ค์Šต ํ™˜๊ฒฝ

  • ์šด์˜ ์ฒด์ œ ๋ฐ ๋ฒ„์ „(OS): Docker๊ฐ€ ๊ตฌ๋™ํ•œ ํ™˜๊ฒฝ ( Windows, Linux OSX, Mac ๋“ฑ)

  • ์‚ฌ์šฉ ๋„๊ตฌ: Docker Desktop

  • PC ์‚ฌ์–‘: ์ด 5๊ฐœ์˜ Docker Image๋ฅผ ์ด์šฉํ•˜์—ฌ ์‹ค์Šต ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. 5๊ฐœ ์ •๋„์˜ Docker Container๊ฐ€ ๋™์‹œ์— ๊ตฌ๋™๋˜๋Š” ์‚ฌ์–‘์ด๋ผ๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค

ํ•™์Šต ์ž๋ฃŒ

  • ๊ฐ•์˜ ์ž๋ฃŒ๋Š” PDF๋ฅผ ํ†ตํ•ด ์ œ๊ณตํ•˜๋ฉฐ, ์‹ค์Šต์— ํ•„์š”ํ•œ ์ฝ”๋“œ๋Š” ๊ฐ ๊ฐ•์˜ ์ฒจ๋ถ€ํŒŒ์ผ์„ ํ†ตํ•ด ์ œ๊ณต๋“œ๋ฆฝ๋‹ˆ๋‹ค.


์„ ์ˆ˜ ์ง€์‹ ๋ฐ ์œ ์˜์‚ฌํ•ญ

  • DevSecOps ํ™˜๊ฒฝ ๊ตฌ์ถ•์„ ์œ„ํ•œ CI/CD Pipeline ๊ธฐ๋ฐ˜ SAST/DAST ์ทจ์•ฝ์  ์ ๊ฒ€ ์ž๋™ํ™” ํ™˜๊ฒฝ ๊ตฌ์ถ• ๋ฐฉ์•ˆ์— ๋Œ€ํ•ด ์ฃผ๋กœ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

  • SAST/DAST ์— ๋Œ€ํ•œ ์˜คํƒ๋ฅ  ๊ฐ์†Œ ๋ฐฉ์•ˆ, ํƒ์ง€ ๋ฃฐ ๊ณ ๋„ํ™” ๋“ฑ์€ ๋‹ค์–‘ํ•œ SAST/DAST ๋„๊ตฌ๋ฅผ ๋ชจ๋‘ ๋‹ค๋ฃฐ ์ˆ˜ ์—†๊ธฐ์— ์ž๋™ํ™”๋œ DevSecOps ํ™˜๊ฒฝ ๊ตฌ์„ฑ ๊ธฐ๋ฐ˜์„ ๋ชฉ์ ์œผ๋กœ ๋“ค์–ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
    - DevSecOps๋ฅผ ์ฃผ์ œ๋กœ ์‹œ๋ฆฌ์ฆˆ ํ˜•ํƒœ์˜ ๊ฐ•์˜๋ฅผ ๊ณ„์† ์ œ์ž‘ํ•  ์˜ˆ์ •์œผ๋กœ ์˜คํ”ˆ์†Œ์Šค(ex. SonarQube, ZAP) ๋„๊ตฌ๋ฅผ ๊ธฐ๋ฐ˜ํ•˜์—ฌ ์˜คํƒ๋ฅ  ๊ฐ์†Œ ํ˜น์€ ํƒ์ง€ ๋ฃฐ ๊ณ ๋„ํ™”์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ๋‚ด์šฉ์€ ์ถ”๊ฐ€ ์ž‘์„ฑํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.


์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”!

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ๊ธฐ์—…์—์„œ DevSecOps ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๊ณ  ์‹ถ์€ ๋ถ„

  • DevSecOps ๊ตฌ์ถ•์„ ์œ„ํ•œ ๋ฐฉ์•ˆ ๋ฐ ๋ชฉํ‘œ ์„ค์ •์„ ์œ„ํ•ด ๊ณ ๋ฏผํ•˜๊ณ  ๊ณ„์‹  ๋ถ„

์•ˆ๋…•ํ•˜์„ธ์š”
taesun1114์ž…๋‹ˆ๋‹ค.

443

๋ช…

์ˆ˜๊ฐ•์ƒ

21

๊ฐœ

์ˆ˜๊ฐ•ํ‰

10

๊ฐœ

๋‹ต๋ณ€

4.0

์ 

๊ฐ•์˜ ํ‰์ 

5

๊ฐœ

๊ฐ•์˜

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

23๊ฐœ โˆ™ (3์‹œ๊ฐ„ 19๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!