โ† CI/CD Pipeline Operations

ISMS-P 2.8.2 ๋ณด์•ˆ ์š”๊ตฌ์‚ฌํ•ญ ๊ฒ€ํ†  ๋ฐ ์‹œํ—˜ High Risk

๋ณด์•ˆ ์š”๊ตฌ์‚ฌํ•ญ ๊ฒ€ํ†  ๋ฐ ์‹œํ—˜์ด ์ˆ˜ํ–‰๋˜๊ณ  ์žˆ๋Š”๊ฐ€?

ISMS-P 2.8.2๋Š” ์ •๋ณด์‹œ์Šคํ…œ์ด ๋ณด์•ˆ ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ผ ๊ตฌํ˜„๋˜์—ˆ๋Š”์ง€ ๊ฒ€ํ† ํ•˜๋„๋ก ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. DAST๋ฅผ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์— ํ†ตํ•ฉํ•˜๊ณ , ๋ฐœ๊ฒฌ๋œ ์ทจ์•ฝ์ ์„ ์ž๋™์œผ๋กœ ์ถ”์ ํ•˜์—ฌ ๊ฐœ์„ ์กฐ์น˜๋ฅผ ๊ด€๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“‹

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

ISMS-P 2.8.2 ๋ณด์•ˆ ์š”๊ตฌ์‚ฌํ•ญ ๊ฒ€ํ†  ๋ฐ ์‹œํ—˜

2.8.2

๋ณด์•ˆ ์š”๊ตฌ์‚ฌํ•ญ ๊ฒ€ํ†  ๋ฐ ์‹œํ—˜

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

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

๐Ÿ“Œ ๋ณด์•ˆ ์‹œํ—˜ ์œ ํ˜•

  • DAST: ๋™์  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณด์•ˆ ํ…Œ์ŠคํŠธ
  • Penetration Test: ์นจํˆฌ ํ…Œ์ŠคํŠธ
  • Acceptance Test: ๋ณด์•ˆ ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ
  • Inspector: ์ธํ”„๋ผ ์ทจ์•ฝ์  ์Šค์บ”
  • Security Hub: ํ†ตํ•ฉ ๋ณด์•ˆ ๊ด€๋ฆฌ

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

  • ๊ฒฐํ•จ: ๋ณด์•ˆ ์š”๊ตฌ์‚ฌํ•ญ ์‹œํ—˜ ๋ฏธ์ˆ˜ํ–‰
  • ๊ฒฐํ•จ: ์ทจ์•ฝ์  ์ ๊ฒ€ ์—†์ด ์šด์˜ ์ด๊ด€
  • ๊ฒฐํ•จ: ๋ฐœ๊ฒฌ๋œ ์ทจ์•ฝ์  ๋ฏธ์กฐ์น˜
  • ๊ถŒ๊ณ : ๊ฐœ์„ ๊ณ„ํš ๋ฏธ์ˆ˜๋ฆฝ, PIA ๋ฏธ์‹ค์‹œ
๐Ÿ“„ KISA ISMS-P ์ธ์ฆ๊ธฐ์ค€ ์•ˆ๋‚ด์„œ โ†— ๐Ÿ”’ OWASP Web Security Testing Guide โ†—
๐Ÿ“ฐ

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

๋ณด์•ˆ ์‹œํ—˜ ๋ฏธ์ˆ˜ํ–‰์œผ๋กœ ๋ฐœ์ƒํ•œ ์‹ค์ œ ์‚ฌ๊ณ 

2023.05

MoveIt Transfer - 2,600๊ฐœ ์กฐ์ง, 8,300๋งŒ ๋ช… ํ”ผํ•ด

Progress Software MoveIt Transfer์˜ SQL ์ธ์ ์…˜ ์ œ๋กœ๋ฐ์ด ์ทจ์•ฝ์ (CVE-2023-34362). DAST ๋ฐ ์นจํˆฌ ํ…Œ์ŠคํŠธ ๋ถ€์žฌ๋กœ ์ทจ์•ฝ์  ๋ฏธํƒ์ง€, Cl0p ๋žœ์„ฌ์›จ์–ด ๊ทธ๋ฃน์ด ๋Œ€๊ทœ๋ชจ ์•…์šฉ.

