정책 리스크를 파악하십시오. 정책에 대한 질문을 일상 언어로 하십시오. 데모 신청하기 →

Published:

최소 권한, JIT, 강력한 인가에 대하여

by Rich Mogull

저는 20년 넘게 보안 전문가로 일해 왔습니다. "최소 권한"이라는 말을 몇 번이나 입에 올렸는지 도저히 셀 수 없을 정도입니다. 이 말은 "심층 방어"나 "내부자 위협"과 나란히 놓인 일종의 주문과도 같습니다.

그러나 누군가에게 최소 권한을 적용하라고 말한 뒤 방을 나가 버리는 것은, 의사가 보험 건강검진에서 불합격 판정을 내리면서 "더 건강하게 드세요"라고만 말하고는 과도한 진료비를 청구하기 전에 방을 나가 버리는 것과 같습니다.

최소 권한은 실체가 있는 개념입니다. 중요합니다. 90일마다 비밀번호를 바꾸는 것과 달리, 보안 수준을 개선하는 데 실질적인 영향을 줄 수 있습니다.

최소 권한은 또한 대단히 어렵습니다. 특히 대규모 환경에서 그렇습니다. 그리고 가장 중요한 사용자에게는 통하지 않습니다.

왜 그럴까요? 최소 권한이란 지금 이 순간에 필요한 최소한의 권한이 아니라, 업무를 수행하기 위해 언젠가 필요할 수도 있는 최소한의 권한이기 때문입니다… 그 언젠가란 앞으로 내내를 뜻합니다. 그리고 누군가 그 권한을 처음 매핑했을 때의 범위를 벗어난 작업을 해야 할 경우, 여러 팀과 관리자를 거쳐야 하는 느린 변경 절차가 시작됩니다.

또는 그저 Bob을 설득해 접근 권한을 받아내야 할 때도 있습니다. 그런데 Bob은 아무도 믿지 않고 당신이 일을 그르쳤을 때 책임을 뒤집어쓰고 싶지 않기 때문에 다소 방어적이고 까다로운 사람입니다.

최소 권한을 적용하더라도 공격자가 해당 자격 증명을 탈취하면(클라우드 네이티브 침해의 주된 원인입니다) 여전히 악의적인 행위를 할 수 있습니다. 일반 사용자나 직원에게 최소 권한을 구현하는 것은 그리 끔찍하지 않지만, 본질적으로 더 많은 권한이 필요한 개발자와 관리자에게 이를 적용하기란 매우 어렵기 때문입니다.

강력한 인증을 위해 MFA가 있는 것처럼, 우리에게는 강력한 인가를 위한 수단이 필요합니다.

여기서 Just in Time(JIT)이 등장합니다. 누군가에게 필요한 모든 권한을 사전에 파악하려 애쓰는 대신, 언제든 시간이 제한된 권한을 요청할 수 있게 하는 방식입니다. 이제 저는 JIT가 관리자 및 민감 접근에 대한 표준이 되어야 한다고 생각합니다.

최소 권한은 일반 사용자 접근에는 훌륭한 개념이지만, 클라우드에서의 관리자/개발자/민감 접근에는 어떤 수준이든 JIT가 더 낫다고 권고합니다.

Just in Time

JIT는 PIM/PAM의 한 형태입니다. 특권 접근 관리(Privileged Access Management)와 특권 아이덴티티 관리(Privileged Identity Management)는 사용자의 권한을 상승시키도록 설계된 시스템입니다. 사용자는 낮은 수준의 권한으로 작업하다가 상승이 필요할 때 이들 시스템이 여러 기법을 활용해 확장된 접근 권한을 제공하며, 보통 시간이 제한된 세션으로 운영됩니다. 세부적인 차이를 다룰 자리는 아니지만, 이 방식의 장점은 보안을 유지하면서도 유연성을 확보할 수 있다는 점입니다. 추가 권한이 필요할 때마다 요청해야 하므로, 자격 증명이 탈취되더라도 공격자는 여전히 제약을 받습니다.

"JIT"(Just in Time)는 PAM/PIM(사실상 모든 접근)을 구현하는 하나의 기법입니다. 사용자는 아무것에도 접근할 수 없을 수도 있는 기본 자격 증명을 갖고 있다가, 요청 시 권한이 상승됩니다. 저희도 JIT를 직접 사용하고 있으며(Cloud Defense에서 제공됩니다), Netflix는 내부 도구를 기반으로 ConsoleMe라는 오픈 소스 도구를 공개했습니다. Azure에는 Entra ID Privileged Identity Management라는 기본 제공 서비스가 있습니다(다만 추가 비용이 발생합니다). (Entra ID는 누군가가 브랜딩을 이유로 수백만 고객을 혼란스럽게 만드는 것이 좋은 생각이라고 결정하기 전까지 Azure AD라고 부르던 것입니다.) 이 외에도 더 많은 선택지가 있으며, 이들은 예시일 뿐입니다.

보안을 강화하려면 JIT는 대역 외(out-of-band) 승인 흐름을 사용하고 시간이 제한된 접근을 제공해야 합니다. 이것이 기본입니다. 요청과 승인은 MFA와 마찬가지로 일반적인 인증과는 다른 경로를 거쳐야 합니다. 차이가 있다면 MFA는 인증(본인이 주장하는 사람임을 증명하는 것)을 위한 대역 외 요소이고, JIT는 인가(무언가를 수행할 권한을 요청하고 부여받는 것)의 한 형태라는 점입니다.

