بخشی از مقاله
چکیده:
در این مقاله،ما یک را حل مبتنی بر فایروال ارائه کرده ایم برای محافظت از سیستم عامل های اندروید در مقابل حملات شدید ویژه،مخصوصاً حملات تخریب کننده جایگزین و حملات تبانی.فایروال ارائه شده،از برنامه های کاربردی محافظت می کند که دارای مجوز امتیاز حیاتی هستند. هر برنامه کاربردی دیگر بدون امتیاز حیاتی،این اجازه را نخواهد داشت که در مقابل حملات شدید ویژه،درخواست برنامه های کاربردی محافظت شده را داشته باشد.به علت این که اینترنت دروازه ی حمله است،ما اجازه ی دسترسی به اینترنت را به عنوان یک اجازه ی حیاتی تلقی می کنیم .
به این ترتیب،هر برنامه ی کاربردی نمی تواند از طریق تشدید امتیاز،مستقیم یا غیرمستقیم به اینترنت دسترسی داشته باشد،بدون تصدیق کاربر از رد آسیب ناپذیری فاش شدن داده های خصوصی.راه حل ارائه شده،همچنین این امکان را فراهم می کند که از مجوز حیاتی متفاوتی از طریق ایجاد مناطق حفاظتی حیاتی چندگانه محافظت کند.ما مناطق حفاظتی چندگانه حیاتی را بوسیله انتخاب مجوز READ-CONTACTS و مجوز INTERNET به طور ضمنی شرح دادیم به این صورت که این مجوزها،مجوزهای حیاتی هستند و برنامه های کاربردی باید یکی از این مجوزها و یا هر دوی آنها را داشته باشند.آنها بوسیله ی فایروال ما در مقابل حمله های شدید ویژه محافظت خواهند شدکارایی و تأثیر راه حل پیشنهاد شده در این مقاله مورد بررسی قرار گرفته است همراه با مشکلات پیش رو.
مقدمه
سیستم عامل اندروید یکی از مهم ترین سیستم عامل هاست،اهمیت آن بدلیل گسترش وسیله آن در سالهای اخیر به عنوان سیستم عامل برای گوشی های هوشمند و تبلت های کامپیوتری است.گسترش اندروید،منجر به افزایش تلاشها برای نفوظ و استخراج ضعف امنیتی آن شد.چون اندروید یک کد منبع باز است،مطالعه سیستم آن و پیدا کردن حفره های امنیتی،استخراج ضعف های آن برای هکرها بسیار آسان است.رفتار سیستم امنیتی اندروید بر مبنای شناسایی مجوزهای اعطا شده و امتیازاتی است که برای برنامه های اندروید در زمان نصب نیاز است.
این امتیازات و مجوزهای اعطا شده بوسیله ی کنترل دسترسی احتیاطی - DAC - مورد استفاده قرار می گیرند تا برنامه های کاربردی را در مقابل یکدیگر یا در مقابل منابع سیستم،جداسازی و ایمن سازی کند.بنابراین، مکانیزم DAC از سیستم در مقابل برنامه های کاربردی مخرب که ممکن است توانایی دسترسی غیر مستقیم را داشته باشند،محافظت نمی کند و همچنین از اجزا برنامه های کاربردی که توسط مجوز حمایتی.محافظت نمی شوند.
دسترسی غیر مستقیم به این معنی است که یک برنامه ی کاربردی نمی تواند به اجرا برنامه کاربردی دیگر دسترسی داشته باشد زیرا به این برنامه امتیاز دسترسی به اجزاء داده نشده است و بوسیله ی جستجوی برنامه ی دیگر در دسترسی به این جزء هدف پیش می گیرد.به علت نقاط ضعف مکانیزمDAC تلاش های دیگری برای غلبه بر این ضعف ها معرفی شده استمثلاً. اندرویدSE و استفاده از یک مکانیزم کنترل دسترسی MAC در کنارDACدر لایه ی کرنل.اندرویدSE یک سیاست امنیتی به اندازه ی سیستم بر روی تمام عملیات ها اجرا می کند. بنابراین نه تنها برای یک برنامه ی کاربردی به منظور داشتن مجوز و امتیاز دریافت عملکرد مورد نیاز کافی نیست،بلکه این عملکرد باید با سیاست امنیتی در اندازه ی سیستم منطبق باشد.
هر چند که اندرویدSE در کاهش امتیاز حمله های شدید سهیم است،اما هنوز هم برای برنامه های کاربردی مخرب اندروید این امکان وجود دارد که امکان حملات شدید ویژه را به دست بیاورند به این طریق:با ارسال غیرمستقیم پیام یا با استخراج بر نامه های کاربردی واسطه که امتیاز بیشتری دارند. این موضوع در این مقاله مورد بررسی قرار گرفته است.حمله های شدید ویژه سه نوع اصلی دارند:تخریب کننده ی جایگزین،حملات تبانی و حملات ویژه ی مفرط.حمله تخریب کننده جایگزین زمانی رخ می دهد که - شکل - 1 یک برنامه ی کاربردی مخرب اجازه ی لازم را برای دانلود فایل ها ندارد و در نتیجه از یک مروگر می خواهد که این فایل ها را از طرف او دانلود کند.
حملات تبانی زمانی رخ می دهند که - شکل - 2 دو یا چند برنامه ی کاربردی با هم کار می کنند تا از مجوز سیستم عبور کنند.بنابراین اگر یک برنامه ی کاربردی،اجازه ی لازمP1 را نداشته باشدتا بتواند از اجزاء یک برنامه ی محافظت شده دیگر بوسیله یp1 بخواهد که از او محافظت کند،آنگاه این برنامه ی کاربردی با استخراج برنامه ی کاربردی دیگر توسط مجوزp1 در بدست آوردن این جزء موفق می شود.حمله ویژه مفرط زمانی رخ می دهد که برای کاربردی به نسبت خود دارای امتیاز و اجازه ی دسترسی بیشتری است.
به طور عمده یک برنامه کاربردی ممکن است به اجزاء سخت افزاری دسترسی داشته باشد مثل میکروفون یا دوربین،و بنابراین حق خود را برای دریافت و انتقال جایگاه به روز رسانی می کند و بدون اطلاع کاربر پیام کوتاه ارسال می کندو از این رو این گونه به نظر می رسد که این برنامه دارای مجوز بوده است.حمله کننده ها ممکن است این برنامه را برای عملکرد ناخواسته استخراج کنند.در این مقاله ما یک راه حل مبتنی بر فایروال برای محافظت از آخرین ورژن اندروید - اندروید - 4:4 در مقابل حملات شدید ویژه ارائه کرده ایم.راه حل ارائه شده بر خود امتیاز ویژه مبتنی است .یک برنامه ی کاربردی با یک مجوز حیاتی،توسط یک فایروال در یک منطقه حیاتی حفاظت شده تصور می شود. دیگر برنامه های کاربردی نمی توانندبا این برنامه ی کاربردی حفاظت شده در ارتباط باشند مگر اینکه آنها هم دارای مجوز حیاتی مشابه باشند.
علاوه بر این،فایروال ارائه شده می تواند از مناطق چندگانه محافظت کند که هر کدام مجوز حیاتی متفاوتی دارند.ما برای فایروال مناطق چندگانه مجوز- CONTADS READو مجوزTNTERNET را به صورت مجوزهای حیاتی در نظر گرفتیم و تأثیر این فایروال را در جلوگیری از حمله های شدید ویژه به این صورت ارزیابی کردیم که آنها با حفاظت از برنامه کاربردی توسط یک یا هر دوی این مجوزها از حمله جلوگیری می کنند علاوه بر این که هیچ تأثیر منفی بر کارایی سیستم عامل اندروید ندارند. ادامه ی این مقاله به صورت زیر است. ما درباره ی مهندسی اندروید در رابطه با فایروال اضافه شده در بخش 2 بحث کرده ایم.درباره ی کارهای مربوط نیز در بخش 3 بحث کرده ایم. در بخش 4 ما طرح حفاظتی ارائه شده خود را نشان داده ایم . در بخش 5 ، کارایی و تأثیر اندرویدSEقبل و بعد از اضافه کردن مکانیزم فایروال ما، مورد ارزیابی قرار گرفته است.و در نهایت نتیجه گیری و کارهای آینده در بخش های زیر ارائه شده است.
مهندسی اندروید:پلت فرم اندروید - شکل - 3شامل 4 لایه است:لایه ی برنامه ی کاربردی،لایه ی چهاچوب برنامه ی کاربردی،لایه زمان اجرا و کتابخانه ها،لایه کرنل لینوکس.فایروال ما در لایه چهارچوب برنامه واقع شده است بویژه در Actirity managerکه با کل برنامه های در حال اجرا در ارتباط متقابل است و به برقراری پیام ها و تماس های بین برنامه های در حال اجرااجازه می دهد و یا از آنها جلوگیری می کند.
در اکتیویتی منیجر،سیستم بررسی می کند که آیا مجوز مورد نیاز جزء هدف در فایل مانیفیست برنامه ی ارسال کننده وجود دارد یا نه.اکتیویتی منیجر،به تماس ها اجازه برقراری می دهد در صورتی که اجازه ی آن در فایل مانیفیست برنامه ی ارسال کننده وجود داشته باشد،در غیر این صورت،خیر.همچنین در صورتی که به تماس اجازه ی برقراری می دهد که بین اجزاء یک برنامه مشابه برقرار شود و یا کاربر یک کاربر روت باشد .
در این مقاله ما یک شکل جدید را برای اندروید اضافه کرده ایم که در آن تماس بین برنامه های کاربردی چک می شودو در صورتی که این تماس برای یک برنامه کاربردی حفاظت شده توسط فایروال باشد اجازه برقراری آن داده می شود و در غیر این صورت رد می شود کارهای مربوطه:در این بخشِ، به طور خلاصه درباره ی کارهای قبلی مربوط به کاهش حمله شدید ویژه بحث کرده ایم.ساینت - - saint از این کلمات گرفته می شود Application Secure Interactionرابطه متقابل برنامه های کاربردی امنیتی ساینت،سیاستهای کنترل دسترسی برای حفاظت از اجزاء برنامه های کاربردی را ایجاد می کند.
ساینت سیاستهای زمان نصب و زمان راه اندازی را ایجاد می کند.در زمان نصب،سیاست گذاری به این صورت است که اعطای مجوزها به برنامه های کاربردی که ممکن است بر روی ابزار نصب شوند را مدیریت کند.مثلاً اگر یک برنامه اعلام کند که به مجوزp2 نیاز دارد و اینp1 مجوز به عنوان یکی از مجوزهای خطرناک تصور شود،آنگاه سیستم توسط کاربر تقاضای تأییدواگذاری مجوز لازم را برای برنامه کاربردی اعلام خواهد کرد.اما در مکانیزم ساینت،سیستم این اجازه را به هیچ برنامه کاربردی نمی دهد مگر اینکه سیاست ساینت با اعطای این مجوز به برنامه موافقت کند و از طرف دیگر توسط کاربر تأیید شود.سپس این برنامه می تواند بر روی ابزار نصب شود.
در زمان اجرا،اگر برنامه ی تماس گیرنده دارای مجوز لازم برای دسترسی به یک جزء از برنامه ی هدف باشد،آنگاه سیستم اجازه ی این تماس را به آن خواهد داد.اما در مکانیزم ساینت،سیستم یک سیاست دیگر دارد که در چهارچوب میان افزار واقع شده است و ارتباط و اثر متقابل بین اجزای برنامه های کاربردی اندروید را مدیریت می کند،در نتیجه،هیچ تماس،ارتباط درون فرآیندIpc ویا پیامIntent به طور موفق اجرا نمی شود مگر اینکه این ارتباط، تأیید کننده ی سیاست زمان اجرا بوسیله ی ساینت، باشد.
در مکانیزم ساینت،اگر یک برنامه ی کاربردی بخواهد که با یک جزء از برنامه ی کاربردی دیگر تماس بگیرد،آنگاه این برنامه ی کاربردی باید دارای مجوز لازم از اجزاء مطلوب باشد،اما اگر این برنامه دارای مجوز نباشد می تواند از برنامه کاربردی دیگری بهره ببرد که دارای مجوز دسترسی به اجزاء مطلوب باشد،بنابراین مکانیزم ساینت،قادر به محافظت در برابر حمله ی تخریب کننده ی جایگزین است و حمله های مجوز افراطی را متوقف می کند اما نمی تواند در مقابل حمله های تبانی محافظت کند.مک دروید،از برنامه های کاربردی در مقابل دسترسی به اطلاعات حیاتی و منابع مهم محافظت می کند.
وقتی یک برنامه کاربردی،درخواست دسترسی به اطلاعات حیاتی را دارد،مک دروید برای این برنامه به جای اطلاعات درخواستی حیاتی،اطلاعات خالی یا غلط می فرستد.مک دروید کاربر را قادر می سازد که تا در مسیر این برنامه را عوض کند تا در زمان اجرا به این اطلاعات حیاتی دسترسی پیدا نکندیا این دسترسی را رد کند.اما مک دروید فقط قادر است جلوی حمله های مجوز افراطی را بگیرد و در برابر حمله های تخریب کننده ی جایگزین و حمله های تبانی کاری انجام نمی دهد.ایکس من دروید - - Xmandroidاز این کلمه ها گرفته شده است: - eXtended monitoriny on Android - بررسی گسترش یافته در اندروید - .ایکس من دروید حمله های شدید ویژه را کم می کند با چک کردن ارتباط اجزاء درونی در بین برنامه های کاربردی.ایکس من دروید بررسی می کند که این ارتباطات درون اجزاء Iccs - - با سیاست گسترش یافته سیستم منطبق هستندو هر تماسی را که به این سیاست گسترش یافته سیستم دسترسی نداشته باشد،رد می کند.
ایکس من دروید می تواند حمله های تخریب کننده جایگزین و حمله های تبانی را کم کند . اما در مورد حمله های مجوز افراطی کاری انجام نمی دهد.مکانیزم - Kirin - کیرین در زمان نصب کار می کند یعنی جایی که کیرین برای ارائه تصدیق حداقل در زمان نصب معرفی می شود تا برای هر برنامه نصب شده بر روی ابزار اندروید بررسی لازم را انجام دهد کیرین با برنامه های مخرب در طول زمان نصب بوسیله ی اجرای قوانین معین روبرو می شود. و مانع دستیابی برنامه های دیگربه امتیازاتی می شود که آنها را قادر می سازد بر روی ابزار یا کاربر عملکرد مضر داشته باشد.کیرین می تواند حمله های مجوز افراطی را رد کند.روش اندرویدSEشبیه به ایکس من دروید است،جایی که اندرویید از لینوکسSEدر اجرای کنترل دسترسی اجباری - - MAC استفاده می کند و همچنین در کنترل دسترسی احتیاطی DAC - - و در لینوکس کرنل هم مورد استفاده قرار می گیرد.
این برای یک برنامه تماس گیرنده کافی نیست که مجوز مورد نیاز را برای دسترسی به جزء مورد نظر داشته باشد بلکه تماس باید سیاست امنیتی در سطح سیستم را تشخیص دهد.بنابراین اندرویدSE می تواند حمله های تبانی و حمله های تخریب کننده جایگزین را کم کند.بررسیIPC،حمله ی تخریب کننده ی جایگزین را به این صورت تعریف می کند که آن یک مجوز برای جایگزینی مجدد است.مجوز جایگزینی مجدد زمانی اتفاق می افتد که به برنامه کاربردی برای انجام یک کار معین اجازه داده نشده است و آن می تواند این کار را از طریق برنامه ی مجاز دیگری انجام دهد .
بررسیIPC یک مکانیزم برای ممانعت از مجوز جایگزینی مجدد است بوسیله ی جلوگیری از هر برنامه برای تشدید امتیاز انجام عملکرد غیر مجاز.بررسیIPC در صدد است که از جایگزینی مجدد جلوگیری کند که در ادامه می بینیم وقتی یک برنامه کاربردی،یک پیامIntent را از یک برنامه دیگر دریافت می کند،بررسیICP،امتیازهای برنامه مورد تماس واقع شده را کاهش می دهد تا شبیه به امتیازهای برنامه های تماس گیرنده شود.بررسیICP ،درخوست می کند که هر برنامه کاربردی می خواهد با برنامه دیگر تماس بگیرد باید دارای امتیاز مشابه باشد.این از دیدگاه ما غیر عملی است و ارتباط میان برنامه های کاربردی را در سیستم عامل محدود می کند به شکلی که می تواند تأثیر منفی بر روی کارایی و اجرای سیستم عامل داشته باشد.
بررسیIPC فقط جلوی حمله های تخریب کننده جایگزین را می گیرد و معرفی کنندگان آن درباره ی حمله های تبانی صحبتی به میان نمی آورند. تراست دروید،یک چهارچوب امنیتی برای محدود کردن دامنه در اندروید است تا دسترسی به داده های بدون مجوز را نشان دهد و رابطه ی متقابل بین برنامه های کاربردی را در سطوح مطمئن و متفاوت ایمن سازی کند.تراست دروید برنامه های کاربردی را بر اساس تعیین کردن هر برنامه در یک سطح مطمئن مجزا می کندو هر برنامه ی کاربردی را در یک سطح مطمئن به رنگی درمی آورد که با برنامه های کاربردی مشابه در سطوح مطمئن دیگر دارای رنگ مشابه باشد.
تراست دروید،برنامه های کاربردی را در سه سطح تقسیم بندی می کند:اول،برنامه های کاربردی از پیش نصب شده در سیستم - برنامه های منفی - .دوم،برنامه های اطمینانی شده ی دیگر که بوسیله ی یک سرمایه گذاری معرفی شده اند.سوم،برنامه های کاربردی غیر اطمینانی دیگر که از منابع عمومی دانلود شده اند مثل اندروید مارکت یا گوگل پلی.برنامه های اطمینانی و غیر اطمینانی باید از یکدیگر جدا شوند واز ارتباط آنها با همدیگر جلوگیری شود تمام برنامه های کاربردی باید قادر به دسترسی به برنامه های کاربردی سیستم باشند.کنترل دسترسی احتیاطی - - MAC از تراست دروید ارتباط بین اجزاء - - ICCرا شناسایی می کندوقتی کهICC بین یک برنامه تماس گیرند و یک برنامه مورد تماس واقع شده با رنگ های مختلف قرار دارد و از این ارتباط جلوگیری می کند.
طرح حفاظتی پیشنهاد شده:سیاست کلیدی فایروال ارائه شده این است که کاربران ابزارهای اندرویدی را از چیزهای را که قرار است در ابزارهای آنها بیفتد آگاه کند و پیشنهاد ما مبتنی بر این است که یک مجوز امتیاز حیاتی را از بین مجوزهای امتیاز خطرناک انتخاب کنیم و سپس تمام برنامه های کاربردی را با این مجوز در منطقه ی محافظت شده توسط فایروال تنظیم کنیم سپس تماس های بین برنامه های کاربردی در منطقه ی مشابه بدون هر گونه محدودیت مجاز هستند.
برنامه های کاربردی بیرون از فایروال به هیچ کدام از برنامه های کاربردی محافظت شده دسترسی نخواهند داشت مگر اینکه دارای مجوز انتخاب شده باشندو باید یک عضو از این منطقه باشند.برنامه های کاربردی خارج از فایروال می توانند بدون عبور از فایروال،با هم در ارتباط باشند.مفهوم اساسی فایروال این است،سطوح با ریسک بالا می توانند به سطوح پایین دسترسی داشته باشند،اما سطوح پایین نمی توانند به سطوح بالاتر دسترسی داشته باشند.بنابراین برنامه های کاربردی داخل فایروال می توانند به هر برنامه کاربردی خارج از فایروال دسترسی داشته باشندولی عکس آن ممکن نیست.برنامه های کاربردی در مناطق مختلف نمی توانند با همدیگر در تماس باشند.