세션 하이재킹 (Session Hijacking)

정보보안학
한 줄 정의: 공격자가 정상 사용자의 로그인 세션 식별값을 탈취하거나 도용하여, 해당 사용자인 것처럼 위장해 서비스에 접근하는 공격 기법입니다.

쉽게 풀면

회의실 출입 카드를 잠깐 놓고 자리를 비운 사이, 누군가 그 카드를 주워 자신이 원래 카드 주인인 것처럼 회의실을 계속 드나드는 상황과 비슷합니다. 웹사이트에 로그인하면 서버는 사용자를 식별할 수 있는 세션 값을 부여하는데, 공격자가 이 값을 훔쳐내면 별도의 로그인 절차 없이도 해당 사용자의 계정으로 위장해 서비스를 이용할 수 있게 됩니다. 이렇게 되면 공격자는 아이디와 비밀번호를 몰라도 사용자의 권한으로 행동할 수 있습니다.

왜 중요한가

로그인 인증 자체가 뚫리지 않아도 세션 값만 탈취되면 계정이 통째로 도용될 수 있기 때문에, 웹 애플리케이션 보안 연구에서 세션 관리는 중요하게 다루어지는 주제입니다. 특히 온라인 뱅킹, 전자상거래처럼 세션이 곧 사용자 권한을 의미하는 서비스에서는 세션 보호가 전체 보안 수준을 좌우하는 요소로 연구됩니다.

논문에서는 이렇게 쓰입니다

"공용 와이파이 환경에서 암호화되지 않은 통신을 통해 세션 쿠키를 가로채는 세션 하이재킹(session hijacking) 공격 시나리오를 실험적으로 재현하였다."

네트워크 도청을 통해 세션 정보를 탈취하는 공격이 실제로 어떻게 이루어지는지 검증한 연구입니다.

"세션 식별자의 주기적 갱신과 IP 바인딩 기법이 세션 하이재킹 방지에 미치는 효과를 비교 평가하였다."

세션 값을 자주 바꾸거나 접속 환경 정보와 연동시키는 방어 기법의 효과를 다룬 연구입니다.

조금 더 깊게 보면

세션 하이재킹은 네트워크 트래픽 도청, 크로스 사이트 스크립팅(XSS)을 통한 쿠키 탈취, 세션 고정(session fixation) 공격 등 여러 경로로 이루어질 수 있습니다. 방어책으로는 통신 구간 암호화(HTTPS), 세션 값의 충분한 무작위성 확보, 로그인 후 세션 값 재발급, 세션 만료 시간 설정 등이 함께 연구되고 적용됩니다.

주의할 점

세션 하이재킹은 비밀번호 탈취와는 다른 개념으로, 인증 정보 자체가 안전하더라도 세션 관리가 허술하면 계정이 도용될 수 있다는 점에 유의해야 합니다. HTTPS를 사용한다고 해서 세션 관련 위협이 모두 사라지는 것은 아니며, 세션 값의 저장과 처리 방식 전반을 함께 점검할 필요가 있습니다.

관련 용어