시프트 레프트 보안은 애플리케이션이 설계, 개발, 배포, 테스트 등 다양한 단계를 거칠 때 보안이 마지막에 적용되는 접근 방식이어서는 안 된다는 점을 인식합니다. 보안은 애플리케이션이 최종 사용자에게 배포되기 전, 애플리케이션 라이프사이클의 마지막 단계에서 애플리케이션을 감싸는 최종 요소로 여겨집니다. 시프트 레프트 보안은 애플리케이션 개발 라이프사이클 전반에 걸쳐 보안 조치를 최우선으로 함으로써 이러한 관점을 전환하고 변화시킵니다. 이를 통해 개발 단계에서 보안 프로토콜을 보다 긴밀하게 통합하고, 보안 기능 및 릴리스를 조기에 구현하도록 추진합니다. 개인 식별 정보(PII) (PII) 및 민감한 데이터의 저장과 관련된 개인정보 보호 고려 사항도 다루고 있습니다.
개발자들은 최전선에서 문제를 해결하고 핵심 취약점을 보완함으로써 더 나은 사용자 경험을 제공하고 새롭게 등장하는 위협에 대한 우려를 줄일 수 있습니다. 이 블로그에서는 보안 분야의 '시프트 레프트(shift left)' 접근법을 다루고 아래에서 그 기본 개념을 설명해 드리겠습니다.
 Shift Left Security란 무엇일까요?
조직은 애플리케이션 개발 라이프사이클 동안 보안 취약점을 해결하지 못해 매년 손실을 보고 있습니다. 이는 새로운 보안 위험을 초래하고 개발자에게 해결해야 할 문제 목록을 제공하며, 이는 빠르게 확대될 수 있습니다. 개발자는 보안 조치 설계에 대한 지속적인 지원이 필요하며 보안 팀과 긴밀히 협력해야 합니다.
시프트 레프트 보안은 보안을 왼쪽으로 이동시켜 개발의 가장 초기 단계로 옮깁니다. 해커들은 시스템의 취약점을 악용하고 다른 상황 정보를 활용해 민감한 데이터를 재식별하는 경로로 고유성을 악용할 수 있습니다. 예측 API를 통해 모든 이상값이 유출될 수 있으며, 시프트 레프트 보안 모델은 다양한 사용 사례에 대한 실제 시나리오를 표현하는 합성 데이터를 생성할 수 있습니다.
왜 시프트 레프트 보안을 적용해야 할까요?
시프트 레프트 보안은 개발 초기 단계에서 잠재적인 애플리케이션 문제를 평가하여 이를 해결하는 비용을 절감합니다. 소프트웨어 설계의 문제를 초기 단계부터 감지하고 수정함으로써 조직은 제공을 간소화하고 고객 만족도를 높일 수 있습니다. DevOps가 주목받으면서 전 세계적으로 분산형 마이크로서비스를 도입하는 기업이 늘고 있습니다.
시프트 레프트 보안은 DevSecOps 문화의 일부로, 개발자가 추가 도구나 업무 부담 없이 안전하게 업무를 수행할 수 있게 합니다. 이는 모범 사례를 개발자의 툴체인에 통합하고 자동화된 취약점 테스트를 실행하기 위한 지속적 통합 파이프라인을 구현합니다.
시프트 레프트와 시프트 라이트 보안의 차이점
시프트 레프트 테스트는 개발 파이프라인의 초기 단계에서 애플리케이션을 테스트하고 보안을 왼쪽으로 이동시키는 것을 의미합니다. 애플리케이션 설계 단계에서 버그와 취약점을 탐지하고 위협이 확대되기 전에 격리하여 나중에 문제가 되는 것을 방지합니다.
개발자는 개별 유닛을 버전 관리에 푸시하기 전에 테스트를 실행하며, 애플리케이션 성능, 종단 간 자동화, TDD 및 BDD 기반 테스트를 우선시합니다.
시프트 라이트 보안은 반대편으로, 보안을 극한까지 우측으로 이동시킵니다. 이는 애플리케이션이 최종 사용자에게 출시된 후 테스트하는 것을 포함합니다. 팀은 API를 모니터링하고 소프트웨어 운영을 기반으로 사용성과 리소스 사용에 대한 통찰력을 얻을 수 있습니다. 또한 개발자가 지속적으로 개선을 다듬고 보안 경계를 확장함으로써 기능을 최적화하거나 새로운 기능을 추가할 수 있게 합니다. 시프트 라이트 보안은 또한 애플리케이션이 처리할 수 있는 실제 트래픽과 사용자 요청의 양을 모니터링하는데, 이는 사전 제작 환경에서는 테스트할 수 없는 측면입니다.
시프트 레프트 보안의 유형
시프트 레프트 보안을 구현하는 데 사용되는 표준 도구는 다음과 같습니다: 규정 준수 스캔, 종속성 스캔, 컨테이너 스캔, 동적 애플리케이션 보안 테스트(DAST), 정적 애플리케이션 보안 테스트(SAST).
시프트 레프트 보안의 네 가지 주요 유형은 다음과 같습니다:
- 전통적 시프트 레프트 테스트
 - 증분적 시프트 레프트 테스트
 - 애자일/데브옵스 왼쪽 이동 보안
 - 모델 기반 왼쪽 이동 보안
 
