시프트레프트 보안은 개발·빌드 단계에서 취약점을 조기에 발견해 보안 결함이 운영 환경으로 전이되는 것을 막습니다. 운영 부담을 덜어주는 셈이죠. 이 과정에는 Gitleaks와 Trivy 같은 자동화 도구가 활용됩니다.
시프트레프트 보안 운영이란 무엇인가
시프트레프트(Shift-Left) 보안 운영은 소프트웨어 개발 생명주기(SDLC) 후반부의 테스트나 운영 단계가 아니라, 초기 개발·빌드 단계로 보안 검증 프로세스를 앞당기는 전략입니다. 코드 레벨의 시크릿 노출과 인프라 구성(IaC) 취약점을 개발자의 커밋 단계나 CI/CD 파이프라인에서 즉시 탐지해, 보안 팀의 검토 부하를 줄이고 개발자가 실시간으로 문제를 해결할 수 있는 환경을 만드는 것이 목적입니다.
개발·빌드 단계 조기 점검이 운영 부담을 줄이는 이유
운영 단계에서 발견된 보안 취약점은 수정할 때 영향 범위가 넓고 배포 프로세스를 다시 거쳐야 해서 리소스 소모가 큽니다. 특히 하드코딩된 자격 증명은 이후 커밋에서 지우더라도 명시적으로 purge(제거)하지 않는 한 Git 커밋 히스토리에 영구적으로 남습니다. 그게 곧 지속적인 보안 리스크입니다. 커밋 단계에서 시크릿을 탐지하고, 빌드 단계에서 의존성과 인프라 구성을 점검하는 시프트레프트 흐름을 적용하면 운영 단계의 사고 가능성이 근본적으로 낮아집니다.
Gitleaks: 커밋 단계 시크릿 탐지와 오탐 관리
Gitleaks는 Git 저장소에서 API 키, SSH 토큰, 데이터베이스 자격 증명 같은 민감한 시크릿을 찾아내는 오픈소스 도구입니다.
배포 및 운영 방식
Gitleaks는 다음 두 가지 방식으로 배포해 운영합니다.
- 네이티브 바이너리 실행 방식
- 공식 Docker 이미지 기반의 pre-commit hook 적용 방식
효율적인 오탐 제어
자동화된 빌드 파이프라인에서는 오탐(False Positive)으로 흐름이 끊기기 쉽습니다. .gitleaksignore 파일에 baseline ignore 규칙을 두면 실제 위협이 아닌 탐지 건을 따로 관리해 파이프라인의 가용성을 지킵니다.
예외 처리 방법
특수한 상황에서 Gitleaks pre-commit hook을 일시적으로 꺼야 할 때는 커밋 명령 앞에 SKIP=gitleaks를 붙이면 됩니다.
Trivy: 의존성(SCA) 점검과 IaC 오구성 감사
Trivy는 컨테이너 이미지, 파일시스템, Git 리포지토리(remote), 가상 머신 이미지, Kubernetes를 스캔 대상으로 지원하는 보안 스캐너입니다.
두 가지 분석 계층
실무에서는 크게 두 계층으로 활용합니다.
- SCA(소프트웨어 구성 분석): OS 패키지와 소프트웨어 의존성(SBOM) 내의 알려진 취약점(CVE)을 점검합니다.
- IaC Auditing(인프라 구성 점검): Terraform, Helm 차트 등 설정 파일의 오구성과 시크릿, 라이선스를 짚어냅니다.
설정 우선순위 및 관리
Trivy 설정은 적용 우선순위가 정해져 있습니다. 가장 높은 우선순위는 CLI 플래그입니다.
| 우선순위 | 설정 방법 | 특징 |
|---|---|---|
| 1순위 (최상위) | CLI flags | 다른 모든 설정을 오버라이드함 |
| 2순위 | 환경 변수 (Environment variables) | 설정 파일 설정보다 우선 적용됨 |
| 3순위 | 설정 파일 (Configuration file) | 기본 설정 값으로 적용됨 |
CI/CD 파이프라인 통합 및 실무 적용
Gitleaks의 커밋 단계 탐지와 Trivy의 SCA 및 IaC 감사를 결합하면 통합된 시프트레프트 보안 흐름이 완성됩니다.
GitHub Actions 기반 통합 흐름
Trivy는 GitHub Actions 기반 CI/CD 파이프라인에서 다음 세 가지 스캔을 수행하고, 결과를 GitHub 보안 탭에 업로드해 관리합니다.
trivy fs: 코드베이스 파일시스템 스캔trivy image: 빌드된 컨테이너 이미지 스캔trivy config: Helm 차트, Terraform 등 설정 파일의 오구성 점검
실무 적용 사례 (Example)
실제 적용 사례에서는 Trivy SCA 스캔으로 lockfile 내 85개의 패키지 취약점이 확인됐고, Terraform 오구성 3건(AWS-0107 HIGH, AWS-0132 HIGH, AWS-0094 LOW)이 발견됐습니다. 이후 CIDR 제한, KMS 암호화, 퍼블릭 액세스 차단 등의 조치로 오구성 0건을 달성하며 보안성을 확보했습니다.
운영상 주의점 및 한계
시프트레프트 보안 운영을 구축할 때는 반드시 짚어둘 사항이 있습니다.
첫째, 도구의 버전과 기능 세부는 시간이 지나면 달라집니다. 2024년 5월 기준 이후의 최신 기능이나 버전 업데이트 사항은 공식 문서에서 수시로 교차 확인하는 편이 좋습니다.
둘째, CI/CD 파이프라인 스캔은 특정 시점(point in time)의 점검이라는 한계가 있습니다. 지속적인 스캔과 실시간 모니터링이 필요하다면 Trivy operator 같은 별도의 운영 영역을 고려해야 합니다.
셋째, 보안 도구를 도입할 때는 개발 생산성 저하를 막기 위해 .gitleaksignore와 같은 예외 처리 규칙을 정교하게 설계해 불필요한 빌드 실패를 최소화하는 운영 묘수가 필요합니다.