DevSecOps에 대하여

What is DevSecOps?

DevSecOps는 DevOps의 속도를 유지하면서 개발 전체 주기에 보안을 통합하는 문화이자 방법론입니다. Red Team으로서 가장 이상적인 시나리오는 공격할 취약점 자체가 없는, 처음부터 안전하게 만들어진 서비스입니다. DevSecOps가 바로 이를 위한 현실적인 해답이죠.

과거의 보안은 개발이 끝난 후 취약점을 찾는 방식이라, 이미 완성된 건물의 벽을 허무는 것과 같은 비효율이 있었습니다. DevSecOps는 'Shift Left' 개념을 통해 보안 활동을 개발 초기 단계로 이동시켜 이 문제를 해결합니다.

 graph TD
    A[Plan] --> B(Code);
    B --> C{Build};
    C --> D[Test];
    D --> E(Release);
    E --> F[Deploy];
    F --> G(Operate);
    G --> H{Monitor};
    H --> A;

    subgraph Security in All Phases
        direction LR
        S1[Threat Modeling] -- in --> A;
        S2[SAST / SCA] -- in --> B;
        S3[SAST] -- in --> C;
        S4[DAST / IAST] -- in --> D;
        S5[Config Scan] -- in --> F;
        S6[Runtime Security] -- in --> G;
    end

기획 단계의 위협 모델링부터 코드 작성 시점의 SAST, 테스트 단계의 DAST까지, 모든 과정에 보안을 자동화하여 녹여내는 것이 핵심입니다.

Why DevSecOps?

핵심은 속도입니다. 하루에도 여러 번 배포하는 CI/CD 환경에서, 개발 완료 후 진행하는 보안은 병목일 뿐입니다. DevSecOps는 보안 검증을 자동화하고 파이프라인에 통합하여 개발 속도를 유지하면서 안전성을 확보하는 방식입니다. SDLC 각 단계에 적용할 수 있는 보안 활동과 도구 예시는 다음과 같습니다.

  • Design: 위협 모델링 (e.g., OWASP Threat Dragon)
  • Develop: IDE 실시간 스캔 (e.g., SonarLint)
  • Build: SAST(정적 분석), SCA(오픈소스 분석) (e.g., SonarQube, dependency-check)
  • Test: DAST(동적 분석) (e.g., OWASP ZAP)
  • Deploy: IaC 및 컨테이너 이미지 스캔 (e.g., Trivy, tfsec)

How to measure maturity?

DevSecOps 도입 후에는 성숙도를 측정하고 꾸준히 개선해야 합니다. 이때 OWASP DevSecOps Verification Standard (DSOVS)가 유용한 기준이 됩니다.

DSOVS는 조직, 설계, 구현 등 다양한 영역에서 성숙도 평가 기준을 구체적으로 제시하여, 현재 수준을 진단하고 개선 로드맵을 설계하는 데 도움을 줍니다. 예를 들어 아래와 같은 항목들을 점검해볼 수 있습니다.

  • 모든 구성원이 정기적으로 보안 교육을 받는가? (ORG-002)
  • 기능 개발 시 보안 요구사항을 정의하고 추적하는가? (REQ-002)
  • 아키텍처 변경 시 위협 모델링을 수행하는가? (DES-002)
  • CI/CD 파이프라인에 보안 스캔이 자동화되어 있는가? (IMP-003)
  • 정기적으로 모의 해킹을 수행하는가? (VER-002)

Resources

관련된 여러 자료를 개인적으로 정리하고 위해 hahwul/DevSecOps란 프로젝트를 통해 관리합니다.

Conclusion

DevSecOps의 성공은 도구 도입을 넘어, 문화적 변화에 달려있습니다. 보안이 특정 팀의 업무가 아닌, 제품을 만드는 모두의 책임(Shared Responsibility)이 될 때 진정한 가치가 발현됩니다.

Red Team의 공격 관점과 DevSecOps의 방어 관점은 결국 '안전한 서비스'라는 하나의 목표로 이어집니다. 이 글이 여러분의 DevSecOps 여정을 시작하는 데 작은 도움이 되기를 바랍니다.