شناسایی و طبقه بندی بدافزار با آمازون Rekognition PlatoBlockchain Data Intelligence. جستجوی عمودی Ai.

شناسایی و طبقه بندی بدافزار با آمازون Rekognition

با توجه به مقاله توسط Cybersecurity Ventures، خسارت ناشی از باج‌افزار (نوعی بدافزار که می‌تواند دسترسی کاربران به داده‌هایشان را مسدود کند مگر اینکه باج بپردازند) در سال 57 در مقایسه با سال 2021، 2015 برابر افزایش یافته است. USD) سالانه تا سال 265. در زمان نگارش این مقاله، تلفات مالی ناشی از حملات Ransomware کمی بالاتر از 2031 است.th جایگاه در فهرستی از کشورها که بر اساس آنها رتبه بندی شده اند GDP.

با توجه به تهدید ناشی از بدافزار، چندین تکنیک برای شناسایی و مهار حملات بدافزار توسعه داده شده است. دو روش متداول که امروزه مورد استفاده قرار می گیرد، تشخیص مبتنی بر امضا و رفتار است.

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

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

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

بررسی اجمالی راه حل

برای آموزش یک مدل چند طبقه‌بندی و یک مدل تشخیص بدافزار، ابتدا مجموعه داده‌های آموزشی و آزمایشی را آماده می‌کنیم که شامل انواع مختلف بدافزار مانند flooder، adware، spyware و غیره و همچنین اشیاء خوش‌خیم است. سپس اشیاء اجرایی قابل حمل (PE) را به تصاویر خاکستری تبدیل می کنیم. در مرحله بعد، یک مدل را با استفاده از تصاویر با آمازون Rekognition آموزش می دهیم.

آمازون Rekognition سرویسی است که انجام انواع مختلف تجزیه و تحلیل بصری روی برنامه های شما را ساده می کند. Rekognition Image به شما کمک می کند تا برنامه های قدرتمندی برای جستجو، تأیید و سازماندهی میلیون ها تصویر بسازید.

Amazon Rekognition Custom Labels بر پایه قابلیت‌های موجود Rekognition است که قبلاً روی ده‌ها میلیون تصویر در دسته‌های مختلف آموزش داده شده است.

Amazon Rekognition Custom Labels یک سرویس کاملاً مدیریت شده است که به کاربران امکان می دهد میلیون ها تصویر را تجزیه و تحلیل کرده و از آنها برای حل بسیاری از مشکلات مختلف یادگیری ماشین (ML) از جمله طبقه بندی تصویر، تشخیص چهره و تعدیل محتوا استفاده کنند. در پشت صحنه، آمازون Rekognition مبتنی بر فناوری یادگیری عمیق است. این سرویس از یک شبکه عصبی کانولوشن (CNN) استفاده می‌کند که از قبل روی یک مجموعه داده بزرگ برچسب‌گذاری شده آموزش داده شده است. با قرار گرفتن در معرض چنین داده های حقیقت زمینی، الگوریتم می تواند یاد بگیرد که الگوها را در تصاویر از حوزه های مختلف تشخیص دهد و می تواند در بسیاری از موارد استفاده صنعتی مورد استفاده قرار گیرد. از آنجایی که AWS مالکیت ساخت و نگهداری معماری مدل و انتخاب روش آموزشی مناسب را برای کار در دست دارد، کاربران نیازی به صرف زمان برای مدیریت زیرساخت مورد نیاز برای وظایف آموزشی ندارند.

معماری راه حل

نمودار معماری زیر یک نمای کلی از راه حل ارائه می دهد.