마찰 관리

최소 권한과 JIT 모두 마찰을 일으킵니다. 사실 보안에서 하는 모든 일은 어떤 형태로든 마찰을 일으키며, 특히 Bob이 그렇습니다. 최소 권한의 주된 마찰은 권한을 정의하고 배포하는 데 드는 부담과, 필요한 권한이 없을 때 발생하는 장애입니다. JIT의 마찰은 요청을 제출하고 승인을 받는 절차입니다.

최소 권한과 JIT를 오랫동안 사용하고 연구해 오면서 마찰을 줄이는 기법을 익혔습니다. 경우에 따라서는 기존 방식보다 더 빠르고 더 나은 프로세스를 얻게 되기도 합니다

  • 요청과 승인 흐름은 실시간이어야 합니다. 즉 ChatOps, 문자 메시지, 또는 COVID 백신과 함께 이식된 5G 칩을 통한 승인을 의미합니다.
  • 일부 로그에 대한 읽기 권한처럼 권한 수준이 낮은 접근이라면 자가 승인을 지원할 수 있고, 또 지원해야 합니다. 이것이 어떤 도움이 될까요? 여전히 대역 외 절차를 사용하므로, 공격자가 분실·도난·유출된 자격 증명을 악용할 여지를 줄여 주기 때문입니다.
  • 자가 승인을 위해 클릭할 필요조차 없는 자동 승인도 지원할 수 있습니다. 이것이 어떤 도움이 될까요? 자동으로 승인하면서도 대역 외 채널을 통해 권한이 상승되었음을 알릴 수 있습니다. Netflix나 Hulu 계정에 기기를 추가해 본 적이 있다면 이런 방식을 보셨을 것입니다. 인지시키는 것만으로도 대단히 효과적일 수 있습니다.
  • 개발자를 대상으로 한다면 명령줄과 그들이 사용하는 다른 도구를 지원해야 합니다. 그들에게 찾아가십시오. 사용하기 매우 쉽게 만드십시오. 보안 도구에 로그인하도록 강요한다면 그 프로젝트는 실패합니다.
  • 승인자가 즉각적으로 응답하지 않는다면 실패하게 됩니다. Bob을 유일한 승인자로 두지 마십시오.

개발자와 관리자가 이미 사용하고 있는 도구 안에서 이 기능을 제공하십시오. 빠르고 마찰 없이 만드십시오. 이상적으로는 비밀번호 관리자를 여는 것이나, 374개의 클라우드 계정 중에서 골라야 하는 SSO 포털을 클릭해 돌아다니는 것보다 더 쉽고 빠르게 만드십시오. Bob에게 쿠키를 사 주십시오. 초코칩으로요. (아, 잠깐, 그건 제 얘기군요.)

자동화를 활용해 최소 권한 접근의 마찰을 줄일 수도 있습니다. Duckbill Group은 Chris Farris의 도움을 받아 다른 기술을 사용해 자체적인 자동화 최소 권한 구현을 만들었습니다. AWS Access Advisor와 같은 도구는 사용된 권한을 모니터링하고 범위를 좁히는 데 도움을 줍니다. 자동화는 대규모 환경에서 최소 권한을 구현하는 데 도움이 되며, JIT를 보완하는 수단이 될 수도 있습니다.

어떤 경우에 무엇을 사용할 것인가

최소 권한이 결코 죽은 개념은 아닙니다. 상당히 일관된 수준의 접근이 필요한 일상적인 사용자와 직원에게는 여전히 최고의 기준입니다. JIT는 더 높은 권한의 접근, 특히 프로덕션 환경 접근과, 자격 증명 노출이 침해의 가장 큰 원인인 클라우드에서 가장 적합합니다. 저희가 직접 활용하는 영역은 다음과 같습니다.

  • 프로덕션에 대한 개발자 읽기 접근.
  • 프로덕션에 대한 개발자 변경 접근(CI/CD 외부). 훨씬 더 제한적이며 더 많은 승인자가 필요합니다.
  • 프로덕션 계정에 대한 관리자 접근.
  • 사고 대응 접근.
  • 일부 개발 계정 접근. 특히 명령줄에서 작업할 때는 SSO 포털로 돌아가는 것보다 더 빠를 수 있기 때문입니다.

이제 저는 강력한 MFA를 사용하더라도 클라우드(IaaS/PaaS)에서 의미 있는 수준의 특권 접근에 최소 권한만으로는 유효한 개념이 아니라고 생각합니다. 대규모 환경에서 시간이 지나도 권한 범위를 적절히 유지하기란 너무 어렵습니다. 이러한 사용 사례에서는 JIT가 훨씬 나은 선택입니다. 최소 권한은 시간이 지나도 일관된 권한이 필요한 경우, 특히 우수한 접근 로깅 및 MFA와 결합할 때 여전히 매우 유효합니다. JIT는 MFA의 동반자입니다. 즉, 강력한 인증과 짝을 이루는 강력한 인가입니다. 더 많은 핵심 운영 업무가 인터넷에 노출된 관리 플레인으로 이동함에 따라, JIT가 나아갈 길입니다.

최소 권한, JIT, 강력한 인가 | FireMon