YARA 스캐너

다운로드 0
업데이트 2026. 9. 13.

사용 매뉴얼

파일 스토어의 의심 파일 진단

YARA 스캐너는 파일 스토어에 보관한 파일의 내용이 YARA 탐지 규칙에 일치하는지 검사합니다. EDR 경보에서 수집한 파일을 조사하거나, Google Threat Intelligence와 SANDS Lab의 CTX.io에서 확보한 악성코드 샘플로 탐지 규칙을 검증할 때 사용할 수 있습니다. 파일을 실행하지 않고 검사합니다.

기본 흐름은 파일 확보 → 파일 스토어 저장 → YARA 검사 → 탐지 규칙 확인 → 후속 조사 및 규칙 개선입니다.

1. 검사 준비

파일 스토어 앱과 YARA 스캐너 앱을 설치하고, 검사할 파일을 읽을 수 있는 계정으로 로그인합니다. YARA 룰 메뉴에서 검사에 사용할 내장 규칙과 사용자 정의 규칙을 활성화합니다. 규칙을 추가하거나 수정했다면 적용이 완료된 후 검사합니다.

사건별로 파일을 모으고, 원본 파일명·SHA-256·수집 출처·수집 시각·관련 경보 식별자를 함께 기록하면 결과를 추적하기 쉽습니다. 파일 스토어 경로는 앱 이름으로 시작하고, 그 아래에 조사별 폴더와 파일을 둡니다. 다음은 폴더 구성 예입니다.

출처파일 스토어 경로 예
CTX.iosonar://sandslab-ctx/HASH.bin
Genian EDRsonar://genian-edr/CASE_GUID/suspect.bin
Google Threat Intelligencesonar://google-ti/HASH.bin

아래 예제의 HASH는 파일 해시로 바꿉니다. CASE_GUID는 조사 파일을 묶는 폴더 식별자로 바꿉니다. ctx, SHA256, SCAN_GUID는 각각 실제 접속 프로파일 이름, 파일 해시, 스캔 식별자로 바꿉니다. 파일 경로도 실제 저장한 경로로 바꿉니다.

2. 출처별 파일 확보

CTX.io에서 다운로드하면서 바로 검사

ctx-download-file을 제공하는 CTX 앱과 접속 프로파일을 준비합니다. 해당 프로파일에 샘플 다운로드 권한이 있어야 합니다. hash에는 MD5, SHA-1 또는 SHA-256을 지정할 수 있습니다.

다음 쿼리는 샘플을 내려받아 파일 스토어에 7일간 보관하고 바로 검사합니다.

ctx-download-file profile=ctx hash="SHA256" expiry=7d
| yara-scan-batch
| fields hash, file_url, _matched_count, _matched_rules, _error

ctx-download-file이 반환하는 file_urlyara-scan-batch가 읽으므로 URL 필드를 별도로 변환할 필요가 없습니다. path를 생략하면 sonar://sandslab-ctx/HASH.bin에 저장하며, HASH는 요청한 해시를 대문자로 변환한 값입니다. file_url은 이 저장 경로를 반환합니다. 같은 해시를 다시 다운로드하면 기존 파일을 덮어씁니다. expiry를 생략하면 만료 없이 보관합니다.

저장 경로를 명시하려면 다음과 같이 파일명을 포함한 path를 지정합니다. HASH는 다운로드할 파일의 해시로 바꿉니다.

ctx-download-file profile=ctx hash="SHA256" path="sonar://sandslab-ctx/HASH.bin" expiry=7d
| yara-scan-batch
| fields hash, file_url, _matched_count, _matched_rules, _error

파일을 여러 개 수집할 때는 서로 다른 파일명이나 해시 기반 파일명을 사용합니다. 이 예제의 expirysonar:// 저장 경로에 적용됩니다. 다운로드 자체가 실패하면 CTX 오류를 먼저 해결합니다. 다운로드 이후 파일 검사 중 발생한 오류는 _error에서 확인합니다.

Genian EDR에서 수집한 위협 파일

