روش حمله جدیدی در سیستم عامل اندروید از طریق بدافزاری به نام Snowblind باعث می شود که، از یک ویژگی امنیتی که قرار بود مانع از دستکاری (tampering) داده های حساس شود، به نفع خود استفاده کند.
Snowblind تلاش میکند برنامهها را به گونهای تغییر دهد که این برنامهها نتوانند متوجه شوند که سرویسهای دسترسیپذیری (که معمولاً برای کمک به افراد با ناتوانیهای جسمی استفاده میشود) به طور نادرست مورد استفاده قرار میگیرند تا اطلاعات حساسی مثل نام کاربری و رمز عبور را جمعآوری کرده و یا دسترسی از راه دور برای اجرای اقدامات مخرب را فراهم کنند.
برخلاف سایر بدافزارهای اندروید، Snowblind از ‘seccomp’ که مخفف secure computing (محاسبات امن) است، سوءاستفاده میکند. این یک ویژگی در هسته لینوکس است که اندروید برای بررسی یکپارچگی برنامهها از آن استفاده میکند تا کاربران را در برابر اقدامات مخرب مانند repackaging برنامهها محافظت کند.
سوء استفاده از ویژگی امنیتی seccomp
Promon با همکاری i-Sprint که به کسبوکارها در حفاظت از سیستمهای دسترسی و هویت کمک میکند، نمونهای از Snowblind را دریافت کرد و توانست بررسی کند که این بدافزار چگونه بدون اینکه شناسایی شود، اهداف خود را به دست میآورد.
گوگل در نسخه اندروید ۸ (که به نام اوریو شناخته میشود) ویژگی seccomp را معرفی کرد و این ویژگی را در فرآیند Zygote، که تمامی برنامههای اندروید از آن منشعب میشوند، به کار گرفت.
Snowblind با تزریق یک کتابخانه که پیش از اجرای کدهای حفاظتی anti-tampering در برنامه بارگذاری میشود، وارد عمل میشود. سپس یک فیلتر seccomp نصب میکند که میتواند فراخوانهای سیستمی مانند ‘open() syscall’ را رهگیری کند، و بدین ترتیب امکان دسترسی به دادههای حساس را بدون شناسایی شدن فراهم میآورد.
وقتی سیستم سعی میکند بررسی کند که آیا فایل APK برنامه هدف دستکاری شده است یا نه، فیلتر seccomp که توسط Snowblind نصب شده، این بررسی را متوقف میکند و به جای ادامه بررسی، یک سیگنال SIGSYS تولید میکند که به سیستم اعلام میکند یک خطا رخ داده است، به این ترتیب فرآیند بررسی دستکاری متوقف میشود و تشخیص دستکاری دشوار میشود.
Snowblind علاوه بر فعال کردن سیگنال SIGSYS، یک کنترلکننده سیگنال (signal handler) نیز برای این سیگنال نصب میکند. این کنترلکننده سیگنال به Snowblind اجازه میدهد تا سیگنال SIGSYS را بررسی کند و مقادیر ثباتهای (registers) مربوط به رشته (thread) را تغییر دهد تا رفتار برنامه را به نفع خود دستکاری کند.
دافزار با استفاده از این روش میتواند فراخوانیهای سیستمی مربوط به باز کردن فایلها (‘open()’) را دستکاری کند و کد ضد دستکاری را به سمت یک نسخه سالم و دستکارینشده از فایل APK هدایت کند، به گونهای که به نظر برسد فایل اصلی بدون تغییر است و دستکاری تشخیص داده نشود.
بدافزار Snowblind با استفاده از فیلتر seccomp به طور هدفمند تأثیر چندانی بر عملکرد و اثرات عملیاتی برنامه ندارد، بنابراین کاربران در زمان استفاده معمولی از برنامه احتمالاً هیچ تغییر مشهودی را نمیبینند که به آن اشاره کند که برنامه دچار تغییرات غیرمجاز شده است.
سناریو حمله
شرکت Promon اظهار میکند که روش مورد استفاده در حملات Snowblind به طور وسیعی شناخته نشده است و محققان معتقدند که اکثر برنامهها قادر به مقابله با این نوع حملات نیستند.
در ویدئویی که نحوه عملکرد حمله را نشان میدهد، محققان نشان میدهند که حمله Snowblind به طور کاملاً پنهان از دید کاربر است و ممکن است منجر به رفتن اطلاعات ورود به سیستم شود.
محققان بیان کردند که Snowblind میتواند برای غیرفعال کردن ویژگیهای امنیتی مختلف در برنامهها، مانند احراز هویت دو مرحلهای یا تأیید بیومتریک استفاده شود.
ک حملهکننده میتواند با استفاده از این تکنیک، اقدام به خواندن اطلاعات حساسی که روی صفحه نمایش نمایش داده شدهاند، کنترل دستگاه و برنامهها، عبور از تدابیر امنیتی با اجرای تعاملاتی که به طور معمول نیاز به مداخله کاربر دارند، و همچنین دزدیدن اطلاعات حساس شناسایی شخصی و دادههای تراکنشی کند.
Promon اظهار میکند که Snowblind مشاهده شده است که یک برنامه از یک مشتری i-Sprint در جنوب شرق آسیا را هدف قرار داده است. با این حال، نامشخص است که تا کنون چندین برنامه به عنوان هدف قرار گرفتهاند. علاوه بر این، این روش ممکن است توسط دیگر دشمنان برای عبور از حفاظتها در اندروید به کار گرفته شود.
سخنگوی این شرکت افزود: «Google Play Protect میتواند به کاربران هشدار داده و همچنین برنامههای مشکوکی که رفتارهای مخربی از خود نشان می دهند را مسدود کند ، حتی زمانی که این برنامهها از منابع خارج از Google Play آمده باشند».