1. 전통적인 왼쪽 이동 테스트
전통적인 왼쪽 이동 테스트는 하향식 테스트를 강조하고 통합 및 단위 테스트 실행에 중점을 둡니다.
2. 증분식 왼쪽 이동 테스트
증분식 왼쪽 이동 보안은 폭포수 개발 주기를 따르며, 복잡한 프로젝트를 더 작은 증분으로 나눕니다. 또한 기업의 운영 테스트와 개발 테스트를 왼쪽으로 이동시킵니다.
3. 애자일/데브옵스 왼쪽 이동 보안
애자일/데브옵스 왼쪽 이동 보안은 테스트 중심 개발 접근 방식을 취하며, 광범위하고 지속적인 테스트 전략입니다. 이 전략은 필수 요구 사항을 차단하고 해당 단계에 대한 운영 테스트를 포함하지 않습니다.
4. 모델 기반 시프트 레프트 보안 
다른 세 가지 시프트 레프트 테스트 유형과 달리, 모델 기반 시프트 레프트 보안은 코드 결함 발견에 중점을 둡니다. 아키텍처 성능 지연을 제거하고 실행 가능 구성 요소의 다운타임을 방지하는 등의 효과를 제공합니다.
시프트 레프트 보안 구현 단계
조직이 비즈니스 워크플로우에 시프트 레프트 보안을 구현하는 방법은 다음과 같습니다.
- 1. 전략 정의하기
 - 2. 쉘프트 레프트 소프트웨어 개발 문서 작성하기
 - 3. 개발 팀 교육하기
 
1. 전략 정의하기
조직은 왼쪽으로 이동하는 보안 이니셔티브를 정의하는 한 페이지 문서를 작성합니다. 이 문서는 목표, 담당자, 도구 및 프로세스를 상세히 기술합니다. 문서에는 누가 전체 소유권을 가지며 보안 팀에 역할이 어떻게 할당되는지 포함되어야 합니다. 또한 핵심 성과 지표와 중요한 시프트 레프트 보안 지표를 추적합니다.
2. 시프트 레프트 소프트웨어 개발 문서 작성
효과적인 시프트 레프트 보안은 현재의 소프트웨어 개발 프로세스를 고려합니다. 조직의 운영, 관리 방법론, CI/CD 도구, 그리고 초기 개발에서 프로덕션으로의 아티팩트 전환 방식을 파악하는 것이 필수적입니다. 문서에는 현재 보안 조치 목록과 그 효과성을 순위별로 설명합니다.
3. 개발 팀 교육
개발 팀이 코드를 안전하게 처리하고 클라우드 환경에서 최상의 사이버 위생 관행을 구현하도록 교육하십시오. 개발자는 관련 교육을 이수하고 클라우드 환경 전반에 걸쳐 새롭게 등장하는 사이버 위협에 대한 이해를 높임으로써 보안 조치에 대한 높은 인식을 얻을 수 있습니다. 운영 비용을 절감하고 위험을 완화하며, 향후 데이터 유출 발생 가능성을 최소화합니다.
시프트 레프트 보안의 이점은 무엇인가요?
시프트 레프트 보안의 장점은 다음과 같습니다:
- 시프트 레프트 보안은 애플리케이션 개발 라이프사이클의 초기 단계에서 취약점을 발견합니다. 잠재적인 보안 위험을 식별하고 해당 문제를 수정합니다.
 - 시프트 레프트 보안은 조직의 전반적인 클라우드 보안 태세를 강화하고 운영 비용을 절감합니다. 이는 최적의 제공 일정을 보장하고 보안 통합을 간소화하여 성공률을 달성합니다.
 - 최적화된 보안 프로세스는 신뢰성과 성능 향상을 가져옵니다. 쉘프트 레프트 보안 접근 방식은 비즈니스 수익을 개선하고 다양한 프로젝트에서 제3자 및 외부 에이전트와의 협업을 강화할 수 있습니다.
 
