تکنیک مخفی کردن اطلاعات با استفاده از سیستم فایلNTFS


 

نویسنده: اسدالله اسدشیر




 

بررسی ابزارهای (Cat & ADS spy‏)
 

فایل سیستم NTFS، به عنوان یک فایل سیستم قدرتمند و با ویژگی هایی در خور توجه، قابلیتی دارد به نام (‏‎Alternate Data Stream)‏ADS (جایگاه ذخیره اطلاعات جداگانه). این قابلیت به ما امکان می دهد که اطلاعات حیاتی و حساس خود را به صورت مخفی درون ADS، فایل های دیگر و یا هر پوشه ی دلخواه ذخیزه کنیم، بدون آنکه هیچ ردی از خود بجای بگذارند و یا در حالت عادی دیده شوند.

مثالی از کاربرد Data Stream، ذخیره اطلاعات دلخواه در تب Summary از قسمت Property یک فایل است. همانطور که می دانید، اگر از یک فایل Property بگیرید، در تب Summary آن فایل، می توانید اطلاعاتی از قبیل Category ،Subject ،Title و ... را ذخیره کنید. این اطلاعات داخل خود فایل ذخیره نمی شوند، بلکه در بخش Stream مخصوص آن فایل ذخیره می شوند.
این اطلاعات در بخش Streamفایل متنی test.txt ذخیره می شوند .
این در حالیست که وقتی اطلاعات در بخش NTFS Stream ذخیره می گردد، اساساً از دید ویندوز اکسپلورر، جستجوهای متنی و اغلب روتین های عمل کننده با فایل ویندوز، مخفی می گردد. بطور مثال، شما می توانید یک فایل zip با ظرفیت 5 مگابایت را در stream یک فایل متنی 1کیلوبایتی ذخیره کنید. ضمن اینکه وقتی شما این کار را انجام دهید، ویندوز اکسپلورر همچنان ظرفیت فایل متنی را، 1کیلو بایت نشان خواهد داد.
همچنین به دلیل آنکه بخش stream یک فایل، محل مناسبی برای ذخیره کردن اطلاعات است، بعضی از ویروس ها سعی می کنند که خود را در این بخش از فایل ها پنهان کنند. خوشبختانه خبر خوب این است که بخش stream یک فایل، هنگام دانلود از Http و یا FTP از بین رفته و نابود می شود. این بدین معنی است که ویروس ها برای انتشار خود نمی توانند از بخش stream فایل ها استفاده کنند. ولی بعد از آلوده شدن کامپیوتر، به هر طریقی می توانند خود را در بخش stream فایل ها پنهان سازند.
بنابراین به دلیل آنکه بخش stream در فایل سیستم NTFS از دید ویندوز مخفی می باشد، باید مطمئن شد که نرم افزار آنتی ویروس مورد استفاده، قابلیت شناسایی ویروس های مخفی شده در بخش ADS را داشته باشد. بطور مثال، آنتی ویروس McAfee، به خوبی مجهز به این قابلیت می باشد.
با توجه به آنچه توضیح داده شد، حال اگر شما به هر دلیلی نیاز دارید که فایلی را مخفی کنید، می توانید آن را به کمک دستوراتی که در خود ویندوز موجود است، در بخش stream یک فایل ذخیره کنید. البته این درست است که اطلاعات حیاتی و محرمانه را می توان رمز گذاری کرد. مثلاً به طوری که بصورت یک فایل فشرده شده zip، به همراه یک رمز نگهداری شود. ولی به هرحال، فایل رمز شده می تواند توسط دیگران دیده شود. بطور مثال، اگر همکار شما، این فایل را مشاهده کند، ممکن است که از شما توضیح بخواهد و یا خود ترغیب شود که آن را از رمز درآورد . و یا ممکن است توسط یک هکر در صورت مشاهده فایل، با روش های هک و قفل شکستن و حدس رمز فایل مورد نظر، فایل مربوطه باز شده و در دسترس قرار گیرد. اما اگر این فایل رمز شده در بخش stream یک فایل دیگر ذخیره گردد، اصولاً هیچ کس از وجود آن مطلع نخواهد شد که بخواهد به طریقی به محتوای آن دست یابد.
البته حذف کردن و یا کپی کردن فایل از بخش stream، نیازمند نرم افزارهای مخصوصی خواهد بود. معمولاً این نرم افزارها مجانی بوده و سهل الاستفاده و به راحتی می توان آنها را دانلود کرد.

