ویرگول
ورودثبت نام
م. فتحی
م. فتحیمدرس آنالیز‌داده | یادگیری ماشین | یادگیری عمیق در مجتمع فنی تهران
م. فتحی
م. فتحی
خواندن ۱۷ دقیقه·۶ ماه پیش

بررسی بستر اطلاعات تهدید - OpenCti

چی هست؟

مدتی است که به فکر پیاده‌سازی یک پلتفرم هوش تهدید سایبری برای استفاده شخصی‌ام هستم. ایده اولیه این بود که از MISP استفاده کنم، چون به خوبی شناخته شده است و در این حوزه بسیار قوی عمل می‌کند. اما اخیراً چیزهای خوبی درباره OpenCTI شنیده‌ام. این پلتفرم به مراتب کمتر از MISP بالغ و پرکاربرد است، بنابراین احتمالاً در این مرحله به اندازه MISP صیقل‌یافته نیست. با این حال، OpenCTI ظاهر بصری جذاب و کاربرپسندی دارد و به نظر پلتفرم جالبی می‌آید. گزینه دیگر YETI است، اما هنوز حتی نگاهی به آن نینداخته‌ام.

چرا؟

سؤالم بسیار بهتر شد. من علاقه‌مند به دنبال کردن فعالیت‌های تهدیدات سایبری به‌روز هستم و تا حالا عمدتاً این کار را از طریق دنبال کردن فیدهای RSS انجام داده‌ام. مدتی است که به فکر استفاده از یک پلتفرم هوش تهدید سایبری (CTI) هستم تا ببینم آیا می‌توانم از آن برای همین منظور با دسترسی به اطلاعات بیشتر استفاده کنم. علاوه بر این، من به یادگیری علاقه دارم. خیلی در زمینه هوش تهدید (TI) عمیق نشده‌ام، اما اخیراً علاقه‌ام به این موضوع بیشتر شده است. دوست دارم بهتر بفهمم که این پلتفرم‌ها چگونه کار می‌کنند و چه کارهایی می‌توانم با آن‌ها انجام دهم.

در نهایت، فکر می‌کنم که پلتفرم هوش تهدید فقط یک پلتفرم برای دریافت اطلاعات تهدید است. احتمالاً به منابع داده‌ای جذاب دسترسی نخواهم داشت و به داده‌های متن‌باز وابسته خواهم بود، که ممکن است این فیدها آن‌قدر دیر به دستم برسند که عملاً بی‌فایده باشند. یا شاید فقط شامل شاخص‌های تهدید (IoCs) باشند و اطلاعات واقعی ارائه ندهند، که این برای عملیات امنیتی عالی است، اما برای یک فرد، کاربرد محدودی دارد.

شاید در واقع سریع‌تر باشد که به خواندن اخبار از طریق فیدهای RSS ادامه دهم. یک گزینه این است که فیدهای RSS را با پلتفرم CTI ادغام کنم، که ظاهراً با پلتفرمی مثل MISP ممکن است، اما اگر همه‌چیز به فیدهای RSS خلاصه شود، چرا زحمت بکشم؟ با راه‌حل فعلی‌ام هم می‌توانم با آن‌ها به‌روز بمانم. در نهایت، ممکن است این کار بی‌نتیجه باشد، اما باید امتحان کنم.

نحوه نصب کردن

من قصد دارم OpenCTI را روی سرور قدیمی و خوب Unraid خودم به‌صورت Docker نصب کنم. Docker به‌خاطر سادگی و علاقه روزافزون من به این محصول انتخاب شده است. دستورالعمل‌های نصب در مستندات OpenCTI موجود است که نحوه انجام این کار را توضیح می‌دهد. با رویکرد Docker مشکل خاصی در نصب وجود نداشت. و در عرض چند دقیقه، کار تمام شد. یک پلتفرم CTI تمیز و آماده.

در آنجا ما آن را داریم. Opencti تمیز.
در آنجا ما آن را داریم. Opencti تمیز.

حالا کار اصلی شروع می‌شود. حالا چه چیزی را باید با این محصول ادغام کنم؟ اصلاً چه چیزهایی می‌توانم ادغام کنم و آیا این کار منطقی است؟

ادغام یا یکپارچه سازی

