نقد و بررسی
محافظت از کد منبع برای جلوگیری از هک شدن برنامه های تلفن همراه :
همه ما با داستانهای هک شدن وبسایتهای معروف یا دستگاههای IT در خطوط هوایی و بانکهایی که موردحمله قرار میگیرند، آشنا هستیم.
شاید کمتر با برنامههای موبایلی که تلفنهای هوشمند ما را به خطر میاندازد آشنا باشیم، اما این هدف بهطور فزایندهای برای مهاجمان محبوب است.
یک هکر موفق میتواند در عرض چند دقیقه یک برنامه را به خطر بیندازد.
به پایگاه داده، دارایی معنوی یا حتی مشتریان خود دسترسی پیدا کند.
بنابراین، بسیار مهم است که توسعهدهندگان برنامه همه تلاش خود را برای اطمینان از امنیت نرمافزار خود انجام دهند.
برنامهها قبل از اینکه در App Store یا Google Play راهاندازی شوند، تحت ممیزی امنیتی مستقل قرار میگیرند.
این بهویژه برای برنامههایی که با اطلاعات بسیار حساس سروکار دارند مانند برنامههای بانکی یا دولتی بسیار مهم است.
این فرایندی است که باید در فرآیند توسعه نرمافزار شروع شود تا اطمینان حاصل شود که امنیت از ابتدا در نظر گرفتهشده است.
توسعه امن
توسعهدهندگان همچنین باید تلاش کنند تا از تست امنیتی برنامه که قبلاً ثابتشدهاند پیروی کنند،
مانند راهنمای تست امنیت موبایل، تهیهشده توسط Open Security Application Security Project (OWASP).
این راهنما تعدادی از منابع احتمالی حمله را مشخص میکند و
از توسعهدهندگان میخواهد اطمینان حاصل کنند که برنامه خاص آنها در هر یک از آنها مستعد حمله نیست.
کد منبع اصلی(سورس کد)
یکی دیگر از موارد مهم آسیبپذیری، کد منبع اصلی(سورس کد) است.
بهطورمعمول، هنگام ارسال برنامهها، کد منبع بهصورت متن ساده منتشر میشود که مشاهده آن را برای همه آسان میکند،
چه دوست و چه دشمن. با استاندارد ISO 27001 باید کد منبع بهاندازه کافی محافظت شود،
اما همان طور که در استاندارد امنیت اطلاعات ISO 27001 مورد اشاره قرار گرفته است،
تهدید کافی این است که مهاجمان دارای ابزار قوی برای به خطر انداختن سیستمها هستند بهطوریکه تلاش میکنند شناسایی نشوند.
آسیبپذیریهای کد منبع، خطرات زیادی را به همراه دارد که ازجمله آنها :
توانایی تغییر مستقیم کد، تغییر API سیستم، تغییر محتویات حافظه یا دستکاری دادهها و منابع برنامه برای مهاجمان است.
این اجازه میدهد تا هکرها استفاده موردنظر از برنامه را تغییر دهند.
شاید حتی از این خطرناکتر، دسترسی به کد منبع باعث میشود که هکرها بتوانند کپیبرداری را آسانتر کنند،
به این امید که کاربران را فریب دهند و آن را برای اهداف فیشینگ نصب کنند.
ایمن نگهداشتن کد منبع
برای مقابله با این مسئله، مهم است که توسعهدهندگان روشهای قوی محافظت از کد منبع را اجرا کنند ،
که کد منبع را مبهم میکند تا برنامههای شبیهسازی و مهندسی معکوس را بسیار سختتر کند.
این روشها همچنین باید دفاعیات زمان اجرا را برای خنثی کردن هرگونه کپیبرداری و قفلکردن مهاجمان احتمالی فراهم کنند.
روشهایی برای در امان نگهداشتن کد منبع
موارد زیر تعدادی از متداولترین روشهایی است که برای در امان نگهداشتن کد منبع از حملات استفاده میشود:
-
رمزگذاری:
برای برنامهها، کد منبع اغلب باارزشترین چیز است، مخصوصاً در قسمت برنامهنویسی.
-
پایش:
برنامه نویسان همچنین باید با تنظیم هشدارها برای اطلاع از هرگونه فعالیت مشکوک، مراقب دادههای خود باشند.
همانند بسیاری از مشکلات موجود در زندگی، تشخیص بهموقع، امکان اقدامات آسانتر و مؤثرتر را برای شما فراهم میکند.
درعینحال بینشی برای تقویت دفاع در آینده نیز فراهم میکند.
-
محدودیت دسترسی:
بدیهی است که محدود کردن دسترسی به کد منبع یکی از روشهای ساده دفاع است.
اگرچه ممکن است با انتشار برنامه این امکان وجود نداشته باشد، اما در سازمان شما دسترسی فقط به آن دسته از اعضای دارای نقش عملی محدود میشود.
حتی در میان این کارمندان، احراز هویت دوعاملی باید انجام شود تا اطمینان حاصل شود که فقط افراد مناسب به کد شما دسترسی دارند.
-
حق چاپ:
قانون کپیرایت یکی از راههای بهتر برای محافظت از کد منبع شماست و معقول است که با کد خود همانگونه رفتار کنید که ،
در مورد سایر قسمتهای مالکیت معنوی خود رفتار میکنید.
این حتی ممکن است شامل صدور حق ثبت اختراع باشد تا اطمینان حاصل کنید که ازنظر قانونی کاملاً محافظت میشوید.
نتیجه گیری کلی
اگرچه هر یک از این رویکردها ممکن است بهصورت جداگانه ارزشمند باشد، اما معمولاً بهتر است تا آنجا که میتوانید از آنها استفاده کنید،
تا اطمینان حاصل کنید که تمام خلاءهای خود را پوشاندهاید.
بههرحال، تا آنجا که به کد منبع شما مربوط میشود، بهندرت میتوانید محافظت بیشازحد داشته باشید.
برنامههای تلفن همراه بهطور فزایندهای بخش مهمی از زندگی ما هستند و ازآنجاییکه این برنامهها برای کاربران بسیار ارزشمند است،
بنابراین هدف جنجالی مهاجمان مشتاق به دستیابی به چنین گنجینهای از دادهها نیز هستند.
به همین ترتیب، بسیار مهم است که توسعهدهندگان تمام تلاش خود را برای اطمینان از ایمن بودن حداکثری کد منبع خود انجام دهند.