موسسه خبری سایبربان:هنگامی که صحبت از ساخت برنامههای کاربردی امن برای تلفن همراه به میان میآید، بیشتر اشتباهها و خطاها در حوزهی مدیریت جلسات کاری مطرح میشوند. این خطاها به خودی خود خطر قابل توجهی را به دنبال ندارند اما از این واقعیت نباید چشم پوشید که هرچه تعداد خطاها بیشتر میشود بر میزان آسیبپذیری نرمافزار نیز افزوده میشود. با وجود این هرگز نمیتوان برنامهای را پیدا کرد که شامل چندین اشتباه نباشد.
حال قصد داریم به بیان اشتباهات رایج بپردازیم که توسعهدهندگان و کارشناسان امنیتی میتوانند با بررسی آنها از مدیریت صحیح برنامهی کاربردی تلفن همراه خود مطمئن شوند.
۱. به سرویسگیرنده اعتماد نکنید
کارگزار میبایست با هر درخواستی که از سوی برنامه ارائه میشود بیاعتماد رفتار کند، درواقع باید با درخواست مطرحشده مثل حملهای مخرب برخورد کند. بنابراین لازم است کارگزار اعتبار هر درخواست را تأیید نماید.
۲. نیاز به رمزگذاری
برای جلوگیری از اینکه مهاجمان بتوانند ارتباطات بیسیم را از یک دستگاه تلفن همراه شنود کنند، میتوان از SSL برای رمزگذاری سرویسگیرنده استفاده کرد.
۳. منقضیشدن جلسات کاری
توسعهدهندگان اغلب به جلسات کاری تلفن همراه اجازه میدهند مدتهای مدیدی فعال باقی بماند، به همین خاطر نیازی نیست کاربر ورود مجدد به سامانه داشته باشد و همیشه در آن حضور دارد. ولی تا زمانی که جلسات کاری فعال باشند، مهاجمان این امکان را دارند که درخواستهای مخربی را به کارگزار ارائه کنند. درواقع توسعهدهندگان به جای اینکه اندکی زحمت به کاربران بدهند امنیت را قربانی میکنند.
۴. اسراری را نزد خود نگه دارید
یک راز مشترک که تنها سرویسگیرنده و کارگزار از آن خبر دارند، در حقیقت سرویسگیرنده از آن برای امضای درخواستها استفاده میکند و کارگزار را از پذیرش درخواستهای ساختگی برحذر میدارد.
۵. مدتزمانی را که یک درخواست معتبر است، محدود نمایید
هرچه دورهی اعتبار یک درخواست بیشتر باشد، خطر اینکه مهاجم احتمالی بخواهد سد راهش شود، و آن را دستکاری یا شنود نماید بیشتر میشود. تمامی درخواستها میبایست در سمت سرویسگیرنده دارای برچسب زمانی باشند و با به سر رسیدن مدتی که توسط کارگزار تعریف شده، منقضی شوند.
۶. هرگز اجازه ندهید درخواستها تکرار شوند
مهاجمان میتوانند درخواستهایی را که جلوی آنها گرفته شده، بار دیگر ارائه کنند. این امر ممکن است صرفاً باعث آزار کاربر شود (مانند تکرار یک توییت) و یا عواقب وخیمی را به همراه داشته باشد (مانند زمانی که یک درخواست انتقال پول دوباره فرستاده میشود). توسعهدهندگان میتوانند با استفاده از NONCE راه درخواستهای تکراری را سد کنند؛ NONCE شمارهای است که یک بار استفاده میشود. سرویسگیرنده یک عدد تصادفی را برای هر درخواست تولید میکند. کارگزار این اعداد را بهطور مرتب پیگیری میکند تا اطمینان حاصل کند که درخواستها واقعی هستند و اجرای مجددی در کار نیست. چنانچه یک تکرار NONCE رخ دهد، کارگزار متوجه میشود که درخواست نامعتبر است. فهرست NONCEهایی که روی کارگزار ذخیره شدهاند را میتوان با استفاده از برچسب زمانی کمینه کرد، همانطور که در مورد ۵ به آن اشاره شد.
۷. هرگز درخواستهای ساختگی و اصلاحشده را نپذیرید
مهاجم ممکن است به جای تکرار یک درخواست تمایل داشته باشد آن را دستکاری کند. مثلاً شاید مهاجم پول را به حساب دیگری انتقال دهد که دیگر در دسترس نیست.
به کمک یک راز یا کلید مشترک رمزنگاری میتوان از این رویه ممانعت کرد. تهیهی یک نسخهی HMAC1 از درخواست و ارسال آن به گارگزار به همراه خود درخواست به کارگزار اجازه میدهد بررسی کند که آیا تغییری در درخواست صورت گرفته یا خیر.
نتیجهگیری
توسعهدهندگان برای ساخت یک برنامهی کاربردی قدرتمند ویژهی تلفن همراه میبایست تکتک گزینههای مذکور را به دقت بررسی کنند. چنانچه از هر یک از موارد صرفنظر شود برنامه برای نفوذ یا حملهی مهاجمان مهیا میشود.