معجونی از ناپختگی و تجربه با چاشنی احساسات، یادگیری و چالش و ... که شاید گفت برنامه نویس هستم اما برنامه نویسی خسته
امنیت برنامه های موبایلی با دستور پخت owasp
در پروژه بازی با مفهوم Gamification به عنوان مشاور و رابط فنی مشغول به کار شدم، بیشتر نقشم این بود که پروژه از لحاظ فنی مسیر درستی طی کنه و توصیه ها و خواسته های کارفرما و تیم فنی را به زبان قابل درک برای طرفین مطرح کنم.
در این پروژه قرار شد یکی از بانک های دولتی به عنوان حامی معنوی با ما همکاری کنه و یکسری زیرساخت برای Gamification که نیاز داشتیم را در اختیار ما قرار بده
بازی باید مسائل بانکی رو در قالب بازی و سرگرمی به بازیکن ارائه بده که هم بازی باز لذت ببره و هم مواردی رو یاد بگیرد، پروژه با موتور Unity و برای نسخه اندروید شروع شد.
پروژه با تمام سختی هاش و موارد مورد نظر تقریبا تمام شد که بانک گفت چون اسم ما در بازی قرار دارد باید بازی طبق استانداردهای بانک نهایی سازی بشه موارد درخواستی بانک خیلی زیاد بود اما مهمترین تاکیدی که داشتن بحث امنیت در بازی بود.
قرار شد بانک نسخه بازی رو بده به یک شرکت ثالث برای تست امنیت برنامه های اندرویدی، هرچند ما با این موضوع مخالف بودیم که برنامه و بازی دو مقوله جداست و ماهیت آنها با هم متفاوت است اما به ناچار قبول کردیم.
شرکت ثالث تست های خودش رو انجام داد و خروجی آنرا برایمان ارسال کرد یک گزارش مفصل و طولانی، اما موارد ذیل خروجی اصلی گزارش بود
اولین سوالی که پیش اومد این تست براساس چه استانداردی انجام شده است؟
پاسخ owasp بود
اینجا بود که اولین بار واژه owasp آشنا شدم.
قرار شد تیم فنی ضعف های مورد نظر رو برطرف کنه و دوباره بازی بره برای تست.
بعد از چند روز نسخه جدید برای تست ارسال شد، حدس بزنید چی شد؟؟؟
بازم ریجکت شد با همون ضعف های امنیتی
کلی با تیم فنی بحث کردیم و یکجورایی درست می گفتن unity ذاتاً نمی تونه موارد این چنینی رو پوشش بده، به عنوان مشاور و رابط فنی با مشکل بزرگی مواجه شدم.
شروع کردم تحقیق کردن به هر سایتی که در خصوص امنیت و بازی سازی بود سر زدم انجمن های اختصاص یونیتی را گشتم، افرادی راهکارهایی ارایه داده بودن اما یا خیلی ابتدایی یا ناقص بودن، مونده بودم که چکار کنم، واقعا مشکل داشت حاد می شد.
با هرکسی که صحبت کردم در این خصوص اطلاعی نداشت، اشخاصی هم که در زمینه امنیت بودن اطلاعی از ساختار بازی سازی و موتور unity نداشتند.
به سایت owasp مراجعه کردم راهکارهاش همه برای برنامه موبایل بود، تازه می خواستن در زمینه بازی کارایی انجام بدن.
بعد از کلی مطالعه و مشورت به این نتیجه رسیدم که بهترین گزینه ساخت .... هست.
به دلایل امنیتی و حق معنوی کارفرما از توضیح راه حل معذورم.
وقت برای اینکه شخص جدید به تیم اضافه بشه نبود (مشکلاتی در این راه بود).
خودم شروع به کدنویسی کردم، برای اینکه مطمئن بشم که دارم درست پیش می روم مستندات owasp رو زیرو کردم، از stackoverflow استفاده کردم، مقالات امنیتی زیادی خوندم.
مهمترین چالشی که باهاش روبرو بودم بحث Bypass بود که سعی کردم به هر راهکاری که به ذهنم میرسه یا دیگران پیشنهاد کرده بودن رو پیاده کنم.
تا دلتون بخواد با چالش روبرو شدم تا به نتیجه برسم، واقعا برای خودش پروژه بود.
از معدود کدنویسی هایی بود که واقعا از انجامش لذت بردم.
صحبت هام طولانی شد، اگر فرصت بود از چالش های این پروژه امنیت براتون می نویسم.
مطلبی دیگر از این انتشارات
برداشتی از فیلم راشامون از آکیرا کوروساوا
مطلبی دیگر از این انتشارات
الگوهای برنامه نویسی Asynchronous
مطلبی دیگر از این انتشارات
برنامه حسابداری ساده