정보보안/정보보호기초

YARA와 정규표현식

록스타★ 2024. 7. 4. 22:59
반응형

YARA

- VirusTotal에서 제작한 도구, 악성코드의 패턴을 이용하여 악성 파일 분류

- 간단한 규칙(Rule)을 작성하여 해당 규칙에 맞는 악성코드 탐지

- 단순한 문자열이나 바이너리 값뿐만 아니라 반복 조건 지원

 

정규표현식(Regex)

- 문자열의 일정한 규칙(패턴)을 표현하는 형식

- 간단한 규칙을 작성하여 규칙에 맞는 문자열을 검색

- 특정 문자열의 포함, 제외뿐만 아니라 반복 표현도 지원

- 탐욕적 수량자(Greedy Quantifier)와 게으른 수량자(Lazy Quantifier)를 활용하여 탐지율 조절

- https://regexr.com/ (정규표현식 연습 사이트)

 

탐욕적 수량자

- 가능한 많은 부분과 일치하도록 시도

- 패턴이 일치하는 가장 긴 문자열을 찾음

- *: 0번 이상 일치 (예: a*는 빈 문자열, 'a', 'aa', 'aaa' 등과 일치)

- +: 1번 이상 일치 (예: a+는 'a', 'aa', 'aaa' 등과 일치)

<.+>

 

 

 

위 정규표현식은 <div><b>hello</b></div>와 같은 문자열에서 <div><b>hello</b></div> 전체와 일치

 

게으른 수량자

- 가능한 적은 부분과 일치하도록 시도

- 패턴이 일치하는 가장 짧은 문자열을 찾음

- *?: 0번 이상 일치 (예: a*?는 빈 문자열, 'a', 'aa', 'aaa' 등과 일치하되 가능한 한 짧게)

- +?: 1번 이상 일치 (예: a+?는 'a', 'aa', 'aaa' 등과 일치하되 가능한 한 짧게)

 

<.+?>

위 정규표현식은 <div><b>hello</b></div>와 같은 문자열에서 <div>만 일치

 

 

YARA와 정규표현식 결합

- 특정 문자열이나 패턴을 인식하여 악성 파일 분류 효과적

- 기본 Yara Rule로 탐지하기 어려운 부분을 보강

- Yara Rule 라인 수를 감소시키면서 탐지 효율은 향상

- 정규표현식의 탐욕적 수량자와 게으른 수량자를 활용하여 탐지율과 정확도를 조절

 

 

결론

Yara와 정규표현식을 결합하면 악성코드 탐지 효율성과 정확성을 높이며 변종 악성코드까지 효과적으로 탐지가 가능하다.

사실 Yara 보다는 Snort와 HIDS를 이용한 Snort Rule 생성 및 탐지 테스트 하는 걸 포스팅하려고 하였는데 캡쳐 해둔 것들이 전부 다 사라져버렸다. ㅠ 다음에 올리도록 하겠습니다.

반응형