본문 바로가기

POST/Tech

시크릿 관리를 위한 5가지 모범관행

Designed by Sophie

 

민감정보인 시크릿을 관리하는 방법에는 무엇이 있을까요? 그리고 하드 코딩된 또는 텍스트 크리덴셜이 마구 확산되는 것을 막는 방법은 무엇이 있을까요? 시크릿을 관리하는 모범관행 5가지를 살펴보겠습니다.

중앙화된 시크릿 컨트롤 플레인

장점: 에러 감소, 디버깅 및 감사 속도 증가, 보안 관리 간소화

 

시크릿을 단일화된 툴이나 플랫폼으로 관리해야 합니다. 한 곳에 시크릿을 모아 관리하는 것이 오히려 공격자가 더 쉽게 공격할 수 있도록 하는 것이라는 의견도 있지만, 여기저기 흩어져 저장되어 있거나 여러 가지 다양한 형태로 관리되는 것보다 하나의 클러스터 혹은 연결된 클러스터를 견고히 하는 것이 훨씬 쉽고 안전한 관리가 가능합니다.

 

놀랍지만 대다수의 조직은 중앙화된 관리 계획이 준비되어 있지 않습니다. 일부 조직은 시크릿 매니저나 자체 관리툴을 사용하고 있지만, 시크릿이 깃허브와 같은 버전 관리 시스템에 노출되어 있는 경우가 대부분입니다. 또는 엑셀시트나 키보드 옆에 포스트잇에 적어둔 경우도 많습니다. 이런 관행이 절대 안전하지 않다는 점을 우리는 모두 알고 있습니다. 보안 경험이 적은 신입 개발자나 엔지니어가 AWS 키와 같은 시크릿을 텍스트 형태로 퍼블릭이나 프라이빗 리포지토리에 퍼블리싱하는 경우도 왕왕 있습니다. 그리고, 이것은 악의적인 공격에 활용됩니다.

 

이런 심각한 상황이 시크릿 스프롤입니다. 이런 상황을 개선하기 위해 전사적인 프로세스나 툴을 도입하기도 하는 등 다양한 보완책이 나오고 있지만, 팀별로 상이한 툴을 사용하거나 관리 정책이나 수준이 팀별로 차이가 날 수 있습니다. 이것은 아주 오래된 논쟁 거리인데 바로 ‘유연성과 표준화’ 논쟁입니다.

 

유연성은 개발자가 원하는 프로그램 언어, 프레임워크, 데이터베이스 및 클라우드 서비스를 선택하도록 합니다. 이런 높은 자유도는 개발자의 동기부여와 창의성을 높여주는 장점이 있습니다.

그러나 코어 안정성도 필요합니다. 모든 팀과 개발자가 서로 다른 언어와 툴을 사용하면 이를 관리하는 비용이 높아지며 보안에도 헛점이 발생할 수 있습니다.

 

단일 컨트롤 플레인을 통해 시크릿 접근을 중앙화하지 않으면 조직은 강력한 거버넌스, 감사, 보안 관리를 구현할 수 없습니다. 보안 관행을 쉽게 확장하는 것도 어렵습니다.

액세스 컨트로 리스트(ACL)

장점: 시스템을 통한 측면 이동을 제한합니다.

 

중앙화된 시크릿 컨트롤 플레인을 통해 시크릿의 접근을 관리하고 있다면 그 다음 단계로 액세스 제어 기능을 통해 보안을 강화해야 합니다.

 

내부에서 시크릿 관리 도구를 개발하는 대신 목적에 맞는 시크릿 관리 도구를 활용하여 업무 효율성을 높일 수 있습니다.

 

시크릿 매니저와 같은 관리 도구는 대부분 경험이 풍부한 보안 전문가들이 제작했으며, 특히 오픈소스인 경우 다양한 산업과 기업의 보안 전문가의 기여를 받아 높은 수준의 보안을 제공합니다. 대부분의 전문가들은 자체 시크릿 관리 도구를 개발하는 것은 자사의 핵심 제품/서비스와 일치하지 않는 한 권장하지 않습니다. 시크릿 관리와 같은 특수한 솔루션을 개발하는 데에는 상당한 도메인 전문 지식과 많은 비용과 시간이 소요되기 때문입니다. 플랫폼팀에서 자사의 비즈니스와 궁합이 맞는 적절한 도구를 선택하고 통합하는데 집중해야 합니다.

 

결론적으로 시크릿 관리 도구를 사용하고 ACL 기능을 활용해야 합니다. 제공되는 ACL 기능을 통해 개발자가 민감한 정보에 접근하는데 있어 접근 가능한 것과 접근 불가한 것에 대한 경계를 설정할 수 있습니다. ACL을 등한시하면 결국 시크릿 스프롤이 발생하는 단계로 다시 돌아가게 됩니다. 즉, 너무 많은 권한이 주어진 개발자들로 인해 시스템의 시크릿 관리가 이뤄지지 않고, 보안이 취약해집니다.

 