๐Ÿ’ก ๊ตํ›ˆ: ์ •๊ธฐ์  DAST ์ˆ˜ํ–‰, ์›น ์ทจ์•ฝ์  ์ž๋™ ๊ฒ€์‚ฌ ํ•„์ˆ˜

์ถœ์ฒ˜: NVD CVE-2023-34362 โ†—
2023.04

PaperCut - ๋‹ค์ˆ˜ ๋žœ์„ฌ์›จ์–ด ๊ทธ๋ฃน ์•…์šฉ

ํ”„๋ฆฐํŠธ ๊ด€๋ฆฌ ์„œ๋ฒ„์˜ ์ธ์ฆ ์šฐํšŒ ๋ฐ ์›๊ฒฉ์ฝ”๋“œ์‹คํ–‰ ์ทจ์•ฝ์ (CVE-2023-27350). ๋ณด์•ˆ ์‹œํ—˜ ๋ฏธ์ˆ˜ํ–‰์œผ๋กœ ์ธ์ฆ ์šฐํšŒ ์ทจ์•ฝ์  ๋ฏธ๋ฐœ๊ฒฌ, Bl00dy, Cl0p, LockBit ๊ทธ๋ฃน์ด ๊ณต๊ฒฉ.

๐Ÿ’ก ๊ตํ›ˆ: ์ธ์ฆ/์ธ๊ฐ€ ๋กœ์ง ํ…Œ์ŠคํŠธ ํ•„์ˆ˜, ์ธ์ˆ˜ ์ „ ์ทจ์•ฝ์  ์ ๊ฒ€

์ถœ์ฒ˜: NVD CVE-2023-27350 โ†—
โšก

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

DAST ์—†๋Š” CI/CD ํŒŒ์ดํ”„๋ผ์ธ์˜ ์œ„ํ—˜

DAST ์—†๋Š” ํŒŒ์ดํ”„๋ผ์ธ (์œ„ํ—˜)

# ๋ฌธ์ œ: ๋ณด์•ˆ ์‹œํ—˜ ์ „๋ฌด
name: Deploy to Production
on: push
jobs:
  test:
    steps:
      - run: npm test  # ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ๋งŒ ์ˆ˜ํ–‰
  deploy:
    needs: test
    steps:
      - run: aws ecs update-service --cluster prod
      # DAST ์—†์Œ -> ๋Ÿฐํƒ€์ž„ ์ทจ์•ฝ์  ๋ฏธํƒ์ง€
      # ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ ์—†์Œ -> ๋ณด์•ˆ ์š”๊ตฌ์‚ฌํ•ญ ๋ฏธ๊ฒ€์ฆ
      # ๋ฐœ๊ฒฌ์‚ฌํ•ญ ๊ด€๋ฆฌ ์—†์Œ -> ์ทจ์•ฝ์  ๋ฐฉ์น˜

๋ณด์•ˆ ์‹œํ—˜ ๋‹จ๊ณ„ ๋ถ€์žฌ โ†’ ๋Ÿฐํƒ€์ž„ ์ทจ์•ฝ์ ์ด ์šด์˜ ํ™˜๊ฒฝ์— ๋ฐฐํฌ๋จ

DAST ํ†ตํ•ฉ ํŒŒ์ดํ”„๋ผ์ธ (๊ถŒ์žฅ)

jobs:
  deploy-staging:     # ์Šคํ…Œ์ด์ง• ๋ฐฐํฌ
  dast:               # OWASP ZAP Full Scan
    needs: deploy-staging
  security-test:      # ๋ณด์•ˆ ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ
  inspector:          # AWS Inspector ์Šค์บ”

  deploy-production:
    needs: [dast, security-test, inspector]
    # ๋ชจ๋“  ๋ณด์•ˆ ์‹œํ—˜ ํ†ต๊ณผ ํ›„์—๋งŒ ์šด์˜ ๋ฐฐํฌ

