드리프트 탐지 및 IaC를 통해 보안 인프라를 유지하는 방법
인프라 프로비저닝은 올바른 프로세스와 기능을 갖추지 않는다면, 시간을 낭비하는 끝없는 루프처럼 느껴질 수도 있을 것이다. 많은 기업들은 이에 대한 솔루션으로 코드형 인프라(IaC, Infrastructure-as-Code)를 채택해 여러 퍼블릭 클라우드 및 프라이빗 데이터센터에 걸쳐 프로비저닝을 자동화하고 있다. IaC는 병목현상 없이 인프라 및 인프라 변경사항을 배포할 수 있는 보다 현대적이고 효율적인 방식을 제공해 애플리케이션 배포 시간을 단축할 수 있도록 해준다. 그러나 모든 인프라 변경사항이 보안 모범사례를 준수하도록 보장하는 기존의 티켓 기반 IT 프로세스가 없기 때문에 IaC 워크플로우 내에 필수적으로 가드레일을 설치해야 한다. 하시코프의 보안을 책임지는 CISO는 IaC를 구현하는데 필수적인 코드형 정책(Policy-as-Code) 가드레일을 통합해 정책이 시행되도록 하고 있다. 표준화 및 가드레일이 없는 IaC는 매일 같이 수백 명의 개발자와 운영자들이 동적 인프라를 프로비저닝하고, 상호 운용하는 환경에서 거버넌스를 충족하지 못하고, 컴플라이언스 유지의 어려움을 초래하여 보안 사고의 위험을 증가시킬 수 있다. 또한 조직의 CISO는 보안을 유지하는 것 외에도, 보안 솔루션의 효율성을 보장하는데 주력해야 한다. IaC는 인프라 프로비저닝 담당자들이 클라우드 운영, IT, R&D, 보안, 엔지니어링, 컴플라이언스 및 재무 등 여러 팀에 걸쳐 부서 간 목표를 달성하고, 구성요소에 대한 협업 및 재사용할 수 있도록 지원한다. 또한 보안 및 데이터 거버넌스 컴플라이언스를 강화하는데 도움이 될 수 있다. 가드레일을 포함한 표준화된 워크플로우를 사용한다 하더라도 IaC는 완벽하지 않다. 이는 만능 해결책이 아니다. 실제 세계의 인프라는 조직의 목표와 예상치 못한 이벤트에 대응하여 계속해서 변경되고 업데이트된다. 인프라 상태가 변경되고, 코드에 정의된 것과 일치하지 않는 경우, '드리프트(Drift)'라고 하는 현상으로 인해 IaC 솔루션의 효율성과 보안 이점을 약화시킬 수 있다. 이로 인해 리소스 라이프사이클에 대한 관리가 주요 관심사로 대두되고 있으며, 그 중 핵심 요소는 바로 드리프트 탐지 기능이다. IaC의 가치를 극대화하기 위해서는 인프라 드리프트의 원인, 특히 보안에 영향을 미칠 수 있는 드리프트를 파악하는 것이 중요하며, 문제 해결을 위해 드리프트 탐지 및 수정을 위한 최상의 구현 방식을 찾아야 한다. ■ 인프라 드리프트의 원인은 무엇인가 드리프트는 여러 가지 이유로 발생할 수 있다. 먼저 조직의 모든 사람들이 설정된 IaC 워크플로우를 사용하지 않는 경우가 있을 수 있다. 이로 인해 코드에 정의된 인프라와 현재의 실제 상태 간에 기록되지 않은 차이가 발생할 수 있다. 비상상태 또한 가장 흔한 원인이다. 대응 관리 팀은 '브레이크-글라스 사건'이 발생하면, 가능한 문제를 신속하게 해결하기 위해 인프라 패치에 대한 표준 절차를 생략하는 경우가 있다. 이러한 종류의 지름길을 선택하면, 코드에서 추적 및 해결이 어려운 리소스 변경이 발생할 수 있다. 또한 시간이 지나면서 클라우드나 서비스 제공업체의 기본 시스템 업데이트가 누적돼 인프라 규칙과 제공업체 시스템 간의 격차가 점차 증가하여 상당한 드리프트가 발생할 수 있다. 예를 들어, 간단한 API 변경(타사 서비스의 경우)은 코드에서 추적되지 않고, 인프라에 영향을 미칠 수 있다. 마지막으로 캐스캐이딩 효과로 인해 드리프트 탐지를 더욱 복잡하게 만들 수 있다. 예를 들어, 새로운 인프라 리소스를 변경하거나 생성할 때, 코드화되지 않은 예기치 않은 관련 리소스가 있을 수 있다. 이로 인해 리소스 상태가 변경되어 아무도 모르게 상호 영향을 미치는 캐스캐이딩 효과가 발생하게 된다. ■ 드리프트가 인프라 보안 및 기능에 미치는 영향 클라우드 채택이 증가함에 따라 조직의 리소스와 프로세스는 점점 더 복잡해지고 있으며, 이로 인해 인프라 상태의 불일치가 발생할 수 있다. 표준 절차와 통보 또는 조정 지침이 없으면, 인프라에 대한 일시적인 변경이나 사소한 조정이라도 예기치 않은 운영중단과 감사 결과, 보안 사고, 재작업 및 미사용 리소스 등을 유발하여 비즈니스에 상당한 영향을 미칠 수 있다. 가장 중요한 점은, 인식되지 않은 인프라 드리프트가 여러 위험을 유발할 수 있기 때문에 실제 문제로 전환되기 전에 이를 해결해야 한다는 것이다. 드리프트는 중요 시스템이 실수로 공개된 퍼블릭 액세스에 남아 있거나 알 수 없는 리소스가 보안이 적용되지 않은 상태로 남아 있을 수 있기 때문에 중요 데이터의 노출 가능성을 크게 증가시킬 수 있다. 또한 IaC 시스템에 반영되지 않은 운영환경의 변화를 인식하지 못한 개발 팀은 애플리케이션이 '갑자기' 충돌하거나 배포된 프로젝트가 예기치 않은 실패를 초래하는 등의 난관에 봉착할 수 있다. ■ 드리프트 탐지에서 드리프트 교정까지 그렇다면, 조직은 어떻게 가장 효과적으로 드리프트를 탐지하고, 탐지된 드리프트 상황을 해결할 수 있을까? 일부 기업들은 한 번에 모든 드리프트 상태를 확인하고, 모든 사용자에게 이메일로 보고서를 전송할 수 있는 툴을 사내에 구축하고자 할 것이다. 그러나 이러한 툴은 변경사항에 대한 컨텍스트가 존재하지 않기 때문에 필요한 변경사항과 불필요한 변경 사항을 구별하기 어렵다. 또한 리소스나 기록된 IaC 상태를 사용자가 수동으로 변경할 수도 있다. 이러한 접근방식은 확장이 어렵고 시간이 너무 많이 소요된다. 이러한 문제에 대한 근본적인 해결책은 다음 두 가지 핵심 질문에 대한 답으로 귀결될 수 있다: 1. 실제 인프라가 기록된 인프라 상태를 반영하고, 탐지된 모든 드리프트에 대해 시정 조치를 취할 수 있도록 담당자에게 통보할 수 있는 방법은 무엇인가? 2. 드리프트 탐지 솔루션이 효율성과 단순성에 중점을 두고 IaC 플랫폼과 원활하게 동작하고, 엔지니어링 및 보안 팀을 위한 중앙 정보 소스로 기능할 수 있는가? ■ 드리프트 탐지를 위한 중앙집중식 가시성의 중요성 궁극적으로 드리프트에 관심이 있는 팀은 통합 드리프트 탐지 솔루션을 찾고자 할 것이다. 이러한 유형의 시스템은 개발 팀이 지속적으로 인프라 상태를 모니터링하여 변경사항을 탐지할 수 있도록 올인원 자동 프로비저닝 및 중앙 관리 기능을 갖추는 것이 이상적이다. 또한 통합 환경에서 운영되는 시스템은 리소스가 변경될 때마다 구체적인 시정 조치가 취해지도록 해당 팀에게 즉각적으로 통보할 수 있어야 한다. 이러한 유형의 솔루션은 보안 격차(인프라 드리프트로 인해 생성되는 이전에는 감지할 수 없었던 것과 알고 있는 모든 것)를 줄이는데 관심이 있는 CISO들에게 과도한 운영 부담 없이 조직의 전반적인 보안 태세를 강화하는데 도움을 줄 수 있다. 특히 통합 드리프트 탐지 접근방식은 사용자 경험과 궁극적으로는 수익에 부정적인 영향을 미칠 수 있는 애플리케이션 중단 가능성을 크게 줄일 수 있다. 또한 팀이 시스템 변경사항을 추적 및 신속하게 해결하고, 누가 왜 변경했는지 식별하는 것은 물론, 필요에 따라 표준 워크플로우를 조정하거나 추후 참조할 수 있도록 변경사항을 기록할 수도 있다. 마지막으로, 강력한 드리프트 탐지 시스템은 팀이 협업할 수 있는 일관된 단일 정보 소스를 제공함으로써 운영 민첩성을 높일 수 있다. 동일한 정보로 작업을 수행함으로써 커스텀 툴을 구매 또는 개발하거나 상태 업데이트를 위해 수동 조치를 취할 필요가 없으며, 이 모든 것에 대한 뛰어난 가시성을 보장하고, 문제 해결 시간을 단축할 수 있다. ■ 자동화, 탐지 및 경고 요약하면, 자동화된 인프라 프로비저닝은 상당한 생산성과 보안 상의 이점을 제공할 수 있다. 그러나 인프라가 변경되었는데, 실제 상태가 기록된 IaC 상태에 반영되지 않는다면 어떻게 될까? 드리프트는 끊임없이 변화하는 역동적인 최신 인프라의 불행한 부작용이라 할 수 있다. 인프라 드리프트의 영향을 최소화하기 위해서는 운영 팀에게 가시성을 제공하고, 필요 시 적절한 조치를 취할 수 있도록 담당자에게 통보할 수 있는 드리프트 탐지 시스템이 필요하다. 중앙집중식 자동화 툴과 표준화된 프로세스 하에서 체계적으로 협력한다면, 시스템의 가시성을 높이는 것은 물론, 보다 신속하게 인프라 문제를 해결할 수 있다.