이 글에서는 GitLab의 보안 정책 관리 기능이 ‘보안과 컴플라이언스가 소프트웨어 개발 속도를 따라가는 데 어떻게 도움이 되는지’ 살펴보겠습니다.

보안팀은 소프트웨어 개발 속도를 따라잡아야 하는 과제에 직면해 있습니다. 이들은 개발 프로세스에서 보안의 중요성과 개발자 대 보안 인력의 비율을 간과하는 리더와 같은 장애물을 계속 마주합니다. 이제 AI를 통한 코드 추천이나 자동 생성이 등장해 개발 속도가 훨씬 더 높아지고 있습니다. 기업이 엔터프라이즈 수준으로 확장함에 따라 개발 속도는 더 빨라질 겁니다. 따라서 개발 프로세스를 관리하는 데 사용되는 보안 도구는 이러한 성장에 맞춰야 합니다.
애플리케이션 보안팀은 취약점을 효과적으로 관리하고 우선순위를 지정해야 합니다. GitLab의 보안 정책 기능을 다양한 보안 도구 제품군과 함께 사용하면, 조직은 보안팀과 개발팀 간에 협업을 촉진하여 효율적인 취약점 탐지, 분류, 해결을 가능하게 할 수 있습니다. 또한 보안 정책은 보안 컴플라이언스를 자동화하고 이를 엔터프라이즈 규모로 관리하는 메커니즘을 제공합니다.
잠재적인 취약점 소스를 더 많이 스캔하면 문제를 조기에 탐지하고 해결하는 기회가 더 많이 생기지만, 엄청난 양의 검출 결과가 보안팀을 압도할 수 있습니다. 추가 스캔에서 취약점 관련 인사이트를 종합적으로 확보함에 따라, 이를 해결하기 위해 실행 가능한 일을 확인하는 건 무척 어려워지고 있습니다.
취약점 관리 분류 프로세스
오늘날 취약점 분류를 다루는 몇 가지 일반적인 접근 방식이 있습니다.
- 공통 취약점 점수 시스템(Common Vulnerability Scoring System·CVSS): CVSS는 취약점 심각도를 평가하는 표준화된 방법을 제공합니다. CVSS 점수를 활용하면서, 조직은 잠재적인 영향에 기반해 취약점의 우선순위를 지정하고 이에 따라 리소스를 할당할 수 있습니다.
- 위험 기반 점수(Risk-based scoring): 위험 기반 점수를 사용하면, 조직은 악용 가능성과 잠재적인 비즈니스 영향에 기반해 취약점을 평가할 수 있습니다. 자산 가치, 위협 행위자의 힘, 익스플로잇(취약점 공격) 확산과 같은 상황적 요인을 고려하면서, 조직은 취약점의 우선순위를 효과적으로 지정할 수 있습니다.
- 위협 모델링(Threat modeling): 위협 모델링은 애플리케이션이나 시스템에 잠재적인 위협을 확인하고 평가하는 일을 포함하는 접근 방식입니다. 시스템 아키텍처, 데이터 흐름, 잠재적인 공격 벡터를 종합적으로 분석하면서, 조직은 잠재적 위협과의 관련성에 기반해 취약점의 우선순위를 지정할 수 있습니다. 이 접근 방식은 악용될 가능성이 높은 취약점에 집중하면서, 리소스를 효과적으로 할당하는 데 도움이 됩니다.
- 비즈니스 영향 분석(Business Impact Analysis·BIA): BIA는 취약점이 비즈니스 운영과 목표에 미치는 잠재적인 영향을 평가하는 데 사용되는 기법입니다. 여기에는 중요한 자산을 확인하고, 조직에 그들의 중요성을 평가하며, 공격이 성공할 때 잠재적인 결과를 정량화하는 작업이 포함됩니다. 잠재적인 재무, 평판, 운영 영향을 고려하면서, 조직은 핵심 비즈니스 기능에 가장 심각한 위험을 초래하는 취약점의 우선순위를 지정할 수 있습니다.
AI 생성 코드가 점점 더 확산되면서, 의도하지 않게 도입되는 취약점이 늘고 있습니다. 이러한 분류 기법은 기업이 우선순위를 분류하고 이해하는 데 중요합니다. 그렇다면 이러한 개념 프레임워크를 현실에 어떻게 적용할까요? 이러한 기법을 실행하는 방법을 살펴보겠습니다.
보안 정책 관리
보안 정책은 비즈니스 수준의 정책과 컴플라이언스 요구 사항을 DevSecOps 관행과 소프트웨어 개발 라이프사이클에 반영된 실질적인 운영 지침에 내재화하는 것이 해답입니다. GitLab의 보안 정책 안에서 규칙을 생성하면서, 조직은 취약점 평가의 세분화된 기준을 정의하여 실행 가능한 조사 결과만 더 주의하도록 표시할 수 있습니다.
보안 정책을 사용하면 보안과 컴플라이언스 요구 사항과 모범 관행을 코드에 인스턴스화하여 실행할 수 있습니다. 스캔 실행 정책은 사용자의 수요와 요구 사항에 기반해 특정 프로젝트 안에서 스캐너가 실행되도록 하여 코드를 프로덕션 환경에 merge 하기 전에 모든 취약점과 노출이 탐지되도록 합니다.
또한 스캔 결과 정책을 활용하여 취약점을 해결하는 맞춤형 워크플로를 생성할 수도 있습니다. 정책은 보안과 컴플라이언스 스캐너 결과를 평가하여 Merge Request(MR)가 ‘사용자가 정의한 규칙’에 따라 철저하게 리뷰받고 승인되지 않으면, 이 MR이 merge 되는 걸 방지하거나 차단합니다.
스캔 결과 정책과 스캔 실행 정책을 활용하면서, 개발 프로세스에 감독 계층을 추가할 수 있습니다. 이는 사람이 작성한 코드(또는 다른 방식으로 작성된 코드)가 자동으로 검사받고, 정책 위반이 일어나면 실행 가능성이 가장 높은 엔지니어링팀과 보안팀 간에 협업을 장려하도록 할 수 있습니다.