برای شروع، در رابط کاربری گرافیکی (GUI) گشتی زدم و متوجه شدم که امکان ایجاد ادغام‌ها مستقیماً در آنجا وجود ندارد. در آنجا لیستی از منابع مختلف CTI وجود دارد، فکر می‌کنم، و می‌توانیم آن‌ها را به نسخه‌های عمومی (Community Editions) فیلتر کنیم. این منابع در دسته‌های مختلفی طبقه‌بندی شده‌اند:

  • جریان‌های زنده OpenCTI

  • مجموعه‌های TAXII

  • کانکتورها - وارد کردن داده

  • کانکتورها - غنی‌سازی

  • مصرف‌کنندگان جریان

  • وارد کردن فایل‌ها

  • صادر کردن فایل‌ها

  • ادغام‌های بومی شخص ثالث

بعضی از این‌ها واضح‌تر از بقیه بودند. جریان‌های زنده OpenCTI و مجموعه‌های TAXII در مجموع فقط سه مورد داشتند، بنابراین به نظر کمی ناامیدکننده می‌آمد. اما در بخش وارد کردن داده و غنی‌سازی، تعداد خوبی کانکتور وجود دارد، حتی در نسخه عمومی.

لیست کانکتورهای عمومی
لیست کانکتورهای عمومی

بعضی از این‌ها از بقیه جذاب‌تر هستند. ظاهراً اکثر این‌ها تصاویر Docker آماده‌ای دارند که باید اجرا کنم و در این مرحله تصمیم گرفتم یک ماشین مجازی (VM) اختصاصی برای OpenCTI ایجاد کنم. مدیریت کانتینرها در Unraid واقعاً آن‌قدرها عالی نیست، بنابراین این تصمیم باعث شد که دسته‌بندی تمام کانتینرهای مرتبط در یک VM برایم راحت‌تر شود. می‌دانم، این راه‌حل خیلی بهینه نیست.

من به‌نوعی این رویکرد را دوست دارم. عاشق کار کردن با Docker هستم و این روش ممکن است ساخت ادغام‌های خودم را هم آسان‌تر کند، چون نمونه‌های زیادی وجود دارد. به هر حال، بسیاری از فیدها همچنان نیاز به دسترسی پولی دارند، بنابراین حتی اگر کانکتورها نسخه‌های عمومی (Community Editions) باشند، خود فیدها رایگان نیستند. برای مثال، فید Valhalla فقط با اشتراک پولی قابل دسترسی است - بنابراین به نظر می‌رسد که فیدهای پشتیبانی‌شده توسط عموم عمدتاً هم توسط عموم ساخته شده‌اند، اما این به این معنی نیست که محتوا رایگان است. بعداً باید بررسی کنم که آیا کانکتورهای «پشتیبانی‌شده توسط شرکا و Filigran» واقعاً رایگان هستند یا نه. فیدهای IoC واقعاً اولویت اصلی من نیستند، چون عملاً کاری با آن‌ها ندارم، مگر اینکه متادیتا هم شاملشان باشد. اکثر فیدها به نظر می‌رسد فقط درباره IoCها باشند، بنابراین مطمئن نیستم که این برای اهداف من کارساز باشد یا نه. با این حال، تصمیم گرفتم کمی تصادفی شروع به ادغام کنم. هرچه بیشتر، بهتر، درست است؟ (نه، واقعاً نه).

کانکتور AlienVault

پیکربندی کانکتور بسیار آسان است. تمام چیزی که نیاز دارید اساساً کلید API OpenCTI، آدرس OpenCTI (فراموش نکنید IP و پورت را اضافه کنید) و سپس کلید API خودتان از AlienVault است. تمام تغییرات در فایل docker-compose.yml انجام می‌شود و سپس می‌توانید کانتینر را با docker-compose اجرا کنید. ایمج از Docker Hub گرفته می‌شود، بنابراین حتی اگر کد منبع و تصویر Docker در GitHub موجود باشند، اینجا واقعاً استفاده نمی‌شوند. این خبر خوبی است، چون احتمالاً می‌توانم تمام کانکتورها را در یک فایل docker-compose واحد جمع کنم، که دوست دارم. می‌توان آن‌ها را به فایل docker-compose‌ای که خود OpenCTI را اجرا می‌کند اضافه کرد، اما من ترجیح می‌دهم آن را از کانکتورها جدا نگه دارم.

