در بسیاری از پروندههای امنیتی و تحقیقات سایبری، تنها یک اشتباه کوچک هنگام جمعآوری شواهد میتواند نتیجهی کل تحلیل را بیاعتبار کند. یکی از مهمترین مراحل در فرایند جرمیابی دیجیتال (Digital Forensics)، ایمیجبرداری بیتی به بیتی (Bit-by-Bit Imaging) است. فرآیندی که تمام دادههای موجود روی دیسک، حتی فضای آزاد و فایلهای حذفشده را نیز عیناً کپی میکند.
در دنیای لینوکس، ابزارهای dd
و dc3dd
از قابلاعتمادترین و قدیمیترین گزینهها برای انجام این کار هستند. این ابزارها پایه و اساس بسیاری از عملیات فارنزیک محسوب میشوند و حتی در دورههای رسمی آموزش امنیت و جرمیابی دیجیتال (مانند CHFI و GCFA) بهصورت استاندارد تدریس میشوند.
در این مقاله از سلامدیجی، قصد داریم بهصورت گامبهگام نحوهی ایمیجبرداری دقیق با dd
و dc3dd
، روش تأیید صحت دادهها با هش، و نکات حیاتی در مستندسازی را آموزش دهیم.
تاریخچهای کوتاه از dd و dc3dd
ابزار dd
در اصل یکی از قدیمیترین ابزارهای لینوکس است که از دههی ۷۰ میلادی در سیستمهای UNIX برای کپی و تبدیل دادهها در سطح باینری توسعه یافت. نام آن از دستور Data Definition در زبان JCL (در سیستمهای IBM) گرفته شده است.
اما با گسترش استفاده از dd
در تحقیقات قضایی، سازمان دفاع سایبری ایالات متحده (DoD Cyber Crime Center) نسخهای ایمنتر و تخصصیتر با نام dc3dd
را معرفی کرد. این نسخه با هدف حفظ یکپارچگی دادهها، ایجاد هش همزمان، ثبت گزارش (log) و پشتیبانی از فرمتهای استاندارد فارنزیک مانند E01 توسعه داده شد.
در واقع میتوان گفت: اگر dd ابزار مادر در ایمیجبرداری است، dc3dd نسخهی دقیقتر و قضاییتر آن است.
پیشنیازها و آمادهسازی محیط
پیش از شروع عملیات ایمیجبرداری، لازم است چند گام کلیدی انجام شود:
- اتصال دیسک مشکوک در حالت Read-Only برای جلوگیری از تغییر دادهها.
- استفاده از دستور زیر برای شناسایی مسیر دقیق دیسک:
sudo fdisk -l
خروجی این دستور دیسکهای متصل را با نامهایی مانند /dev/sda
یا /dev/sdb
نمایش میدهد.
- اتصال یک هارد خارجی برای ذخیرهی فایل ایمیج (ترجیحاً فرمت exFAT یا ext4).
آموزش گامبهگام کار با dd
مرحله ۱: ساخت ایمیج بیتی از دیسک
sudo dd if=/dev/sda of=/evidence/disk_image.dd bs=4M conv=noerror,sync status=progress
گزینه (Option) |
توضیح (Description) |
if |
مشخصکنندهی فایل ورودی (منبع داده). معمولاً مسیر دیسک یا پارتیشن اصلی است، مانند |
of |
مشخصکنندهی فایل خروجی (مقصد ذخیره). معمولاً مسیر فایل ایمیج است، مانند |
bs |
تعیین اندازهی بلاکهایی که از ورودی خوانده و در خروجی نوشته میشوند. هرچه مقدار بزرگتر باشد، سرعت بیشتر است (مثلاً |
count |
تعداد بلاکهایی که باید کپی شوند. برای کپیکردن کل دیسک معمولاً این گزینه حذف میشود. |
skip |
از روی تعداد مشخصی بلاک یا بایت در فایل ورودی عبور میکند (برای شروع از بخش خاصی از دیسک). |
seek |
هنگام نوشتن، از روی تعداد مشخصی بلاک یا بایت در فایل خروجی عبور میکند (برای نوشتن در بخش خاصی). |
status |
وضعیت اجرای دستور را نشان میدهد. معمولاً از |
conv |
گزینههای تبدیل داده را مشخص میکند؛ مثلاً |
💡 نکته: بهتر است فایل خروجی در پوشهای مانند /evidence/
ذخیره شود که مخصوص شواهد است.
مرحله ۲: محاسبهی هش برای اطمینان از صحت داده
برای اثبات یکسان بودن دادههای منبع و ایمیج گرفتهشده از آن، هشگیری انجام میشود.
md5sum /dev/sda
md5sum /evidence/disk_image.dd
یا برای امنیت بیشتر:
sha256sum /dev/sda
sha256sum /evidence/disk_image.dd
اگر هشها یکسان باشند، ایمیج معتبر است و هیچ تغییری در دادهها ایجاد نشده است.
ایمیجبرداری حرفهای با dc3dd
در تحقیقات واقعی، ابزار dc3dd
گزینهی ارجح است؛ زیرا علاوه بر دقت بالا، امکاناتی مانند هش همزمان و ثبت لاگ دارد.
مثال کامل:
sudo dc3dd if=/dev/sda of=/evidence/disk_image.E01 hash=sha256 log=/evidence/imaging.log
ویژگیهای کلیدی:
✔️
hash=sha256
: محاسبهی هش همزمان با ایمیجبرداری
✔️
log=
: ثبت گزارش شامل زمان، حجم و مقدار هش
✔️ خروجی .E01
: فرمت استاندارد شواهد EnCase، قابل باز کردن در ابزارهایی مثل Autopsy، FTK و X-Ways
🔹 ۱۳ مثال کاربردی از دستور dd در لینوکس
1 . کپی سادهی فایلها
dd if=source.txt of=destination.txt
کپی مستقیم محتوای یک فایل در فایل دیگر.
2 . جلوگیری از بازنویسی فایل مقصد
dd if=source.txt of=destination.txt conv=notrunc
از بازنویسی کامل فایل مقصد جلوگیری میکند.
3 . افزودن داده به انتهای فایل
dd if=users.txt of=newusers.txt conv=append
محتوای users.txt
را به انتهای فایل newusers.txt
اضافه میکند.
4 . تبدیل حروف کوچک به بزرگ (Uppercase Conversion)
dd if=lowercase.txt of=uppercase.txt conv=ucase
تمام حروف کوچک فایل ورودی را به بزرگ تبدیل میکند.
5 . تبدیل حروف بزرگ به کوچک (Lowercase Conversion)
dd if=uppercase.txt of=lowercase.txt conv=lcase
6 . پشتیبانگیری از پارتیشن دیسک
dd if=/dev/sda1 of=/backup/partition_backup.img
یک نسخهی بیتی از پارتیشن /dev/sda1
میسازد.
7 . بازگردانی پارتیشن از نسخهی پشتیبان
dd if=/backup/partition_backup.img of=/dev/sda1
پارتیشن را به حالت قبلی بازمیگرداند.
8 . پشتیبانگیری از کل هارد
dd if=/dev/sda of=/backup/hard_drive_backup.img
کل محتوای دیسک /dev/sda
را در یک ایمیج واحد ذخیره میکند.
9 . بازیابی کل هارد از نسخهی پشتیبان
dd if=/backup/hard_drive_backup.img of=/dev/sda
10 . بکاپ از Master Boot Record (MBR)
dd if=/dev/sda of=mbr_backup.img bs=512 count=1
اولین ۵۱۲ بایت دیسک (MBR) را ذخیره میکند.
بازیابی MBR :
dd if=mbr_backup.img of=/dev/sda bs=512 count=1
11 . کپی از CD/DVD به فایل ISO
dd if=/dev/cdrom of=/backup/disk_copy.iso
یک نسخهی کامل از دیسک نوری میسازد.
12 . فشردهسازی همزمان هنگام ایمیجبرداری
sudo
dd if=/dev/sda bs=1M | gzip -c -9 > sda.dd.gz
دادهها را از /dev/sda
میخواند و همزمان با gzip
فشرده میکند.
13 . پاکسازی ایمن (Wiping) یک دیسک
sudo
dd if=/dev/zero bs=1M of=/dev/sda
با صفرنویسی، کل دادههای دیسک را حذف میکند.
برای حذف با دادهی تصادفی:
sudo
dd if=/dev/urandom bs=1M of=/dev/sda
14 . ساخت USB بوتیبل
sudo
dd if=linux_distro.iso of=/dev/sdX bs=4M status=progress
از فایل ISO برای ایجاد فلش بوتیبل استفاده میکند (بهجای X حرف دیسک را بنویسید).
15 . نمایش نوار پیشرفت
dd if=source_file of=destination_file status=progress
پیشرفت عملیات کپی را بهصورت لحظهای نمایش میدهد.
مدیریت مستندات و زنجیرهی اطمینان (Chain of Custody)
هر عملیات ایمیجبرداری باید بهصورت مستند و قابل دفاع ثبت شود. پیشنهاد میشود جدولی مشابه زیر نگهداری گردد:
مورد |
توضیح |
ابزار استفادهشده |
dc3dd 7.2.654 |
دیسک منبع |
/dev/sda |
مسیر ذخیره ایمیج |
/evidence/disk_image.E01 |
الگوریتم هش |
SHA256 |
مقدار هش |
e9b4d7e34a6d7c4b5f6b8c9a3e1d... |
تاریخ و زمان |
2025-10-08 12:30 |
اپراتور |
forensic_admin |
توضیحات اضافی |
دیسک از سیستم مشکوک به حذف فایلهای لاگ استخراج شد. |
این اطلاعات، پایهی مستندات حقوقی در دادگاههای دیجیتال است.
نکات حیاتی در ایمیجبرداری قضایی
✔️ هرگز از دیسک منبع برای ذخیرهی خروجی استفاده نکنید.
✔️ پس از اتمام کار، فایل ایمیج و گزارش را در فضای ایمن و فقطخواندنی (read-only) نگهداری کنید.
✔️ پیش از شروع، ساعت سیستم و منطقهی زمانی (timezone) را ثبت نمایید.
✔️ همیشه هشها را در چند محل (log و گزارش نهایی) ذخیره کنید.
✔️ برای اطمینان بیشتر، از ابزارهای GUI مانند Guymager (مقالهی بعدی این مجموعه) نیز نسخهی دوم ایمیج تهیه کنید.
لینکهای مرتبط
🔗 آموزش ایمیجبرداری قانونی با FTK Imager
🔗 ایمیجگیری سریع با Guymager در لینوکس
نتیجهگیری
در جرمیابی دیجیتال، کیفیت و صحت شواهد به اندازهی خود شواهد اهمیت دارد. ابزارهای dd
و dc3dd
به متخصصان امنیت این امکان را میدهند که دادهها را بدون کوچکترین تغییر و با مستندات دقیق جمعآوری کنند.
استفادهی صحیح از این ابزارها، تفاوت میان یک پروندهی موفق و یک مدرک بیاعتبار را رقم میزند.