Genian EDR에서 위협 파일을 확보하는 절차는 다음과 같습니다. Genian EDR 관리자 가이드 — 파일 수집

  1. Genian EDR의 분석 > 위협 관리에서 대상 위협의 위협 분석 화면을 열고, 파일 해시·원래 경로·엔드포인트를 확인합니다.
  2. 샘플 수집을 요청한 뒤, 수집이 끝나면 샘플 다운로드 또는 수집 관리에서 파일을 확보합니다.
  3. 파일 스토어 → 파일 탐색기에서 genian-edr/CASE_GUID 폴더에 파일을 업로드합니다.
  4. 파일 상세 화면에서 sonar://genian-edr/CASE_GUID/suspect.bin과 같은 파일 URL을 복사해 검사에 사용합니다.

EDR의 격리 파일이나 내보내기 묶음은 원본 파일과 형식이 다를 수 있습니다. 원본의 탐지 여부를 확인하려면 해당 제품이 제공하는 방법으로 원본 바이트를 확보합니다. 압축파일 안의 개별 파일을 검사하려는 경우에도 먼저 분석 환경에서 압축을 해제해 파일 스토어에 저장합니다. YARA 스캐너가 압축 내부 파일을 자동으로 추출하지는 않습니다.

Google Threat Intelligence에서 다운로드한 샘플

Google Threat Intelligence에서 파일 해시를 조회하고, 파일 보고서의 Download sample 기능으로 접근 권한이 있는 샘플을 다운로드합니다. 자동화된 수집에서는 공식 파일 다운로드 API를 사용할 수 있습니다. 파일 보고서 안내, 파일 다운로드 API

확보한 파일을 파일 탐색기의 google-ti 폴더에 HASH.bin 이름으로 업로드하고 sonar://google-ti/HASH.bin과 같은 URL을 확인합니다. HASH는 파일 해시로 바꿉니다. 보고서의 해시와 보관한 파일의 해시를 대조한 뒤, 보고서의 악성코드 분류·행위 정보와 YARA 결과를 함께 조사합니다. 외부 보고서 URL이나 다운로드 링크 대신 파일 스토어에 저장된 파일의 URL을 검사 대상으로 지정합니다.

3. 이미 저장한 파일을 쿼리로 검사

파일 하나를 검사하려면 yara-scan에 파일 스토어 URL을 지정합니다.

yara-scan url="sonar://genian-edr/CASE_GUID/suspect.bin"

Genian EDR 수집 파일의 조사 폴더 전체를 검사할 수도 있습니다. 하위 폴더는 기본적으로 포함됩니다.

yara-scan url="sonar://genian-edr/CASE_GUID" recursive=t

yara-scan은 파일당 1행을 반환합니다. matched_count는 매치 수, matched_rules는 매치된 규칙이며 error는 검사 오류입니다. 검사에 성공하면 matched_countmatched_rules를 반환하고, 실패하면 error를 반환합니다. 오류가 있는 행을 정상 파일로 분류하지 않도록 결과를 먼저 확인합니다.

yara-scan-batch는 입력 행의 file_url을 읽어 검사합니다. 앞의 CTX 예제에서 hashfile_urlctx-download-file의 출력이고, YARA 배치 검사가 추가하는 필드는 _matched_count, _matched_rules, _error입니다.

검사에 성공하면 _matched_count_matched_rules를 추가하고, 실패하면 _error에 오류를 기록합니다. 기존 입력 필드는 유지합니다. 이전 검사 결과를 다시 입력할 때는 기존 _matched_count, _matched_rules, _error를 제거한 후 검사해 이전 값과 혼동하지 않도록 합니다.

두 검사 명령어의 기본 제한은 파일당 60초, 파일 크기 64 MiB입니다. 더 큰 파일을 검사해야 한다면 실제 파일 크기와 처리 여유를 확인해 옵션을 조정합니다.

yara-scan url="sonar://genian-edr/CASE_GUID/suspect.bin" timeout=120 max-size=134217728

max-size는 바이트 단위이며, 위 예제는 128 MiB까지 허용합니다. 쿼리 검사는 결과를 쿼리로 반환하며 스캔 이력과 리포트를 자동으로 생성하지 않습니다. 이력을 남기려면 다음 화면 검사 흐름을 사용합니다.

4. 화면에서 검사하고 리포트 확인