کانکتور AlienVault پالس‌ها را وارد می‌کند. این کار ممکن است کمی طول بکشد.
کانکتور AlienVault پالس‌ها را وارد می‌کند. این کار ممکن است کمی طول بکشد.

حالا که کانکتور AlienVault راه‌اندازی شده، با اشتیاق منتظرم تا فرآیند وارد کردن داده‌ها تمام شود و ببینم چه نوع داده‌هایی در پلتفرم OpenCTI نمایش داده می‌شود. به‌خصوص کنجکاو هستم که ببینم داده‌ها چگونه در پلتفرم ساختاربندی شده‌اند. با این حال، به نظر می‌رسد کانکتور مدام کرش می‌کند. خیلی حوصله دیباگ کردن نداشتم، بنابراین آن را متوقف کردم و تاریخ اولیه را به ابتدای سال ۲۰۲۳ تغییر دادم. شاید مشکل به تایم‌اوت‌های API مربوط باشد.

این کار مشکل را حل نکرد. خطاها را بررسی کردم و خطای خیلی کلی‌ای مثل «Errorno 3 - دوباره امتحان کنید» گرفتم. در GitHub هم شانس نیاوردم. با این حال، گفته شده بود که تمام کانکتورها نیاز به دسترسی به RabbitMQ دارند که به‌عنوان بخشی از پلتفرم OpenCTI میزبانی می‌شود. بنابراین پورت‌های کانتینر RabbitMQ را باز کردم، اما این هم هیچ تأثیری نداشت. به‌طور عجیبی، کانکتور Malware Bazaar بدون مشکل کار کرد، بنابراین این موضوع کمی مرموز بود.

برای دیباگ کردن، پیکربندی را به‌عنوان یک کانتینر اضافی به فایل docker-compose.yml اصلی OpenCTI اضافه کردم. این کار ظاهراً مشکل را حل کرد. بعد از این تغییر شروع به کار کرد. شاید دسترسی به RabbitMQ واقعاً به‌خوبی کار نمی‌کرد. دلیل احتمالی این است که مهارت‌های محدود من در Docker باعث شده بود RabbitMQ برای کانتینرهای دیگر در دسترس نباشد. همچنین ممکن است به‌خاطر تنبلی‌ام در ری‌استارت نکردن کانتینرهای ثانویه بعد از تغییرات اولیه باشد. به هر حال، تصمیم گرفتم با این روش پیش بروم چون حالا کار می‌کرد.

داشبورد پس از اضافه کردن برخی از داده ها
داشبورد پس از اضافه کردن برخی از داده ها

حالا داشبورد خیلی جذاب‌تر شده است. وارد کردن داده‌ها کمی طول می‌کشد، احتمالاً چون داده‌ها در حال تجزیه و سپس وارد شدن به Elasticsearch هستند. گزارش‌های تحلیلی، IoCها، تهدیدات، آسیب‌پذیری‌ها و غیره از فیدهای AlienVault شروع به ورود کرده‌اند.

مثالی از گزارش تجزیه و تحلیل وارد شده از AlienVault
مثالی از گزارش تجزیه و تحلیل وارد شده از AlienVault

فکر می‌کنم این با تمام روابطی که نمایش می‌دهد خیلی جالب است. در واقع فکر می‌کنم واقعاً فوق‌العاده است و تا حالا رابط کاربری و امکاناتش را دوست دارم. نمایش داده‌ها و همبستگی بین آن‌ها خیلی خوب است.

ادغام‌های بیشتر

