โ† CI/CD Security Operations

ISMS-P 2.10.9 ์•…์„ฑ์ฝ”๋“œ ํ†ต์ œ High Risk

์•…์„ฑ์ฝ”๋“œ ํ†ต์ œ๊ฐ€ ์ ์ ˆํžˆ ์ˆ˜ํ–‰๋˜๊ณ  ์žˆ๋Š”๊ฐ€?

ISMS-P 2.10.9๋Š” ์•…์„ฑ์ฝ”๋“œ๋กœ๋ถ€ํ„ฐ ์‹œ์Šคํ…œ์„ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•œ ํ†ต์ œ๋ฅผ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ๋Š” ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ์Šค์บ”๊ณผ ๋Ÿฐํƒ€์ž„ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ํ†ตํ•ด ์•…์„ฑ์ฝ”๋“œ ์˜ˆ๋ฐฉ, ํƒ์ง€, ๋Œ€์‘ ์ฒด๊ณ„๋ฅผ ์ž๋™ํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“‹

ISMS-P ์ธ์ฆ ๊ธฐ์ค€

ISMS-P 2.10.9 ์•…์„ฑ์ฝ”๋“œ ํ†ต์ œ ์š”๊ตฌ์‚ฌํ•ญ

2.10.9

์•…์„ฑ์ฝ”๋“œ ํ†ต์ œ

์ธ์ฆ ๊ธฐ์ค€ ์ •์˜

"๋ฐ”์ด๋Ÿฌ์Šค, ์›œ, ํŠธ๋กœ์ด๋ชฉ๋งˆ ๋“ฑ์˜ ์•…์„ฑ์ฝ”๋“œ๋กœ๋ถ€ํ„ฐ ์ •๋ณด์‹œ์Šคํ…œ์„ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์•…์„ฑ์ฝ”๋“œ ์˜ˆ๋ฐฉยทํƒ์ง€ยท๋Œ€์‘ ๋“ฑ์˜ ๋ณดํ˜ธ๋Œ€์ฑ…์„ ์ˆ˜๋ฆฝยท์ดํ–‰ํ•˜์—ฌ์•ผ ํ•œ๋‹ค."

๐Ÿ“Œ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ ์ ์šฉ ํฌ์ธํŠธ

  • ECR Enhanced Scanning (Inspector)
  • GuardDuty Malware Protection
  • Runtime Monitoring ํ™œ์„ฑํ™”
  • Security Hub ํ†ตํ•ฉ ๊ด€๋ฆฌ

โš ๏ธ ๋ฏธ์ค€์ˆ˜ ์‹œ ์‹ฌ์‚ฌ ์˜ํ–ฅ

  • ๊ฒฐํ•จ: ์•…์„ฑ์ฝ”๋“œ ์˜ˆ๋ฐฉ ๋Œ€์ฑ… ๋ฏธ์ˆ˜๋ฆฝ
  • ๊ฒฐํ•จ: ์ด๋ฏธ์ง€ ์Šค์บ” ๋ฏธ์ ์šฉ
  • ๊ถŒ๊ณ : ๋Ÿฐํƒ€์ž„ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ถ€์žฌ
๐Ÿ“„ KISA ISMS-P ์ธ์ฆ๊ธฐ์ค€ ์•ˆ๋‚ด์„œ โ†— โ˜๏ธ ECR Enhanced Scanning ๊ฐ€์ด๋“œ โ†—
๐Ÿ“ฐ

์‹ค์ œ ๋ณด์•ˆ ์‚ฌ๊ณ  ์‚ฌ๋ก€

์•…์„ฑ์ฝ”๋“œ ํ†ต์ œ ๋ฏธํก์œผ๋กœ ๋ฐœ์ƒํ•œ ์‹ค์ œ ์‚ฌ๊ณ 

2021.01-04

Codecov ๊ณต๊ธ‰๋ง ๊ณต๊ฒฉ

