مسموم کردن حافظه‎ی کلیپ‎بورد در Mac

مسموم کردن حافظه‎ی کلیپ‎بورد در Mac

مسمومیت کلیپ‎بورد، موضوعی که در آن یک وب‎گاه آنچه‎ که فکر می‎کنید در حافظه‎ی کلیپ‎بورد وجود دارد را با چیز دیگری جایگزین می‎کند.هرچند شاید در نگاه اول فکر کنید که این موضوع پیش‎پا افتاده و ناچیزی است، ولی مسئله‎ای است که پیامدهای جدی در پی دارد.با وجود این مسئله و مشکل، احتمال این وجود دارد که کد مخربی روی سیستم قربانی اجرا شود. به عبارت دیگر ممکن است کد مخرب مهاجم بر روی سامانه‎ی شما بدون اینکه هیچ اطلاعی از آن داشته باشید، اجرا شود.هنگامی که کد مخرب بر روی سامانه‎ی قربانی اجرا شد، می‎تواند فرآیندهای دیگری را بارگیری و نصب کرده و در لحظه‎ای Mac شما pwned شود.(powend به عبارتی معادل همان owend است. یعنی مهاجم سامانه‎ی شما را صاحب شود.)

کلید اصلی این مسئله در کدی که کاربر از یک وب‎گاه کپی می‎کند نهفته است. سپس این کد در جایی دیگر کپی شده و منجر می‎شود که کد موردنظر اجرا گردد. این مسئله ممکن است زمانی که کد شل در ترمینال چسبانده می‎شود نیز رخ دهد.

بطور مثال، کد زیر را در نظر بگیرید که به‎طور معمول کدی است که برای نشان دادن پرونده‎های مخفی در Mac مورد استفاده قرار می‎گیرد.

اگر شما در گوگل نحوه‎ی نمایش پرونده‎های مخفی در Mac را جستجو کنید با وب‎گاه‎های بی‎شماری روبرو خواهید شد که حالت‎های مختلفی از این دستور را نمایش داده‎اند و تمایل شما بر این خواهد بود که طولانی‎ترین دستور را کپی کرده  و در ترمینال اجرا کنید.

در حقیقت برخی وب‎گاه‎ها با صراحت به شما می‎گویند که کد مورد نظر را اجرا کنید. همچنین شما فکر می‎کنید اگر دستور را تایپ کنید و غلط املائی در آن وجود داشته باشد، بد است و ترجیح می‎دهید که دستور را کپی کرده و در ترمینال بچسبانید.

 

هر چند این راه روش سالم و امنی نیست. Dylan Ayrey کسی است که راهی پیدا کرده تا کدهای جاوا اسکریپت حاوی کدهای مخرب را از طریق دستورات شل کپی شده، تزریق کرد. در این وب‎گاه، نشان داده شده است که کپی کردن کد زیر و چسباندن آن در ترمینال، نتیجه‎ای کامل متفاوت خواهد داشت:
          

 

 

 

 

 

 

 

در این مثال مهم است که توجه کنید، برای اجرای این دستور کلید return زده نمی‎شود و این دستور خود به خود پس از چسباندن در ترمینال اجرا می‎شود.

 

چگونه ممکن است؟ بخش اول شامل جایگزین کردن چیزی که کپی کرده‎اید با چیز دیگر است. در صفحه‎ی  Ayrey’s از یک کد جاوا اسکریپت استفاده شده است که اندکی بعد از فشره شدن Keypress (همچون Ctrl+C) محتوای حافظه‎ی کلیپ‎بورد را تنظیم می‎کند. خوشبختانه این رویه در مرورگر Sofari درست کار نمی‎کند ولی در مرورگرهای Chrome و FireFox به درستی عمل می‎کند.

مرحله‎ی بعدی نیازمند این است که در پرونده‎ی متنی کاراکتر خط جدید وجود داشته باشد که به حافظه‎ی کلیپ‎بورد اضافه شود. زمانی که دستور در ترمینال چسبانده می‎شود، این کاراکتر خط جدید همانند فشردن کلید return عمل می‎کند.

خیلی آسان است که بتوان دید که این سوءاستفاده به بدترین نحو ممکن می‎تواند مورد بهره‎برداری قرار گیرد. مثال زیر را در نظر بگیرید:
          

 

 

 

 

 