متوجه شدم که برای کاربردی شدن پلتفرم برای من، احتمالاً به تعداد زیادی کانکتور سفارشی اضافی نیاز است. قبل از اینکه به سراغ این مسیر بروم، به بررسی کانکتورهای آماده ادامه دادم. در حین فعال‌سازی موارد مختلف، به چیزی به نام کانکتور Obstracts برخوردم. این خیلی جالب به نظر می‌رسید؛ می‌توانستید فیدهای RSS را با سرویس Obstracts دریافت کنید و سپس از طریق یک API آن‌ها را به OpenCTI وارد کنید. متأسفانه دسترسی با API هزینه نسبتاً بالایی دارد، بنابراین این گزینه واقعاً برایم مناسب نبود. با این حال، علاوه بر AlienVault، موارد زیر را فعال کردم:

  • دیتاست‌های OpenCTI: این‌ها کم‌وبیش دیتاست‌هایی هستند که به پلتفرم وارد می‌شوند. شامل اطلاعات پایه مثل بخش‌های صنعتی است.

  • OpenCTI Mitre: این هم مشابه است، اطلاعات پایه را از MITRE ATT&CK وارد می‌کند.

  • آسیب‌پذیری‌های شناخته‌شده CISA: این خیلی جالب است و همان‌طور که از اسمش پیداست، همه‌چیز را توضیح می‌دهد.

  • NVD Common Vulnerabilities and Exposures: عاشق این آسیب‌پذیری‌ها هستم.

  • Malpedia: IoCها و غیره. متأسفانه حسابی ندارم، بنابراین فقط موارد TLP:WHITE.

  • Maltiverse: IoCها و غیره، در سطح رایگان، مطمئن نیستم که اصلاً مفید باشد.

  • Abuse.ch Threat Fox: IoCها.

  • Abuse.ch UrlHaus: IoCهای URL.

شاید بعداً:

  • TweetFeed: این برایم جالب و جدید است. IoCها را از توییت‌ها جمع‌آوری می‌کند.

  • TAXII2: جمع‌آوری‌کننده عمومی TAXII2.

  • Urlscan

فرضم این است که برای علاقه کلی‌ام، AlienVault، NVD CVE و آسیب‌پذیری‌های شناخته‌شده CISA بیشترین ارزش را دارند. فیدهای مبتنی بر IoC کمی برایم بی‌اهمیت هستند، مگر اینکه بتوانید پلتفرم CTI را به راه‌حل‌های فنی متصل کنید. با این حال، پتانسیلی در ارائه آمار بدافزارها از این فیدها وجود دارد که برایم جالب است. می‌دانید، قبلاً یک راه‌حل مبتنی بر ELK برای این منظور ساخته‌ام و هنوز هم کار می‌کند. شاید اگر OpenCTI خوب عمل کند، بتوانم آن را کنار بگذارم.

نبود گزارش‌های هوش تهدید کمی آزاردهنده است. AlienVault این گزارش‌ها را ارائه می‌دهد، اما تقریباً تنها منبعی است که از منابع ادغام‌شده چنین چیزی ارائه می‌کند. بقیه یا پشتیبانی‌کننده هستند یا IoCهای فنی‌تر ارائه می‌دهند. Pulsedive هوش تهدید رایگان بسیار جالبی ارائه می‌دهد. قبلاً برای برخی از پروژه‌هایم از آن استفاده کرده‌ام. متأسفانه کانکتور آماده‌ای برای Pulsedive وجود ندارد. چند گزینه برای انجام این کار وجود دارد، اما متأسفانه اکثر یا همه آن‌ها نیاز به مجوز PRO پولی دارند. قیمت مجوز PRO برای استفاده غیرتجاری کاملاً ارزان است، ۲۹ یورو در ماه. با این حال، نمی‌دانم چه داده‌هایی در آن گنجانده شده است. به هر حال، کانکتورها باید ساخته شوند چون گزینه آماده‌ای وجود ندارد.

در این مرحله به نظر می‌رسد که ادغام‌های بیشتر نیاز به کارهای زیادی دارد. خیلی علاقه‌مندم که فیدهای RSS را به گزارش‌هایی در OpenCTI تبدیل کنم و به‌صورت خودکار گزارش‌های جذابی از آن‌ها بسازم. اما چون این کار زمان زیادی می‌طلبد، این گزینه را بعداً بررسی خواهم کرد.

کانکتورهای فعلی
کانکتورهای فعلی

و آخرین نکته قبل از ادامه دادن - این پلتفرم حسابی حافظه می‌بلعد. من به VM هشت گیگابایت حافظه اختصاص دادم و همه‌اش را مصرف کرد و احتمالاً به همین دلیل در رابط کاربری کمی لگ دارد. حافظه را به ۱۲ گیگابایت افزایش می‌دهم تا ببینم کافی است یا نه.