Codecov Bash Uploader ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์•…์„ฑ์ฝ”๋“œ๋กœ ๋ณ€์กฐ๋˜์–ด 3๊ฐœ์›”๊ฐ„ ํƒ์ง€ ๋ชปํ•จ. CI/CD ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ์™ธ๋ถ€ ์Šคํฌ๋ฆฝํŠธ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์ฆ ๋ถ€์žฌ๋กœ 29,000๊ฐœ ๊ธฐ์—… ํ”ผํ•ด.

๐Ÿ’ก ๊ตํ›ˆ: CI/CD ๋„๊ตฌ/์ด๋ฏธ์ง€ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์ฆ, ์„œ๋ช… ํ™•์ธ ํ•„์ˆ˜

์ถœ์ฒ˜: TechCrunch โ†—
2022-2024

Docker Hub ์•…์„ฑ ์ด๋ฏธ์ง€

๊ณต์‹ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์นญํ•œ ์•…์„ฑ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๊ฐ€ Docker Hub์— ์—…๋กœ๋“œ. ์ด๋ฏธ์ง€ ์ถœ์ฒ˜ ๊ฒ€์ฆ ๋ถ€์žฌ, ์Šค์บ” ๋ฏธ์ ์šฉ์œผ๋กœ ์ˆ˜๋ฐฑ๋งŒ ๋‹ค์šด๋กœ๋“œ.

๐Ÿ’ก ๊ตํ›ˆ: ๊ฒ€์ฆ๋œ Private ECR ์‚ฌ์šฉ, ์ง€์†์  ์ด๋ฏธ์ง€ ์Šค์บ” ํ•„์ˆ˜

์ถœ์ฒ˜: BleepingComputer โ†—
โšก

ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์˜ ์œ„ํ—˜

์ด๋ฏธ์ง€ ์Šค์บ” ์—†๋Š” ๋ฐฐํฌ๋กœ ์ธํ•œ ์œ„ํ—˜ ์ƒํ™ฉ

์Šค์บ” ์—†๋Š” ๋ฐฐํฌ (์œ„ํ—˜)

์ด๋ฏธ์ง€ ์Šค์บ”

โœ—

Malware ๋ณดํ˜ธ

โœ—

Runtime

โœ—

โ†‘ ์•…์„ฑ์ฝ”๋“œ ํ†ต์ œ ์—†์Œ

๊ณต๊ฐœ ์ด๋ฏธ์ง€ ์ง์ ‘ ์‚ฌ์šฉ โ†’ ์•…์„ฑ์ฝ”๋“œ ํฌํ•จ ๊ฐ€๋Šฅ, ์ทจ์•ฝ์  ๋ฏธํƒ์ง€

Enhanced Scanning (๊ถŒ์žฅ)

์ด๋ฏธ์ง€ ์Šค์บ”

โœ“

Malware ๋ณดํ˜ธ

โœ“

Runtime

โœ“

โ†‘ ์˜ˆ๋ฐฉยทํƒ์ง€ยท๋Œ€์‘ ํ†ตํ•ฉ

ECR + GuardDuty ํ†ตํ•ฉ โ†’ ๋นŒ๋“œ๋ถ€ํ„ฐ ๋Ÿฐํƒ€์ž„๊นŒ์ง€ ์ž๋™ํ™”

๐Ÿšจ

๋ฐœ๊ฒฌ ์‚ฌ๋ก€: Docker Hub ์ง์ ‘ ์ฐธ์กฐ ๋ฐ ์Šค์บ” ๋ฏธ์ ์šฉ

Dockerfile์—์„œ ๊ณต๊ฐœ ์ด๋ฏธ์ง€ ์ง์ ‘ ์‚ฌ์šฉ, ECR scan_on_push = false. ์•…์„ฑ์ฝ”๋“œ ํฌํ•จ ์ด๋ฏธ์ง€๊ฐ€ ๊ทธ๋Œ€๋กœ ๋ฐฐํฌ๋  ์œ„ํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ƒํƒœ - ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ์„ค์ •
# Dockerfile (๋ฌธ์ œ)
FROM python:3.11  # โš ๏ธ ๊ณต๊ฐœ ์ด๋ฏธ์ง€ ์ง์ ‘ ์‚ฌ์šฉ