YARA 스캔

  1. YARA 스캔 메뉴를 엽니다.
  2. 대상 경로에 파일 또는 폴더의 sonar:// URL을 입력하거나 찾아보기로 폴더를 선택합니다.
  3. 폴더 검사에서는 하위 폴더 포함 여부를 정하고 스캔 시작을 누릅니다.
  4. 진행 화면에서 검사 수, 탐지 수, 오류를 확인합니다. 백그라운드로를 누르면 검사를 계속하면서 다른 작업을 할 수 있습니다.
  5. 스캔 이력에서 완료된 검사를 열어 스캔 리포트를 확인합니다. 탐지된 파일, 상위 탐지 규칙, 검사 시간과 오류를 살펴봅니다.
  6. 탐지 규칙 이름을 눌러 오른쪽 패널에서 규칙 내용을 확인합니다. Esc를 누르면 규칙 패널만 닫히고 리포트는 유지됩니다.

화면에서 수행한 검사는 다음 쿼리로도 조회할 수 있습니다.

yara-scan-reports duration=7d

특정 검사의 파일별 결과를 확인하려면 보고서의 guid 값을 scan_guid 조건에 사용합니다.

yara-scan-logs duration=7d
| search scan_guid == "SCAN_GUID"

파일별 스캔 로그에는 탐지 파일과 오류 파일만 기록됩니다. 탐지와 오류가 없는 파일은 보고서 집계로 확인합니다. 조회 기간은 해당 스캔의 시작부터 종료까지 포함하도록 지정합니다. 아무 시간 옵션도 지정하지 않으면 최근 24시간을 조회합니다.

5. 결과 해석과 활용

결과해석다음 조치
규칙 매치가 있고 검사 오류가 없음활성화된 규칙의 조건에 일치규칙의 조건과 설명을 확인하고 EDR 행위, 파일 해시, 외부 분석 결과와 대조
매치 수가 0이고 검사 오류가 없음이번 검사에서 활성 규칙에 일치하지 않음EDR 경보의 근거를 계속 조사하고 규칙 적용 범위와 파일 형식을 확인
error 또는 _error가 있음검사가 완료되지 않았거나 파일을 읽을 수 없음오류 원인을 해결한 뒤 재검사

매치 수는 위험도 점수가 아닙니다. 여러 규칙이 같은 특성을 탐지할 수 있으며, 규칙이 일치했다고 악성 여부나 침해 사실이 확정되는 것은 아닙니다. 미탐지도 안전함을 보장하지 않습니다.

EDR 수집 파일에서는 단말·사용자·부모 프로세스·실행 시각·네트워크 연결을 함께 확인해 경보의 조사 우선순위를 정합니다. 탐지된 규칙과 파일 해시를 사건 기록에 남기고, 확인된 지표를 다른 단말의 로그와 대조해 조사 범위를 넓힙니다.

Google Threat Intelligence나 CTX.io의 샘플은 내장 규칙과 사용자 정의 규칙의 탐지 범위를 점검하는 데 사용할 수 있습니다. 알려진 악성 샘플과 정상 파일을 구분해 보관하고 규칙 변경 전후에 다시 검사하면 탐지 개선과 오탐 여부를 비교할 수 있습니다. 예상과 다른 결과가 나오면 원본 해시, 활성 규칙과 적용 상태를 먼저 확인합니다.

재현할 수 있도록 파일 URL, SHA-256, 출처 보고서, 검사 시각, 매치된 규칙과 사용한 규칙 사본을 사건 기록에 남깁니다. 격리나 차단 같은 조치는 조사 결과에 따라 EDR 등 해당 대응 도구에서 수행합니다.

6. 문제가 발생할 때

증상확인 사항
파일을 읽을 수 없음로그인 계정의 읽기 권한, 파일 URL, 파일 존재 여부와 보관 만료 여부
CTX 다운로드 실패접속 프로파일, 샘플 해시, 다운로드 권한과 제공 여부
규칙이 준비되지 않음YARA 룰 화면의 적용 상태와 오류 메시지
파일 크기 초과쿼리 검사의 max-size와 실제 파일 크기
검사 시간 초과대상 파일과 규칙을 확인하고 쿼리 검사의 timeout 조정
쿼리 검사 후 스캔 이력이 없음이력이 필요한 검사는 YARA 스캔 화면에서 실행

각 명령어의 전체 옵션과 출력 필드는 확장 명령어 문서에서 확인할 수 있습니다.