ادغام‌های غنی‌سازی

حالا به غنی‌سازی می‌رسیم. این‌ها برای غنی‌سازی داده‌ها استفاده می‌شوند. گزینه‌های زیادی به‌صورت پیش‌فرض ارائه شده‌اند. این برای یک پلتفرم CTI تولیدی خیلی خوب است، اما برای اهداف من، غنی‌سازی معمولاً کمتر اهمیت دارد. بیشتر از روی کنجکاوی و برای آزمایش، تصمیم گرفتم چند ادغام را امتحان کنم.

با این‌ها شروع کردم:

  • Hatching Triage

  • Crowdsec

  • Shodan InternetDB

به جای Shodan معمولی، Shodan InternetDB را انتخاب کردم تا به‌طور تصادفی از سهمیه محدود Shodanم که ممکن است برای اهداف دیگر نیاز داشته باشم، استفاده نکنم.

غنی‌سازی Shodan InternetDB در حال انجام است
غنی‌سازی Shodan InternetDB در حال انجام است

به نظرم این خیلی جالب است. اما ادغام CrowdSec کار نمی‌کند، خطایی درباره استفاده از API نسخه ۱ داده شد. سندباکس Hatching Triage کار می‌کند و آرتیفکت‌ها را به‌خوبی غنی‌سازی می‌کند وقتی به سندباکس ارسال می‌شوند.

وقتی از غنی‌سازی Hatching Triage استفاده می‌شود، نتایج تحلیل به‌صورت کامنت به آرتیفکت‌ها اضافه می‌شوند. روابط هم به تکنیک‌های مرتبط دیگر اضافه می‌شوند. این را خیلی دوست دارم و فکر می‌کنم واقعاً عالی است. به نظر می‌رسد به‌خوبی هم کار می‌کند.

مثال غنی‌سازی یک آرتیفکت توسط Hatching Triage
مثال غنی‌سازی یک آرتیفکت توسط Hatching Triage

در ادامه بررسی ادغام‌های غنی‌سازی بیشتر، تصمیم گرفتم VirusTotal و Sophos را هم امتحان کنم. Sophos Intelix حتی برای حساب رایگان سهمیه خوبی ارائه می‌دهد. تنها نکته آزاردهنده این است که نیاز به حساب AWS دارد.

با اینکه SophosLabs Intelix در سطح رایگان درخواست‌های زیادی ارائه می‌دهد، من غنی‌سازی خودکار را فعال نکردم چون نمی‌خواهم با سورپرایزهای ناخواسته مواجه شوم. همچنین یک بودجه «صفر هزینه» به AWS اضافه کردم تا اگر هزینه‌ای در AWS ایجاد شود، امیدوارم به من هشدار دهد. کاش می‌شد این را طوری محدود کرد که وقتی به آستانه خاصی رسید، تمام چیزهایی که هزینه دارند متوقف شوند.

به هر حال، این به من اجازه داد پشتیبانی Sophos را اضافه کنم و همچنین دو کانکتور VirusTotal را اضافه کردم، حتی اگر API در سطح رایگان محدود باشد. متأسفانه به نظر می‌رسد ادغام VirusTotal کاملاً خراب است. یک درخواست رفع اشکال (PR) برای یک اصلاح ساده وجود دارد، اما فایل docker-compose روی نسخه خاصی از تصویر تنظیم شده بود. آن را به آخرین نسخه تغییر دادم. مشکل حل نشد چون نسخه ۵.۸.۷ قبلاً آخرین بود، بنابراین آن را به حالت rolling تغییر دادم. حالا کار می‌کند!

کانکتور Sophos هم کار نمی‌کند، شاید در حالت بتا باشد یا چیزی شبیه به آن. با این یکی هم شانس نیاوردم، راه‌حل ساده‌ای وجود نداشت و فعلاً حوصله دیباگ کردن نداشتم.

استفاده از پلتفرم

