eml-file

EML(Electronic Mail) 형식의 이메일 파일을 파싱하여 발신자, 수신자, 제목, 본문, 첨부 파일 등의 정보를 구조화된 필드로 변환하여 조회합니다.

명령어 속성

항목설명
명령어 유형드라이버 쿼리
필요 권한클러스터 관리자
라이선스 사용량집계함
병렬 실행미지원
분산 실행수집 노드에서 실행 (mapper)

문법

eml-file [raw=BOOL] [zippath=STR] [zipcharset=STR] FILE_PATH

옵션

raw=BOOL
true로 지정하면 메일 본문을 HTML 원문으로 반환합니다. 미지정 시 텍스트 본문을 반환합니다.
zippath=STR
EML 파일이 포함된 ZIP 파일의 경로. ZIP 파일 내부의 EML 파일을 직접 조회할 때 사용합니다.
zipcharset=STR
ZIP 파일 엔트리의 문자 집합 (기본값: utf-8)

대상

FILE_PATH
조회할 EML 파일의 경로. 와일드카드(*)를 사용하여 여러 파일을 지정할 수 있습니다.

출력 필드

필드타입설명
_file문자열EML 파일 이름
_time날짜메일 발송 시각
src_ipIP 주소발신 서버의 공인 IP 주소. Received, Received-SPF, X-Originating-IP, X-Hanmail-Peer-IP 헤더에서 추출함
mail_from문자열발신자 이메일 주소. 여러 개인 경우 줄바꿈(\n)으로 구분함
mail_from_name문자열발신자 표시 이름. 여러 개인 경우 줄바꿈(\n)으로 구분함
mail_to문자열수신자 이메일 주소. 여러 개인 경우 줄바꿈(\n)으로 구분함
mail_to_name문자열수신자 표시 이름. 여러 개인 경우 줄바꿈(\n)으로 구분함
mail_cc문자열참조(CC) 이메일 주소. 여러 개인 경우 줄바꿈(\n)으로 구분함
mail_cc_name문자열참조(CC) 표시 이름. 여러 개인 경우 줄바꿈(\n)으로 구분함
mail_bcc문자열숨은 참조(BCC) 이메일 주소. 여러 개인 경우 줄바꿈(\n)으로 구분함
mail_bcc_name문자열숨은 참조(BCC) 표시 이름. 여러 개인 경우 줄바꿈(\n)으로 구분함
mail_subject문자열메일 제목
mail_content문자열메일 본문. raw 옵션에 따라 HTML 원문 또는 텍스트를 반환함
mail_attachments문자열첨부 파일 이름 목록. 여러 개인 경우 줄바꿈(\n)으로 구분함
mail_headers문자열메일 헤더 전체. 각 헤더를 키: 값 형식으로 줄바꿈(\n) 구분하여 반환함
attachments배열첨부 파일 상세 정보. 각 요소는 file_name(문자열)과 file_size(64비트 정수) 필드를 포함하는 맵임

오류 코드

파싱 오류

해당 사항 없음

런타임 오류
오류 코드메시지설명후처리 동작
-cannot read eml fileEML 파일을 읽을 수 없는 경우쿼리 실행을 중단함

설명

eml-file 명령어는 지정한 EML 파일을 파싱하여 이메일 메시지의 각 구성 요소를 구조화된 필드로 변환합니다. 발신자, 수신자, 참조, 숨은 참조 주소와 표시 이름을 각각 별도의 필드로 추출합니다.

src_ip 필드는 메일 헤더에서 발신 서버의 공인 IP 주소를 추출합니다. Received, Received-SPF, X-Originating-IP, X-Hanmail-Peer-IP 헤더를 순회하며 IPv4 및 IPv6 주소를 검색하고, 사설 IP 주소를 제외한 첫 번째 공인 IP 주소를 반환합니다.

raw 옵션을 지정하면 mail_content 필드에 HTML 원문을 반환합니다. 미지정 시 텍스트 본문을 반환하며, HTML 본문만 존재하고 텍스트 본문이 없는 경우에도 텍스트 본문(null)을 반환합니다.

ZIP 파일 내부의 EML 파일을 조회하려면 zippath 옵션에 ZIP 파일 경로를 지정하고 대상에 ZIP 내부의 EML 파일 경로를 지정합니다.

이 명령어는 4.0.2511.0 버전부터 클러스터 관리자 권한이 필요하며, 접근 가능한 파일 경로가 제한됩니다. 자세한 내용은 파일 접근 제한을 참고하세요.

사용 예

각 사용 예의 파일 경로는 ALLOWED_FILE_SCAN_PATHS 설정에 포함되어 있다고 가정합니다.

  1. EML 파일 조회

    eml-file /opt/logpresso/evidence/phishing.eml
    

    지정한 경로의 EML 파일에서 이메일 정보를 조회합니다.

  2. 와일드카드로 여러 EML 파일 조회

    eml-file /opt/logpresso/evidence/mail/*.eml
    

    지정한 디렉터리의 모든 EML 파일에서 이메일 정보를 조회합니다.

  3. HTML 원문으로 메일 본문 조회

    eml-file raw=t /opt/logpresso/evidence/phishing.eml
    

    mail_content 필드에 HTML 원문을 반환합니다.

  4. ZIP 파일 내부의 EML 파일 조회

    eml-file zippath=/opt/logpresso/evidence/mails.zip phishing.eml
    

    ZIP 파일 내부의 phishing.eml 파일에서 이메일 정보를 조회합니다.

  5. 특정 발신자의 메일 필터링

    eml-file /opt/logpresso/evidence/mail/*.eml
    | search mail_from == "*@example.com"
    

    example.com 도메인에서 발송된 메일만 필터링합니다.

호환성

eml-file 명령어는 소나 4.0 이전 버전부터 제공되었습니다. 4.0.2511.0 버전부터 클러스터 관리자 권한이 필요합니다.