피싱이란?

피싱은 사용자가 이메일의 악성 링크를 클릭하거나 컴퓨터에서 악성 파일을 실행하도록 유도하여 개인 정보를 탈취하는 것을 목적으로 하는 공격 유형이다. 사이버 킬 체인 모델의 “전달” 단계에 속합니다.

정보 수집

Spoofing

이메일은 사용자 인증 메커니즘이 필수가 아니어서 공격자는 다른 사람의 이메일 이름으로 보낼 수 있습니다. Spoofing을 이용하면 해커가 꾸민 수신 이메일을 신뢰할 수 있는 것처럼 꾸밀 수 있습니다. 이런 악성 이메일을 방지하기 위해서 spoofing 방지 기술인 SPF, DKIM, DMARC 프로토콜을 이용해서 발신자 주소가 진짜인지 판별하는 데 사용할 수 있습니다.

  • 발신자 정책 프레임워크(SPF)
  • 도메인키 식별 메일(DKIM) MXToolbox와 같은 도구를 이용해서 메일의 SMTP 주소를 확인할 수 있습니다. 여기서 SPF, DKIM, DMARC 및 MX 레코드를 얻을 수 있습니다.

이메일 트래픽 분석

다음 매개변수를 통해서 피싱 공격을 분석할 수 있습니다.

  • 발신인 주소
  • SMTP IP 주소
  • @도메인
  • 제목 이것 이외에도 수신자의 시간 정보를 파악하는 것도 좋은 정보가 됩니다. 악성 이메일이 동일한 사용자에게 지속적으로 올 경우 이메일 주소가 어떤 이유로든 유출되어 Pastebin과 같은 사이트에 공유되었을 가능성이 있습니다.

Note

Kali의 theHarvester 도구를 이용해서 이메일 주소를 찾을 수 있습니다.

Email Header

이메일 헤더는 발신자, 수신자, 날짜와 같은 정보를 포함하는 메일의 일부입니다. ‘반송 경로’, ‘답장 주소’, ‘수신 날짜’와 같은 정보도 있습니다.

이메일 헤더의 역할

  • 발신자와 수신자를 식별

    • From : 메일을 보낸 사람의 정보가 있음
    • To : 메일을 받는 사람의 대한 정보가 있음. “eml” 형식으로 다운로드한 이메일을 통해서 해당 정보를 확인할 수 있습니다.
  • 스팸 차단기 헤더 분석 및 다양한 기타 방법을 사용하여 스팸 이메일을 탐지할 수 있습니다.

  • 이메일 경로 추적

    • 올바른 주소에서 발송되었는지 확인할 수 있습니다. 추적하기 위해서는 거쳐온 경로를 확인하는 것이 중요합니다. 이메일에서는 올바른 주소에서 올 수 있지만, 해당 이메일의 도메인이 다를 수 있습니다.

중요 확인 정보

  • From
  • To
  • Date
  • Subject
  • Return-Path
  • Domain Key and DKIM Signature
  • Message-ID
  • MIME-Version
  • Received
  • X-Spam status

이메일 헤더 확인 방법

File Info Properties Internet headers

실습 문제 풀이

위 실습 문제는 풀기 위해서 Notepad++에 Challenge+Mail.zip파일을 풀어서 정적으로 분석하였습니다.

문제 1.  If we wanted to respond to this email, what would be the recipient’s address?

문제 2. What year was the email sent?

문제 3. What is the Message-ID? (without > < )

위 3문제는 그냥 코드를 분석하면서 질문에서 물어보는 그대로 값이 있어서 Ctrl+F를 이용해서 빠르게 검색하여 찾았습니다.

Email Header Analysis

그렇다면 어떻게 이메일을 분석해서 해당 이메일이 피싱 이메일인지 알 수 있을까요? 다음 2가지를 기준으로 구별할 수 있습니다.

  • 이메일이 올바른 SMTP 서버에서 발송되었는가?
  • “보낸 사람” 데이터와 “반송 경로/답장 주소” 데이터가 동일한가?

Static Analysis

Dynamic Analysis

추가 꿀팁