آسیبپذیری خطرناک اجرای کد در سامانهعامل اندروید، تقریباً تمامی کاربرانی را که آخرین نسخهی اندروید، KitKat، را ندارند، تحت تاثیر قرار داده است. این آسیبپذیری در ماه سپتامبر ماه گذشته توسط تیم امنیتی IBM به صورت خصوصی به تیم امنیتی اندروید گزارش شده بود و در ماه نوامبر با نسخهی 4.4 این آسیبپذیری وصله شد.
اما از آنجایی که این آسیبپذیری در نسخههای قدیمی رفع نشده است، تیم امنیتی IBM بالاخره جزییات این آسیبپذیری در نسخههای قدیمیتر را منتشر کرده است.
این آسیبپذیری مربوط به سرویس KeyStore در سامانهعامل اندروید میباشد، keyStore سرویس امنی را برای ذخیرهی جفتهای کلید- ارزش ارائه میدهد. این مسیر ذخیرهسازی امن در اندروید از آدرس system/bin/keystore در دسترس است، در حال حاضر از طریق واسط Binder دسترسی به کلیدهای ذخیرهشده ممکن است.
هر کاربر اندرویدی، محل ذخیرهسازی امن اختصاصی خود را دریافت میکند و با استفاده از یک کلید اصلی یا Master key که به صورت رمزشده در دستگاه ذخیره شده است، سایر کلیدها به صورت رمزشده ذخیره میکند.
در نمودار زیر طرز کار KeyStore نشان داده شده است:
اما این آسیبپذیری از اینجا آغاز میشود که یک بافر مبتنی بر پشته توسط کد زیر ایجاد میشود، همانطور که مشاهده میشود تابع سازندهی کلید، پارامترهای ورودی زیادی دارد که ممکن است توسط سایر برنامههای مخرب از بیرون تغییر پیدا کنند. و در خط پایانی کد، تابع encode_key_for_uid نیز سه پارامتر دریافت میکند که پارامتر encode_key میتواند منجر به سریرز بافر filename شود، چرا که اندروید فرض کرده است همیشه بافر را بزرگ در نظر میگیرد که مشکل سرریز بافر وجود نداشته باشد، و به همین دلیل محدودیت بافر بررسی نمیشود و سریرز بافر ایجاد میشود.
ResponseCode getKeyForName( Blob* keyBlob,
const android::String8& keyName,
const uid_t uid,
const BlobType type)
{
char filename[NAME_MAX];
encode_key_for_uid(filename, uid, keyName);
...
}
با سوءاستفادهی موفقیتآمیز از این آسیبپذیری مهاجم میتواند منجر به اجرای کد مخرب در دستگاه قربانی شودکه درنهایت
کلید اصلی قربانی که شامل گذرواژهی ورود به دستگاه نیز میباشد، در اختیار مهاجم قرار میگیرد.
این آسیبپذیری در تمام دستگاههایی که اندروید آنها 4.3 یا کمتر میباشد وجود دارد و با شناسهی
CVE-2014-3100 یا ANDROID-10676015 شناخته میشود که تیم امنیتی اندروید وصلهای برای آن ارائه نکرده است.
منبع : news.asis.io