posted by Kwan's 2013. 4. 2. 21:45


피싱(Phishing)은 종종 구식으로 여겨지는데, 기술적인 관점에서, 피싱은 ‘이미 다 겪어본 것’입니다.

그러나 때로는, 평범하지 않은 좀 더 흥미로운(적어도 차이가 나는) 공격을 만나게 됩니다. 이 글에서 나는 최근 몇 개월 동안 우리가 보아온 몇몇 피싱 공격에 사용된 기술들 중 하나를 간단히 살펴볼 것입니다.

대부분의 피싱 공격은 다음 2가지 중 하나로 나눠집니다:

  1. 이메일 메시지 본문 안에 피싱 사이트 링크를 포함한 스팸 이메일. 몇몇 경우에, 메시지 본문에 있는 링크는 사용자들을 피싱 사이트로 재연결 시키는 초기 웹페이지(보통 감염된 웹사이트에서 호스팅됨)를 가리킬지도 모릅니다. 어느 쪽이든, 링크를 클릭하면 사용자들을 결국에는 피싱 페이지로 연결시킵니다.
  2. 피싱 페이지 자체인 HTML 첨부파일을 포함한 스팸 이메일. 소포스 제품들은 이런 첨부파일을 Mal/Phish-A로 차단합니다.

2번째 타입에 있어서, HTML 첨부파일을 만들기 위해 대부분의 공격들은 동일한 기술을 사용합니다:

  • 은행 로그인 페이지와 같이 위조할 웹 페이지에 대한 HTML 소스를 복사.
  • 선택적으로, 이 코드를 난독화함. (아마도 난독화된(obfuscated) JavaScript를 통해 전달)
  • 전송된 데이터가 공격자의 웹 서버로 보내지도록 적절한 HTML 폼으로 수정

지난주 나는 HTML 첨부파일로 스팸메일을 보내고 있는 페이팔(PayPal) 로그인 페이지에 대해 경고를 하였습니다. 하지만 이런 경우에 페이지 안의 HTML form은 모두 합법적인 페이팔 서버를 참고하고 있습니다.

모아진 데이터는 공격자들에게 어떻게 되돌려 보내질까요?

더욱 세밀한 조사로 사용자데이터를 거르는 매우 교활한 방법이 밝혀졌습니다.

그 스팸 메시지 자체는 여러분이 이미 알고있는, 수신인들을 속여 첨부파일을 열도록 시도하는 소셜 엔지니어링입니다.

사용자가 그 첨부파일을 열면, 그것은 페이팔 로그인 페이지처럼 보이는 것을 보여줍니다. 그 HTML 소스를 조사해보면, 그 페이지 안의 변수 form들이 합법적인 페이팔 리소스를 참고하고 있습니다.

하지만 그 페이지는 페이팔이 아닌 서버로부터 의심스러운 JavaScript 컨텐트 form을 담고 있었습니다. 게다가, 그 페이지 안에는 의심스러운(또는 예상치 못한) 빈 iframe이 있었습니다.

원격 JavaScript는 그 공격이 어떻게 이루어지는지에 대한 방법을 드러내었습니다. 그 스크립트는 페이팔 변수 form에 사용자가 입력한 값을 검증하는 데 사용되었습니다.

고객 로그인 폼으로부터 나온 데이터는 변수 cus_data에 일련 되게 저장되었습니다.

그러면, 그 일련의 청구 폼에서 나온 데이터가 변수 cc-data에 일련 되게 저장됩니다.

그러면, 이런 변수들은 동적으로 빈 iframe 엘리먼트에 데이터를 보태면서 공격자들에게 되돌려 보내집니다.

교활하죠! Form 제출 프로세스를 가로채고, iframe을 극적으로 덧붙임으로써, 공격자들은 form 데이터를 그들의 서버로 되돌려 보낼 수 있습니다. 여기에는 다음과 같은 것들이 포함됩니다.

  • Email
  • Password
  • First name
  • Last name
  • Date of birth
  • Citizenship
  • Address
  • Telephone number
  • Credit card number
  • Cvv number
  • Expiry date
  • Sort code
  • Social security number
  • Customer id

왜 이 모든 것에 신경을 썼을까요? 왜 기본 폼을 사용하지 않고 HTML 폼의 타깃을 편집 하였을까요?

이번 공격에 사용된 기술에는 아마도 2가지 이점이 있습니다.

  1. 스팸 메일을 보낸 웹페이지는 혐의를 덜 받을 것입니다. 폼이 예상 밖의 원격 서버를 가리키는 것을 보면 그 페이지가 피싱되었다고 그냥 알려주는 것입니다.
  2. 그 메커니즘으로 인하여 그것들은 다중 폼으로부터 받은 데이터를 포함할 수 있습니다. 고객들이 서로 다른 단계에서 데이터를 입력하는 복합 사이트에 이상적입니다.

나는 이 이야기의 교훈은 ‘구식’ 공격이 완전히 묵살되지는 않는다 것으로 생각합니다. 그것들은 여전히 놀라움을 줄 수 있습니다!

댓글을 달아 주세요