خطرات امنیتی اپلیکیشن‌های HTML5

ترکیب HTML5 و جاوااسکریپت به یک راه حل محبوب برای ساخت اپلیکیشن‌ها و وب سایت‌ها توسط توسعه دهنده‌ها تبدیل شده است. در سال‌های اخیر، این ترکیب باعث شده سرعت و قابلیت اطمینان افزایش پیدا کند.
اگر چه در اکتبر 2014 بود که W3C زبان HTML5 را به عنوان یه استاندارد تایید کرد، اما استفاده از آن سالهای زیادی است که شروع شده. هم اکنون 30% از 500 شرکت برتر جهان که شامل غولهای آی تی مثل فیسبوک، گوگل، مایکروسافت و نت‌فلیکس هم می شود، در حال استفاده از آن هستند.
تحقیقات نشان می‌دهد که تا سال 2016 نزدیک به نیمی از اپلیکیشن های موبایل بر پایه ی HTML5 خواهند بود. یکی از دلایل محبوبیت HTML5 این است که به شدت کراس-پلتفرم هست و به توسعه دهنده‌ها اجازه می‌دهد تا اپلیکیشن‌هایی را برای پلتفرم‌های مختلف مثل iOS، اندروید، ویندوز و وب بسازند.
محبوبیت فزآینده‌ی جاوااسکریپت هم از طرف دیگر باعث شده بهترین ترکیب برای HTML5 باشد. آنها در کنار هم به سرعت در حال تبدیل شدن به اصلی‌ترین تکنولوژی‌های طراحی اپلیکیشن‌های موبایل هستند. البته این دسته از تکنولوژي هم طبیعتا مخالفان، مشکلات و پرسش‌های خود را دارد، یکی از این سوالات این است که …

آیا اپلیکیشن های مبتنی بر HTML5 تهدیدات امنیتی هم برای توسعه دهنده‌ها و کسب و کارها دارند؟

متاسفانه جواب بله هست. اپلیکیشن‌هایی که با HTML5 ساخته می‌شوند مثل هر اپلیکیشن مبتنی بر وب هستند. توسعه دهنده‌ها باید تدابیر امنیتی مناسبی را در برابر حملات سایبری اتحاذ کنند تا از داده‌ها و ارتباطات حفاظت کنند. متاسفانه تعداد کمی از توسعه دهنده‌ها این کار را می‌کنند. بیایید ببینیم چه تهدیداتی پیش روی اپلیکیشن‌های مبتنی بر HTML وجود دارند:

تهدیدات از جانب کدهای مخرب

با توجه به تحقیقاتی که انجام شده، اپ‌های HTML5 از طریق خطاهای توسعه دهنده‌های وب در معرض تهدیدات امنیتی قرار دارند. برای مثال، اجرای خودکار کدهای مخربی که از طریق بلوتوث، WiFi یا پیام‌های متنی به برنامه ارسال می‌شوند.
کدهای مخرب می‌توانند اطلاعات حساسی را از موبایل (تبلت) قربانی بگیرند و آن را در اختیار فرد مهاجم قرار بدهند. حتی بدتر، کدهای مخرب می‌توانند تکثیر شده و اپلیکیشن را وادار کنند کارهای ناخواسته‌ای مثل ارسال sms انجام دهد. همچنان که استفاده از این پلتفرم در حال گسترش است، ضعف‌های امنیتی آن نیز در حال تبدیل شدن به مشکلات بزرگتری هستند.
توسعه دهندگان با استفاده از API های نادرست، اپلیکیشن‌ها را آسیب پذیر می‌کنند و در نتیجه اپ‌ها می‌توانند کدهای مخربی را برای اجرا به موتور جاوااسکریپت ارسال کنند. استفاده از API درست برای جلوگیری از بروز رخنه‌ی امنیتی ضروری است. توسعه دهنده‌ها معمولا کدها و داده‌ها را با هم ترکیب می‌کنند و این باعث می‌شود هنگامی که اطلاعات از یک منبع غیرقابل اعتماد وارد برنامه شوند، اپلیکیشن به شدت آسیب‌پذیر شود. البته این مشکل فقط مختص اپ‌های مبتنی بر HTML5 نیست، اما موبایل‌ها، بر خلاف مرورگرها، از کانال‌های مختلفی می توانند مورد هجوم واقع شوند. به غیر از خطای توسعه دهنده‌ها، کدهای مخرب می‌توانند از طریق فایل های صوتی یا تصویری (به عنوان متادیتا)، QR کدها ، بلوتوث و رشته‌های SSID که از طریق WiFi انتقال می‌یابند و پیامک نیز وارد برنامه شوند.
میان افزار(Middleware) یک مسئله ی مهم است

