XSHM(CSHM)은 무엇인가요?
XSHM은 Cross Site History Manipulation의 약자입니다. Cross에서 c는 x로도 축약됩니다.
XSHM은 쉽게 말해서 사용자의 웹 탐색 기록을 조작해서 사용자가 뒤로가기를 누를 경우 악성 사이트나 광고 사이트 등으로 강제로 이동시키는 공격입니다.
사용자의 웹 탐색 기록을 조작해서 사용자에게서 부당한 이익을 챙기거나 사용자에게 위해를 가하기 때문에 악질인 공격입니다.
XSHM 공격을 사용하는 이유는 무엇인가요?
웹사이트가 해킹되었을때 해커가 사용자들의 개인정보를 탈취하거나 광고를 통해서 부당한 이익을 챙기기 위해서입니다.
XSHM공격은 사용자의 의도와 반대되고, 사용자의 방문 기록을 제공하는 history api를 조작하기에 비윤리적입니다.
XSHM 원리는 어떻게 되나요?
예를 들어서 example.itcider.net이라는 웹사이트를 방문했는데, 이 웹사이트에서 XSHM을 사용한다면 사용자가 예전에 방문했던 정상 사이트(itcider.com)대신에 ads.itcider.net같은 광고 사이트를 방문 기록으로 바꿔치기합니다. 그리고 사용자가 뒤로가기를 누른다면
원래는 정상 사이트인 itcider.com이 나와야하지만,
사용자의 방문기록이 조작되어 ads.itcider.net이 나오게 되는 것입니다.
위 그림에서 초록색 화살표는 정상적 접속, 연두색 화살표는 정상적인 뒤로가기, 빨간 화살표는 XSHM을 의미합니다.
XSHM 공격을 방지하기 위해서는 어떻게 해야하나요?
일부 브라우저는 뒤로가기 조작방지 기능을 제공합니다. 네이버 웨일 및 크롬에서 지원합니다.
하지만 대부분의 브라우저는 이런 기능을 제공하지 않습니다. 따라서 해결 방법은 오직 탭을 삭제하는 방법 밖에 없습니다.(탭이란? 탭은 한 브라우저 안에서 여러개의 탭을 이용해서 멀티태스킹을 지원하는 기능입니다.)
탭을 삭제해서 XSHM 공격을 하는 웹사이트를 벗어나는 방법이 최선입니다.