TECH 으로 돌아가기
TECH HACKER NEWS 오늘 6분 읽기 40 READS

훔친 쿠키가 안 통하는 시대가 올까요 — '가지고 갈 수 없는 세션' 이야기

요즘 계정 해킹 뉴스를 보면 패턴이 달라졌어요. 비밀번호를 무차별 대입으로 깨는 게 아니라, 로그인 '세션'을 통째로 훔쳐가는 방식이 주류가 됐거든요. 'The session you cannot take with you', 그러니까 '가지고 갈 수 없는 세션'이라는 제목의 글이 바로 이 문제를 다루는데요. 세션이라는 게 원래는 어디로든 복사해 갈 수 있는 물건이라는 점이 문제의 뿌리이고, 그래서 세션을 기기에 묶어서 아예 '가지고 갈 수 없게' 만들자는 게 요즘 브라우저와 보안 업계가 밀고 있는 방향이에요.

세션이 뭐길래 훔쳐가는 걸까요

세션이 뭐냐면, 로그인에 성공했을 때 서버가 발급해주는 출입증이에요. 보통 쿠키나 토큰 형태로 브라우저에 저장되고, 이후에는 요청할 때마다 이 출입증만 보여주면 통과돼요. 매번 비밀번호를 다시 입력하지 않아도 되는 건 이 덕분이죠. 문제는 이 출입증이 그냥 문자열이라는 거예요. 복사가 되거든요. 인포스틸러라고 부르는 악성코드가 여러분 컴퓨터에서 브라우저에 저장된 쿠키를 몽땅 긁어가면, 공격자는 자기 컴퓨터 브라우저에 그걸 붙여넣는 것만으로 '이미 로그인된 상태'에서 시작해요.

여기서 무서운 점이 있어요. 2단계 인증(2FA)도 소용이 없다는 거예요. 2FA는 로그인하는 순간의 검문이고, 쿠키는 그 검문을 통과한 뒤에 받은 출입증이거든요. 출입증을 든 사람은 검문을 다시 받지 않아요. 실제로 유명 유튜브 채널 탈취 사고나 기업 내부 시스템 침투 사고 상당수가 이 세션 탈취 방식으로 일어났어요.

해법은 세션을 기기에 묶는 거예요

그래서 나온 아이디어가 '세션이 다른 기기로 이사 갈 수 없게 만들자'예요. 대표적인 게 구글이 추진해온 DBSC(Device Bound Session Credentials, 기기 결합 세션 자격 증명)라는 표준인데요. 동작 방식이 꽤 우아해요. 로그인할 때 브라우저가 기기 안의 보안 칩, 그러니까 TPM에 암호 키 쌍을 만들어요. TPM이 뭐냐면 개인키를 절대 밖으로 꺼낼 수 없게 하드웨어로 설계된 금고예요. 이후 서버는 주기적으로 '이 키로 서명해봐'라는 챌린지를 보내고, 진짜 그 기기라면 금고 속 개인키로 서명해서 응답해요. 쿠키만 복사해 간 공격자는 금고를 통째로 뜯어갈 수 없으니 서명을 못 하고, 세션은 곧 무효가 되는 거죠. 로그인 순간에만 쓰던 패스키의 하드웨어 보안 원리를 로그인 '이후'의 세션 전체로 확장한 거라고 보시면 돼요.

물론 트레이드오프도 있어요. 진짜로 '가지고 갈 수 없는' 세션은 정당한 이사도 막거든요. 새 컴퓨터로 바꾸면 모든 로그인을 처음부터 다시 해야 하고, 브라우저 프로필 동기화나 백업 복원 같은 편의 기능과도 부딪혀요. 보안과 편의성의 오래된 줄다리기가 여기서도 반복되는 거예요.

처음 나온 아이디어는 아니에요

업계 맥락을 보면, 사실 비슷한 시도가 예전에도 있었어요. Token Binding이라는 표준이 만들어졌지만 주요 브라우저가 지원을 철회하면서 좌초했거든요. 그런데 지금은 상황이 달라요. 패스키가 빠르게 퍼지면서 하드웨어 기반 인증에 대한 사용자와 개발자의 거부감이 크게 줄었고, 세션 탈취 피해가 커지면서 기업용 인증 서비스들도 세션 보호에 적극적이에요. 한 번 실패했던 아이디어가 시대를 만나 다시 도전하는 그림이에요.

우리 서비스에는 뭘 적용할 수 있을까요

DBSC가 완전히 자리 잡기 전이라도 지금 할 수 있는 게 많아요. 세션 수명을 짧게 가져가고 리프레시 토큰을 회전시키기(한 번 쓴 토큰은 폐기하고 새로 발급하는 방식이에요), 결제나 비밀번호 변경 같은 민감한 작업 앞에서는 재인증을 요구하기, 접속 IP나 기기 특성이 갑자기 바뀌면 세션을 의심하고 무효화하기, 로그아웃할 때 서버 쪽에서도 세션을 확실히 파기하기 같은 것들이요. 세션을 '한 번 발급하면 끝나는 것'이 아니라 '계속 검증해야 하는 것'으로 바라보는 관점 전환이 핵심이에요.

정리하면, 인증의 다음 격전지는 로그인 화면이 아니라 로그인 이후의 세션이라는 거예요. 여러분 서비스의 세션 만료 정책은 어떻게 되어 있나요? 보안과 사용자 경험 사이에서 어디에 선을 그으셨는지 궁금해요.


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://earendil.com/posts/session-portability/
SHARE
처리 중...