# buildspec.yml (๋ฌธ์ œ)
phases:
  build:
    commands:
      - docker build -t myapp .
      - docker push $ECR_REPO/myapp:latest
      # ์ด๋ฏธ์ง€ ์Šค์บ” ์—†์Œ โ†’ ์•…์„ฑ์ฝ”๋“œ ํฌํ•จ ๊ฐ€๋Šฅ
      # ์ทจ์•ฝ์  ๊ฒ€์‚ฌ ์—†์Œ โ†’ ๋ฐฐํฌ ํ›„ ์นจํ•ด ์œ„ํ—˜

ISMS-P 2.10.9 ์œ„๋ฐ˜ ์‚ฌํ•ญ

โ—

์•…์„ฑ์ฝ”๋“œ ์˜ˆ๋ฐฉ ๋Œ€์ฑ… ๋ฏธ์ˆ˜๋ฆฝ

โ—

์ด๋ฏธ์ง€ ์Šค์บ” ๋ฏธ์ ์šฉ

โ—

๋Ÿฐํƒ€์ž„ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ถ€์žฌ

โ—

์ทจ์•ฝ์  ๋ฐœ๊ฒฌ ํ›„ ๋Œ€์‘ ์ ˆ์ฐจ ๋ฏธ์ˆ˜๋ฆฝ

๐Ÿ”

์‚ฌ์ „ ํƒ์ง€ ๋ฐฉ์•ˆ

IaC ์ฝ”๋“œ ๋ถ„์„ ๊ธฐ๋ฐ˜ ๋ฐฐํฌ ์ „ ์ ๊ฒ€

์•…์„ฑ์ฝ”๋“œ ํ†ต์ œ ํƒ์ง€ ๋กœ์ง

ํŒ๋‹จ ์กฐ๊ฑด ์กฐ๊ฑด ๊ฐ’ ๊ฒฐ๊ณผ
๐Ÿ” ECR ์Šค์บ” ์„ค์ •
scan_on_push = false High - ์ฐจ๋‹จ + Slack ์•Œ๋ฆผ
scan_on_push = true + Inspector ํ™œ์„ฑํ™” โœ“ ํ†ต๊ณผ
๐Ÿ›ก๏ธ GuardDuty ์„ค์ •
malware_protection ๋ฏธ์„ค์ • High - ์ฐจ๋‹จ + Slack ์•Œ๋ฆผ
runtime_monitoring ๋ฏธ์„ค์ • Medium - ์•Œ๋ฆผ๋งŒ
๐Ÿ“ฆ ์ด๋ฏธ์ง€ ์ถœ์ฒ˜
Docker Hub ์ง์ ‘ ์ฐธ์กฐ (ECS Task Definition) High - ๋ฏธ๊ฒ€์ฆ ์ด๋ฏธ์ง€
๋นŒ๋“œ ํŒŒ์ดํ”„๋ผ์ธ์— ์ด๋ฏธ์ง€ ์Šค์บ” ๋‹จ๊ณ„ ๋ฏธํฌํ•จ High - ๋นŒ๋“œ ์‹œ ๊ฒ€์‚ฌ ๋ฏธ์ˆ˜ํ–‰
๐Ÿ””

์‚ฌํ›„ ๋Œ€์‘ ๋ฐฉ์•ˆ

๋Ÿฐํƒ€์ž„ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์ด์ƒํ–‰์œ„ ํƒ์ง€

์•…์„ฑ์ฝ”๋“œ ๋Ÿฐํƒ€์ž„ ์ด๋ฒคํŠธ ๋Œ€์‘ ๋กœ์ง