کاربردهای زیادی برای چنین پلتفرمی وجود دارد، از ادغام با SIEMها و سایر ابزارهای امنیتی برای دریافت خودکار IoCها، مسدودسازی، اجازه دادن، تحلیل تهدیدات، تحلیل IoCها و موارد دیگر. من در مورد خود پلتفرم‌ها حرفه‌ای نیستم و این را برای به‌دست آوردن اطلاعات بیشتر درباره تهدیداتی که سازمان‌ها ممکن است با آن مواجه شوند، ساختم. برای این مورد استفاده، مشکل کمبود داده‌ها را دارم وقتی به منابع رایگان وابسته هستم. داده‌های فنی IoC از منابع رایگان به وفور یافت می‌شود، اما گزارش‌های معنی‌دار کمتر هستند. البته باید اضافه کنم که IoCها هم ممکن است بهترین نباشند. مطمئنم که بسیاری از فروشندگان امنیتی که IoCهای خودشان را جمع‌آوری می‌کنند بهتر هستند و این پلتفرم‌ها برای مفید بودن نیاز به دریافت داده توسط SOC دارند.

واقعاً دوست دارم داده‌هایی از پست‌های وبلاگ، مقالات خبری و منابع مشابه که با بازیگران تهدید، بدافزارها، تکنیک‌ها و همه آن چیزهای جذاب مرتبط هستند، اضافه کنم. داده‌های AlienVault برای این منظور عالی هستند، اما فقط یک منبع هستند. متأسفانه سایر منابع رایگان واقعاً در این مورد کمکی نمی‌کنند.

حالا به استفاده واقعی می‌رسیم. اولین چیزی که می‌خواهم ببینم، گزارش‌های اخیر هستند. این‌ها در بخش Analysis -> Reports ابزار لیست شده‌اند.

نمایش گزارش‌ها
نمایش گزارش‌ها

به یک گزارش تصادفی نگاه کردم تا ببینم چه شکلی است. قبلاً یک تصویر از این نما بود، اما باز هم یکی دیگر!

نمای کلی یک گزارش
نمای کلی یک گزارش

این یک نمای کلی از گزارش است تا بتوانید تصمیم بگیرید که آیا علاقه‌مند به دانستن بیشتر هستید یا خیر. معمولاً لینک‌های اضافی به منابع خارجی درباره مقالات وجود دارد که می‌توانید اطلاعات بیشتری از آن‌ها پیدا کنید. همچنین اطلاعات اضافی در تب‌های دیگر وجود دارد، حالا به تب Knowledge نگاه می‌کنیم:

تب Knowledge از یک گزارش
تب Knowledge از یک گزارش

این یک گراف جذاب است که می‌توانید با آن تعامل کنید. روابط بین مشاهدات و موجودیت‌ها را نشان می‌دهد. قبلاً گراف‌های مشابهی دیده‌ام، اما تجربه‌ام نشان داده که کاربرد این‌ها محدود است. با این حال، این یکی از بهترین کاربردهای این نوع بصری‌سازی‌هاست که دیده‌ام، به‌راحتی می‌توانید روابط بین یک IoC و تکنیک‌ها را ببینید.

با نگاه به تب‌های دیگر، موجودیت‌ها و مشاهدات را دارید. همچنین تب Content وجود دارد که تا حالا همیشه خالی بوده و تب Data که آن هم خالی بوده است.

موجودیت‌ها و مشاهدات نشان‌داده‌شده در تصویر
موجودیت‌ها و مشاهدات نشان‌داده‌شده در تصویر

این‌ها جالب هستند. اطلاعات بیشتری درباره تکنیک‌هایی که در این حمله خاص مشاهده شده‌اند و شاخص‌های مرتبط با آن‌ها به دست می‌آورید. وقتی به دنبال اطلاعات سطح بالا هستید، این ممکن است خیلی جذاب نباشد، اما برای شکار در راه‌حل فنی انتخابی‌تان می‌تواند به‌راحتی استفاده شود. البته وقتی به شکار تهدید مبتنی بر TTP می‌روید، باید مقالات را کمی بیشتر تحلیل کنید.

یک افزودنی خوب، غنی‌سازی است. اگر بخواهید اطلاعات بیشتری از یک فایل داشته باشید، می‌توانید آن را با ادغام‌های دیگر غنی‌سازی کنید. به‌عنوان مثال، یک هش را در نظر بگیرید.

نمونه غنی‌شده توسط VirusTotal در سمت راست. خروجی کامل JSON از API VirusTotal هم به‌صورت کامنت در دسترس است، اگر لازم باشد. همچنین لینک به VirusTotal به‌عنوان مرجع خارجی اضافه شده است.

