본문 바로가기

old/Cyber Security

사이버 보안: 세션 예측이란?

반응형

정의

세션 예측(Session Prediction)은 보안 취약점으로, 공격자가 세션 식별자를 예측하여 다른 사용자의 세션을 탈취하거나 위조하는 공격을 말합니다. 세션 식별자는 보통 쿠키, 토큰 또는 세션 ID와 같은 형태로 사용되며, 이를 통해 사용자의 인증 상태를 유지하고 세션을 관리합니다.

취약점 발생 지점 리스트

  • 세션이 적용되는 모든 페이지

취약점 검증 방법

  • 세션발급에 일정한 알고리즘이 존재하고, 예측이 쉬울때
    • 세션발급이 로그인시 새롭게 발급되는지 확인
    • 아이디가 다른것에 따라 세션이 관련이 있는지 확인
    • 시간에 따라 세션이 관련이 있는지 확인
    • 세션이 변하지 않는지 확인
    • 암호화 확인(md5 사용X, DES, SHA 등등)

공격법

공격 시나리오

  1. 공격자는 세션 식별자를 예측하기 위해 다양한 기법을 사용합니다.
  2. 세션 식별자를 예측한 공격자는 해당 사용자의 세션을 탈취하거나 위조하여 인증을 우회합니다.
  3. 공격자는 세션 식별자를 사용하여 사용자로 위장하여 원래 사용자의 권한을 남용하거나 불법적인 작업을 수행합니다.

발생 과정

세부 과정 설명

  1. 사용자(User)가 애플리케이션(Application)에 인증 요청을 합니다.
  2. 애플리케이션은 사용자에게 세션을 발급합니다.
  3. 공격자는 애플리케이션에서 세션이 아이디와 똑같다는것을 확인합니다.
  4. 공격자(Attacker)는 세션 식별자를 획득하기 위해 다양한 공격 기법을 사용합니다.(XSS 등)
  5. 사용자는 공격자에게 세션 식별자를 노출시킵니다.
  6. 공격자는 획득한 세션 식별자를 사용하여 애플리케이션에 요청을 전송합니다.
  7. 애플리케이션은 공격자의 요청을 처리합니다.

대응방법

  • 강력한 세션 식별자 생성 알고리즘을 사용합니다. 예측이 어렵고 무작위성이 높은 값을 생성하여 세션을 식별합니다.
  • 세션 관리 및 유지 방법을 강화합니다. 세션의 유효 기간을 제한하고, 필요한 경우 세션을 갱신하도록 합니다.
  • 세션 식별자의 전송 방식을 안전하게 구현합니다. HTTPS와 같은 암호화된 연결을 사용하거나 추가적인 인증을 요구할 수 있습니다.
반응형