در این مقاله قصد داریم به بررسی رم در فرآیند فارنزیک بپردازیم. به صورت کلی 2 نوع رسانه ذخیرهسازی وجود دارد:
- فرار (volatile)
- غیرفرار(Non-volatile)
هارد دیسکها (مکانیکی و حالت جامد, (Solid State) درایوهای فلش و کارتهای حافظه، همگی رسانههای ذخیرهسازی غیرفرار هستند و حتی وقتی جریان برق به تراشههای این نوع رسانهها قطع شود، دیتاهای موجود در آنها از بین نمیرود.
نوع دیگری از رسانههای ذخیرهسازی رمها (Random-Access Memory) هستند که فرارند و دادههای موجود در آنها به هنگام قطع بارالکتریکی یا جریان برق از بین میروند و در عین حالی که سریعتریناند, بیثباتترین نیز هستند. اگرچه هاردهای SSD بهبودهای چشمگیری در سرعت و زمان دسترسی به دادهها ایجاد کردهاند و همچنان ایجاد میکنند، اما با این حال رمها در صدر نشسته و بالاترین سرعت را بین رسانههای ذخیرهسازی دارند.
اهمیت رم در فرآیند فارنزیک:
به طور سنتی، دیجیتال فارنزیک (جرم شناسی دیجیتالی) بر روی مصنوعات واقع در دستگاههای ذخیرهسازی سیستمهای کامپیوتری، تلفنهای همراه، دوربینهای دیجیتال و سایر دستگاههای الکترونیکی تمرکز میکرد. با این حال، در دهه گذشته، محققان تعدادی ابزار قدرتمند مموری فارنزیک ایجاد کردهاند که دامنه دیجیتال فارنزیک را گسترش داده و شامل بررسی حافظه فرار نیز میشود.
انواع دادههای جالبی روی رم وجود دارد که به هنگام تجزیه و تحلیل مصنوعات خیلی مهم به شمار می آیند. رمزهای ورود, اطلاعات کاربر, پراسس و فرآیندهای پنهان در در حال اجرا و … . اینها تنها برخی از انواع دیتا و اطلاعات مهم و جالبی هستند که از رم میتوان به دست آورد، به همین دلیل یکی از مهمترین و محبوبترین منابع برای جرمشناسی و آنالیز بدافزار میباشد.
با توجه به اینکه دادههای RAM فرار و بسی بیثباتاند، باید با الویت بالایی حفظ شوند، زیرا دادهها با کمترین الکتریسیته ساکن یا کوچکترین پراسس اضافی ایجاد شده در سیستمعامل ممکن است از بین بروند. تکنیکهای مموری فارنزیک از جستجوهای رشتهای ساده به تجزیه و تحلیل عمیق و ساختار یافته دیتای برنامهها و کرنل (هسته) سیستمعاملها و برخی پلتفرمها تکامل یافته است.
در این مقاله با انجام انالیزی ساده هدف در ترسیم تصوری از مموری فارنزیک را داریم.
به صورت کلی و خلاصه 3 مرحله را به شرح زیر طی خواهیم کرد:
- Memory Imaging(Dump)
- Dump Analysis
- Reporting
مرحله اول: Memory imaging
ابزار های متعددی جهت دامپ گرفتن از مموری وجود دارد، جهت آشنایی ما از DumpIt که برای سیستمعامل ویندوز است و dc3dd که برای لینوکس است، استفاده خواهیم کرد.
ابزار DumpIt
این ابزار، ابزاری جدید از MoonSols است که ترکیبی از دو ابزار قابل اعتماد win32dd و win64dd است که در یک فایل اجرایی و خط فرمان (Command Line) ترکیب شدهاند و با هر دو سیستم 32بیتی و64بیتی به خوبی کار میکند و دامپ تهیه شده را در همان دایرکتوری که خود ابزار وجود دارد، قرار میدهد؛ کار با این ابزار بسیار آسان است و تنها نیاز به یک تاییدیه قبل از شروع دارد و طوری طراحی شده است که با استفاده از یک درایو USB قابل جابجایی باشد و در اختیار یک کاربر غیرفنی نیز میتواند قرار گیرد.
مموری فارنزیک در حال تبدیل شدن به یک جنبه ضروری از دیجیتال فارنزیک و پاسخ به حوادث است. زمانی که اعتقاد بر این است که سیستمی در معرض خطر قرار گرفته یا آلوده شده است، محقق به یک راه راحت برای گرفتن دامپ فوری مموری از میزبان نیاز دارد. حتی اگر فردی که در مقابل رایانه آسیبدیده قرار دارد، فنی نباشد، تنها با چند کلیک ساده میتواند از مموری دامپ گرفته و USB حاوی دامپ را در اختیار محقق قرار دهد، این راهکار برای همه سناریوها مناسب نیست، اما قطعا در بسیاری از موقعیتها دامپ از مموری را آسانتر میکند.
ابزار DD
ابزار dd یک ابزار خط فرمان برای سیستمعاملهای Unix، Plan 9، Inferno و یونیکس و …. است. این ابزار میتواند برای کارهایی مانند پشتیبانگیری از بخش راهاندازی هارددیسک و به دست آوردن مقدار ثابتی از دادههای تصادفی استفاده شود. ابزار dd همچنین میتواند در هنگام کپی کردن دادهها، تبدیلهایی از جمله تعویض ترتیب بایت و تبدیل کدگذاریهای متنی ASCII و EBCDIC انجام دهد.
ابزار dc3dd یک نسخه اصلاح شده از GNU dd با ویژگیهای اضافی برای دیجیتال فارنزیک است. با دستور زیر میتوانیم مسیر رم و دایرکتوری مقصد جهت ذخیره دامپ و نیز نوع فرمت دامپ را مشخص کنیم (به یاد داشته باشید که باید با سطح دسترسی روت اجرا شود).
dc3dd if=/dev/fmem of=/root/… .raw
در مورد fmem خودتان تحقیقی کنید زیرا چاشنی چیزی دانستن در جست و جوی آن است.
مرحله Dump Analysis
نرمافزار و ابزارهای جرمشناسی مختلف و قدرتمندی جهت آنالیز مموری وجود دارد از قبیل Interrogate، Volatility، HB Gray Responder. ما در این مقاله از فریمورک قدرتمند Volatility بهره خواهیم برد.
فریمورک Volatility پرکاربردترین چارچوب جهان برای استخراج مصنوعات دیجیتال از دامپهای حافظه رم است و توضیحی اضافهای را لازم نمیدانم زیرا برای همه ثابت شده است. 🙂
برای آنالیز از دامپی استفاده خواهیم کرد که از سیستمی آلوده به باج افزار WannaCry گرفته شده است. با دستور زیر همراه با پلاگین imageinfo میتوانیم اطلاعاتی از دامپ گرفته شده را به دست بیاوریم:
volatility -f liangroup.vmem imageinfo
با استفاده از دستور زیر همراه با پلاگین pstree میتوانیم پراسسهایی که در هنگام گرفتن دامپ در حال اجرا بودند را مشاهده کنیم:
volatility –profile=WinXPSP2x86 -f wcry.raw pslist
همانطور که در تصویر دیده میشود پراسسی با نام @WanaDecryptor@ با PID 740 و PID (1940) در حال اجرا هست که توسط Windows task scheduler(tasksch.exe, PID: 1940) ,تحت Windows Explorer (explorer.exe) ایجاد شده است.
مرحلهReporting
در طی یک پروسه جرمشناسی، نوشتن و ارائه گزارش شاید سختترین و طاقت فراساترین مرحله باشد. به اصطلاحی دیگر؛ غول مرحله آخر 🙂 زیرا بسیار مهم است که تمام مراحل یک تحقیق را مستند کنیم، نه تنها بتوانیم نتایج خود را بازسازی و تأیید کنیم، بلکه یافتههای خود را در یک گزارش رسمی که ممکن است در دادگاه مورد استفاده قرار گیرد، ارائه دهیم. و بهطور حرفهای و بیطرفانه، یافتههای ما باید به صورت غیرمستقیم ارائه شود که برای افراد غیر فنی مانند وکلا، مدیران، بازرگانان، حسابداران و سایرین افراد که ممکن است به هیچ وجه با فرآیند و اصطلاحات فارنزیک آشنا نباشند قابل درک باشد. از موسسات رسمی که برای تهییه گزارش, استاندرادهایی را ارائه دادهاند هم میتوان راهنمایی گرفت.
تعدادی از موسسات معتبر در سطح جهان :
SWGDE (Scientific Working Group on Digital Evidence)
ENISA (European Union Agency for Cybersecurity)
ACPO (Association of Chief Police Officers)
* این اموزش صرفا جهت ایجاد ذهنیتی از آنالیز مموری بود و جرمشناسی (Forensics) فراتر و پیچیدهتر از چیزی هست که نشان داده شد.
جهت رفع کنجکاوی و کسب اطلاعات بیشتر میتوانید از مقالات سنس نیز بهره ببرید:
https://www.sans.org/blog/?focus-area=digital-forensics
نویسنده مقاله: سهیل علیزاده