4

안녕 얘들 아 누구나 세션 고정, 세션 재생 및 세션 하이재킹 공격 사이에 분명한 차이를 줄 수 있습니다. 많은 기사를 읽었지 만 세션 하이재킹과 세션 재생 공격 사이의 문제는 여전히 불분명합니다. 세션을 얻고 액세스 - ... 사전세션 재생 대 세션 고정 대 세션 하이재킹

+0

현재 이해하고있는 부분과 구체적으로 명확하지 않은 부분은 무엇입니까? –

답변

3

모두 고정 및 납치에

덕분에 궁극적으로 같은 목표를 가지고있다. 그들은 당신이 그것을 성취하는 방법 만 다릅니다.

세션 하이재킹은 단순히 의 기존 유효한 세션 쿠키를 도용하는 행위입니다. 가장 일반적으로 네트워크 트래픽 (MITM 공격)을 스니핑하지만 세션 ID가 누출 될 수있는 다른 방법을 통해서도 발생합니다.

세션 고정은 비슷하지만 반전 됨 - 사전 정의 된 세션 쿠키는 희생자의 브라우저에 번임입니다. 따라서 피해자가 웹 사이트에 로그인하면 공격자가 이미 알고있는 것과 동일한 세션 쿠키가 사용되므로 공격자가 소유 한 쿠키가 인증되어 악용 될 수 있습니다.
물론 공격자가 피해자의 브라우저에 일시적으로 액세스해야하지만 원칙은 매우 간단합니다. 처음부터 사용자가 제어 할 수있는 경우 데이터를 도용 할 필요가 없습니다.

재생은 약간 다른 두 가지 ...

을 의미 할 수 있다면 공격자 이미 (고정 또는 납치를 통해) 세션 쿠키에 액세스 할 수 있습니다, 그것은을 위해 쿠키를 재사용 바로 행동입니다 그들이 원하는 건 뭐든간에.
그렇지 않으면 피해자가 이전에 유효한 요청 (동일한 세션 쿠키 사용)을 다시 제출하도록 속일 수 있습니다. 예를 들어 사용자는 하나의 단위 만 원했던 여러 상품 수량을 속으로 넣을 수 있습니다.

참고 : 설명을 단순화하기 위해 "세션 쿠키"를 사용했지만 다른 방법으로 세션 ID를 전송할 수 있습니다.

이러한 공격으로부터 자신을 보호하는 방법 :

  • 사용 TLS를 (HTTPS) 따라서 MITM 공격과 납치의 가장 일반적인 방법을 방지하기 위해. 또한 일반 텍스트 연결 (예 : https:// 구성표를 사용할 때만 브라우저가 전송 함)을 통해 제출되지 않도록 쿠키에 Secure 플래그를 설정하십시오.
  • 쿠키에 HTTPOnly 플래그를 설정합니다. 예 : JavaScript는 쿠키에 액세스 할 수 없습니다. JS가 쿠키에 액세스 할 수 없다면 쿠키를 유출 할 수 없다는 의미이므로 (도용 할 수 없음) 클라이언트 측 코드를 악용 할 수있는 다른 방법이 많이 있습니다.
  • 정기적 인 짧은 시간 간격뿐만 아니라 사용자가 수행하는 모든 권한 변경 작업 (로그인, 로그 아웃, 추가 양식이있는 경우 관리자로 로그인)에서 세션 ID를 다시 생성하십시오. 이것은 에 대한 완화 메커니즘 역할을합니다. 모두3 개의 공격 중 하나입니다.
  • 응용 프로그램에서 고정을 방지하기 위해 서버 측 레코드와 일치하지 않는 세션 쿠키를 거부하도록하십시오.