๋ณด์•ˆ ์‹œํ—˜ ๋‹จ๊ณ„ ํ†ตํ•ฉ โ†’ ์ทจ์•ฝ์  ๋ฐœ๊ฒฌ ์‹œ ์šด์˜ ๋ฐฐํฌ ์ž๋™ ์ฐจ๋‹จ

๐Ÿšจ

ํ•ต์‹ฌ ์š”์•ฝ

์Šคํ…Œ์ด์ง• ํ™˜๊ฒฝ์— DAST(OWASP ZAP)๋ฅผ ์‹คํ–‰ํ•˜๊ณ , Critical/High ์ทจ์•ฝ์  ๋ฐœ๊ฒฌ ์‹œ ์šด์˜ ๋ฐฐํฌ๋ฅผ ์ž๋™ ์ฐจ๋‹จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

โ—

๋ณด์•ˆ ์š”๊ตฌ์‚ฌํ•ญ ์‹œํ—˜ ์ ˆ์ฐจ ๋ฏธ์ˆ˜ํ–‰

โ—

์ตœ์‹  ๋ณด์•ˆ์ทจ์•ฝ์  ์ ๊ฒ€ ๋ฏธ์ˆ˜ํ–‰

โ—

๋ฐœ๊ฒฌ๋œ ์ทจ์•ฝ์  ๊ฐœ์„ ์กฐ์น˜ ๋ฏธ์ดํ–‰

โ—

์ทจ์•ฝํ•œ ์‹œ์Šคํ…œ์ด ์šด์˜์— ๋ฐฐํฌ๋  ์œ„ํ—˜

๐Ÿ”

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

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

CI/CD ํŒŒ์ดํ”„๋ผ์ธ ๋ณด์•ˆ ์‹œํ—˜ ํƒ์ง€ ๋กœ์ง

ํƒ์ง€ ๋Œ€์ƒ ํŒ๋‹จ ์กฐ๊ฑด ๊ฒฐ๊ณผ
๐Ÿ” CI/CD Pipeline
DAST ๋‹จ๊ณ„ ๋ฏธํฌํ•จ High - ๋Ÿฐํƒ€์ž„ ์ทจ์•ฝ์  ๋ฏธํƒ์ง€
๐Ÿงช CI/CD Pipeline
๋ณด์•ˆ ํ…Œ์ŠคํŠธ ์Šคํ…Œ์ด์ง€ ์—†์Œ High - ๋ณด์•ˆ ์‹œํ—˜ ๋ฏธ์ˆ˜ํ–‰
๐Ÿ•ท๏ธ CodeBuild
OWASP ZAP ๋ฏธ์„ค์ • High - ์›น ์ทจ์•ฝ์  ๋ฏธํƒ์ง€
๐Ÿ›ก๏ธ Security Hub
ํ†ตํ•ฉ ๋ฏธ์„ค์ • Medium - ๋ฐœ๊ฒฌ์‚ฌํ•ญ ์ค‘์•™ ๊ด€๋ฆฌ ๋ถˆ๊ฐ€
๐Ÿ””

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

๋Ÿฐํƒ€์ž„ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋ฐœ๊ฒฌ์‚ฌํ•ญ ๊ด€๋ฆฌ

Runtime ๋ณด์•ˆ ์‹œํ—˜ ์ด๋ฒคํŠธ ๋Œ€์‘ ๋กœ์ง

ํƒ์ง€ ์‹œ๋‚˜๋ฆฌ์˜ค ๋Œ€์‘ ๋ฐฉ์•ˆ ๊ฒฐ๊ณผ
๐Ÿ•ท๏ธ OWASP ZAP Critical ๋ฐœ๊ฒฌ
SQL Injection, XSS ๋“ฑ ํƒ์ง€ Critical - ๋ฐฐํฌ ์ž๋™ ์ฐจ๋‹จ
๐Ÿ”ฌ Inspector ์ทจ์•ฝ์  ์•Œ๋ฆผ
์ธํ”„๋ผ/์ปจํ…Œ์ด๋„ˆ ์ทจ์•ฝ์ , ์กฐ์น˜ ํ•„์š” High - Jira ํ‹ฐ์ผ“ ์ž๋™ ์ƒ์„ฑ
โฐ Security Hub ๋ฏธํ•ด๊ฒฐ Finding 30์ผ+
SLA ์œ„๋ฐ˜, ๊ฐœ์„ ์กฐ์น˜ ์ดํ–‰ ํ•„์š” High - Slack ์—์Šค์ปฌ๋ ˆ์ด์…˜