نحوه ذخیره سازی یک فایل نمونه در بخش stream یک فایل
 

این کار از طریق خط فرمان ویندوز انجام می گیرد. نحوه اشاره به بخش stream یک فایل به صورت زیر می باشد:
Filename:streamfile
streamfile نام فایلی است که در بخش stream آن فایل، اطلاعات مورد نظر قرار است ذخیره شود. streamfile نیز نام فایلی است که قرار است در بخش stream فایل اصلی ذخیره شود.

گام اول:
 

ابتدا کادر RUN را باز کنید (استفاده از ترکیب کلید ویندوز و کلید R، و یا منوی start و سپس گزینه RUN). بعد دستور CMD را جهت باز شدن خط فرمان تایپ کرده و اینتر بزنید.

گام دوم:
 

فرمان Type را به صورت زیر در خط فرمان تایپ کنید:
type file1 > file2:file1
که در آن file1 فایلی است که قرار است مخفی شود و file2 فایلی است که قرار استfile1 در آن مخفی گردد. همانطور که می دانید در دستور Type، عملگر «<» باعث تغییر جهت دادن خروجی دستور می گردد. در این حالت باعث می شود که محتوای file1 در بخش stream مربوط به file2 ذخیره گردد.

گام سوم:
 

پنجره خط فرمان را ببندید.

مثال
 

فرض کنید که می خواهید برنامه ماشین حساب ویندوز را در یک فایل متنی به نام text.txt که در آدرس D:\doc قرار دارد، ذخیره کنید.برای انجام این کار کافی است فرمان زیر را در خط فرمان اجرا کنید.
type c:\Windows\System32\calc.exe>d:\doc\test.txt:calc.exe
همانطور که مشاهد می کنید، در قسمت اول (مربوط به file1)، آدرس کامل برنامه ماشین حساب وارد شده است و در قسمت دوم نیز (مربوط به file2) آدرس کامل فایل متنی test.txt وارد شده است.
ضمن اینکه اگر شما از طریق ویندوز اکسپلورر ظرفیت فایل test.txt و یا پوشه doc (که فایل متنی در آن قرار دارد) را چک کنید، مشاهده می کنید که به هیچ وجه مقدار آن تغییر نکرده است و صرفاً اندازه فایل متنی نشان داده می شود. در این میان تنها خصوصیتی که تغییر می کند، خصوصیت تاریخ فایل متنی test.txt است که به زمان اجرای دستور type تغییر پیدا می کند، که البته در صورت نیاز می تواند با نرم افزارهای بسیاری که موجود است، تاریخ فایل متنی را نیز (که تغییر کرده است) به مقدار قبلی خود برگردانید، تا هیچ تغییری حس نشود.
ناگفته نماند شما می توانید برنامه ذخیره شده را به کمک دستور Start اجرا کنید (و یا اگر فایل غیر اجرایی بود باز کنید).
start d:\doc\test.txt:calc.exe
متاسفانه ویندوز ویستا، این طرز استفاده از دستور Start را پشتیبانی نمی کند. یعنی اینکه در ویندوز ویستا نمی توان به کمک دستور Start، برنامه های ذخیره شده در stream یک فایل را اجرا کرد.
نکته دیگر این است که نام stream با نام اصلی فایل نیازی نیست که یکی باشد. در مثال فوق که ما برنامه ماشین حساب را در stream فایل متنی ذخیره کردیم، می توانستیم نام stream آن را بجای calc.exe هر چیز دلخواه دیگری انتخاب کنیم و نتیجه همان خواهد بود. مانند:
type c:\Windows\System32\calc.exe>d:doc\test.txt:xyz.exe
فقط باید توجه داشت که برای دسترسی به stream، هر نامی را که ذخیره کرده ایم، استفاده کنیم. یعنی:
start d:\doc\test.txt:xyz.exe
که مجدداً باعث اجرای برنامه ماشین حساب ذخیره شده در بخش stream فایل متنی خواهد شد.
نکته بعدی این است که صرفاً فایل ها دارای بخش stream نیستند و پوشه ها نیز می توانند بخش stream داشته باشند و ما می توانیم فایل های دلخواهمان رادر بخش stream یک پوشه ذخیره کنیم. بطور مثال، دستور زیر یک عکس را در stream یک پوشه ذخیره می کند. دقت داشته باشید که در صورتی که آدرس و یا نام فایل دارای Space (فاصله ) است، حتماً کل آدرس را در بین علامت کوتیشن بگذارید:
"type"c:\My Pictures\blue hills.jpg">"c:\doc:blue hills.jpg
و پس از آن با استفاده از دستور زیر می توانیم به فایل عکس دسترسی پیدا کرده و مثلاً آن را در برنامه paint باز کنیم:
"mspaint "c:\doc:blue hills.jpg
بطور مثال فرض کنید تعدادی رمز عبور را در یک فایل متنی معمولی با فرمت txt به نام mypass.txt در stream پوشه doc به آدرس d:\doc ذخیره کرده اید. حال می توانید با دستور زیر، فایل خود را از طریق برنامه "notepad "d:\doc:mypass.txt
متاسفانه همه نرم افزارهای کاربردی امکان باز کردن فایل ها از بخش stream را مانند paint و یا Notepad ندارند. ضمناً اگر فایل های شما بسیار حیاتی است، بهتر است که ابتدا آنها را zip کرده و روی فایل zip خود رمز بگذارید و سپس فایل zip رمزدار را در بخش stream ذخیره کنید.
برای خارج کردن فایل مخفی از بخش stream نیز می توانید از روش های زیر استفاده کنید.

