
패턴 매칭 스위스 나이프
[!IMPORTANT] 이 프로젝트는 유지보수 모드에 있습니다. 더 자세한 정보: https://virustotal.github.io/yara-x/blog/yara-x-is-stable/
YARA는 (이에 국한되지 않지만) 주로 악성코드 연구자들이 악성코드 샘플을 식별하고 분류하는 데 도움을 주기 위한 도구입니다. YARA를 사용하면 텍스트 또는 바이너리 패턴을 기반으로 악성코드 패밀리(또는 설명하고자 하는 모든 것)에 대한 설명을 만들 수 있습니다. 각 설명, 즉 규칙(rule)은 일련의 문자열과 해당 논리를 결정하는 불리언 표현식으로 구성됩니다. 예를 하나 보겠습니다:
rule silent_banker : banker
{
meta:
description = "This is just an example"
threat_level = 3
in_the_wild = true
strings:
$a = {6A 40 68 00 30 00 00 6A 14 8D 91}
$b = {8D 4D B0 2B C1 83 C0 27 99 6A 4E 59 F7 F9}
$c = "UVODFRYSIHLNWPEJXQZAKCBGMT"
condition:
$a or $b or $c
}
위 규칙은 YARA에 세 문자열 중 하나라도 포함된 파일은 silent_banker로 보고되어야 한다는 것을 지시합니다. 이것은 단순한 예시일 뿐이며, 와일드카드, 대소문자를 구분하지 않는 문자열, 정규 표현식, 특수 연산자 및 YARA 문서에 설명된 다양한 기능들을 사용하여 더 복잡하고 강력한 규칙을 만들 수 있습니다.
YARA는 Windows, Linux, Mac OS X에서 실행되는 멀티 플랫폼 도구이며, 명령줄 인터페이스 또는 yara-python 확장을 사용해 Python 스크립트에서도 사용할 수 있습니다.
GitHub에서 YARA 규칙을 보관하고 계신가요? YARA-CI는 여러분의 도구 모음에 유용한 추가 기능이 될 수 있습니다. 이 GitHub 애플리케이션은 규칙에 대한 지속적인 테스트를 제공하여 일반적인 실수와 오탐(false positive)을 식별하는 데 도움을 줍니다.
YARA로 압축 파일(.zip, .tar 등)을 검사할 계획이라면, Bayshore Networks가 개발하고 오픈소스로 공개한 매우 유용한 YARA 확장 기능인 yextend를 살펴보시기 바랍니다.
또한 InQuest 팀이 YARA 관련 자료의 훌륭한 목록을 선별했습니다.
YARA를 사용하고 계신가요? 이 목록에 여러분의 사이트를 추가하고 싶으신가요?