어플리케이션

YARA(Yet Another Recursive Acronym)에 대해 알아보겠습니다.

forward error correction Circle 2025. 6. 3. 08:47
반응형

Ⅰ. YARA(Yet Another Recursive Acronym) 란?

 2013년 VirusTotal의 Victor Alvarez가 개발한 오픈소스 기반의 정교한 패턴 매칭 엔진입니다. 파일 안의 바이너리/텍스트 패턴, 문자열, 정규식 등을 기반으로 조건을 정의하여 악성코드를 탐지하는 오픈소스 도구이며, 2025년 기준 최신 버전 4.4는 PE/ELF 파일 분석, Cuckoo 샌드박스 통합, 머신러닝 기반 패턴 최적화 기능을 지원하며, 전 세계 보안 기관의 97%가 악성코드 분석 표준 도구입니다.

Ⅱ. YARA(Yet Another Recursive Acronym) 규칙구조

ⅰ. 규칙 구성 체계

rule Advanced_Malware_Detection_2025 {  
    meta:  
        author = "보안연구소"  
        threat_level = "Critical"  
        reference = "APT41 TTPs v3.2"  

    strings:  
        $text_pattern = "C:\\Windows\\Temp\\malicious.dll" wide ascii  
        $hex_pattern = { 6A 40 68 00 30 00 00 6A 14 8D 91 ?? ?? ?? ?? }  
        $regex = /https?:\/\/[a-z0-9]+\.onion\/[a-zA-Z0-9_\-]+/  

    condition:  
        uint16(0) == 0x5A4D and  
        filesize < 2MB and  
        3 of ($text_pattern, $hex_pattern, $regex)  
}  

설명
ⅰ. meta : 설명용 메타데이터, 관리용
ⅱ. Strings : 탐지할 문자열, 바이너리 패턴 등 정의
텍스트 스트링, HEX 스트링, 정규 표현식 형태 작성
1) 텍스트 스트링 : "" 사이 작성, 대소문자 구분
2) HEX 스트링 : {} 사이 작성하며 와일드 카드 사용 가능
3) 정규표현식 : // 사이 작성, 정규표현식은 perl 에 따름
ⅲ. Condition : 조건 (논리 연산자 사용 가능) 

ⅱ. 문자열 검색 기술

패턴 유형 최적화 기법 성능 영향도
텍스트 문자열 4바이트 이상 고유 시퀀스 추출 Low
HEX 와일드카드 연속 3바이트 이상 고정값 유지 Medium
정규표현식 앵커(^$)와 구체적 프리픽스 가능 High

Ⅲ. YARA(Yet Another Recursive Acronym) 활용 영역

활용 분야 설명
악성코드 분석 특정 악성코드 시그니처를 패턴화하여 탐지
위협 인텔리전스 APT 그룹/악성 툴의 행돌 기반 탐지 가능
엔드포인트 탐지 EDR, XDR 시스템 내 YARA 를 내장
파일/프로세스 검사 바이너리, 스크립트, 문서 파일 내부 분석

Ⅳ. YARA(Yet Another Recursive Acronym) 한계 및 보완점

한계 설명 보완 방법
패턴 기반 → 우회 가능 단순 치환, 인코딩, 난독화로 회피 가능 Sandbox 분석, 동적 행위 분석, 머신러닝 기반 탐지 시스템함께 사용
False Postive 가능성 너무 일반적인 문자열 탐지 시 문제 발생
동적 행위 분석 불가 정적 분석 중심(동작 감지는 별도 도구 필요)

 

반응형