작은 메모장

Yara Rule 본문

KISA 사이버 보안 훈련/YARA 정규표현식 활용

Yara Rule

으앙내눈 2023. 6. 25. 21:16

Yara Rule 작성 방법

무엇을 분류할지 정함

IOC 정보를 수집

=> 이를 바탕으로 Rule 파일을 작성

 

참고하면 좋은 예시

Yara전반:https://yara.readthedocs.io/
YaraRule작성 사례:https://github.com/Yara-Rules/rules

 

Yara Rule 구조

기본적으로 .yar의 확장자를 가진 파일로 되어있음

파일은 크게 두 영역으로 나뉘는데, 모듈 및 다른 Yara Rule 호출 영역, Rule 선언 영역

 

모듈 및 Yara Rule 호출 영역은 해당 룰 파일 안에서 함께 쓸 모듈 혹은 Rule 파일이 어떻게 실행되는지를 선언

Include "./rules/thisIsTestRules.yar"
Import "pe"

 

Rule 선언 영역에서는 어떤 IOC 정보로 분류를 진행할지에 대한 정보

rule testRule_2 {
    meta:
    	description = " for Test"
        author = "ruler"
    strings:
    	$string1 = /\#(S)trings/
        $string2 = /\#(G)UID/
        $string3 = /\#(B)lob/
        $string4 = /(S)hadowTech Rat\.exe/
    condition:
    	all of them
}

이 Rule은 여러 개 정의 가능하다.

 

- Meta 영역

Rule에 대한 추가적인 정보를 입력하는 항목

해당 Rule에 대한 설명과 비슷

종류는 딱히 없으나, 항목명 = 값의 형태로 작성해야 함

 

- String 영역

선별 대상에 대한 IOC 값을 정의하는 영역

아래와 같이 정의함

$항목명 = "값"  문자열 값을 정의
$항목명 = {16진수 값}   16진수 값을 정의
$항목명 = /정규표현식/ 정규표현식을 정의

값이 정해져 있으면 그냥 값이나 16진수를 넣으면 됨

근데 특정 패턴을 가지고 파일마다 조금씩 다른 악성코드가 있다면 정규 표현식으로 잡아내야 함

 

- Condition 영역

선별 조건을 작성하는 영역

String 영역에 대한 조건을 가지고 선별여부를 판단하는 영역

순수하게 논리의 영역