این داده‌ها خوب هستند. در صورت نیاز در محیط تولیدی می‌توان آن را به‌صورت خودکار غنی‌سازی کرد که برچسب‌های زیادی اضافه می‌کند. این‌ها برای جستجوی اطلاعات عالی هستند. متأسفانه، من مجوزی ندارم که اجازه دانلود نمونه از API VirusTotal را بدهد. این می‌توانست به آرتیفکت‌هایی تبدیل شود که در یک سندباکس تحلیل شوند. این کار می‌توانست TTPهای جذاب بدافزار استفاده‌شده را نشان دهد و سپس به‌صورت کلی‌تر برای شکار تهدید استفاده شود. در محیط سازمانی احتمالاً این امکان‌پذیر است.

در این مثال خاص، گزارش اصلی اطلاعاتی ارائه می‌دهد که می‌توان آن‌ها را به پرس‌وجوهای شکار تبدیل کرد:

  • بدافزار از پسوندهای دوگانه استفاده می‌کند - .xls.exe و .pdf.exe.

  • گفته شده که بدافزار دستورات کشف را اجرا می‌کند و یک ارتباط C2 برقرار می‌کند.

  • هدر درخواست وب سفارشی: Cookie: 3rd_eye=[client_hash value]

بررسی یک تهدید خاص

مورد استفاده دیگری که برایم جالب است، بررسی یک تهدید خاص است. به‌عنوان مثال، Qbot را در نظر بگیرید. جستجو برای Qakbot ۱۳ نتیجه می‌دهد که اولین آن صفحه بدافزار QakBot است. این صفحه، حداقل در تئوری، باید شامل تمام اطلاعات دیگری باشد که از جستجوی قبلی به دست آمده است. صفحه شامل اطلاعاتی درباره بدافزار QakBot است، اگرچه صفحه اصلی عمدتاً فقط اطلاعات کلی و آمار است.

صفحه کلی QakBot
صفحه کلی QakBot

صفحه Knowledge اطلاعات زیادی درباره QakBot دارد. شامل مرور کلی داده‌ها، اطلاعات درباره قربانیان در صورت وجود، آسیب‌پذیری‌های مشاهده‌شده مرتبط با QakBot، گراف MITRE ATT&CK از تکنیک‌های استفاده‌شده توسط آن، مشاهدات و اطلاعات زیاد دیگر است. همه این‌ها برای همه تهدیدات موجود نیستند و به‌خصوص چون منابع داده در پیاده‌سازی من محدود هستند، فقط مقدار محدودی داده وجود دارد.

با این حال، تعداد زیادی مشاهده در دسترس است. در مجموع ۳۸۳۰ مشاهده مرتبط با QakBot یافت شده است. نمی‌دانم این‌ها چگونه نگاشت شده‌اند، اما حدسم این است که بر اساس برچسب استفاده‌شده است. شاید روش پیچیده‌تری باشد، اما کمی تنبل هستم که این اطلاعات را پیدا کنم، ببخشید.

ترکیبی از برخی نماها در تب Knowledge
ترکیبی از برخی نماها در تب Knowledge

تب Analysis شامل گزارش‌هایی درباره QakBot است. این‌ها شامل انواع مقاله‌ها/گزارش‌هایی هستند که به‌نحوی درباره QakBot صحبت کرده‌اند. این می‌تواند معدن طلایی از اطلاعات برای ایجاد قابلیت‌های تشخیص یا پرس‌وجوهای شکار تهدید باشد. البته هنوز باید مقالات را تحلیل کنید، اما اگر منابع داده خوبی داشته باشید، شاید حداقل یک مکان واحد برای بررسی داشته باشید.

تب Indicators شامل شاخص‌ها است. درک من این است که این‌ها بیشتر IoCها هستند، چون مشاهدات نوعی «IoCهای تأییدنشده» هستند. بنابراین شاخص‌ها کمتر مستعد خطای مثبت کاذب (False Positive) هستند. شاید اشتباه کنم. این برای این مثال کافی است.

نتیجه‌گیری

