짧은 세션 만료는 보안에 도움이 되지 않아요

https://www.sjoerdlangkemper.nl/2023/08/16/session-timeout/ 이 글은 네덜란드의 보안 전문가인 Sjoerd Langkemper가 쓴 "Short session expiration does not help security"을 제가 일부 번역한 내용입니다. 관습적으로 세션 Expires를 짧게 설정하고 계시다면, 그럴 필요가 없다는 신선한 관점에서 읽어보실 수 있습니다. --- (서론) 우리가 웹에서 로그인을 할 때 만들어진 세션은 영원히 유지되지 않습니다. 일반적으로 세션은 로그인 후 일정 시간이 지나거나 사용자가 일정 시간 동안 아무런 행동도 하지 않을 때 만료됩니다. 이 시간은 얼마나 길어야 할까요? 보통 웹에서 세션이 만료되면 로그아웃 후 다시 인증을 해야 합니다. 현재 보안 권장 사항은 15분 동안 활동이 없을 경우와 같이 세션 시간을 매우 짧게 설정하라고 합니다. 그러나 대부분의 모바일 앱과 Gmail 또는 GitHub와 같은 대형 웹 애플리케이션은 이를 준수하지 않습니다. 사용자가 다시 인증을 하지 않아도 계속 로그인할 수 있는 것처럼 보입니다. 이렇게 하면 보안에 취약할까요? 구글과 마이크로소프트가 NIST와 OWASP보다 더 잘 알고 있을까요? (본론) 우리는 공격자가 사용자의 활성 세션에 무단으로 액세스하는 상황을 생각해서 세션 만료 시간을 짧게 설정하곤 합니다. 이는 세션 쿠키를 훔치거나, 세션 고정 취약점을 악용하거나, 피해자와 동일한 디바이스를 사용하는 등 다양한 방법을 통해 발생할 수 있습니다. 하지만, 15분 동안 사용자가 활동이 없을 때 세션을 만료하는 것으로 세션 탈취를 방지할 수 있을까요? 만약 여러분이 점심을 먹으러 간 사이에 컴퓨터를 잠그는 것을 깜빡했는데 공격자가 책상에 앉아서 컴퓨터에 액세스한 경우를 상상해 봅시다. 공격자의 행동이 너무 느려서 이미 세션이 만료되었다고 칩시다. 하지만 공격자는 이미 이메일, Slack, 비밀번호 저장소, SSH 에이전트, 브라우저 및 파일에 액세스할 수 있습니다. 활성화된 세션이 없어도 새로운 세션을 만들 수 있습니다. 비밀번호 저장소를 사용하거나 '비밀번호 찾기'를 사용하여 비밀번호 재설정 메일을 보낼 수 있습니다. 2FA가 활성화된 상태에서 점심시간에 휴대폰이나 유비키를 가져가는 경우 웹 애플리케이션에 대한 즉각적인 액세스를 차단할 수 있는 상황도 있습니다. 하지만 이 경우에도 공격자는 다음에 로그인할 때 사용자의 credentials을 전송하는 브라우저 확장 프로그램을 설치할 수 있습니다. 안전을 위해 짧은 세션을 선호할 수도 있습니다. 하지만 짧은 세션은 사용자 경험과 보안 측면에서 모두 단점이 있습니다. 15분마다 다시 로그인해야 한다면 가능한 한 쉽게 인증해야 합니다. 즉, 비밀번호 보관함을 열어두거나, 더 쉬운 비밀번호를 선택하거나, 매번 비밀번호를 클립보드에 저장해야 합니다. 재인증에는 자체적인 위험이 따릅니다. 만료 시간이 짧아진다고 해서 전체적인 위험이 자동으로 줄어드는 것은 아닙니다. (결론) 세션 토큰은 매우 안전합니다. 위에서 설명한 위협은 디스크 암호화, 컴퓨터 잠금 또는 HttpOnly 쿠키와 같은 다른 조치로 쉽게 해결할 수 있습니다. 그럼에도 불구하고 누군가 세션을 손상시키면 세션이 5분이든 영원히 지속되든 문제가 발생합니다. 짧은 세션 시간 초과로 차단되는 공격은 매우 드뭅니다. 마지막으로, 짧은 세션 시간 초과에는 보안 및 사용자 경험 비용이 발생합니다. Facebook, Google, Amazon, GitHub는 만료되지 않는 세션을 사용합니다. 이들은 이를 감수할 수 있는 위험이라고 생각합니다. 맞는 말이라고 생각합니다.

Short session expiration does not help security

Sjoerd Langkemper

Short session expiration does not help security

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 8월 21일 오후 2:19

 • 

저장 26조회 2,179

댓글 0