بیرون کشیدن اطلاعات ذخیره شده در بخش stream به وسیله Cat
 

برای این کار کافی است از برنامه ای بنام Cat استفاده کنید. این برنامه را از آدرس زیر می توانید دانلود نمایید.
http://www.darksquall.com/tools/bin/cat.exe
برنامه Cat فقط 92 کیلو بایت ظرفیت دارد و نیاز به هیچ گونه نصب کردن ندارد.
همچنین برای کپی کردن اطلاعات مخفی شده به بیرون از stream، فرمان را به صورت زیر در خط فرمان وارد نمایید.
cat filename:Streamfile>Streamfile
Streamfile نام فایلی است که مخفی شده است و filename نیز نام فایلی است که فایل مخفی در stream آن ذخیره شده است.
به طور مثال، دستور زیر، فایل diary.zip را از stream فایل status.doc به بیرون کپی می کند.
"cat "c:\doc\status.doc:diary.zip"> "c:\my stuff\diary.zip
دقت داشته باشید که این دستور، فایل را از stream کپی می کند وآن را از stream حذف نمی کند، و پس از اجرای این دستور، فایل هنوز در stream وجود دارد.

به روز رسانی فایل مخفی شدن در یک stream
 

برای این کار کافی است تغییرات دلخواه خود را در فایل مخفی نشده اعمال کنید و مجدداً آن فایل را با استفاده از دستور Typeدر stream کپی کنید. دقت داشته باشید که فایل کپی شده در stream، اگر با فایل مخفی شده در stream هم نام باشد، بر روی آن جایگزین (Overwrite) خواهد شد، بدون آنکه هشداری داده شود.

شناسایی و حذف کردن فایل ها در stream به وسیله ADS SPY
 