پلتفرم OpenCTI به نظر یک پلتفرم CTI بسیار جذاب می‌آید. رابط کاربری عالی و زیبایی دارد که وقتی حافظه کافی به آن بدهید، خیلی خوب کار می‌کند. روابط بین اشیاء مختلف عالی است و دریافت حداقل برخی از داده‌ها کاملاً آسان شده است. ایده کانکتورها را دوست دارم، فقط کاش تعداد بیشتری از آن‌ها در دسترس بود.

برای استفاده من، این پلتفرم عالی می‌شد اگر می‌توانستم گزارش‌های بیشتری وارد کنم. این بزرگ‌ترین مشکلی است که در حال حاضر برای اهداف شخصی‌ام با آن دارم. دوست دارم اطلاعات بیشتری به این محصول وارد شود.

وقتی صحبت از استفاده واقعی از ابزار می‌شود، فکر می‌کنم می‌تواند افزودنی خیلی خوبی برای یک سازمان باشد. شاید به دنبال پلتفرمی برای ذخیره هوش تهدید سایبری هستید و نمی‌خواهید هزینه گزافی برای یک راه‌حل تجاری بپردازید. شاید بتوانید پول را صرف وارد کردن برخی فیدهای تجاری به پلتفرم کنید، به جای پرداخت برای خود پلتفرم. برای این منظور فکر می‌کنم این خیلی خیلی خوب است - استفاده آسان، درک آسان و جستجوی اطلاعات از آن آسان است. می‌توانید به‌راحتی داده‌های خودتان را از طریق رابط کاربری اضافه کنید. اگر یک حادثه داشته باشید، می‌توانید اطلاعات مربوط به آن حادثه خاص را در ابزار ذخیره کنید. می‌توانید اطلاعات زیادی اضافه کنید که بعداً قابل جستجو هستند.

فکر می‌کنم این می‌تواند راه‌حل خوبی حداقل برای یک سازمان کوچک باشد. اگرچه اگر به دنبال یک پلتفرم CTI متن‌باز باشید، فکر می‌کنم MISP هنوز اولین گزینه است، مگر اینکه به‌نحوی ثابت شود که بدتر است. با این حال، MISP خیلی پیچیده‌تر است، اما گزینه‌های بیشتری به‌صورت پیش‌فرض ارائه می‌دهد. برای آدم تنبلی مثل من، فکر می‌کنم OpenCTI می‌تواند گزینه بهتری باشد (مگر اینکه واقعاً نتوانم فیدهای RSS را وارد کنم).

در مورد انتقادها چه؟ خب، مستنداتش خیلی ضعیف است. مستندات می‌توانند در بسیاری از سطوح، در واقع تقریباً در همه سطوح، بهبود یابند. راهنمای استقرار نسبتاً خوب کار می‌کند، اما حتی آنجا هم چیزهای کوچکی هست که می‌توان بهبود داد. ادغام‌ها و عملکرد کانکتورهای مختلف اصلاً مستند نشده‌اند. اگر مستنداتی وجود داشته باشد، پراکنده است. باید برچسب‌گذاری واضحی از کارهایی که می‌توانید با هر کدام انجام دهید وجود داشته باشد. برخی مستندات کاملاً غایب هستند و فقط گفته شده که در آینده اضافه خواهند شد.

بعد، تعداد کانکتورهای موجود محدود است. بسیاری از چیزهای مفید در کانکتورها غایب هستند، اما البته می‌توانید خودتان آن‌ها را توسعه دهید. با این حال، به نظر نمی‌رسد این کار خیلی ساده باشد. فکر می‌کنم وارد کردن فیدهای RSS باید کاملاً آسان باشد و برای این نوع ابزار ارزش زیادی اضافه می‌کند، به‌خصوص برای تیم‌های کوچک‌تر که ممکن است بودجه‌ای برای فیدهای تجاری جذاب نداشته باشند.

احتمالاً بعداً درباره این پلتفرم بیشتر می‌نویسم، چون امیدوارم چیزهای بیشتری به آن اضافه کنم و تجربه بیشتری در استفاده از آن به دست بیاورم. از اینکه خواندید، ممنون!

۳
۰
م. فتحی
م. فتحی
مدرس آنالیز‌داده | یادگیری ماشین | یادگیری عمیق در مجتمع فنی تهران
شاید از این پست‌ها خوشتان بیاید