우수한 플랫폼 속도와 보안 사이의 균형을 유지하며, 최소 권한 원칙을 준수하는 워크플로우를 설계하고 구성해야 합니다. 우수한 플랫폼팀은 개발자의 작업 흐름이 매끄럽게 통합되는 시크릿 관리 워크플로우를 구축합니다. 경고한 접근 제어를 구현하고 목적에 맞는 시크릿 관리 도구를 활용하여 조직은 보안 포지션을 강화하고 개발 프로세스를 간소화할 수 있습니다.

다이내믹 시크릿 (동적 시크릿)

장점: 침해 발생 시간 단축

 

대체로 시크릿 관리를 처음 도입하는 조직은 정적 시크릿을 사용합니다. 정적 시크릿은 담당자가 시크릿 매니저를 통해 수동으로 교체해야 하지만 동적 시크릿은 플랫폼팀에서 관리하며 시스템과 통합된 시크릿 매니저를 통해 자동으로 개인이나 조직에게 유효기간이 정해진 일시적인 크리덴셜(자격증명)을 생성해 줍니다.

 

동적 시크릿은 개인 또는 머신이 데이터베이스, AWS, MS Azure 등 시스템에 대한 액세스를 요청하면 시크릿 매니저를 통해 시크릿을 요청하면 시크릿 엔진이나 AWS, MS Azure가 시크릿을 생성합니다. 이런 과정은 하루에도 수천번 자동화되어 운영될 수 있습니다.

중요한 점은 시크릿 매니저가 언제든지 침해 또는 폐기된 머신으로 인해 언제든지 시크릿을 취소할 수 있어야 한다는 점입니다.

서비스로써의 암호화(Encryption as a service)

장점: 침해 방지

 

앞의 3가지 모범관행을 적용하게 되면 자연스럽게 암호화 키 관리에 대한 필요성을 깨닫게 됩니다.

 

시크릿 관리자는 암호화 키를 중앙 집중화하여 적절한 액세스 제어를 제공함으로써 악의적인 공격자로부터 네트워크 침입에 대한 보안을 강화할 수 있습니다. 데이터 이동 중에도 암호화를 통해 시크릿 관리자는 추가적인 보호를 제공하며, 유출된 키를 폐기하고 애플리케이션 간에 전송된 데이터를 암호화하여 기밀성을 보장합니다.

 

서비스로써의 암호화를 이용하면 개발자들은 크립토 운영에 할애되는 시간과 노력을 감소하고 조금 더 중요한 업무에 집중할 수 있습니다. 시크릿 관리는 대부분 최고의 암호화 방식과 툴 위에 구축됩니다.

 

많은 조직이 퍼블릭 키 인프라(PKI)를 자동화하여 직접 인증기관(CA)을 구축함으로서 보안을 강화하고 시크릿 관리를 효율화하고 있습니다.

감사

장점: 시크릿 포스쳐에 대한 더 나은 이해와 침해 감지

 

현재 진행되는 일에 대한 완전한 가시성을 가지지 못하면 제대로 된 관리를 하지 못합니다. ACL을 통해 액세스에 대한 이해, 시크릿 생성, 폐기, 추적, 실시간 모니터링을 위한 로그 활용이 가능합니다.

 

시크릿 관리 플랫폼에는 포괄적인 감시 기능과 통찰력이 필요합니다. 동적 시크릿 자동화는 시크릿 모니터링을 단순화하며 인증 및 사용 추적을 위한 상세한 감사 로그를 제공합니다. 암호화 서비스에서는 암호화 또는 복호화 작업에 대한 접근성을 확인해야 합니다. 효과적인 시크릿 감사는 시스템 보안을 평가하는 데 사용되는 지표를 제공하고 사이버 보안 규정을 준수하는 데 도움이 됩니다. 또한, 적시에 조치를 취할 수 있도록 해줍니다. 손상된 정적 시크릿을 수동으로 회전하거나 동적 비밀을 즉시 폐기하는 등의 조치를 취할 때 필요한 시점을 파악할 수 있습니다.

 

완전한 가시성은 적극적인 보안 조치와 규정 준수를 가능하게 합니다.

 

시크릿 관리 도구를 아직 사용하고 있지 않다면 도입 검토를 진행하기를 권고합니다. 다만, 직접 시크릿 관리 툴을 개발하는 것은 권하지 않습니다. 또한 Kubernetes Secrets를 사소한 보안 사용사례에 적용하는 것 역시 권하지 않습니다. Kubernetes Secrets 데이터는 base64 포맷으로 암호화되며 etcd 키-밸류에 플레인 텍스트로 저장되어 있습니다. 이런 디폴트 저장 방식과 포맷은 Kubernetes Secrets을 쉬운 공격 대상으로 만들고 있습니다.

 

 

광범위한 시크릿 관리 도구를 검토 중이라면 하시코프 볼트를 검토해 보기를 권고합니다. 하시코프 볼트에 대하여 추가 문의가 있다면 아래 링크를 통해 연락 주세요. (하시코프 볼트 문의)

 

 

원문출처: 5 best practices for secrets management

 

참고링크: 

HCP Vault Radar 베타 버전 출시!

하시코프 Vault 신규기능 안내