تکنولوژی

ایمیج‌برداری دقیق با dd و dc3dd در لینوکس: راهنمای جامع برای متخصصان جرم‌یابی دیجیتال

ستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال
 

در بسیاری از پرونده‌های امنیتی و تحقیقات سایبری، تنها یک اشتباه کوچک هنگام جمع‌آوری شواهد می‌تواند نتیجه‌ی کل تحلیل را بی‌اعتبار کند. یکی از مهم‌ترین مراحل در فرایند جرم‌یابی دیجیتال (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  نسخه‌ی دقیق‌تر و قضایی‌تر آن است.

پیش‌نیازها و آماده‌سازی محیط

پیش از شروع عملیات ایمیج‌برداری، لازم است چند گام کلیدی انجام شود:

  1. اتصال دیسک مشکوک در حالت Read-Only برای جلوگیری از تغییر داده‌ها.
  2. استفاده از دستور زیر برای شناسایی مسیر دقیق دیسک:
sudo fdisk -l

خروجی این دستور دیسک‌های متصل را با نام‌هایی مانند /dev/sda یا /dev/sdb نمایش می‌دهد.

  1. اتصال یک هارد خارجی برای ذخیره‌ی فایل ایمیج (ترجیحاً فرمت exFAT یا ext4).

آموزش گام‌به‌گام کار با dd

مرحله ۱: ساخت ایمیج بیتی از دیسک

sudo dd if=/dev/sda of=/evidence/disk_image.dd bs=4M conv=noerror,sync status=progress

 

گزینه (Option)

توضیح (Description)

if

مشخص‌کننده‌ی فایل ورودی (منبع داده). معمولاً مسیر دیسک یا پارتیشن اصلی است، مانند /dev/sda.

of

مشخص‌کننده‌ی فایل خروجی (مقصد ذخیره). معمولاً مسیر فایل ایمیج است، مانند /evidence/disk_image.dd.

bs

تعیین اندازه‌ی بلاک‌هایی که از ورودی خوانده و در خروجی نوشته می‌شوند. هرچه مقدار بزرگ‌تر باشد، سرعت بیشتر است (مثلاً bs=4M)

count

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

skip

از روی تعداد مشخصی بلاک یا بایت در فایل ورودی عبور می‌کند (برای شروع از بخش خاصی از دیسک).

seek

هنگام نوشتن، از روی تعداد مشخصی بلاک یا بایت در فایل خروجی عبور می‌کند (برای نوشتن در بخش خاصی).

status

وضعیت اجرای دستور را نشان می‌دهد. معمولاً از status=progress  برای نمایش درصد پیشرفت استفاده می‌شود.

conv

گزینه‌های تبدیل داده را مشخص می‌کند؛ مثلاً conv=noerror,sync  باعث ادامه‌ی کار حتی در صورت وجود خطای خواندن می‌شود.

 

 💡 نکته: بهتر است فایل خروجی در پوشه‌ای مانند /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  به متخصصان امنیت این امکان را می‌دهند که داده‌ها را بدون کوچک‌ترین تغییر و با مستندات دقیق جمع‌آوری کنند.

استفاده‌ی صحیح از این ابزارها، تفاوت میان یک پرونده‌ی موفق و یک مدرک بی‌اعتبار را رقم می‌زند.

تمام حقوق سایت برای سلام دیجی و نويسندگان آن محفوظ می باشد