امنیت

اپلیکیشن های موبایل چی از ما می دونن؟

اپلیکیشن هایی که روی گوشی های هوشمند نصب می کنیم غیر از هدف اصلیشون، کارهای دیگه ایه م می کنن. ساده ترین کارشون اینه که یه سری اطلاعات رو از مردم جمع می کنن و برای سازنده های اپلیکیشن و یا شرکت های تبلیغی می فرستند تا بتونن راحت تر گروه دفشون رو پیدا کنن و بیشتر پول در بیارن.

گستره زیادی از اطلاعات جمع آوری می شه از مکان جغرافیایی و شماره تلفن و شماره شناسه گوشی تا اطلاعات شخصی مثل سن و جنسیت و لیست شماره دوستان و غیره.

وال استریت ژورنال در یک تحقیق یه سری اپلیکیشن (از جمله اپ خودشون) رو بررسی کرده تا ببینه کدوم ها این اطلاعات رو جمع می کنن و به کی ارسال می کنن. این اپلیکیشن ها از لیست محبوب ترین های هر سیستم عامل انتخاب شدن.

در تصویر زیر اپلیکیشن های اندرویدی رو خواهید دید و هرجا که در ستون مربوطه پر رنگ بود یعنی اطلاعات به شرکت هایی غیر از سازنده اصلی اپلیکیشن ارسال می شه و هرجا کم رنگ (راه راهه در واقع) بود یعنی اطلاعات اون ستون به سرورهای سازنده اپ ارسال می شه.

WSJ-android

 

وضعیت اپلیکیشن های آیفون هم وضعیت بهتری نداره.

WSJ-iphone

Standard
امنیت

مشکل امنیتی اندروید ۴.۴

پیش از این در مورد یک ضعف امنیتی در اندروید گفتم که در همه نسخه های اون موجود بود و با استفاده از اون هکر می تونست فایل مخرب خودش رو به اسم یک نرم افزار شناخته شده جا بزنه. پس از کشف اون مورد، گوگل یه بررسی مجدد روی تمام اپلیکیشن های موجود در گوگل پلی انجام داد و یه تعداد که از این مورد برای گسترش بدافزار استفاده کرده بودند رو حذف کرد. همچنین روند ثبت اپلیکیشن ها رو تغییر داد که مطمئن بشه اپلیکیشن های جدید این مشکل رو نداشته باشند.

این ضعف امنیتی تا نسخه ۴.۳ با اندروید بود و ۹۹ درصد دستگاههای اندرویدی رو در بر می گرفت. گوگل اما در نسخه ۴.۴ این ضعف رو برطرف کرد.

با ارائه کد اندروید ۴.۴، یک محقق اعلام کرد که این نسخه نیز ضعف امنیتی مشابه نسخه های قبلی داره. جی فریمن برای اثبات یک اسکریپت پایتون نوشته که تصویرش رو می تونید ببینید:

Android Master Key vulnerability exploit

همونطور که در اسکریپت می بینید اون میاد دوتا فایل apk  رو به عنوان فایل جدید (که حاوی بدافزاره) و فایل قدیمی می گیره. هکر مشخص می کنه که کدوم فایل رو از بسته اصلی می خواد تغییر بده و چه تغییری می خواد بده. این کد هم کل فایل بسته اصلی رو در بسته جدید قرار می ده و فقط اون فایل خاص رو که رسید اول دیتای فایل اصلی رو می ریزه و سپس دیتای مورد نظر هکر رو رو به انتها اضافه می کنه.

در این روش کلید رمزگذاری فایل apk دستنخورده باقی می مونه و از آنجایی که سطح دسترسی اپلیکیشن های اندرویدی با استفاده از این کلید چک می شه، اگر هکر یک اپلیکیشن سیستمی رو تغییر بده، بدافزار تولید شده از طرف سیستم عامل مجاز به دسترسی به همه فایل های سیستم خواهد بود.

تنها کاری که الان می شه کرد اینه که فقط از گوگل پلی اپلیکیشن ها رو دانلود کنید و به هیچ عنوان از سایت های ناشناخته و یا سرویس های اشتراک گذاری فایل اپلیکیشنی رو دانلود و نصب نکنید.

منبع

Standard
امنیت

ضعف امنیتی شاه کلید اندروید

اول بگم که شاه کلید همون master key خودمونه 🙂

اعلام این خبر یه ضربه به تیم اندروید و طرف های درگیر در این پروژه بود. اولین بار در کنفرانس کلاه سیاه ها مطرح شد و البته بعدا معلوم شد که یه سری از اپ های مارکت هم از این ضعف سو استفاده کرده اند. قضیه از این قراره که با استفاده از این مشکل (که در ادامه به تفصیل خواهم گفت) می شه از اپ های مشهور و تایید شده هم سو استفاده کرد و کدهای مخرب وارد سیستم قربانی کرد.

