Steam 으로 위장한 피싱 사이트 분석

Steam 으로 위장한 피싱 사이트 분석

각종 SNS, 게임과 관련된 로그인 정보는 추가적인 공격에 이용하거나 신용 카드 정보와 같은 금전적인 정보를 제공하기에 늘 공격자들의 피싱 공격 대상이 되어왔다. 이번에는 Browser In the Browser(BITB) 공격을 이용하여 Steam 로그인 정보를 훔치는 피싱 사이트에 대한 분석 글을 작성한다.

1. Analysis

피싱 사이트(https://steamcomnumity.com/gift/id=489501036) 에 접속하면 정상적인 Steam 사이트 홈페이지와 매우 유사한 모습을 보여준다.

피싱 사이트 대문

해당 페이지에서 SIGN IN 을 포함한 아무 링크나 클릭하면 아래와 같은 iframe 이 하나 출력된다.

피싱 사이트의 가짜 Steam 로그인 화면

얼핏 보기에 위 로그인 화면은 정상처럼 보인다. 왜냐하면 URL 주소는 정상 Steam 사이트와 동일하게 https://steamcommunity.com이며, 페이지 화면도 정상적인 Steam 사이트의 로그인 화면과 매우 비슷하기 때문이다. 하지만 이 페이지는 진짜 Steam 로그인 화면이 아닌, 공격자가 정교하게 꾸며낸 가짜 iframe 화면이다.

페이지 소스를 자세히 들여다보면 정상 Steam 사이트(https://steamcommunity.com)가 아닌 자기 자신(http://steamcomnumitv.com) 의 /274c2f077e575154560952745b05085766005600 경로에서 페이지를 읽어와 출력하고 있다는 것을 확인할 수 있다.

가짜 Steam 로그인 화면의 iframe 경로

iframe 이라는 점을 깨닫고 나니 이상한 점을 몇 가지 느낄 수 있었다.

  • Chrome 브라우저를 사용하고 있지 않음에도 Steam - Google Chrome 이라는 타이틀이 출력됨.
  • iframe 은 브라우저 창이 아니므로 브라우저 탭에 붙이고 떼거나, 창 밖으로 이동시킬 수 없음.

iframe 의 본래 주소 http://steamcomnumitv.com/274c2f077e575154560952745b05085766005600 에 접속하자 동일한 모습의 피싱 사이트가 출력되는 것을 확인할 수 있다.

iframe 이 아닌 가짜 Steam 로그인 화면

사용자의 Steam 로그인을 유도하고 있으니 로그인 Credential 을 탈취하는 피싱 사이트로 추정된다. 임의의 값의 ID, Password 를 입력하고 로그인 버튼을 클릭하여 발생하는 패킷을 디버깅해보았다.

가짜 로그인 화면으로 로그인 결과

usernamepassword 는 피싱 사이트에 제대로 전달되었으나, InvalidPassword 라는 메시지를 담은 에러 메시지가 응답되었다. 아무래도 피싱 사이트 내에 Steam 계정, 패스워드의 유효성을 검증하는 로직이 존재하는 듯하다.

로그인에 대한 응답

2. Conclusion

피싱 공격은 근본적으로 사용자의 탐욕을 자극하고, 부주의를 이끌어내는 공격이다. 인터넷에서 발견한 링크를 따라들어가 로그인하기 전에 항상 피싱 공격을 가능성을 염두에 두고, 다음과 같은 사항을 확인하자.

  1. 내가 접속한 사이트가 정상인지 항상 확인하자. 잘 모르겠으면 일단 VirusTotal 에 물어보자.
VirusTotal 에 피싱 사이트를 검색한 결과
  1. 로그인 화면이 iframe 인지 확인하자. 화면을 늘리고, 줄이고, 브라우저 밖으로 꺼내 새 탭을 만들거나 시도해보자. 정상적인 웹페이지가 아닌 iframe 이면 페이지 밖으로 벗어날 수 없을 거다.