#basics
#git #soft
#windows
#linux
#macos
#cloud
#network
#red #blue #purple
#forensics
#dfir
#threathunting
#malware // скорее всего, будет много реверса
#report // технические отчеты
#research // ресерчи
#books // полезная литература
#video // видеоматериалы
#presentation // презентации с докладов
#tips // white papers, читшиты и любые другие заметки, где можно откопать что-то важное, но не подходит под категории выше
#own // личные мысли, истории, наблюдения, выводы
#weekly // подборка прочитанных достойных материалов
#meme // тег для души или когда мне лень писать много буков
#git #soft
#windows
#linux
#macos
#cloud
#network
#red #blue #purple
#forensics
#dfir
#threathunting
#malware // скорее всего, будет много реверса
#report // технические отчеты
#research // ресерчи
#books // полезная литература
#video // видеоматериалы
#presentation // презентации с докладов
#tips // white papers, читшиты и любые другие заметки, где можно откопать что-то важное, но не подходит под категории выше
#own // личные мысли, истории, наблюдения, выводы
#weekly // подборка прочитанных достойных материалов
#meme // тег для души или когда мне лень писать много буков
❤4🎅3🔥2😁1
Forwarded from ESCalator
Yara Yara Daze
Всем, кто занимается malware analysis, точно знаком такой инструмент, как YARA😉 . С помощью него во многих компаниях 🔴 составляют наборы сигнатурных правил для определения и классификации вредоносов.
🤔 So, что такое хорошие YARA-правила? Это правила, которые могут детектировать предназначенный им класс или семейство ВПО, не детектируют ничего лишнего (false positive) и способны сохранять актуальность, даже если ВПО подвергается небольшим изменениям.
😏 Нет общего совета, как сделать хорошее YARA-правило — это зависит от сампла к самплу. Мы поделимся некоторыми Tips&Tricks про детект строк, которые будут полезны начинающим:
🔹 Не стоит забывать
🔹
🔹 Лучше избегать сигнатур длиной в 3-4 символа.
🔹 Иногда очень полезно прописывать условие расстояния между строками. Например, если в файле есть какие-нибудь white- / blacklist, как имена процессов, можно ограничить их расположение в окне конкретной длины:
🔹 Строки логирования лучше не разбивать на подстроки длиной 4-5 символов, если там общие слова, которые могут встретиться в любом контексте: детект подстроки
🔹 Чтобы детект строк пережил различные кодировки, чередование заглавных и строчных букв, можно использовать три модификатора
И, конечно, главное — не забывать смотреть в документацию YARA 👀, следить за обновлениями иподсматривать на рули коллег.
Успехов в работе.
#tips #malware #YARA
@ptescalator
Всем, кто занимается malware analysis, точно знаком такой инструмент, как YARA
🔹 Не стоит забывать
fullword
— этот модификатор на строки гарантирует, что сигнатурная строка не будет находиться между буквенно-цифровыми символами (осторожнее с golang).🔹
filesize
выручает в тех случаях, когда сампл маленький и кроме общих сигнатур в нем ничего нет:rule CustomSocksProxy {
strings:
$a_1 = "SOCKS5 Proxy listening" wide
$a_2 = "New connection from" wide
condition:
uint16(0) == 0x5a4d and filesize < 100KB and all of ($a_*)
}
🔹 Лучше избегать сигнатур длиной в 3-4 символа.
🔹 Иногда очень полезно прописывать условие расстояния между строками. Например, если в файле есть какие-нибудь white- / blacklist, как имена процессов, можно ограничить их расположение в окне конкретной длины:
rule CheckProcessList {
strings:
$base = "\\system32\\cmd.exe" wide
$str2 = "\\task.exe" wide
$str3 = "cmd.exe" wide
$str4 = "\\alg.exe" wide
$str5 = "powershell.exe" wide
condition:
for all of ($str*): (@ - @base < 100) and for all of ($str*): (@base - @ < 100)
}
🔹 Строки логирования лучше не разбивать на подстроки длиной 4-5 символов, если там общие слова, которые могут встретиться в любом контексте: детект подстроки
\\\\dc2
в строке \nUsing:\n\t session_enum.exe \\\\dc1 \\\\dc2 \n
— плохой детект.🔹 Чтобы детект строк пережил различные кодировки, чередование заглавных и строчных букв, можно использовать три модификатора
wide ascii nocase
: rule SomeAPTScript {
strings:
$a1 = "GetRef(" ascii wide
$a2 = " & ChrW(\"&H\" &" ascii wide
$a3 = "Mid(" ascii wide
$a4 = "Join(" ascii wide
$a5 = "=0 Step -2" ascii wide
$a6 = "Function [" ascii wide
$a7 = "MSXML2.ServerXMLHTTP" ascii wide
$v1 = "<Script " ascii nocase wide
$v2 = "VBSCript" ascii nocase wide
$v3 = "JSCript" ascii nocase wide
$wscript = "WScript.CreateObject(\"WScript.Shell\")" ascii nocase wide
condition:
filesize < 30KB and $wscript and 2 of ($v*) and 5 of ($a*)
}
И, конечно, главное — не забывать смотреть в документацию YARA 👀, следить за обновлениями и
Успехов в работе.
#tips #malware #YARA
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤5