ما در مقاله ایی مجزا به صورت کامل در رابطه با مبحث Cyber Threat و Threat Hunting صحبت کردیم و این مفهوم را فرا گرفتیم و اگر با مفاهیم این مباحث آشنا نیستید میتوانید به این مقاله مراجعه کنید.
در شرایطی که ما اطلاعات CyberThreat هارا در دست داریم استفاده و بکارگیری این اطلاعات مشترک امری بسیار مهم میباشد زیرا زمانی که ما آنهارا بکارگيري نکنیم و براساس محیط کاریمان از آنها استفاده نکنیم عملا دونستن آنها کاری بیهوده است.
باتوجه به وجود منابع مختلف برای جمع آوری اطلاعات در رابطه با Cyber Threat ها یکی از مراکزی که میتوانیم به خوبی از آن بهرمند شویم CyBOX میباشد که هر روز اطلاعات خوبی را در رابطه با Threat ارائه میکند که این اطلاعات طیف گسترده ایی را شامل آدرس های IP و مقدار های Hash و کلید های Registry و... را شامل میشود.
از این بابت یکی از راه های که ما میتوانیم برای شناسایی بد افزار ها به واسطه این اطلاعات انجام دهیم و آنهارا در سیستم تشخیص دهیم میتواند ابزار YARA باشد که در این مسئله با ترکیب اطلاعات Cyber Threat میتواند کمک خوبی را به ما بکند.
درواقع YARA یکی از ابزار های پرکاربرد و پر استفاده در بین افرادی است که قصد و هدف شناسایی بد افزار های موجود درون یک سیستم را دارند. این ابزار که به صورت رایگان و Open Source ارائه شده است این امکان را به ما میدهد که تحت خط فرمان به واسطه Script های آن و Script های Python شروع به نوشتن قوانینی برای شناسایی این بد افزار ها کنیم. ابزار YARA این فرآيند به صورت Signature Based (و یا همان String Based) انجام میدهد که همانند ویژگی اولیه AntiVirus ها برای شناسایی بد افزار ها میباشد.
برای بهرهبرداری و استفاده از YARA شما باید Rule های مورد نظرتان را ایجاد کنید و در یک فایل ذخیره کنید و آن را با YARA بر روی فایل مخرب مورد نظرتان اجرا سازی کنید.
درصورتی که خروجی خاصی دریافت نکنید اصولا YARA چیزی را نتوانسته به واسطه آن Rule مورد نظرتان کشف کند و اگر چیزی را کشف کند هم به شما نمایش میدهد.
برای نوشتن YARA Rule شما باید از سه قانون و سه بخش تبعيت کنید که عبارتند از:
در ابتدا باید برای Rule مورد نظرتان یک نام یا یک شناسه منحصر به فرد انتخاب کنید، مانند زیر:
در بخش Meta شما میتوانید اطلاعات تکمیلی Rule خود را بنویسید که میتواند شامل اطلاعات مختلفی از جمله نویسنده Rule و زمان نوشتن آن و همچنین توضیحاتی در رابطه با کار آن باشد. نکته: این اطلاعات در هنگام بررسی بد افزار مورد استفاده قرار نمیگیرند.
در این بخش باید متغیر های ایجاد کنیم و آن را با Signature و یا String مربوط به بد افزار مورد نظر پر کنیم. نکاتی که برای ساخت متغییر باید توجه داشته باشید این است که متغییر ها در YARA Rule با $ شروع میشوند و به کارکتر های کوچک و بزرگ حساس هستند و نباید با عدد شروع شوند.
در این بخش شما باید به واسطه Condition بیان کنید که قرار است Rule شما چه شرطی را صورت بدهد و به چه شکلی عمل کند. در این بخش ما با از توابع منطقی استفاده میکنیم. علاوه بر این نکته ایی که باید به آن توجه کنید این است که باید در Condition تمامی مقدار های بخش String را شامل شود.
چه نکاتی در نوشتن قوانین(Rules) YARA باید درنظر گرفته شود؟
نوشتن Rule در YARA دارای قواعد خاص خود میباشد و این قواعد میتوانند به شکل بهتری به شما در تشخیص بد افزار ها کمک کنند. از این بابت اگر این سه معیار را در فرآیند نوشتن Rule های خود رعایت کنید بسیار میتواند نتیجه خوبی به شما بدهد. توجه داشته باشید که در نوشتن YARA Rule قسمت String اهمیت بیشتری میتواند داشته باشد و در اولویت قرار گرفته است.
مهندس و مدرس شبکه و امنیت سایبری و مدیر کل جزیره هک و امنیت اطلاعات توسینسو
متخصص امنیت اطلاعات و کارشناس شکار تهدیدات بانک ملی ایران ، دارای مدارک مختلف از Splunk و AWS و Fortinet و Huawei حوزه اصلی فعالیت بنده در زمینه شبکه مباحث R&S و Service Provider میباشد و در زمینه امنیت نیز در موقعیت های مختلفی مانند PenTest و SoC فعالیت داشته و دارم. سابقه همکاری با بعضی سازمان های در قالب پروژه و... را داشته ام الان به عنوان تحلیلگر امنیت سایبری در زیرساخت بانک ملی مشغول به کار هستم. لینکداین: https://www.linkedin.com/in/amirhoseintangsirinezhad/