ابزار YARA چیست؟ و چه کاربردی دارد؟

فهرست مطالب
YARA
یک ابزار منبع باز است که برای شناسایی و طبقه بندی نمونههای بدافزار کاربردی میباشد. این کار با استفاده از تعریف ruleهایی براساس محتوای متنی و یا باینری انجام میگیرد. YARA یک فایل اجرایی است که بروی تمام سیستم عاملهای ویندوز، مک و لینوکس قابل اجرا است و فایلهای متنی حاوی rule ها را به عنوان ورودی دریافت میکند. با اینکه ابزار YARA جهت شناسایی بدافزارها کاربرد فراوانی دارد ولی نمیتوان آن را محدود به این موضوع کرد و امکان شناسایی فایلهای سالم بر اساس الگوهای تعریف شده را نیز دارد.
این ابزار با استفاده از توصیفاتی(description) که به عنوان ورودی دریافت میکند، به دنبال آن ویژگیها در بین فایلها میگردد؛ این توصیفات میتواند یک رشته متنی ساده ، مقادیر باینری یا hex باشند. به این توصیفات اصطلاحا rule (به فارسی: قانون) گفته میشود.
بدافزارها چگونه شناسایی میشوند؟
یکی از معمولترین روشهای شناسایی بدافزار، محاسبه کردن هش(hash) فایل مشکوک و مقایسه آن با مقدار هش یک بدافزار شناخته شده میباشد. این روش عموماً با نام signature-based detection شناخته میشود. این روش از سرعت بالایی برخوردار میباشد و کماکان توسط پیشرفتهترین آنتی ویروسها به عنوان اولین لایه محافظتی استفاده میشود.
یکی از مشکلات روش اول، عدم شناسایی نسخههای خاص و نمونههای دیگر بدافزارها میباشد؛ دلیل این اتفاق تفاوت مقدار هش نمونههای با نمونه اصلی است که در پایگاه امضاء وجود دارد. گاهی اوقات در سایر نسخهها و نمونهها یا حتی خانوادههای دیگر از بدافزارها مقادیر و رشتههای متنی مشترکی استفاده میشود. آنتی ویروسها به دنبال یافتن این نوع از مقادیر مشترک در بین فایل ها اسکن میکنند. این روش امکان شناسایی بدافزارهای ناشناخته و نمونه های جدید بدافزارهای قدیمی را به ارمغان میآورد.
کاربرد YARA چیست؟
همانطور که گفته شد YARA یک ابزار تشخیص و شناسایی انواع فایل برا اساس الگوهای انعطافپذیر و قابل شخصی سازی میباشد. در ادامه به چند مورد از کاربردهای YARA اشاره میکنیم:
– شناسایی بدافزار: زمانی که در سال 2008 ابزار YARA ساخته شد هدف اصلی آن تشخیص فایلهای آلوده بود. البته این ابزار همانند راهکاری آنتی ویروس عمل نمیکند. آنتی ویروس ها معمولا برا اساس پایگاه داده امضا فایلهای آلوده و مشکوک را شناسایی میکنند، در حالی که با استفاده از YARA امکان تعریف rule های متنوع و پیچیده برای شناسایی تمام خانواده بدافزار وجود دارد. در واقع این ابزار از دستورات شرطی برای مطابقت با rule ها استفاده میکند که انعطاف پذیری بسیار بالایی در شناسایی انواع بدافزارها خواهد داشت. همچنین YARA، نه تنها امکان شناسایی فایلهای آلوده را دارد بلکه توانایی شناسایی بدافزارهای fileless از روی dump حافظه را نیز دارد.
– مدیریت حوادث: در زمان وقوع حوادث سایبری، تحلیلگران تهدیدات سایبری نیاز دارند تا به سرعت از وجود یک فایل یا یک محتوای خاص بروی نقاط پایانی مطلع شوند. ابزار YARA سریع ترین راهکار برای چنین شرایطی میباشد و به سرعت توانایی شناسایی و موقعیت یابی کدها و فایلهای مخرب را خواهد داشت.
– آنالیز ترافیک شبکه: امکان اینکه از این ابزار برای پایش ترافیک شبکه، فایلهای الصاق شده به ایمیل و حتی ارتباط http با سوار شدن بروی یک reverse proxy وجود دارد.
– EDR: ابزار YARA یک ابزار کامل و بالغ میباشد و در ترکیب با سایر راهکارهای امنیت سایبری میتواند بسیار کاربردی باشد. مهمترین و بیشترین استفاده از آن در راهکاریهای EDR (Endpoint Detection & Response) و MDR میباشد که اجرای جستجو بر اساس فرمت YARA بروی کلیه نقاط پایانی تحت مدیریت را فراهم میآورد.
نحوه استفاده از YARA
همانطور که پیشتر مطرح شد، این ابزار کاملا منبع باز بوده و به راحتی از طریق وبسایت گیت هاب از طریق این لینک قابل دانلود میباشد. فایل دانلود شده داری دو عدد فایل اجرای به نامهای yara64 و yarac64 (در صورت دانلود نسخه 64 بیتی) میباشد. پس از آن نیاز به نوشتن rule خواهیم داشت که شناسایی و تشخیص بر اساس آن انجام میگیرد. در ادامه نمونهای از یک 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
}
تمامی این قوانین دارای سه قسمت اصلی میباشند که تنها یکی از آنها اجباری است. قسمت meta توضیحاتی در خصوص این rule میباشد. در قسمت strings تمامی رشتههای متنی که در این rule استفاده میشود تعریف میگردد در صورتی قوانین ما دارای هیچ رشته متنی نمیباشد، میتوان همانند قسمت قبل از نوشتن آن اجتاب کرد. بخش condition قسمت منطقی و تصمیم گیرنده میباشد و تعریف آن اجباریست. در این قسمت عبارات منطقی و مقایسهای که در نهایت منجر به ارضای شروط میشوند، قرار داده میشود. در این قسمت امکان استفاده از رشتههای متنی تعریف شده در قسمت strings جهت انجام اعمال مقایسهای وجود دارد.
این ابزار دارای کلمات کلیدی و توابع داخلی متنوعی میباشد که امکان انعطاف پذیری فوق العاده بالایی در نوشتن rule ها در اختیارمان قرار میدهد و توانایی تحلیل کل فایل و یا بخش های مشخصی از آن دارد. کلیه کلمات کلیدی yara به شرح جدول ذیل میباشد. جهت آشنایی کامل با نحوه نوشتن rule ها به مستندات yara مراجعه نمایید. همچنین yara دارای تعدادی ماژول میباشد که قابلیتهای جدیدی مانند توابع محاسبه هش و شناسایی نوع فایل را به rule های ساده شما اضافه میکند؛ با استفاده از این توابع پیشرفته امکان تعریف rule های پیشرفته میسر میشود.
condition | base64wide | base64 | at | ascii | any | and | all |
global | fullword | for | filesize | false | entrypoint | endswith | contains |
int16be | int16 | include | in | iequals | iendswith | icontains | import |
nocase | meta | matches | istartswith | int8be | int8 | int32be | int32 |
strings | startswith | rule | private | or | of | not | none |
uint8be | uint8 | uint32be | uint32 | uint16be | uint16 | true | them |
defined | xor | wide |
برای مثال ما در اینجا یک فایل rules با پسوند yar ایجاد کرده و یک سری قوانین و شرط بسیار ساده برای آن نوشتهایم. بر اساس این فایل rule، تمامی فایلهایی که دارای رشته متنی hello یا world بوده و در محتوای آن رشته متنی foo نباشد؛ نمایش داده خواهد شد.
rule hello_world{
strings:
$hello = "hello"
$world = "world"
$ignore = "foo"
condition:
($hello or $world) and not $ignore
}

با اجرای yara بروی درایو D فایلی که با محتوای hello world ایجاد کرده بودیم شناسایی میشود. معمولا با اولین شناسایی یک بدافزار ناشناخته توسط آزمایشگاههای تحلیل بدافزار جزئیات فنی آن نیز منتشر میشود با استفاده از این نکات فنی میتوان توصیفات لازم جهت شناسایی آن بدافزار توسط yara را تعریف نموده و بروی کلیه نقاط پایانی اجرا کرد. در این صورت قبل از اضافه شدن امضاء بدافزار به پایگاه امضاء آنتی ویروس مستقر میتوان بدافزار مدنظر را تشخیص داد. نکته نهایی و لازم به ذکر این است که، به هیچ عنوان توصیه نمیشود که از ابزار قدرتمند YARA به عنوان جایگزین آنتی ویروس استفاده شود بلکه به عنوان یک ابزار مکمل و کاربردی در کنار سایر راهکارها کاربردی است.
0 دیدگاه