시프트 레프트 보안의 모범 사례는 무엇인가요?
조직 내 시프트 레프트 보안을 위한 모범 사례 목록은 다음과 같습니다:
- 보안 정책 정의하기
 
보안 정책을 정의하면 경계를 자동으로 적용하고 중요한 정보를 보호함으로써 쉘프트 레프트 보안을 개선할 수 있습니다. 이는 DevSecOps 프로세스를 더 효율적이고 민첩하며 확장 가능하고 빠르게 만듭니다.
- 가시성을 문화에 통합하기
 
시프트 레프트 보안의 주요 목표는 코드가 릴리스 중 및 릴리스 후에도 안전하게 유지되도록 하는 것입니다. 보안 팀은 이를 위해 애플리케이션 보안에 대한 지속적인 가시성이 필요하며, 최신 업데이트를 출시하여 필요에 따라 문제를 즉시 해결할 수 있습니다.
- 자동화 추가
 
자동화는 쉘프트 레프트 보안 워크플로우를 가속화하고 취약점을 식별하며 잠재적 수정 사항을 적용할 수 있습니다. 또한 클라우드 애플리케이션 및 시스템에 대한 외부 위협을 해결하고 소프트웨어 개발 및 배포의 시장 출시 시간을 단축할 수 있습니다.
- 코드 생성 시 보안 수정 사항 구현
 
개발자는 코드 생성 단계에서 시프트 레프트 보안 수정 사항을 구현함으로써 최적의 코딩 관행을 인지할 수 있습니다. 이는 오류를 조기에 발견하고 최상의 성능과 결과를 위해 가능한 한 빨리 피드백을 제공합니다.
- 소프트웨어 제작 방식 평가하기
 
