حتما این ضربالمثل را شنیدهاید که «دیوار موش دارد، موش هم گوش دارد».
این ضرب المثل در دنیای وب و بهویژه وقتی پای امنیت اطلاعات در میان باشد، به شکلهای مختلفی اتفاق میافتد.
چند روز پیش تصمیم گرفتم مقداری یخ از اینترنت خریداری کنم. طبق روال معمول به سراغ گوگل رفتم و با سایتی به نام «الویخ» آشنا شدم.
این استارتآپ خوشفکر، سرویس خوبی برای دریافت و تحویل محصول داشت و بهموقع یخ مورد نیاز را به دستم رساند. چند روز بعد در حالی که مشغول مرتب کردن و بستن تبهای اضافی مرورگر بودم، ناگهان چشمم به تب ثبت سفارش سایت «الویخ» و اطلاعات جالب آن افتاد.
چیزی که همان ابتدا نظرم را جلب کرد، این بود که شماره سفارش من در آدرس بار بهوضوح قابل مشاهده بود. به همین دلیل احتمال دادم که بتوانم سفارش افراد دیگر را نیز با تغییر همین شماره سفارش ببینم.
من بهصورت کاملاً تصادفی یک شماره را تغییر دادم و توانستم اطلاعات یکی دیگر از مشتریان شامل تاریخ خرید، شماره سفارش و مبلغ آن را ببینم.
تصمیم گرفتم آزمایش دیگری انجام دهم و بیشتر درباره عملکرد امنیت اطلاعات «الویخ» بدانم. کمی بعد با نوشتن یک کد ساده ۲۰ تا ۳۰ خطی، توانستم تمام سفارشهای این سایت را از روز اول تا زمان آزمایش بهراحتی ببینم.
در این آزمایش اطلاعات جالبی به دست آمد. بهعنوان نمونه من فهمیدم نخستین سفارش این فروشگاه ۵ دی ماه ۹۴ و آخرین سفارش (تا روز آزمایش) در تاریخ ۶ مرداد ۹۸ ثبت شده بود.
همچنین این سایت در مدت فعالیت خود، نزدیک به ۵۱۵ سفارش دریافت کرد و نزدیک به ۱۳ میلیون و ۶۰۰ هزار تومان از این راه به دست آورد.
ناگفته پیداست که لو رفتن چنین اطلاعاتی در نهایت به ضرر کسبوکار و به نفع رقبا تمام میشود. بهویژه آنکه بارها و بارها شاهد آن بودهایم که اطلاعاتی مانند لیست سفارشها و اطلاعات تماس مشتریان بهراحتی از طریق برخی سایتها لو رفته است.
این موضوع نشان میدهد که بحث امنیت اطلاعات در زمان طراحی سایت از اهمیت بسیار بالایی برخوردار است.
چگونه توانستم اطلاعات را استخراج کنم؟
همانطور که پیشتر اشاره شد، بهراحتی و با تغییر اعداد سایر سفارشها قابل پیگیری شد. چرا که بر اساس برنامهنویسی این سایت، شماره سفارشها بهصورت سری افزوده میشود. همچنین شماره سفارش از طریق url بهعنوان شماره پیگیری نمایش داده میشود به همین دلیل میتوان بهراحتی اطلاعات و جزییات سفارش از مبلغ تا تاریخ ثبت سفارش را بهراحتی به دست آورد.
راهحل درست چیست؟
البته راههای زیادی برای مقابله با این موضوع وجود دارد. مثلا بهطور معمول باید از شماره پیگیری تصادفی استفاده کرد تا کاربر با کم و زیاد کردن یک رقم نتواند سفارشهای دیگر را مشاهده کند.
یک راهحل دیگر برای مقابله با این مشکل استفاده از هشآیدی است. در این روش اطلاعات به رشتههای هش تبدیل میشود و سپس بهصورت تصادفی به اعداد تبدیل خواهد شد.
علاوه بر این باید روش یا اعتبار سنجی به کار گرفته شود تا بفهمیم کاربری که درخواست دیدن جزییات را دارد، آیا مجاز به دسترسی است یا خیر.
این جزو مواردی است که میتواند دسترسی مشاهده افراد را به سفارشهای خود محدود کند.
علاوه بر تمام این موارد، یک راه ساده برای جلوگیری از چنین مشکلاتی استفاده ابزارهایی مانند گوگل ریکپچا است. گوگل ریکپچا کمک میکند که بتوانیم بین کاربر واقعی و رباتها تمایز قائل شویم.
همچنین در لایههای بالاتر میتوان از طریق برنامهنویسی سایت محدودیتهایی را لحاظ کرد که کاربر نتواند بیش از تعداد مشخصی درخواست ارسال کند و در صورت بروز این اتفاق بهطور موقت دسترسی کاربر مسدود شود.
سخن آخر اینکه همه ما میدانیم امنیت اطلاعات اهمیت بالایی دارد و لو رفتن آن میتواند منجر به شکست یک کسبوکار شود.