์ž๋™ ๋Œ€์‘ ์ฒด๊ณ„

Security Gate: Critical/High ์‹œ ๋ฐฐํฌ ์ฐจ๋‹จ Auto Ticketing: Jira ํ‹ฐ์ผ“ ์ž๋™ ์ƒ์„ฑ SLA ์ถ”์ : Critical 3์ผ, High 7์ผ
โœ“

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

GitHub Actions DAST ํ†ตํ•ฉ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑ

DAST ํ†ตํ•ฉ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑ (๋ณต์‚ฌํ•˜์—ฌ ์ ์šฉ)
.github/workflows/security-testing.yml
# .github/workflows/security-testing.yml
name: Security Testing Pipeline
on:
  push:
    branches: [main]

jobs:
  # 1. ์Šคํ…Œ์ด์ง• ๋ฐฐํฌ
  deploy-staging:
    runs-on: ubuntu-latest
    outputs:
      staging_url: ${{ steps.deploy.outputs.url }}
    steps:
      - name: Deploy to Staging
        id: deploy
        run: |
          aws ecs update-service --cluster staging --service app
          echo "url=https://staging.example.com" >> $GITHUB_OUTPUT

  # 2. DAST - OWASP ZAP Full Scan
  dast:
    needs: deploy-staging
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: OWASP ZAP Full Scan
        uses: zaproxy/action-full-scan@v0.10.0
        with:
          target: ${{ needs.deploy-staging.outputs.staging_url }}
          rules_file_name: '.zap/rules.tsv'
          fail_action: true  # High/Critical ์‹œ ์‹คํŒจ

  # 3. ๋ณด์•ˆ ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ
  security-acceptance:
    needs: deploy-staging
    runs-on: ubuntu-latest
    steps:
      - name: Authentication Tests
        run: pytest tests/security/test_auth_bypass.py -v
      - name: Input Validation Tests
        run: pytest tests/security/test_sql_injection.py -v

  # 4. AWS Inspector ์Šค์บ”
  inspector:
    needs: deploy-staging
    runs-on: ubuntu-latest
    steps:
      - name: Check Inspector Findings
        run: |
          CRITICAL=$(aws inspector2 list-findings \
            --filter-criteria '{"severity":[{"comparison":"EQUALS","value":"CRITICAL"}]}' \
            --query 'findings | length(@)')
          if [ "$CRITICAL" -gt 0 ]; then exit 1; fi

  # 5. ์šด์˜ ๋ฐฐํฌ (๋ชจ๋“  ์‹œํ—˜ ํ†ต๊ณผ ํ›„)
  deploy-production:
    needs: [dast, security-acceptance, inspector]
    runs-on: ubuntu-latest
    environment: production
    steps:
      - name: Deploy to Production
        run: aws ecs update-service --cluster prod --service app

๐Ÿ’ก ํ•ต์‹ฌ: ์Šคํ…Œ์ด์ง•์— ๋ฐฐํฌ ํ›„ DAST, ๋ณด์•ˆ ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ, Inspector๋ฅผ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•˜๊ณ  ๋ชจ๋“  ๋ณด์•ˆ ์‹œํ—˜ ํ†ต๊ณผ ์‹œ์—๋งŒ ์šด์˜ ๋ฐฐํฌ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

DAST (OWASP ZAP) Security Acceptance AWS Inspector Security Hub Auto Ticketing

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

