تزریق پردازه یکی از آن موضوعهایی است که در کلاسها ترسناک تعریف میشود و روی میز واقعی معمولاً اینطور شروع میشود: «چرا این notepad ناگهان به شبکه وصل شد؟»
ایدهٔ ساده
پردازهٔ مخرب میخواهد کدش داخل پردازهٔ دیگری اجرا شود — اغلب چیزی معتبر مثل explorer.exe یا یک سرویس رایج — تا از چشم ابزارها و کاربر قایم بماند و گاهی دسترسی بهتری بگیرد.
ATT&CK این خانواده را زیر T1055 جمع میکند؛ زیرتکنیکها زیادند (Remote thread، APC، process hollowing و بقیه). برای triage اولیه، دانستن اسم زیرتکنیک واجب نیست؛ دانستن شاهد واجب است.
در سندباکس چه چیزی مشکوک است؟
- پردازهٔ کوتاهعمر که بلافاصله بعد از اجرا ناپدید میشود ولی فرزند/هدف عجیبی بهجا میگذارد
- دسترسیهای نوشتن حافظه به پردازهٔ غیرمرتبط
- اجرای کد از ناحیههایی که ماژول دیسکی متناظر ندارند
- رفتار شبکه یا فایل از پردازهٔ «بیگناه» بلافاصله بعد از زنجیرهٔ مشکوک
اینجا ترکیب درخت پردازه و memory triage بیشتر از یک لاگ تکی حرف میزند.
چیزی که تزریق نیست
هر CreateRemoteThread در دنیا لزوماً بدافزار نیست. بعضی ابزارهای مدیریتی و حتی نرمافزارهای امنیتی رفتارهای نزدیک دارند. زمینه، والد، زمانبندی و مقصد شبکه را ببینید.
مسیر تأیید عملی
- زنجیرهٔ اجرا را تا نقطهٔ جهش بکشید
- ببینید کدام پردازه بعد از جهش رفتار تازه گرفته
- اگر حافظه دارید، به دنبال ناحیه RWX یا image بدون فایل بگردید
- IOC را از رفتار پس از تزریق بردارید (دامنه، مسیر drop، mutex) نه فقط از باینری اولیه
در آزمایشگاه سیستمکال بازپخش دسکتاپ گاهی همان لحظهٔ عجیب را نشان میدهد که در جدول خام گم میشود: پنجرهای که نباید شبکه برود، میرود.
برای detection
شکارهای مفید معمولاً روی ترکیباند: مفسر → دسترسی حافظه به فرایند سیستمی → اتصال شبکه. یک event تنهای بدون کانتکست، آلارم خستهکننده میسازد.
جمعبندی
T1055 یعنی «کد از جایی که انتظارش را ندارید اجرا میشود.» در triage، دنبال همان ناهماهنگی بگردید و با لایهٔ حافظه و شبکه قفلش کنید. جزئیات زیرتکنیک را بعداً برای گزارش عمیقتر مینویسید.