اگر شما در ویندوز ویستا باشید، دستور Dir در ویندوز ویستا، این امکان را دارد که نشان دهد چه فایلی در stream خود، اطلاعات مخفی دارد. کافی است در خط فرمان دستور را با سوئیچ r/بکارببرید: dir/r
علاوه بر این، از نرم افزاری به نام ADS spy نیز جهت اسکن کردن هر آدرس دلخواه از هارد می توان استفاده کرد. این برنامه این قابلیت را دارد که آدرس دلخواه را اسکن کرده و اطلاعات مخفی شده در streamها را نمایش دهد و نیز امکان حذف کردن آنها را نیز فراهم می کند. می توانید این برنامه را از آدرس های زیر دانلود کنید.
http://www.spywareinfo.com/~merijn/files/adsspy.zip
http://dwnloads.subratam.org/adsspy.zip
http://www.merijn.org/files/adsspy.zip

همچنین ADSspy این امکان را دارد که از مواردی که استفاده از stream قانونی و بدون اشکال می باشد، صرفنظر کند و در حین اسکن کردن یک آدرس، صرفاً موارد مشکوک و غیر منتظره را نمایش دهد.

مراقب حذف شدن ناگهانی اطلاعات ذخیره شده در stream باشید
 

اگر دستور type را به همراه علامت «<» بدون معین کردن هیچ نام stream ی استفاده کنید، باعث می شود که کل اطلاعات ذخیره شده در stream پاک شود.
مثال: فرض کنید فایلی به نام Original.doc در بخش stream خود، دارای اطلاعات مخفی شده است، دستور زیر، یک کپی از همین فایل بدون هیچ اطلاعاتی در بخش stream آن ایجاد می کند.
type original.doc>backupcopy.doc
همچنین انتقال اطلاعات به هر درایوی که NTFS نباشد، باعث از دست رفتن کل اطلاعات stream می شود. مثل فلش درایوها و نیز انتقال اطلاعات از طریق ایمیل به صورت Attachment و یا Upload کردن آن به اینترنت و یا رایت کردن آن در سی دی و یا دی وی دی، باعث از بین رفتن اطلاعات stream می شود.

تذکرات نهایی
 

* وقتی که اطلاعاتی را در یک فایل یا پوشه مخفی می کنید، باید مطمئن باشید که آن فایل یا پوشه، در هیچ صورتی پاک نخواهد شد. مثلاً توسط دیگران و یا توسط خودتان بصورت تصادفی.
* می توان بیش از یک فایل را در بخش stream ذخیره کرد. کافی است برای هر فایل، یکبار از دستور type به ترتیبی که توضیح داده شد، استفاده کنید.
* دقت داشته باشید که دستور type اطلاعات را به بخش stream کپی می کند و Move (منتقل) نمی کند.
* هیچ وقت این روش مخفی کردن را روی فایلی که تنها یک نسخه از آن را دارید و نسخه پشتیبانی از آن ندارید و نمی خواهید که آن را به هیچ وجه از دست بدهید، انجام ندهید. در واقع بهتر است که این تکنیک را در مواردی که امکان گم شدن و یا سرقت اطلاعات وجود دارد، انجام دهید. بطور مثال در کامپیوترهای Laptop.
همچنین قبل از اعمال این روش بر روی فایل های حیاتی، حتماً آن را روی فایل های آزمایشی تست نمایید، تا به نکات آن مسلط شوید.
* هرگز فایل یا پوشه ای را که در بخش stream آنها، اطلاعاتی را مخفی کرده اید، ایمیل نکنید و یا در درایوی که غیر NTFS است، کپی نکنید.
همچنین بسیاری از برنامه های backup گیری، قادر به شناسایی اطلاعات موجود در بخش stream نیستند، بنابراین در استفاده از آنها دقت کنید.
* ابزارهای معرفی شده در این مقاله (cat & ADS spy) را در جایی جداگانه نگهداری کنید. چرا که هر کسی که به این ابزار دسترسی داشته باشد، می تواند به اطلاعات مخفی شده در بخش stream نیز دسترسی داشته باشد.
* در پایان باید اشاره به این نکته کرد که مزاحمان در صورتی که نتوانند اطلاعات خصوصی و حیاتی شما را ببینند، قاعدتاً نمی توانند هیچ مزاحمتی بوجود آورند.
منبع: ماهنامه دانش و کامپیوتر، شماره ی 75