راه حل با استفاده از ساخته شده است دسته AWS, AWS Fargateو شناسایی آمازون. AWS Batch به شما امکان می دهد صدها کار محاسباتی دسته ای را در Fargate اجرا کنید. Fargate با هر دو سازگار است سرویس کانتینر الاستیک آمازون (Amazon ECS) و Amazon Elastic Kubernetes Service (Amazon EKS). برچسب‌های سفارشی شناسایی آمازون به شما امکان می‌دهد از AutoML برای بینایی رایانه برای آموزش مدل‌های سفارشی برای شناسایی بدافزارها و طبقه‌بندی دسته‌های مختلف بدافزار استفاده کنید. توابع مرحله ای AWS برای هماهنگی پیش پردازش داده ها استفاده می شود.

برای این راه حل، منابع پیش پردازش را از طریق ایجاد می کنیم AWS CloudFormation. الگوی پشته CloudFormation و کد منبع برای توابع دسته ای AWS، Fargate و Step در دسترس هستند مخزن GitHub.

مجموعه داده

برای آموزش مدل در این مثال، از مجموعه داده های عمومی زیر برای استخراج مخرب و خوش خیم استفاده کردیم قابل حمل قابل اجرا (PE):

ما شما را تشویق می کنیم که اسناد مجموعه داده ها را با دقت مطالعه کنید (Sophos/Reversing Labs README، مجموعه داده های یادگیری ماشین بدافزار PE) برای مدیریت ایمن اشیاء بدافزار. بر اساس ترجیح خود، می‌توانید از سایر مجموعه‌های داده نیز استفاده کنید، به شرطی که بدافزار و اشیاء خوش‌خیم را در قالب باینری ارائه دهند.

در مرحله بعد، شما را از طریق مراحل زیر راهنمایی می کنیم:

  • اشیاء را از قبل پردازش کنید و به تصاویر تبدیل کنید
  • منابع پیش پردازش را با CloudFormation مستقر کنید
  • مدل را انتخاب کنید
  • مدل را آموزش دهید
  • مدل را ارزیابی کنید
  • هزینه و عملکرد

اشیاء را از قبل پردازش کنید و به تصاویر تبدیل کنید

ما از توابع مرحله ای برای هماهنگ کردن گردش کار پیش پردازش شی استفاده می کنیم که شامل مراحل زیر است:

  1. نگاهی به meta.db پایگاه داده sqllite از sorel-20m سطل S3 و تبدیل آن به فایل csv. این به ما کمک می کند فایل csv. را در یک ظرف Fargate بارگیری کنیم و در حین پردازش اشیاء بدافزار به ابرداده مراجعه کنیم.
  2. اشیاء را از سطل sorel-20m S3 بردارید و لیستی از اشیا را با فرمت csv ایجاد کنید. با انجام این مرحله، ما یک سری فایل .csv ایجاد می کنیم که می توانند به صورت موازی پردازش شوند و در نتیجه زمان لازم برای پیش پردازش را کاهش می دهیم.
  3. اشیاء را از سطل sorel-20m S3 به تصاویر با مجموعه ای از کارها تبدیل کنید. کارهای آرایه دسته ای AWS پارامترهای مشترکی را برای تبدیل اشیاء بدافزار به تصاویر به اشتراک می گذارند. آنها به عنوان مجموعه ای از کارهای تبدیل تصویر اجرا می شوند که در چندین میزبان توزیع شده و همزمان اجرا می شوند.
  4. تعداد از پیش تعیین‌شده‌ای از تصاویر را برای آموزش مدل با مجموعه‌ای از کارهای مربوط به دسته‌های بدافزار انتخاب کنید.
  5. مشابه مرحله 2، اشیاء خوش خیم را از سطل benign-160k S3 می گیریم و لیستی از اشیا را با فرمت csv ایجاد می کنیم.
  6. مشابه مرحله 3، ما اشیاء را از سطل benign-160k S3 به تصاویر با آرایه ای از کارها تبدیل می کنیم.
  7. با توجه به سهمیه پیش‌فرض آمازون Rekognition برای آموزش برچسب‌های سفارشی (250 هزار تصویر)، تعداد مشخصی از تصاویر خوش‌خیم را برای آموزش مدل انتخاب کنید.
  8. همانطور که در تصویر زیر نشان داده شده است، تصاویر در یک سطل S3 ذخیره می شوند که ابتدا توسط بدافزارها و پوشه های خوش خیم پارتیشن بندی شده است و سپس بدافزار بر اساس انواع بدافزار پارتیشن بندی می شود.
    سطل S3 آموزشی
    مجموعه داده های آموزشی