ํŒ๋‹จ ์กฐ๊ฑด ์กฐ๊ฑด ๊ฐ’ ๊ฒฐ๊ณผ
๐Ÿ“ฆ IaC ๊ด€๋ฆฌ ์—ฌ๋ถ€
Terraform State์— ์กด์žฌ ์ •์ƒ IaC ๋ฐฐํฌ โœ“ ์Šค์บ” ๊ฒฐ๊ณผ๋งŒ ์ €์žฅ
Drift ๋ฐœ์ƒ ์Šค์บ” ์„ค์ • ๋ณ€๊ฒฝ โ†’ ์ƒ์„ธ ๋ถ„์„
โš ๏ธ ํƒ์ง€ ์ด๋ฒคํŠธ

(GuardDuty/Inspector)

MaliciousFile CryptoCurrency Critical - ์ปจํ…Œ์ด๋„ˆ ์ฆ‰์‹œ ๊ฒฉ๋ฆฌ
Inspector CRITICAL ์ด๋ฏธ์ง€ ์ทจ์•ฝ์  Critical - ๋ฐฐํฌ ์ฐจ๋‹จ + ์ด๋ฏธ์ง€ ๊ต์ฒด
Runtime:Container/... ์˜์‹ฌ ํ–‰์œ„ Medium - Security Hub + ์ถ”์ 

๋ชจ๋“  ์•Œ๋ฆผ์— ํฌํ•จ๋˜๋Š” ์ •๋ณด

์˜ํ–ฅ๋ฐ›๋Š” ์ด๋ฏธ์ง€/์ปจํ…Œ์ด๋„ˆ ์ทจ์•ฝ์  CVE ID ์‹ฌ๊ฐ๋„ ๋ฐ CVSS ์ ์ˆ˜ ์ด๋ฏธ์ง€ ๊ต์ฒด ๊ฐ€์ด๋“œ
โœ“

์กฐ์น˜ ๊ฐ€์ด๋“œ

์ฆ‰์‹œ ์ ์šฉ ๊ฐ€๋Šฅํ•œ ๊ถŒ์žฅ ์„ค์ •

โŒ ์‚ญ์ œ

scan_on_push = false ๋ฐ Docker Hub ์ง์ ‘ ์ฐธ์กฐ

โœ“ ์ ์šฉ

ECR Enhanced Scanning + GuardDuty Runtime

๊ถŒ์žฅ ์„ค์ • (๋ณต์‚ฌํ•˜์—ฌ ์ ์šฉ)
malware-protection.tf
# 1. ECR Repository with Enhanced Scanning
resource "aws_ecr_repository" "app" {
  name = "myapp"
  image_tag_mutability = "IMMUTABLE"  # ์ด๋ฏธ์ง€ ๋ณ€์กฐ ๋ฐฉ์ง€

  image_scanning_configuration {
    scan_on_push = true  # Push ์‹œ ์ž๋™ ์Šค์บ”
  }
}

# 2. Inspector V2 ํ™œ์„ฑํ™” (ECR Enhanced Scanning)
resource "aws_inspector2_enabler" "ecr_scanning" {
  account_ids    = [data.aws_caller_identity.current.account_id]
  resource_types = ["ECR"]
}

# 3. GuardDuty Malware Protection
resource "aws_guardduty_detector" "main" {
  enable = true

  datasources {
    malware_protection {
      scan_ec2_instance_with_findings {
        ebs_volumes { enable = true }
      }
    }
  }
}

# 4. GuardDuty Runtime Monitoring (ECS)
resource "aws_guardduty_detector_feature" "runtime" {
  detector_id = aws_guardduty_detector.main.id
  name        = "RUNTIME_MONITORING"
  status      = "ENABLED"

  additional_configuration {
    name   = "ECS_FARGATE_AGENT_MANAGEMENT"
    status = "ENABLED"
  }
}

๐Ÿ’ก ํ•ต์‹ฌ: ECR Enhanced Scanning์€ OS์™€ ์–ธ์–ด ํŒจํ‚ค์ง€ ์ทจ์•ฝ์ ์„ ๋ชจ๋‘ ํƒ์ง€ํ•ฉ๋‹ˆ๋‹ค. GuardDuty Runtime Monitoring์€ ECS Fargate์—์„œ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ ์ค‘ ์•…์„ฑ ํ–‰์œ„๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํƒ์ง€ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“š ์ฐธ๊ณ  ์ž๋ฃŒ

