Keylogger نوعی فناوری نظارتی است که برای نظارت و ضبط هر ضربه کلید بر روی یک دستگاه خاص مانند رایانه یا تلفن هوشمند استفاده میشود که می تواند مبتنی بر سخت افزار یا نرم افزار باشد. Keylogger مبتنی بر نرم افزار همچنین به عنوان نرم افزار نظارت بر سیستم یا نرم افزار ضبط صفحه کلید نیز شناخته میشود.
Keylogger چه کاربردی دارد؟
Keylogger ها اغلب به عنوان یک ابزار جاسوسی توسط مجرمان سایبری برای سرقت اطلاعات شناسایی شخصی، اعتبارنامههای ورود و دادههای حساس سازمانی استفاده میشوند.
با این حال، Keylogger ها میتوانند در درجات مختلف اخلاقی و مناسب نیز کاربرد داشته باشند. به عنوان مثال، Keylogger ها میتوانند به دلایل زیر استفاده شوند:
- توسط کارفرمایان برای مشاهده فعالیت های رایانه ای کارکنان.
- توسط والدین برای نظارت بر استفاده فرزندان از اینترنت.
- توسط صاحبان دستگاه برای ردیابی فعالیت های غیرمجاز احتمالی در دستگاه های خود.
- توسط سازمان های مجری قانون برای تجزیه و تحلیل حوادث مربوط به استفاده از کامپیوتر.
انواع Keylogger
دو نوع اصلی Keylogger وجود داد:
1. Keylogger های مبتنی بر سخت افزار
Keylogger مبتنی بر سخت افزار دستگاه کوچکی است که به عنوان رابط بین صفحه کلید و کامپیوتر عمل میکند. این دستگاه به گونهای طراحی شده است که شبیه یک کانکتور PS/2 صفحه کلید معمولی، بخشی از کابلکشی کامپیوتر یا یک آداپتور USB باشد که مخفی کردن دستگاه را برای کسی که میخواهد رفتار کاربر را زیر نظر داشته باشد، نسبتاً آسان میکند.
2. Keylogger های مبتنی بر نرم افزار
یک برنامه نرم افزار keylogging برای نصب نیازی به دسترسی فیزیکی به رایانه کاربر ندارد. میتواند به طور هدفمند توسط شخصی که میخواهد فعالیتها را بر روی یک رایانه خاص نظارت کند، دانلود شود، یا میتواند به طور ناخواسته توسط کاربر به صورت بدافزار دانلود شده و سپس به عنوان بخشی از روت کیت (rootkit) یا تروجان مدیریت راه دور (remote administration Trojan) اجرا شود. در هر صورت، نرم افزار keylogging به یک عامل تهدید غیرمجاز اجازه می دهد تا ضربه های کلید کاربر را مشاهده کند و سپس از این دانش برای دسترسی و به خطر انداختن دستگاه استفاده کند.
دو نوع اصلی keylogging نرم افزاری وجود دارد:
- User mode keyloggers: از رابط برنامه نویسی برنامه کاربردی ویندوز (API) برای رهگیری حرکات صفحه کلید و ماوس استفاده می کنند. توابع GetAsyncKeyState یا GetKeyState API نیز ممکن است ثبت شوند. این keylogger ها از مهاجم می خواهند که هر فشار کلید را به طور فعال نظارت کند.
- kernel mode keyloggers: keylogger های حالت kernel یک روش نرمافزاری قدرتمندتر و پیچیدهتر هستند. آنها با دسترسی های بالاتر کار می کنند و مکان یابی آنها در یک سیستم دشوارتر است. علاوه بر این، آنها می توانند سیستم داخلی ویندوز را از kernel هسته تغییر دهند.
برخی از نرم افزارهای keylogging میتوانند از API های صفحه کلید برای اجرای برنامه دیگر، تزریق اسکریپت مخرب (malicious script injection) یا تزریق حافظه (memory injection) استفاده کنند.
Keylogger چگونه کار میکند؟
keylogger سخت افزاری ممکن است به شکل یک ماژول نصب شده در خود صفحه کلید باشد. هنگامی که کاربر روی صفحه کلید تایپ می کند، keylogger هر ضربه کلید را جمع آوری می کند و آن را به عنوان متن ذخیره شده در هارد دیسک خود ذخیره می کند که می تواند تا چندین گیگابایت ظرفیت حافظه داشته باشد. شخصی که keylogger را نصب کرده است باید به صورت فیزیکی دستگاه را حذف کند تا به اطلاعات جمع آوری شده دسترسی داشته باشد. همچنین ابزارهای بیسیم keylogger وجود دارند که میتوانند بستههای دادهای را که بین صفحهکلید بیسیم و گیرنده آن منتقل میشوند، رهگیری و رمزگشایی کنند.
یک keylogger نرم افزاری متداول از دو فایل تشکیل شده است که در یک دایرکتوری نصب می شوند. یک فایل کتابخانه پیوند پویا (dynamic link library) که ضبط را انجام می دهد و یک فایل اجرایی که فایل DLL را نصب میکند و آن را راه اندازی میکند. برنامه keylogger هر ضربه کلیدی را که کاربر تایپ میکند ضبط نماید و به صورت دورهای اطلاعات را از طریق اینترنت آپلود میکند. جایی که هکر میتواند به آن دسترسی پیدا کند.
برخی از برنامههای keylogging همچنین میتوانند قابلیتی برای ضبط دادههای کاربر علاوه بر ضربه زدن به کلید داشته باشند، مانند گرفتن هر چیزی که در کلیپ بورد (clipboard) کپی شده است و گرفتن اسکرین شات از صفحه کاربر یا یک برنامه واحد.