منابع پیش پردازش را با CloudFormation مستقر کنید

پیش نیازها

پیش نیازهای زیر قبل از ادامه مورد نیاز است:

استقرار منابع

پشته CloudFormation منابع زیر را ایجاد می کند:

پارامترهای

  • STACK_NAME – نام پشته CloudFormation
  • AWS_REGION - منطقه AWS که راه حل در آن مستقر خواهد شد
  • AWS_PROFILE – نمایه نامگذاری شده که برای فرمان AWS CLI اعمال می شود
  • ARTEFACT_S3_BUCKET – سطل S3 که در آن کد زیرساخت ذخیره خواهد شد. (سطل باید در همان منطقه ای که محلول در آن زندگی می کند ایجاد شود).
  • AWS_ACCOUNT – شناسه حساب AWS.

برای استقرار منابع از دستورات زیر استفاده کنید

مطمئن شوید که عامل docker روی دستگاه اجرا می شود. استقرارها با استفاده از اسکریپت های bash انجام می شود و در این مورد از دستور زیر استفاده می کنیم:

bash malware_detection_deployment_scripts/deploy.sh -s '' -b 'malware-
detection--artifacts' -p  -r "" -a

این آرتیفکت‌های محلی را می‌سازد که الگوی CloudFormation (مثلاً cloudformation.yaml) به آنها ارجاع می‌دهد.

مدل را آموزش دهید

از آنجایی که آمازون Rekognition از آموزش مدل برای شما مراقبت می کند، بینایی کامپیوتر یا دانش بسیار تخصصی ML مورد نیاز نیست. با این حال، شما باید یک سطل پر از تصاویر ورودی با برچسب مناسب برای آمازون Rekognition ارائه دهید.

در این پست، دو مدل طبقه‌بندی تصویر مستقل را از طریق ویژگی برچسب‌های سفارشی آموزش می‌دهیم:

  1. مدل تشخیص بدافزار (طبقه‌بندی باینری) - مشخص کنید که آیا شی داده‌شده مخرب یا خوش‌خیم است
  2. مدل طبقه بندی بدافزار (طبقه بندی چند کلاسه) - شناسایی خانواده بدافزار برای یک شی مخرب معین

نمونه کار آموزشی

