패스잇
보안 · 중급

안전한 인증 시스템을 설계할 때, 세션 관리 측면에서 고려해야 할 주요 보안 요소들은 무엇이며, 이를 OWASP 관점에서 어떻게 설명할 수 있을까요?

힌트 · 세션 토큰의 무작위성, 적절한 세션 타임아웃 설정, 세션 고정(Session Fixation) 방지, 그리고 HttpOnly 및 Secure 플래그를 사용한 쿠키 관리가 중요합니다.

세션 ID쿠키 보안HTTPOnly세션 하이재킹OWASP ASVS

모범답안

안전한 인증 시스템 설계 시 세션 관리 측면에서 중요한 보안 요소는 크게 네 가지로 볼 수 있습니다.

첫째, 예측 불가능한 세션 ID를 생성해야 합니다. 충분히 긴 길이와 무작위성을 확보하여 세션 하이재킹 공격을 어렵게 만들어야 합니다. OWASP ASVS에서는 이를 위해 강력한 난수 생성기를 사용할 것을 권고합니다.

둘째, 적절한 세션 타임아웃을 설정해야 합니다. 너무 짧으면 사용자 불편을 초래하고, 너무 길면 공격자가 세션을 탈취했을 때 악용할 수 있는 시간이 늘어납니다. 서비스 특성에 맞춰 적절한 균형점을 찾아야 합니다.

셋째, 세션 고정(Session Fixation) 공격을 방지해야 합니다. 로그인 성공 후에는 반드시 기존 세션 ID를 무효화하고 새로운 세션 ID를 발급해야 합니다.

넷째, 쿠키 보안 설정이 중요합니다. HttpOnly 플래그를 설정하여 클라이언트 측 스크립트에서 쿠키에 접근하는 것을 막고, Secure 플래그를 설정하여 HTTPS 연결에서만 쿠키가 전송되도록 해야 합니다. OWASP에서는 이러한 쿠키 보안 설정을 통해 XSS 공격 및 중간자 공격으로부터 세션을 보호할 것을 강조합니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 OWASP / 취약점 면접 질문

← OWASP / 취약점 면접 질문 전체 보기