개요

  • Pre-Hijack 공격에 대해 조사한다.
  • 이 공격이 성립하려면 공격자가 공격대상자(피해자)의 이메일주소를 알고 있고, 이 메일 주소로 로그인을 하지 않더라도 계정을 만들 수 있다는 전제 조건이 있다.

상세

5가지 종류의 공격 패턴이 있다고 한다.

Unexpired Session Attack (실효되지 않은 세션 공격)

  • 패스워드 재설정 후에도 로그인 상태(세션)가 유지되는 서비스인 경우 취약하다.
  • 공격자는 로그인 상태를 유지하기 위해 정기적으로 액세스를 계속한다.
  • 피해자는 ‘이 메일 주소는 이미 등록된 상태’라는 것을 보고 비밀번호를 재설정해 사용을 시작한다.
  • 공격자가 이미 로그인한 상태라면 피해자와 동시 로그인된 상태가 된다. 여기서부터 피해가 이루어진다.
  • 대책: 비밀번호 재설정시 세션도 재설정

Classic-Federated Merge Attack(클래식 페더레이션 통합 공격)

  • 공격 대상 서비스가 메일 주소 및 패스워드를 이용한 로그인과 소셜 로그인(IdP) 양쪽에 대응하고, 계정의 관리 기능이 불충분한 경우에 악용될 수 있다.
  • 공격자는 공격 대상자의 이메일 주소로, 공격 대상자는 소셜 로그인으로 각각 계정을 작성하면 양쪽 계정이 통합되어서 같은 계정에 들어갈 수 있는 상태가 된다.
  • 대책: 계정을 병합할 때 서비스 이메일 주소와 IdP 이메일 주소가 모두 확인되었는지 확인한다.

Trojan Identifier Attack (트로이 목마 ID 공격)

  • 공격자는 피해자의 이메일 주소를 사용하여 계정을 만든다.
  • 공격자는 해당 계정과 공격자의 IdP 계정을 연결한다.
  • 피해자가 그 서비스를 신규로 사용하려고 하면 “이메일 주소는 이미 등록되어 있습니다”가 표시
  • 피해자가 비밀번호 재설정하여 서비스에 로그인하여 사용
  • 공격자는 공격자의 IdP 계정으로 서비스에 로그인할 수 있으므로 피해자가 설정한 내용을 훔칠 수 있다(계정도 탈취할 수 있음)
  • Classic-Federated Merge Attack은 피해자가 SSO로 로그인, Trojan Identifier Attack은 공격자가 SSO로 로그인의 차이
  • 대책: 계정을 병합할 때 서비스 이메일 주소와 IdP 이메일 주소가 모두 확인되었는지 확인한다.

Unexpected Email Change Attack (실효되지 않는 메일 주소 변경 공격)

  1. 공격자는 피해자의 이메일 주소를 사용하여 계정을 만든다.
  2. 공격자는 해당 계정으로 공격자의 이메일 주소로 변경 신청을 해둔다 (아직 확정하지 않음).
  3. 서비스는 이메일 주소 변경 확인 이메일을 공격자의 이메일 주소로 전송한다 (아직 확인하지 않음).
  4. 피해자가 그 서비스를 신규로 사용하려고 하면 “이메일 주소는 이미 등록되어 있습니다”가 된다.
  5. 피해자가 비밀번호 재설정하여 서비스에 로그인하여 사용한다.
  6. 공격자는 3번에서 받은 이메일 주소 변경 확인 이메일에서 이메일 주소를 변경한다.
  7. 공격자는 공격자의 이메일 주소로 로그인할 수 있으므로 피해자가 설정한 내용을 훔칠 수 있다(계정도 탈취할 수 있음).
    • 대책: 비밀번호 재설정 시 이메일 주소 변경을 보류한 상태도 재설정, 이메일 주소 변경 만료일 설정

Non-verifying IdP Attack (비검증형 IdP 공격)

  • 공격자는 이메일 주소를 확인하지 않는 IdP에서 피해자의 이메일 주소를 사용하여 계정을 만든다.
  • 피해자는 자신의 이메일 주소로 계정을 만들고 사용한다. <– 이게 어떻게 가능한지 모르겠다.🤨
  • 공격자는 피해자의 이메일 주소를 사용하여 IdP로 서비스에 로그인하여 계정을 병합한다.

참고

  • https://hjtic.snu.ac.kr/node/13053
  • https://arxiv.org/abs/2205.10174
  • https://gist.github.com/azu/faa7909d32c0ed1ab4fced3ad4ab74d8
  • https://msrc.microsoft.com/blog/2022/05/pre-hijacking-attacks/