소프트웨어 제작 방식을 이해하면 시프트 레프트 보안 조치의 공백을 해결하는 데 도움이 됩니다. 이는 SDLC를 재검토하고 코드베이스에 적합한 도구를 결정하는 과정을 포함합니다.
결론
기업이 선택하는 시프트 레프트 보안 솔루션의 유형은 예산과 요구사항에 따라 달라집니다. 우수한 시프트 레프트 보안은 가장 중요한 취약점을 해결하고 대규모 기업에서 지속적인 규정 준수를 보장합니다. 기업은 이러한 첨단 솔루션을 도입함으로써 실시간으로 오탐을 탐지하고, 경보 피로를 줄이며, 출시 시간을 단축할 수 있습니다.
시프트 레프트 보안은 최후의 수단이 아닌 애플리케이션 보안을 강화하기 위한 선제적 접근법으로 인식됩니다. 조직들은 클라우드 네이티브 애플리케이션 개발과 관련된 우려를 크게 줄일 방법을 모색하고 있으며, 시프트 레프트 보안 도입은 출시 간격을 단축하는 훌륭한 방법입니다. 지속적 테스트는 또한 DevOps 팀이 상당한 시간과 비용을 절약하고, 사용자 경험을 크게 향상시키는 최신 기능을 애플리케이션에 원활하게 추가할 수 있음을 의미합니다.
시프트 레프트 보안 FAQ
시프트 레프트 보안은 보안 검사를 소프트웨어 개발의 초기 단계로 앞당깁니다. 테스트나 배포 단계까지 기다리지 않고, 개발자가 기획 단계에서 보안 요구사항을 정의하고, 안전한 코딩 관행을 적용하며, CI/CD 파이프라인에서 자동화된 스캔을 실행합니다.
이를 통해 취약점은 코드 검토나 빌드 단계에서 발견되어, 이후에 발생하는 비용이 많이 드는 수정 작업을 줄이고, 첫날부터 모든 사람의 책임으로 보안을 다룹니다.
릴리스 시점까지 결함을 발견하지 못하면 비용이 많이 드는 재작업, 출시 지연, 보안 침해 위험 증가로 이어집니다. 보안을 왼쪽으로 이동(Shift Left)함으로써 개발 단계에서 코딩 오류와 잘못된 설정을 발견할 수 있으며, 이때 수정 비용이 가장 저렴합니다.
조기 테스트는 또한 팀이 보안 목표에 맞춰 협력하도록 하고, 막판에 발생하는 문제를 줄이며, 처음부터 더 안전한 애플리케이션을 구축하므로 운영 중인 시스템에 패치를 적용하기 위해 허둥대지 않아도 됩니다.
설계 문서에 보안 요구 사항을 추가하고 개발자에게 코딩 모범 사례에 대한 교육을 실시하는 것부터 시작하세요. CI/CD 파이프라인에 SAST, DAST 및 시크릿 스캐닝을 통합하여 커밋 시마다 검사가 실행되도록 하세요. 테스트 환경에서 IAST 도구를 사용하여 더 깊은 통찰력을 얻으세요.
개발자가 기능적 버그와 함께 보안 발견 사항을 검토하도록 장려하고, 기능 계획 단계에서 정기적인 위협 모델링 세션을 진행하세요.
정적 애플리케이션 보안 테스트(SAST) 도구는 SQL 인젝션, XSS, 하드코딩된 비밀 정보 등을 탐지하기 위해 소스 코드를 스캔합니다. 동적 애플리케이션 보안 테스트(DAST)는 실행 중인 빌드에 대한 공격을 시뮬레이션합니다. 대화형 앱 보안 테스트(IAST)는 런타임에 코드를 모니터링하여 두 가지를 결합합니다.
소프트웨어 구성 분석(SCA)은 취약한 오픈 소스 라이브러리를 발견합니다. 비밀 정보 탐지 도구는 노출된 자격 증명이 저장소에 도달하기 전에 이를 표시합니다.
Shift Left Security는 주입 결함, 크로스 사이트 스크립팅, 인증 오류, 노출된 비밀 정보 등 안전하지 않은 코딩 패턴을 찾아낼 수 있습니다. 또한 오픈소스 종속성 내 구식 또는 취약한 라이브러리를 표시합니다.
자동화된 스캔은 인프라스트럭처-어즈-코드(Infrastructure-as-Code)의 잘못된 구성, 누락된 암호화, 하드코딩된 자격 증명을 프로덕션 환경에 반영되기 전에 발견하여 출시 첫날부터 공격 표면을 줄입니다.
소프트웨어 구성 분석을 통해 종속성을 스캔하여 악성 또는 오래된 패키지를 표시함으로써 공급망 위험을 낮춥니다. 보안을 더 일찍 통합한다는 것은 타사 라이브러리가 빌드되기 전에 감사한다는 것을 의미합니다.
모든 변조된 구성 요소를 막을 수는 없지만, CI/CD에서 위험한 코드를 포착하고 엄격한 버전 관리를 시행하면 숨겨진 백도어가 스며들기 훨씬 더 어려워집니다.
문제점을 조기에 발견하므로 버그 수정에 드는 시간과 비용이 절감됩니다. 후기 단계 오류가 줄어 출시 속도가 빨라지고, 팀은 시간이 지남에 따라 보안 역량을 습득합니다. 애플리케이션은 더 강력한 보안 태세로 시작되어 운영 중 패치 작업과 사고 대응 부담이 감소합니다. 전반적으로 쉘프트 레프트는 더 원활한 워크플로우를 제공하고 향후 긴급 수정을 줄여줍니다.
병합 전과 출시 후 발견된 취약점 비율을 측정하여 조기 탐지율을 높이는 것을 목표로 합니다. 코드 단계에서 발견된 문제에 대한 평균 복구 시간(MTTR)을 추적하세요. 스캐너를 조정하고 개발자의 참여를 유지하기 위해 오탐률을 주시하세요. 또한 빌드 시 차단된 취약한 오픈소스 구성 요소 수와 이후 발견된 구성 요소 수를 모니터링하세요.
클라우드 네이티브 애플리케이션 보호 플랫폼(CNAPP)은 코드 보안, 인프라 상태 점검 및 취약점 스캔을 하나의 플랫폼으로 통합합니다. SAST, SCA 및 IaC 보안을 툴체인에 통합하여 프로덕션 이전 위험에 대한 통합된 뷰를 제공합니다.
CNAPP는 정책 시행 및 취약점 관리를 간소화하므로 별도의 포인트 툴이나 대시보드를 다루지 않고도 쉘프트 레프트를 구현할 수 있습니다.