๐Ÿ“˜ ECR Enhanced Scanning ๊ฐ€์ด๋“œ โ†— ๐Ÿ“˜ GuardDuty Runtime Monitoring โ†— ๐Ÿ“˜ GuardDuty Malware Protection โ†—
๐Ÿ“Š

๋ฆฌํฌํŠธ ๋ฐฉ์•ˆ

ISMS-P ์‹ฌ์‚ฌ ์ฆ์  ๋ฐ ์ •๊ธฐ ๋ณด๊ณ 

๐Ÿ“‹ ์ง„๋‹จ ํ•ญ๋ชฉ

  • ECR ์ด๋ฏธ์ง€ ์Šค์บ” ๊ฒฐ๊ณผ
  • Critical/High ์ทจ์•ฝ์  ์ˆ˜
  • ์ทจ์•ฝ์  ์กฐ์น˜์œจ (SLA ์ค€์ˆ˜)
  • GuardDuty ํƒ์ง€ ์ด๋ ฅ
  • ๋ฐฐํฌ ์ฐจ๋‹จ ์ฆ์ 

๐Ÿ“… ๋ฆฌํฌํŠธ ์ฃผ๊ธฐ

์‹ค์‹œ๊ฐ„

Critical ๋ฐœ๊ฒฌ ์‹œ ์ฆ‰์‹œ ์•Œ๋ฆผ

์ฃผ๊ฐ„

์ทจ์•ฝ์  ํ˜„ํ™ฉ ์š”์•ฝ

์›”๊ฐ„

ISMS-P ์ฆ์  ๋ฆฌํฌํŠธ

๐Ÿ“ค ๋ฐœ์†ก ๋ฐ ์ €์žฅ

๋ฐœ์†ก ์ฑ„๋„

Email Slack

์ €์žฅ์†Œ

S3 (5๋…„ ๋ณด๊ด€)
โšก

BSG ์ฐจ๋ณ„์ 

๊ธฐ์กด ๋„๊ตฌ๊ฐ€ ๋†“์น˜๋Š” ์ ๊ฒ€ ์˜์—ญ

๊ธฐ์กด ๋„๊ตฌ ๋ฐฉ์‹

๊ธฐ๋ณธ ์Šค์บ”๋งŒ ๊ฒ€์‚ฌ

  • ECR ๊ธฐ๋ณธ ์Šค์บ”๋งŒ ํ™•์ธ
  • OS ์ทจ์•ฝ์ ๋งŒ ํƒ์ง€
  • ์–ธ์–ด ํŒจํ‚ค์ง€ ์ทจ์•ฝ์  ๋ฏธํƒ์ง€

ํ•œ๊ณ„: GuardDuty ์—ฐ๋™ ์—ฌ๋ถ€ ๋ฏธํ™•์ธ, ๋Ÿฐํƒ€์ž„ ๋ชจ๋‹ˆํ„ฐ๋ง ์„ค์ • ๋ฏธ๊ฒ€์‚ฌ

BSG ์ ‘๊ทผ ๋ฐฉ์‹

ISMS-P ๊ด€์  ํ†ตํ•ฉ ์ ๊ฒ€

  • ECR + GuardDuty + Runtime ํ†ตํ•ฉ ๊ฒ€์ฆ
  • Enhanced Scanning ํ™œ์„ฑํ™” ์—ฌ๋ถ€ ํ™•์ธ
  • ์™ธ๋ถ€ ์ด๋ฏธ์ง€ ์ง์ ‘ ์ฐธ์กฐ ํƒ์ง€

์ฐจ๋ณ„์ : ์˜ˆ๋ฐฉ โ†’ ํƒ์ง€ โ†’ ๋Œ€์‘ โ†’ ์ฆ์  ์ „ ๊ณผ์ • ์ž๋™ํ™”

โ† ISMS-P ์ธ์ฆ ์‹œ๋‚˜๋ฆฌ์˜ค๋กœ ๋Œ์•„๊ฐ€๊ธฐ