مراحل ذکر شده در شرح زیر برای هر دو مدل اعمال می شود. بنابراین برای آموزش هر دو مدل باید دو بار مراحل را طی کنید.

  1. ورود به سیستم کنسول مدیریت AWS و آمازون Rekognition را باز کنید کنسول.
  2. در قسمت سمت چپ، انتخاب کنید از برچسب های سفارشی استفاده کنید. صفحه فرود برچسب های سفارشی شناسایی آمازون نشان داده شده است.
  3. از صفحه فرود برچسب های سفارشی شناسایی آمازون، را انتخاب کنید شروع به کار.
  4. در قسمت سمت چپ، انتخاب کنید پروژه ها.
  5. را انتخاب کنید ایجاد پروژه.
  6. In نام پروژه، یک نام برای پروژه خود وارد کنید.
  7. را انتخاب کنید ایجاد پروژه برای ایجاد پروژه خود
  8. در پروژه ها صفحه، پروژه ای را که می خواهید مجموعه داده به آن اضافه کنید را انتخاب کنید. صفحه جزئیات پروژه شما نمایش داده می شود.
  9. را انتخاب کنید ایجاد مجموعه داده. ایجاد مجموعه داده صفحه نشان داده شده است.
  10. In شروع پیکربندی، انتخاب کنید با یک مجموعه داده واحد شروع کنید تا به آمازون Rekognition اجازه دهید مجموعه داده را برای آموزش و آزمایش تقسیم کند. توجه داشته باشید که ممکن است در هر تکرار آموزشی مدل، نمونه‌های تست متفاوتی داشته باشید که در نتیجه نتایج و معیارهای ارزیابی کمی متفاوت است.
  11. را انتخاب کنید واردات تصاویر از سطل آمازون S3.
  12. In S3 URI، محل سطل S3 و مسیر پوشه را وارد کنید. همان سطل S3 ارائه شده از مرحله پیش پردازش برای ایجاد هر دو مجموعه داده استفاده می شود: شناسایی بدافزار و طبقه بندی بدافزار. مجموعه داده شناسایی بدافزار به ریشه (یعنی s3://malware-detection-training-{account-id}-{region}/) از سطل S3، در حالی که مجموعه داده طبقه بندی بدافزار به پوشه بدافزار اشاره می کند (یعنی s3://malware-detection-training-{account-id}-{region}/malware) از سطل S3. داده های آموزش
  13. را انتخاب کنید برچسب ها را به طور خودکار به تصاویر بر اساس پوشه متصل کنید.
  14. را انتخاب کنید ایجاد مجموعه داده ها. صفحه مجموعه داده ها برای پروژه شما باز می شود.
  15. بر مدل قطار صفحه ، انتخاب کنید مدل قطار. نام منبع آمازون (ARN) برای پروژه شما باید در پروژه را انتخاب کنید جعبه ویرایش اگر نه، ARN پروژه خود را وارد کنید.
  16. در آیا می خواهید مدل خود را آموزش دهید؟ جعبه گفتگو را انتخاب کنید مدل قطار.
  17. پس از اتمام آموزش، نام مدل را انتخاب کنید. زمانی که وضعیت مدل باشد، آموزش به پایان می رسد TRAINING_COMPLETED.
  18. در مدل بخش را انتخاب کنید از مدل استفاده کنید برای شروع استفاده از مدل.

برای جزئیات بیشتر، برچسب‌های سفارشی شناسایی آمازون را بررسی کنید شروع راهنما.

مدل را ارزیابی کنید

وقتی مدل های آموزشی کامل شد، می توانید با انتخاب به معیارهای ارزیابی دسترسی داشته باشید معیارها را بررسی کنید در صفحه مدل آمازون Rekognition معیارهای زیر را در اختیار شما قرار می دهد: امتیاز F1، دقت متوسط ​​و یادآوری کلی، که معمولاً برای ارزیابی عملکرد مدل های طبقه بندی استفاده می شود. دومی معیارهای میانگین تعداد برچسب ها هستند.

در عملکرد هر برچسب در بخش، می توانید مقادیر این معیارها را در هر برچسب پیدا کنید. علاوه بر این، برای دریافت مقادیر مثبت واقعی، مثبت نادرست و منفی نادرست، مشاهده نتایج آزمون.

معیارهای مدل تشخیص بدافزار

در مجموعه داده متعادل از 199,750 تصویر با دو برچسب (خوش خیم و بدافزار)، نتایج زیر را دریافت کردیم:

  • امتیاز F1 – 0.980
  • دقت متوسط ​​- 0.980
  • فراخوان کلی - 0.980

معیارهای مدل تشخیص بدافزار

معیارهای مدل طبقه بندی بدافزار

در مجموعه داده متعادل از 130,609 تصویر با 11 برچسب (11 خانواده بدافزار)، نتایج زیر را دریافت کردیم:

  • امتیاز F1 – 0.921
  • دقت متوسط ​​- 0.938
  • فراخوان کلی - 0.906

معیارهای مدل طبقه بندی بدافزار

برای ارزیابی اینکه آیا مدل به خوبی عمل می‌کند، توصیه می‌کنیم عملکرد آن را با سایر معیارهای صنعتی که بر روی مجموعه داده‌های مشابه (یا حداقل مشابه) آموزش دیده‌اند، مقایسه کنید. متأسفانه، در زمان نگارش این پست، هیچ مجموعه تحقیقی مقایسه ای وجود ندارد که این مشکل را با استفاده از تکنیک مشابه و مجموعه داده های مشابه حل کند. با این حال، در جامعه علم داده، مدلی با امتیاز F1 بالای 0.9 عملکرد بسیار خوبی دارد.

هزینه و عملکرد

با توجه به ماهیت بدون سرور منابع، هزینه کلی تحت تاثیر زمان استفاده از هر سرویس است. از سوی دیگر، عملکرد تحت تأثیر میزان داده های پردازش شده و اندازه مجموعه داده آموزشی به Amazon Rekognition قرار می گیرد. برای تمرین برآورد هزینه و عملکرد، سناریوی زیر را در نظر می گیریم:

  • 20 میلیون شی از مجموعه داده sorel فهرست‌بندی و پردازش می‌شوند.
  • 160,000 شی از مجموعه داده‌های یادگیری ماشین بدافزار PE فهرست‌بندی و پردازش می‌شوند.
  • تقریباً 240,000 شی در سطل آموزشی S3 نوشته شده است: 160,000 شی بدافزار و 80,000 شیء خوش خیم.

بر اساس این سناریو، میانگین هزینه پیش پردازش و استقرار مدل ها 510.99 دلار آمریکا است. برای هر ساعتی که از مدل استفاده می کنید، 4 دلار آمریکا در ساعت اضافی از شما دریافت می شود. ممکن است تفکیک هزینه دقیق را در قسمت پیدا کنید تخمین زدن تولید شده از طریق ماشین حساب قیمت گذاری AWS.

از نظر عملکرد، اینها نتایج حاصل از اندازه گیری ما هستند:

  • ~ 2 ساعت برای تکمیل جریان پیش پردازش
  • 40 ساعت برای تکمیل آموزش مدل شناسایی بدافزار
  • ~40 ساعت برای تکمیل آموزش مدل طبقه بندی بدافزار

پاک کردن

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

  • STACK_NAME – نام پشته CloudFormation
  • AWS_REGION - منطقه ای که راه حل در آن مستقر شده است
  • AWS_PROFILE - نمایه نامگذاری شده که برای دستور AWS CLI اعمال می شود

برای اجرا از دستورات زیر استفاده کنید ./malware_detection_deployment_scripts/destroy.sh متن:

bash malware_detection_deployment_scripts/destroy.sh -s  -p
 -r 

نتیجه

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

در پست آینده، یک مورد کاربردی کاربردی از شناسایی بدافزار را با استفاده از مدل‌های مستقر در این پست نشان خواهیم داد.


درباره نویسندگان

ادوین هالواجیوادوین هالواجیو یک معمار ارشد امنیت جهانی با خدمات حرفه ای AWS است و علاقه زیادی به امنیت سایبری و اتوماسیون دارد. او به مشتریان کمک می کند تا راه حل های ایمن و سازگار در فضای ابری بسازند. خارج از کار، مسافرت و ورزش را دوست دارد.

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

برونو دفتوبرونو دفتو یک معمار امنیت جهانی با خدمات حرفه ای AWS است. او بر کمک به مشتریان در ساخت معماری های امن و قابل اعتماد در AWS متمرکز است. در خارج از محل کار، او به آخرین به روز رسانی های فناوری و سفر علاقه مند است.

ندیم ماجدندیم ماجد یک معمار داده در خدمات حرفه ای AWS است. او دوش به دوش با مشتریانی کار می کند که پلتفرم های داده خود را بر روی AWS می سازند. ندیم در خارج از محل کار، تنیس روی میز بازی می کند و عاشق تماشای فوتبال/فوتبال است.

تمبر زمان:

بیشتر از آموزش ماشین AWS