eml-file
EML(Electronic Mail) 형식의 이메일 파일을 파싱하여 발신자, 수신자, 제목, 본문, 첨부 파일 등의 정보를 구조화된 필드로 변환하여 조회합니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 드라이버 쿼리 |
| 필요 권한 | 클러스터 관리자 |
| 라이선스 사용량 | 집계함 |
| 병렬 실행 | 미지원 |
| 분산 실행 | 수집 노드에서 실행 (mapper) |
문법
옵션
raw=BOOLtrue로 지정하면 메일 본문을 HTML 원문으로 반환합니다. 미지정 시 텍스트 본문을 반환합니다.zippath=STR- EML 파일이 포함된 ZIP 파일의 경로. ZIP 파일 내부의 EML 파일을 직접 조회할 때 사용합니다.
zipcharset=STR- ZIP 파일 엔트리의 문자 집합 (기본값:
utf-8)
대상
FILE_PATH- 조회할 EML 파일의 경로. 와일드카드(
*)를 사용하여 여러 파일을 지정할 수 있습니다.
출력 필드
| 필드 | 타입 | 설명 |
|---|---|---|
_file | 문자열 | EML 파일 이름 |
_time | 날짜 | 메일 발송 시각 |
src_ip | IP 주소 | 발신 서버의 공인 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 file | EML 파일을 읽을 수 없는 경우 | 쿼리 실행을 중단함 |
설명
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 설정에 포함되어 있다고 가정합니다.
-
EML 파일 조회
eml-file /opt/logpresso/evidence/phishing.eml지정한 경로의 EML 파일에서 이메일 정보를 조회합니다.
-
와일드카드로 여러 EML 파일 조회
eml-file /opt/logpresso/evidence/mail/*.eml지정한 디렉터리의 모든 EML 파일에서 이메일 정보를 조회합니다.
-
HTML 원문으로 메일 본문 조회
eml-file raw=t /opt/logpresso/evidence/phishing.emlmail_content필드에 HTML 원문을 반환합니다. -
ZIP 파일 내부의 EML 파일 조회
eml-file zippath=/opt/logpresso/evidence/mails.zip phishing.emlZIP 파일 내부의
phishing.eml파일에서 이메일 정보를 조회합니다. -
특정 발신자의 메일 필터링
eml-file /opt/logpresso/evidence/mail/*.eml | search mail_from == "*@example.com"example.com도메인에서 발송된 메일만 필터링합니다.
호환성
eml-file 명령어는 소나 4.0 이전 버전부터 제공되었습니다. 4.0.2511.0 버전부터 클러스터 관리자 권한이 필요합니다.