제로 트러스트는 디바이스 검증에서 시작된다
디바이스를 검증하지 않고 사용자만 신뢰하는 것은 신분증만 확인하고 훔친 차는 놓치는 것과 같다. 디바이스 인텔리전스가 제로 트러스트 아키텍처에 어떻게 들어맞는지 살펴본다.
제로 트러스트 아키텍처는 단순한 원칙 위에 세워진다. 절대 신뢰하지 말고 항상 검증하라. 그러나 대부분의 구현은 사용자를 검증하는 데 집중한다. 즉 사용자의 신원, 권한, 인증 요소는 확인하면서도 그들이 사용하는 디바이스는 무시한다. 이는 문 앞에서 신분증은 확인하면서 그 사람이 훔친 차를 타고 왔다는 사실은 알아차리지 못하는 것과 같다.
디바이스라는 사각지대
전형적인 제로 트러스트 구성을 생각해 보자. 사용자가 자격 증명으로 인증하고, MFA를 완료한 뒤, 세션 토큰을 받는다. 시스템은 그들이 누구인지는 검증하지만 무엇을 사용하고 있는지는 검증하지 않는다. 공격자가 세션 토큰을 탈취해 다른 디바이스에서 재사용하면, 대부분의 시스템은 이를 수락한다. 정상 사용자의 디바이스가 침해되어 브라우저 내 중간자(man-in-the-browser) 공격을 실행하고 있어도, 시스템은 디바이스를 한 번도 검증하지 않았기 때문에 이를 탐지할 수 없다.
디바이스 검증은 이 공백을 메운다. 모든 세션에 대해 지속되는 디바이스 지문을 생성함으로써, 세션 토큰이 다른 디바이스로 이전되는 시점, 기존 사용자가 낯선 디바이스에 나타나는 시점, 또는 디바이스가 침해와 연관된 특성(VPN 사용, 시크릿 모드, 브라우저 변조)을 보이는 시점을 탐지할 수 있다.
디바이스 신뢰 점수화
모든 디바이스가 같은 수준의 신뢰를 받을 자격이 있는 것은 아니다. 이전에 관찰된 적이 있고, 특성이 일관되며, 익숙한 위치에서 접속하는 디바이스는 높은 신뢰를 받을 만하다. 반면 새로 등장했고, VPN에서 실행되며, 시크릿 브라우저에 자동화 징후까지 보이는 디바이스는 매우 낮은 신뢰를 받아야 한다.
Tracio의 Smart Signals 분석은 하드웨어 안정성(디바이스 지문이 이전에 관찰된 적이 있는가?), 환경 신호(VPN, 프록시, Tor, 시크릿 모드), 변조 지표(위조된 user agent, 조작된 canvas, 일관성 없는 WebGL), 행동 패턴(요청 속도, 탐색 패턴, 상호작용 타이밍)을 종합적으로 고려한 디바이스 신뢰 점수를 산출한다.
단계별 인증(Step-Up Authentication)
디바이스 신뢰 점수는 동적인 단계별 인증을 가능하게 한다. 모든 접근에 대해 동일한 인증 요소를 요구하는 대신, 디바이스 위험 프로필에 따라 요구 사항을 조정할 수 있다.
낮은 위험(알려진 디바이스, 익숙한 위치, 이상 징후 없음): 긴 세션과 함께 비밀번호 전용 로그인을 허용한다. 중간 위험(새 디바이스, 익숙한 위치): MFA를 요구한다. 높은 위험(새 디바이스, VPN, 시크릿 모드, 높은 요청 속도): MFA에 더해 추가 검증(이메일 확인, 보안 질문)을 요구한다. 심각한 위험(봇 지표, 변조 탐지): 요청을 완전히 차단한다.
이 방식은 사용자 경험을 해치지 않으면서 보안을 강화한다. 자신의 평소 디바이스를 쓰는 정상 사용자는 인증을 매끄럽게 통과하고, 의심스러운 세션은 그에 걸맞은 마찰을 겪는다.
지속적인 디바이스 모니터링
제로 트러스트는 일회성 관문 검사가 아니라 지속적인 검증이다. Tracio의 시스템은 로그인 시점만이 아니라 세션 전반에 걸쳐 디바이스 특성을 모니터링한다. 정상 디바이스에서 시작된 세션이 어떤 식으로든 세션 중간에 다른 디바이스로 이전되면(토큰 탈취를 시사한다), 그 변화를 즉시 탐지한다.
또한 우리는 침해를 시사할 수 있는 디바이스 특성 변화도 감시한다. 갑작스러운 VPN 전환, 브라우저 개발자 도구 실행, 자동화 프레임워크 흔적의 출현 같은 것들이다. 이러한 세션 중간의 변화는 경보를 발생시키고 세션의 위험 수준을 자동으로 끌어올릴 수 있다.
구현
디바이스 검증을 제로 트러스트 아키텍처에 통합하는 것은 tracio.ai로 간단하다. 인증 페이지와 핵심 애플리케이션 페이지에 우리의 JavaScript 에이전트를 추가한다. 서버 측에서는 세션 토큰을 검증할 때 디바이스 지문과 신뢰 점수를 확인한다. 그 신뢰 점수를 활용해 단계별 인증 결정을 이끈다.
대부분의 팀에게 이 통합은 하루도 채 걸리지 않는다. JavaScript 에이전트는 지연 시간을 50ms 미만으로 추가한다. 서버 측 API는 10ms 이내에 디바이스 인텔리전스를 반환한다. 그 결과는 사용자와 디바이스를 모두 진정으로 검증하는 제로 트러스트 구현이다.