๐Ÿ•ท๏ธ OWASP ZAP Full Scan Guide โ†— ๐Ÿ”ฌ AWS Inspector ์‚ฌ์šฉ ๊ฐ€์ด๋“œ โ†—
๐Ÿ“Š

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

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

๐Ÿ“‹ ๋ณด์•ˆ ์‹œํ—˜ ์ ˆ์ฐจ ๋ฌธ์„œ

  • DAST ์‹คํ–‰ ์ ˆ์ฐจ
  • ๋ณด์•ˆ ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ
  • ์นจํˆฌ ํ…Œ์ŠคํŠธ ๊ณ„ํš์„œ
  • ์‹œํ—˜ ๊ธฐ์ค€ ๋ฐ ํŒ์ • ๊ธฐ์ค€

๐Ÿ”ง ์ทจ์•ฝ์  ๋ฐœ๊ฒฌ ๋ฐ ์กฐ์น˜ ์ด๋ ฅ

  • OWASP ZAP ์Šค์บ” ๊ฒฐ๊ณผ
  • Jira ํ‹ฐ์ผ“ ์ƒ์„ฑ ๋ฐ ํ•ด๊ฒฐ ์ด๋ ฅ
  • ์ทจ์•ฝ์  ์กฐ์น˜ ์™„๋ฃŒ ์ฆ์ 
  • SLA ์ค€์ˆ˜ ํ˜„ํ™ฉ

โœ… ๋ฐฐํฌ ์Šน์ธ ์ฆ์ 

  • Security Hub ๋Œ€์‹œ๋ณด๋“œ
  • ๋ณด์•ˆ ์‹œํ—˜ ํ†ต๊ณผ ํ›„ ๋ฐฐํฌ ๋กœ๊ทธ
  • ๋ฐฐํฌ ์Šน์ธ ๊ธฐ๋ก
  • ์›”๊ฐ„ ๋ณด์•ˆ ์‹œํ—˜ ๋ฆฌํฌํŠธ
โšก

BSG ์ฐจ๋ณ„์ 

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

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

์ˆ˜๋™ ์นจํˆฌ ํ…Œ์ŠคํŠธ

  • ์ •๊ธฐ ์ ๊ฒ€ ์‹œ์—๋งŒ ์ˆ˜ํ–‰
  • ๋ฐฐํฌ๋งˆ๋‹ค ํ…Œ์ŠคํŠธ ๋ถˆ๊ฐ€
  • ๋ฐœ๊ฒฌ์‚ฌํ•ญ ์ˆ˜๋™ ์ถ”์ 
  • ๊ฐœ์„ ์กฐ์น˜ ์ด๋ ฅ ๊ด€๋ฆฌ ๋ถˆ๊ฐ€

ํ•œ๊ณ„: ์ˆ˜๋™ ์ ๊ฒ€์œผ๋กœ ๋ฐฐํฌ ์‹œ๋งˆ๋‹ค ๋ณด์•ˆ ์‹œํ—˜ ์ˆ˜ํ–‰ ๋ถˆ๊ฐ€

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

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

  • DAST + Inspector + Security Hub ํ†ตํ•ฉ
  • ํŒŒ์ดํ”„๋ผ์ธ ์„ค์ • ๋ถ„์„, DAST ์ ์šฉ ์—ฌ๋ถ€ ๊ฒ€์ฆ
  • ์ทจ์•ฝ์  ์ž๋™ ํƒ์ง€, ํ‹ฐ์ผ“ ์ƒ์„ฑ, SLA ์ถ”์ 
  • ๋ณด์•ˆ ์‹œํ—˜ ์ปค๋ฒ„๋ฆฌ์ง€ ๋Œ€์‹œ๋ณด๋“œ

์ฐจ๋ณ„์ : ๋ฐฐํฌ ์‹œ ์ž๋™ ์‹œํ—˜ + ๋ฐœ๊ฒฌ์‚ฌํ•ญ ์ž๋™ ๊ด€๋ฆฌ + ์ฆ์  ์ž๋™ํ™”

โ† CI/CD Operations๋กœ ๋Œ์•„๊ฐ€๊ธฐ