맨땅에 코딩
보안운영관리/인프라/컨설팅 - DevSecOps 본문
*화이트햇 스쿨 2기에서 이수한 이론교육 내용을 바탕으로 작성되었습니다.
1. DevOps란 무엇인가
DevOps란?
- 'Development(개발)'과 'Operation(운영)'의 합성어
- 개발팀과 운영팀이 협력하여 애플리케이션/서비스를 더욱 빠르고 안정적으로 사용자에게 제공하기 위한 문화, 프로세스, 도구들의 집합

DevOps Life Cycle

- Plan: 비지니스적 요구사항을 확인하고 고객들의 피드백을 수용하여 새로운 프로젝트를 기획하고 이를 선보이기 위한 로드맵을 구성하는 시점
- Code: 실질적인 개발 단계로, 여러 플러그인을 이용하여 개발을 효율적으로 할 수 있도록 환경을 구성하고 개발을 진행함
- Build: 개발이 마무리되면 코드를 Repository에 commit하고, 빌드를 진행함
- Test: 빌드가 마무리되면, 운영환경에 이를 배포하기 전에 애플리케이션에 오류는 없는지, 보안적인 문제점은 없는지, 부하로 인한 문제는 없는지 등 서비스 가용성 확보를 위한 테스트를 진행함
- Release: 테스트까지 모두 마쳤다면, 운영환경에 배포할 빌드 아티펙트를 준비함
- Deploy: 운영 환경 인프라에 배포, 이때, IaC 도구들은 운영 환경 인프라를 구성하는데 도움을 줄 수 있음
- Operate: 이제 운영환경에 배포가 완료됨, 서비스를 운영하기 위한 설정을 진행함
- Monitor: 사용자로 인해 발생하는 로그, 애플리케이션 엑세스/에러 로그, 부하 관련 로그 등을 모니터링 하며, 서비스 가용성을 확보함
7C's of DevOps

- Continuous Integration
- 전체 DevOps 라이프사이클에서 가장 중요한 단계 중 하나
- 새롭게 개발된 코드가 기존 코드에 통합되는 과정
- 통합될 때마다 자동으로 코드 빌드, 테스트가 수행됨
- 개발자 피드백 및 코드 품질 확보에 초점이 맞춰진 과정
- Continuous Deployment
- 전체 DevOps 라이프사이클에서 가장 중요한 단계 중 하나
- 빌드된 애플리케이션을 자동으로 배포함
- 배포 주기 단축, 사용자 가치 실현에 초점이 맞추어져 있음
기존 방식과의 차이
- 기존 방식
- 개발팀과 인프라 운영팀이 명확히 구분됨
- 개발팀이 인프라 운영팀에 빌드된 앱을 배포해 줄 것을 요청하면, 이를 담당자가 SCP, FTP 등을 이용해 수동으로 배포함
- 중단 배포 방식을 주로 사용하여, 배포 주기가 긴 경우가 많음
- 인프라를 수동으로 설치 및 관리함
- DevOps
- 개발팀과 운영팀이 지속적으로 커뮤니케이션하고 협업을 수행함
- CI/CD 파이프라인을 구성하여, 개발부터 배포까지의 과정을 자동화 할 수 있음
- 무중단 배포 방식을 주로 사용하여, 배포 주기가 짧음
- IaC 도구를 이용하여 인프라 설치 및 관리를 자동으로 수행함
2. DevOps 구성하기

3. DevSecOps란 무엇인가
DevSecOps의 정의
- Development(개발), Security(보안), Operation(운영)을 결합한 용어
- 애플리케이션의 전체 라이프사이클(개발, 테스트, 배포, 운영)에 걸쳐 보안을 고려하는 프로세스와 문화적 사고 방식

주요 예시


Systems Manager
- AWS 리소스의 가시성과 운영 체계를 향상시키기 위한 관리 서비스로, 인프라 구성 및 자동화, 성능 최적화, 패치 관리 등을 단일 인터페이스에서 진행할 수 있음

Inspector
소프트웨어 취약성 및 의도하지 않은 네트워크 노출에 대해 AWS 워크로드를 지속적으로 스캔하는 자동화된 취약성 관리 서비스

주요 예시

DAST(Dynamic Application Security Testing)
실행 중인 애플리케이션을 실제 공격하듯 테스트하여 취약점을 찾아내는 방식
대표 도구: Burp Suite, OWASP ZAP, IBM AppScan
SAST(Static Application Security Testing)
소스코드 정적 분석을 통해 보안 이슈를 발견하는 방식
대표 도구: SonarQube, Veracode, Checkmarx
SCA(Software Composition Analysis)
오픈소스 라이브러리에 대한 위험성을 분석하는 기술
대표 도구: Synk, Black Duck, Whitesource, OWASP dependency-check
WAF(Web Application Firewall)
웹 애플리케이션을 보호하기 위한 방화벽으로 일반적인 방화벽과 달리 HTTP, HTTPS 패킷 내 내용을 패턴기반으로 탐지 및 차단할 수 있음
대표 도구: ModSecurity, Cloudflare WAF, Imperva WAF, AWS WAF
SIEM(Security Information and Event Management)
네트워크, 서버, 데이터베이스, 애플리케이션 등에서 생성되는 다양한 보안
이벤트와 로그 데이터를 실시간으로 수집하고, 이를 단일한 대시보드에 통합하여 가시화하고 분석하는 도구
대표 도구: Splunk, IBM Qradar, Trelix

AMI
- EC2 인스턴스를 시작하는 데 필요한 정보를 제공하는 템플릿
- 이 정보에는 운영체제(OS), 애플리케이션 서버, 애플리케이션 등이 포함될 수 있음
- 사용자는 자신의 요구 사항에 맞게 AMI를 선택하고, 이를 기반으로 새 EC2 인스턴스를 시작할 수 있음
Provisioning
- 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것
EC2 Image Builder
- AWS에서 제공하는 서비스로서, 사용자가 자동화된 파이프라인을 통해 커스터마이즈 된 서버 이미지(AMI)를 쉽게 생성하고 관리할 수 있게 하는 서비스이며 AMI 생성과 테스트와 배포까지의 모든 단계를 자동화하여 시간과 리소스 비용을 절약할 수 있음

'화이트햇 스쿨 2기 > 이론교육' 카테고리의 다른 글
보안운영관리/인프라/컨설팅 - 클라우드 기초 (1) | 2025.02.26 |
---|---|
보안운영관리/인프라/컨설팅 - 가상화(VMware&Hyper-V) (0) | 2025.02.16 |
침해대응/위협/포렌식 - 포렌식 도구 이해 (0) | 2025.02.15 |
침해대응/위협/포렌식 - 파일시스템 분석 (0) | 2025.02.15 |
침해대응/위협/포렌식 - 리버스 엔지니어링 (0) | 2025.02.13 |