این دنباله از دستورات ممکن است چیزی که کاربر فکر می‎کند کپی کرده است را جابجا کند. در نتیجه همه‎ی این دستورات همانی خواهد بود که کپی شده ولی یکی از این دستورات به‎طور خودکار اجرا خواهد شد. ابتدا یک پوشه‎ی جدید در پوشه‎های کاربر ایجاد شده و یک پرونده در آن بارگیری می‎شود. این پرونده در ادامه از حالت فشرده خارج شده و در پس‎زمینه اجرا خواهد شد.

در ادامه محتوای پنجره‎ی ترمینال برای اینکه هیچ مدرکی از دستورات اجرا شده باقی نماند پاک شده و آخرین دستور در پنجره نمایش داده می‎شود که منتظر کاربر است تا کلید return را فشار دهد.

نویسنده‎ی این پست این مسئله را با پرونده‎ی ساده‎ی زیپ تست کرده است و نتیجه این بوده که به سختی ردی از اجرای دستورات ناخواسته در ترمینال قابل رؤیت بوده است. تنها نکته‎ی مشکوکی که وجود داشته این بوده که پنجره‎ی ترمینال پاک شده که این قضیه برای کسی که خیلی حرفه‎ای نیست، مشکوک نخواهد بود.

خوشبختانه کد جاوا اسکریپت Ayrey’s در مرورگر Safari کار نمی‎کند. ولی خیالتان خیلی راحت نشود. Ayrey’s به یک بهره‎برداری قدیمی که می‎توان با HTML و CSS انجام داد، اشاره می‎کند. این حقه از استایل‎های ویژه‎ای استفاده می‎کند که برای مخفی کردن تکه‎ای از متن در داخل متن دستور شل استفاده می‎شود. این حقه به خوبی کد جاوا اسکریپت Ayrey می‎تواند مورد استفاده قرار گیرد. متأسفانه این حقه هنوز زنده است و به خوبی کار می‎کند و علاوه بر Chrome و FireFox در مرورگر Safari نیز به خوبی مورد بهره‎برداری قرار می‎گیرد.

حال این مسئله برای کابران Mac به چه معنی است؟ در درجه‌ی اول مهم است که به این درک برسید که کپی کردن یک دستور شل و چسباندن آن در ترمینال، اصلاً روش امن و سالمی نیست. همانطور که در این پست مشاهده کردید، انجام این‎کار بسیار خطرناک است و ممکن است منجر به آلودگی سامانه‎ی شما به بدافزار شود. حتی اگر به یک وب‎گاه اعتماد دارید، هنوز تضمینی وجود ندارد که آن وب‎گاه هک نشده باشد.

خوشبختانه یک راه‎حل برای حفاظت از سامانه برای زمانی که می‎خواهید دستور شل را کپی کرده و در ترمینال بچسبانید وجود دارد. به راحتی قبل از چسباندن دستور مورد نظر آن را چک کنید که آیا مطابق با آن چیزی که انتظار دارید هست یا نه. این کار را به راحتی با چسباندن دستور شل در یک ویرایشگر متنی می‎توانید انجام دهید و یا اینکه گزینه‎ی نمایش کلیپ‏بورد را از Finder انتخاب کنید.

Ayrey همچنین گفته که از iTerm به عنوان جایگزینی برای ترمینال استفاده کنید. این ابزار زمانی که در انتهای دستور شل، کاراکتر جط جدید وجود داشته باشد، هشدار می‎دهد. هرچند که نسخه‎ی کنونی iTerm برای حالت‌هایی مثل مثال بالا، زمانی که مجموعه دستورات طولانی وجود داشته باشد، کارساز نخواد بود.

اطلاع دقیقی از بهره‎برداری از این مسئله در دنیای واقعی وجود ندارد ولی این موضوع شدنی است. به‎ویژه الان که در وبلا‎های امنیتی از این مسئله صحبت شده و توجه عموم به سمت آن جلب شده است. خیلی جای تعجب وجود ندارد که در آینده شاهد مثال‎هایی از بهره‎برداری با استفاده از این مشکل باشیم.

نگاه دیگران

نگاه دیگران

نگاه دیگران نگاهی است از دنیای گسترده صفحات گوناگون اینترنت که منتخبی از آن‌ها را در پایگاه خبری چهره و اخبار مشاهده میکنید.


0 نظر درباره‌ی این پست نوشته شده است.

ثبت نظر