اپلیکیشن‌های HTML5 همواره به یک فریمورک واسط برای کراس-پلتفرم بودن نیاز دارند. این واسط یا میان افزار یکی از راههایی است که جاوااسکریپت می‌تواند سیستم عامل را به زبان خودش صدا بزند. این میان افزار مسئول حملات کدهای مخرب است که با نام XSS یا (cross-site scripting) شناحته می‌شوند، به صورتی که میان افزار، داده ها و کد را پذیرش کرده و دومی را به صورت خودکار اجرا می‌کند.
مشکل در دستگاه‌های موبایل به علت دسترسی‌هایی که به اپلیکیشن می‌دهیم (مثل دسترسی به دفتر تلفن، اطلاعات مکانی و دوربین) کمی بزرگتر است. تحقیقات به صورت جزئی‌تر از PhoneGap به عنوان یک میان افزار محبوب نام می‌برند. با استفاده از پلاگین‌ها، PhoneGap می‌تواند به اجزای مختلفی از تلفن همراه شما دسترسی داشت. محققان دریافتند که 77 پلاگین از مجموع 186 پلاگین می‌توانند مورد سوء استفاده قرار بگیرند. بدین معنی که این پلاگین‌ها می توانند کد و داده‌ها را از کانال‌های خارجی دریافت کرده و آنها را اجرا کنند.
حدود 764 اپ رایگان در پلی‌استور وجود دارند که از PhoneGap استفاده می‌کنند و محققان توانستند در 2 تا از این اپلیکیشن‌ها حملات افزودن کد مخرب انجام دهند. البته این درصد بسیار کوچکی است اگر در نظر بگیریم که بیش از 12000 اپلیکیشن رایگان اندرویدی وجود دارند.

فقط اپلیکیشن های مبتنی بر HTML5 نیستند که کاربران را با مشکلات امنیتی مواجه می‌کنند، اما مشکلی وجود دارد که به طور کلی این اپ‌ها را تحت تاثیر قرار می‌دهد. Appthority که یک شرکت در زمینه ی مدیریت بحران اپلیکیشن‌های موبایل است، در گزارش زمستان 2014 خود 400 اپ را که شامل 100 اپ برتر پولی و 100 اپ برتر رایگان iOS و اندروید است را بررسی کرد. این گزارش به وجود فعالیت‌های منجر به بحران بسیار زیاد در این اپ ها اشاره می‌کند که بسیاری از آنها به حریم خصوصی کاربران مربوط است.
این گزارش نشان می‌دهد تقریبا 70 درصد از اپ‌ها اجازه‌ی ردیابی مکان را می‌دهند، 56 درصد می‌توانند UDID را شناسایی کنند و 31 درصد می‌توانند به دفترچه آدرس کاربر دسترسی پیدا کنند. 53% از این اپلیکیشن‌ها می توانند داده‌ها را برای تجزیه و تحلیل در اختیار اشخاص ثالث یا شبکه‌های تبلیغاتی قرار دهند، 69% از ورود به برنامه بصورت ساده استفاده می‌کنند و 51% نیز پرداخت درون برنامه‌ای دارند.
بیشتر از همه، پرداخت درون برنامه‌ای به خاطر نوع داده‌ای که جمع آوری می‌کنند خطرآفرین هست. این برنامه‌ها معمولا اطلاعات حساسی مانند آدرس ایمیل، شماره تلفن، آدرس و احتمالا اطلاعات بانکی را جمع‌آوری می‌کنند. این اطلاعات می‌توانند در اختیار اشخاص ثالث مانند شرکت‌های تجزیه و تحلیل و یا شبکه‌های تبلیغاتی قرار داده شده و در معرض سوءاستفاده قرار گیرند. این فعالیت‌های مخاطره آمیز فقط محدود به اپ‌های رایگان نیست. در این گزارش از تقریبن 80% از برترین اپ های پولی اندروید و iOS نیز نام می‌برد که مثال‌هایی از فعالیت‌های مخاطره آمیز در آنها مشاهده شده است.

راهکار

محققان راهکارهای قطعی برای این مشکلات ارائه نداده‌اند. آنها سه راه حل را پیشنهاد کرده اند:

  1. Sanitization، که به معنی تفکیک کدهای ترکیب شده با داده‌هاست.
  2. کاهش و یا ممنوع کردن دسترسی برای کد غیر قابل اطمینان
  3. برچسب زدن به ورودی فرم‌ها برای جلوگیری از اجرای کدها از منابع غیرقابل اعتماد.

اپلیکیشن شما باید یک چارچوب احراز هویت را فراهم آورد و ویژگی‌های امنیتی قوی زیر را شامل شود:

  • رمزنگاری درون دستگاهی
  • امن سازی ارتباطات بین کلاینت و سرور
  • کنترل دسترسی
  • احراز هویت آفلاین

اپلیکیشن های کراس-پلتفرم از ویژگی‌های منحصر به فرد توسعه‌ی برنامه‌های موبایل است، اما هرگز نباید از مشکلات امنیتی و تجربه ی کاربری غافل شد. یکی از راههای دستیابی به این مهم، تمرکز بر روی یکپارچگی بین اپلیکیشن، ویژگی‌های ابری منحصر به فرد پلتفرم آن و سرویس احراز هویت از راه دور و ترکیب آنها با اقدامات امنیتی مناسب برای توسعه ی وب می باشد.

+

مهدی علیپور

مهدی علیپور هستم. فارغ التحصیل مهندسی فناوری اطلاعات و توسعه دهنده PHP و دانشجوی تمام وقت جاوااسکریپت.

همچنین ممکن است دوست داشته باشید ...

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *