در دنیای توسعه اپلیکیشنهای اندروید، مدیریت دسترسی به کامپوننتهای داخلی (مانند Content Providerها و Broadcast Receiverها) یکی از ارکان کلیدی تامین امنیت است.
در این چالش، شما با یک اپلیکیشن نمونه روبرو هستید که بهطور پیشفرض دارای پیکربندیهای ناامن در فایل مانیفست خود میباشد. این ساختار ناامن به اپلیکیشنهای دیگر اجازه میدهد تا بدون احراز هویت یا داشتن مجوزهای لازم، به دادههای درونی یا قابلیتهای کنترلی آن دسترسی پیدا کرده و از آنها سوءاستفاده کنند.
هدف اصلی در این سناریو، شناسایی این حفرههای امنیتی و بررسی نحوه تعامل غیرمجاز با کامپوننتهای اکسپورتشده است.
این چالش مستقیماً بر پایه استانداردهای تست امنیتی موبایل (MASTG) طراحی شده است.
بهطور خاص، شما با دو مورد از آسیبپذیریهای رایج در سطح پلتفرم مواجه خواهید شد که در ارزیابیهای امنیتی، تحت تست کیسهای MASTG-TEST-0356 (ارزیابی امنیت Content Providerها) و MASTG-TEST-0366 (ارزیابی امنیت Broadcast Receiverها) بررسی میشوند.
درک دقیق این استانداردها و تفاوت میان پیکربندیهای صحیح و ناامن، به شما کمک میکند تا به عنوان یک متخصص، آسیبپذیریهای نهفته در تعاملات میانبرنامهای (IPC) را به درستی تشخیص دهید.
برای شروع فرآیند ارزیابی، لازم است ابتدا با ابزارهای مهندسی معکوس، ساختار پکیج و کدهای اپلیکیشن را دیکامپایل کرده و فایل مانیفست را برای یافتن کامپوننتهای بدون محدودیت بررسی کنید.
پس از شناسایی نقاط ضعف معماری، تمرکز شما بر روی تستهای دینامیک خواهد بود تا بررسی کنید چگونه یک موجودیت خارجی میتواند بدون احراز هویت، دادههای حساس را بازیابی کرده یا دستورات خاصی را به اپلیکیشن تزریق کند.
در نهایت، هدف این چالش تنها یافتن آسیبپذیری نیست، بلکه کسب مهارت در پیادهسازی مکانیزمهای دفاعی صحیح است؛ از جمله استفاده از صفت exported="false" برای کامپوننتهای درونبرنامهای، یا بهرهگیری از مجوزهای سطح امضا (signature) در شرایطی که اشتراکگذاری داده اجتنابناپذیر است.
این سناریو تمرینی کاربردی برای درک عمیقتر از مدیریت مجوزها و ایمنسازی معماری اپلیکیشنهای اندرویدی است.
این چالش توسط آقای رضا رضایی طراحی شده است.
درصد پیشرفت حل چالش
0%