اگر دستی در برنامه نویسی اندروید (و یا جاوا) داشته باشید می دونید که فایلهای apk در واقع یه سری فایل و فولدره که به صورت فشرده شده در اختیار کاربر قرار می گیره. شما می تونید با نرم افزارهایی مثل winrar و winzip محتویات پکیج رو ببینید.

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

با یک مثال جلو می ریم. فرض کنید اپلیکیشنی به اسم MyFirstApp.apk رو روی شبیه ساز اندروید نصب می کنیم (می تونه هر نرم افزاری باشه).

نصب اپ روی امولاتور

نصب اپ روی امولاتور

این نرم افزار مثالی روکه با نرم افزارهای آرشیو باز بکنیم، چیزی مثل عکس زیر رو خواهیم دید:

محتویات فایل apk

محتویات فایل apk

همونطور که توی عکس بالا می بینید، درون پکیج یک فولدر به اسم META-INF وجود داره که درون اون چکسام های امضا شده کلیه فایل های پکیج موجوده. فایل مانیفست در فولدر اصلی هم اسم فایل های موجود در پکیج و اطلاعات خلاصه اونها رو در خودش داره. اگر هر کدوم از فایل های پکیج رو تغیر بدید، اندروید از نصب شدن اپ جلوگیری می کنه. اندروید برای این کار از کتابخونه آرشیو جاوا برای گسترش فایل apk و سپس مقایسه و تایید چکسام کلیه فایل های بسته استفاده می کنه.

محتویات فولدر متا اینف

محتویات فولدر متا اینف

خب برای مثال بریم و تصویر موجود در فولدر MyFirstApp.zip\res\drawable-hdpi که آیکن نرم افزاره رو تغییر بدیم و بعد سعی کنیم که نصبش کنیم.

جلوگیری اندروید از نصب شدن اپ

جلوگیری اندروید از نصب شدن اپ

الان می رسیم به قسمت جالب قضیه. اینکه چطور این شیوه چک کردن سیستم اندروید رو دور بزنیم. برای اینکار کمی در شیوه چک کردن و نصب اپ ها در اندروید بیشتر بررسی می کنیم تا راهی رو پیدا کنیم برای نصب نرم افزار هایی که فایل هاشون تغییر کرده. مشکل از جایی شروع می شه که علیرغم جلوگیری نرم افزارهای آرشیو برای zip کردن فایل های هم نام، فرمت zip خودش این محدودیت رو نداره. از این مورد می شه استفاده کرد و apk ساخت که شامل فایل های هم نام باشه (عکس زیر).

فایل های هم نام در یک فولدر

فایل های هم نام در یک فولدر

حالا این فایل apk رو روی سیستم نصب می کنیم. می تونیم ببینیم که بدون مشکل نصب می شه و حتی آیکن نرم افزار نصب شده هم همون فایل جدیدیه که هکر وارد پکیج کرده.

نرم افزار هک شده که با موفقیت نصب شده

نرم افزار هک شده که با موفقیت نصب شده

چطور این اتفاق افتاد؟
مشکل اینجاست که اندروید ورژن قدیمی فایل رو چک می کنه و امضاش رو تایید می کنه ولی نصاب جدیدترین فایل رو نصب می کنه. بنابراین فایل سالم وسیله اندروید چک می شه و اپ تایید می شه ولی زمان نصب، فایلی که هکر وارد کرده نصب می شه.

نتیجه خیلی وحشتناکه. اول اینکه کلیه نسخه های اندروید این مشکل رو دارند. نکته بعدی اینکه محدوده هک رو فقط ابتکار هکر مشخص می کنه. برای مثال هکر می تونه کلیه مکالمات شما رو شنود کنه، از طرف شما پیام بفرسته یا تماس تلفنی بگیره، می تونه با دوربین گوشیتون عکس و فیلم بگیره و برای خودش ایمیل کنه و غیره.

نرم افزار سیستمی که همراه سیستم عامل روی گوشی نصب می شن و دسترسی به فایل های سیستم دارن، نسبت به اپ هایی که توسط کاربر نصب می شن، برای هکر کارایی بیشتری دارند. تروجانی که همراه یک نرم افزار سیستمی نصب می شه می تونه به همه سیستم اندروید، نرم افزارها و فایل هاش دسترسی داشته باشه. هکر می تونه از این گزینه استفاده کنه و شبکه ای از تلفن هایی که به اینترنت متصل هستند رو در اختیار بگیره. گروه بلوباکس با استفاده از همین روش حتی تونستن اسم کرنل (هسته سیستم عامل) رو تغییر نام بدهند.

تغییرنام کرنل

تغییرنام کرنل

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

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

همچنین می تونید از گوگل پلی نرم افزار Blue Box Security Scanner ارائه شده وسیله گروه بلوباکس رو دانلود کنید. این نرم افزار گوشی شما رو چک میکنه و در صورت آسیب پذیر بودن بهتون اطلاع می ده. البته نرم افزارهای نصب شده رو هم چک می کنه.

چک سیستم برای این ضعف امنیتی

چک سیستم برای این ضعف امنیتی

منبع

Standard