디지털 사회가 고도화됨에 따라 네트워크의 경계가 확장되면서 새로운 기술들이 도입되고 있습니다. 이러한 기술들은 기존의 시스템과 연동되어 점점 더 복잡해지고 있으며, 이에 따라 권한 관리의 복잡성도 증가하고 있습니다. 이러한 복잡성의 증가는 보안적인 취약점을 초래할 수 있으며, 새로운 유형의 위협이 등장하게 됩니다. 이로 인해 기존의 보안 모델만으로는 소프트웨어의 안전성을 충분히 보장할 수 없는 한계에 직면하게 되었습니다. 이 글에서는 현대의 새로운 보안 모델로 제시되고 있는 제로트러스트 아키텍처와 이를 구현하는데 도움을 주는 Shift-Left 테스팅에 대해 소개하도록 하겠습니다.
1. 기존의 보안 모델
기존의 보안 모델은 기본적으로 내부자를 보안적으로 안전하다고 믿고 외부를 검증하는데 집중합니다. 이처럼 내부 네트워크를 무조건적으로 신뢰하게 된다면 이 허점을 노리는 공격자는 컨테이너 이미지 등을 활용한 악성 코드 주입, 내부자 권한 탈취 등을 시도할 수 있습니다.
이러한 방식으로 내부 네트워크에 공격자가 접근하게 될 경우, 공격자는 자유롭게 내부 서비스로의 횡적 이동, 권한 상승(Privilege Escalation)을 통해 내부 서비스 전체에 접근할 수 있게 됩니다. 혹은 내부 엔지니어의 권한 제어 등의 실수로 인해 보안적인 허점이 생길 수도 있습니다.
2. 제로 트러스트 아키텍처
제로 트러스트 아키텍처는 기존의 보안 모델과 다르게 보안 위협이 언제 어디서든 발생 가능하다는 전제를 기본으로 합니다.
이름처럼 “아무것도 믿지 말고, 항상 검증하라” (Never Trust, Always Verify) 라는 철학을 가지고 특정 자격, 권한이 없는 리소스(사용자, 디바이스, 서버 등)는 다른 리소스에 대한 접근을 제한시키고, 최소한의 권한만을 부여하게 됩니다.
제로트러스트 아키텍처는 다음 여섯 가지의 기본 철학을 가지고 있습니다.
- 모든 종류의 접근에 대해 신뢰하지 않을 것 (명시적인 신뢰 확인 후 리소스 접근 허용)
- 일관되고 중앙 집중적인 정책 관리 및 접근제어 결정·실행 필요
- 사용자, 기기에 대한 관리 및 강력한 인증
- 자원 분류 및 관리를 통한 세밀한 접근제어 (최소 권한 부여)
- 논리 경계 생성 및 세션 단위 접근 허용, 통신 보호 기술 적용
- 모든 상태에 대한 모니터링, 로그 기록 등을 통한 신뢰성 지속 검증·제어
3. Shift-Left 테스팅
Shift-Left 테스팅은 소프트웨어 개발 초기 단계에서부터 보안 및 품질 검증을 통합하는 방식으로, 제로 트러스트 아키텍처를 효과적으로 구축하는 데 중요한 역할을 합니다. 전통적인 소프트웨어 테스팅은 개발이 완료된 후 QA 단계에서 진행되었지만, 이때 보안적인 위협이나 버그가 발견되면 전체 개발 프로세스를 되돌아가야 하는 비효율성이 있었습니다.
이에 따라 Shift-Left 테스팅이라는 개념이 도입되기 시작했습니다.
위 이미지에서는 SDLC(Software Development LifeCyle)라고 부르는 소프트웨어 개발 생명 주기를 Coding, Unit Test, Functional Test, System Test, Release 다섯 단계로 구분했습니다.
이렇게 시간의 흐름(오른쪽 방향)에 따라 진행되는 소프트웨어 개발에서 테스팅 단계를 Shift-Left, 개발 단계의 앞쪽(왼쪽 방향)으로 이동시켜서 문제를 미리 찾고, 해결하고, 예방할 수 있도록 하는 방식입니다.
테스팅 단계를 개발 초기로 이동시켜 코드 작성 단계에서부터 보안과 품질 검증을 병행하면 문제를 더 빨리 발견하고 수정할 수 있어 이후 단계에서 발견된 문제를 처리하는 데 소요되는 비용을 크게 줄일 수 있습니다. 연구에 따르면, 개발 초기 단계에서 문제를 해결하는 것이 QA 단계에서 해결하는 것보다 최대 640배 더 비용 효율적이라고 합니다.
이러한 방식은 소프트웨어의 신뢰성을 높이고 운영 중 발생할 수 있는 이슈를 미리 예방할 수 있어, 제로 트러스트 아키텍처와 같은 높은 수준의 보안을 요구하는 환경에서 특히 유용합니다. 더불어 제로 트러스트 아키텍처는 기본적으로 내부와 외부의 모든 요소를 신뢰하지 않고 지속적으로 검증하고 보호하는 것을 목표로 하기 때문에, Shift-Left 테스팅을 통해 초기에 보안 위협을 최소화하는 것은 매우 중요합니다.
4. 솔루션 소개
SLEXN에서는 Shift-Left 테스팅을 통해 제로 트러스트 아키텍처 보안 모델을 구축하는 데 도움을 주는 다양한 도구들을 제안하고 있습니다.
JFrog
JFrog는 아티팩트 레지스트리 도구입니다. 컨테이너 이미지, 헬름차트 등의 OCI 레지스트리로 활용될 뿐만 아니라 어플리케이션 패키지, 서비스 패키지 등을 저장할 수 있습니다.
또한 취약점 검사 기능을 함께 지원합니다. 패키지의 버전을 지속적으로 검증하거나 신뢰할 수 없는 패키지는 아닌지, 컨테이너 이미지의 소스코드에 보안적인 위협은 없는지 자체적으로 검증하여 개발주기 앞 단계(Shift-Left)에서 미리 보안적인 위협을 사전에 방지할 수 있도록 합니다.
하단 이미지처럼 패키지를 가져올 떄 버전에 대한 정책을 생성하거나,
컨테이너 이미지의 취약점 검사 및 신뢰할 수 없는 패키지 등을 검사할 수 있습니다.
GitOn
GitOn은 Git 서버 구현 도구입니다. Github, Gitlab 등과 유사하게 Commit, Pull Request, 소스코드 공유, 이슈 관리 등의 기능을 지원하며, 자체적으로 CI 파이프라인을 구축하는 기능을 지원하고 있습니다.
하단 이미지처럼 GitOn CI 파이프라인을 통해서 라이브러리, 패키지 등의 소스코드 의존성에 대한 취약점 검사를 수행할 수 있습니다.
복잡한 디지털 환경에서 보안과 품질 관리는 단순한 기술적 과제를 넘어서 조직의 신뢰성과 안전성을 결정짓는 핵심 요소입니다. Shift-Left 테스팅을 통해 개발 초기 단계에서부터 문제를 사전에 예방하고, 제로 트러스트 아키텍처를 통해 모든 접근 요청을 철저히 검토하고 검증함으로써 조직의 보안 체계를 더욱 견고하게 강화할 수 있습니다.