Alternative Data Streams (ADS)

منطقة موجودة في جميع الملفات ويمكن لصانعي المالوير الاستفادة منها وكتابة اجزاء من المالوير بها

 ماهي؟ كيفية الكتابة عليها؟ وكيف يمكن كشفها؟

مقالتنا اليوم عن Alternative Data Streams (ADS)

بكل بساطة هي عبارة عن منطقة بديلة لتخزين البيانات لا تظهر عند قراءة الملف 

ملاحظة: هذه الميزة توجد على انظمة التخزينNTF  فقط

لكل ملف عند انشاءه عدة متغيرات “attributes” تكون جزء من الملف من ضمن هذه المتغيرات “Data Stream”

فمثلا عند انشاء ملف نصي يحتوي على “Hi I’m MODWare”يكون الـStream الخاص بالملف بشكل افتراضي غير موجودة ولكن يمكن اضافتها والكتابة عليها بشكل اختياري وتكون منطقة للبيانات غير مسماه، بما يعني ليس بملف تقدر ببساطة توصله عن طريق اسمه ولكن يشار لها بـ “$DATA:”Data_Stream1”” وعشان توصلها تحتاج تستخدم طرق مختلفة عن انك تفتح الملف بشكل مباشر من الـNotepad او غيرها, صانعي الـMalware استفادوا من هذي الميزة وصاروا يغيروها بكل بساطة يضيفون script اوmalicious code  مكانها

وكمثال عليها نقدر نشوفCoinMiner Malware والذي يستخدم لتعدين العملات الرقمية “الرابط في المصادر”

تستخدم  ADSايضا لمعرفة مصدر الملف هل هو ملف من جهازي او محمل من الانترنت وذلك من خلال الـzone.identifier

ZoneValue
My Computer0
Local Intranet Zone1
Trusted sites Zone2
Internet Zone3
Restricted Sites Zone4
جدول Zones

بالاضافة الى انه من الممكن الكتابة على منطقة الستريم من خلال الـAPI الخاصة بويندوز “CreateFile” و “WriteFile” 

الان بعد ما فهمنا ماهية الـADS بندخل في العملي وبنشوف كيف نطبقها وبرضوا نكتشفها ونقراها.

بداية راح نحمل أداة Stream “الرابط في المصادر”

نفتح CMD ونكتب في ملف txt اي نص 

الان نكتب في منطقة ADS من خلال الأمر التالي:

الان راح نقرأ الملف بشكل طبيعي وبعدها نقرأ منطقة ADS ونشوف الفرق بينهم عن طريق الامر more

عشان نقدر نشوف اذا فيه ملف مكتوب في منطقة ADS من خلال الامر dir /r

يوجد طريقة اخرى لاكتشاف وجود data stream في ملف باستخدام أداة  Stream:

ومن خلال الـPowerShell نقدر نكتشف الـData Stream وأيضا معرفة مصدر الملف

نبدأ من أكتشاف الـData Stream بالكتابة الأمر “get-item -Path .\MODWare.txt -Stream *”

ملاحظة: أستبدل MODWare.txt بأسم الملف لديك

نلاحظ في الصورة المعلومات منقسمة جزئين الجزء الاول معلومات عن الملف نفسه والقسم الثاني “بالأسفل” خاص بالستريم الي صنعناه.

الأمر التالي خاص بمعرفة مصدر الملف من خلال الأمر 

” Get-Content -Path .\Some_Document_Just_Downloaded.pdf -Stream zone.identifier “

قيمة الـZoneId=3 بمعنى انه هذا الملف محمل من الانترنت “أرجع لجدول Zones فوق”

وصلنا لنهاية المقال أتمنى أفادكم وشكرا على قراءتكم لأي أقتراحات أو تحسينات تواصلوا معي على twitter 🙂

المصادر:  –

رابط تحميل Stream:
https://docs.microsoft.com/en-us/sysinternals/downloads/streams

Microsoft Document ADS:

https://docs.microsoft.com/en-us/archive/blogs/askcore/alternate-data-streams-in-ntfs
https://www.microsoft.com/en-us/wdsi/threats/malware-encyclopedia-description?Name=Trojan:Win32/CoinMiner

Coin Miner:

https://www.microsoft.com/en-us/wdsi/threats/malware-encyclopedia-description?Name=Trojan:Win32/CoinMiner