در بعضی از اپلیکیشنها، مثل نسخه دسکتاپ پیام رسان واتساپ، برای ورود به حساب کاربری، میتوانید یک کد QR را با استفاده از گوشی خود، اسکن کنید. روشی به نام QRLJacking برای ورود یک هکر به حساب کاربری قربانی وجود دارد که در آن از ورود به حساب کاربری با کد QR استفاده میشود. در این مقاله میخواهیم در رابطه با QRLJacking صحبت کنیم. البته، پیش از شروع صحبت در رابطه با این روش هک ورود به حساب کاربری، بد نیست که در رابطه با مفاهیمی مثل کد QR و «سرقت نشست» (session hijacking) نیز صحبت کنیم. با سایبرنو همراه باشید.
QR خلاصه شده عبارت Quick Response به معنی واکنش سریع است. در واقع، کد QR را میتوان جایگزین بارکدهای خطی دانست. کدهای QR در مقایسه با بارکدها، حامل اطلاعات بسیار بیشتری هستند. یکی از کاربردهای کدهای QR، استفاده از آنها برای ورود به حساب کاربری است. برای مثال، برای اینکه اولین بار در کامپیوتر خود، از پیامرسان واتساپ استفاده کنید، باید یک کد QR را که در کامپیوتر نمایش داده میشود، با گوشی خود، اسکن کنید.
البته کدهای QR، برخلاف آن چیزی که به نظر میرسد، خیلی ایمن نیستند. به عنوان مثال، مهاجمان سایبری میتوانند در این کدها، URLهای حاوی بدافزار قرار دهند و دستگاههای کاربران را آلوده کنند. از آنجایی که چشم انسان، قابلیت خواندن کدهای QR را ندارد، به راحتی میتوان این کدها را برای حملات سایبری، تغییر داد.
هایجک کردن سشن (session hijacking) یا سرقت نشست، اصطلاحی است که برای بیان نفوذ هکرها به حسابهای کاربری قربانیان، استفاده میشود. در این نوع هک کردن، مهاجم یا همان هکر، بین دستگاه قربانی و سرور قرار میگیرد و میتواند وارد حساب کاربری قربانی شود و اطلاعاتش را سرقت کند یا کنترل حساب کاربری را به طور کامل، در اختیار بگیرد. به این کار، اصطلاحا، سرقت نشست گفته میشود.
حالا که هم با مفهوم کد QR و هم با مفهوم سرقت نشست، آشنا شدید، وقت آن است که در رابطه با QRLJacking، صحبت کنیم. همچنان با ما همراه باشید.
QRLJacking، خلاصه شده عبارت Quick Response Code Login Jacking به معنی ربودن ورود به حساب کاربری با استفاده از کد QR است. QRLJacking را میتوان یک حمله مهندسی اجتماعی دانست که برای نفوذ به حسابهای کاربری قربانیان، از قابلیت ورود با استفاده از کد QR، سوء استفاده میکند. منظور از حمله مهندسی اجتماعی، حملهای است که در آن، کاربر فریب داده میشود تا مرتکب اشتباهات امنیتی شود.
هر اپلیکیشنی که از کد QR برای ورود کاربران به حساب کاربری استفاده کند، در مقابل حملات QRLJacking، آسیبپذیر است. اگر بخواهیم خیلی خلاصه توضیح دهیم، در این روش، کاربر، کد QR طراحی شده به وسیله مهاجم را اسکن میکند و با این کار، مهاجم به سادگی میتواند سرقت نشست را انجام دهد و وارد حساب کاربری قربانی شود.
۱- مهاجم، یک نشست QR سمت کاربر را آغاز و کد QR ورود به حساب کاربری را در یک وبسایت فیشینگ (phishing) شبیهسازی میکند. با این کار، یک صفحه فیشینگ (درست شبیه به صفحه ورود آن اپلیکیشن) با کد QR معتبر که به صورت منظم، به روزرسانی میشود، آماده ارسال به قربانی است.
۲- مهاجم، صفحه فیشینگ را به قربانی، ارسال میکند.
۳- قربانی، کد QR را با اپلیکیشن هدف روی موبایل خود، اسکن میکند.
۴- مهاجم، کنترل حساب کاربری قربانی را در اختیار میگیرد.
هر روش هک کردن، در صورتی که با چندین روش دیگر ترکیب شود، بسیار قدرتمندتر خواهد شد. QRLJacking را نیز میتوان با چندین روش دیگر هک کردن ترکیب کرد. بعضی از این روشها به شرح زیر هستند:
مهاجمی که در مهندسی اجتماعی، مهارت داشته باشد، میتواند با شبیهسازی کردن صفحه ورود یک اپلیکیشن، قربانی را قانع کند که کد QR ساخته شده توسط مهاجم را اسکن کند.
در صورتی که مهاجم بتواند یک وبسایت معتبر را هک کند، میتواند با قرار دادن کد QR در آن وبسایت به شکلهای مختلفی مثل تبلیغات جذاب، حسابهای کاربری قربانیان متعددی را به صورت غیرهدفمند، هایجک کند.
SSL استریپینگ روشی است که در آن، مهاجم، SSL وبسایت را وادار میکند تا روی یک نسخه غیر ایمن کار کند. سایتهایی که HSTS آنها فعال است، در مقابل این حملات، آسیبپذیری کمتری دارند اما سایتهایی که HSTS آنها فعال نیست، به مهاجم این امکان را میدهند تا به راحتی، کد QR صفحه ورود را تغییر دهد.
یک فرآیند لاگین به وسیله کد QR که به خوبی پیادهسازی شده باشد، از یک تصویر base64 کد QR ایجاد شده، استفاده میکند و آن را در یک صفحه ایمن قرار میدهد و اگر وبسایت، روی HTTPS کار کند و HSTS نیز فعال باشد، تغییر این صفحه برای مهاجمان، بسیار دشوار است. با این حال، متأسفانه، بسیاری از اپلیکیشنها و سرویسهای تحت وب، از یک فرآیند ایجاد تصویر QR کد CDN-based استفاده میکنند. گاهی اوقات، خود این CDNها، روی سرویسهای آسیبپذیر به حملات دانگرید کننده HTTPS ذخیره میشوند. مهاجمان، روشهایی برای دانگرید کردن این اتصالات ایمن پیدا کرده و URLهای CDN را به کد QR خودشان میفرستند. از آنجایی که هر کد QR یک تصویر است، یک «محتوای ترکیبی منفعل» (passive mixed content) ایجاد میشود و مرورگر، صفحه ورود اپلیکیشن تحت وب را به جای صفحه اصلی نمایش میدهد.
این روش، مناسبترین روش حمله برای حمله کردن به کاربران در شبکههای LAN است که در آن از وبسایتهای غیرایمن و دستکاری ترافیک، استفاده میشود. در این روش، مهاجم، MITI را علیه شبکه LAN اجرا و ترافیک شبکه را با تزریق یک فایل JS به هر صفحه وب غیر ایمن، مسموم میکند.
منطق اجرایی ضعیف کد QR، میتواند منجر به هایجک شدن بسیار سادهتر حسابهای کاربری شود. برای مثال، بعضی از اپلیکیشنها از شما میخواهند تا QR کد یک دوست را اسکن کنید تا او به فهرست دوستان شما اضافه شود. تا اینجا، همهچیز طبیعی است و هیچ مشکلی وجود ندارد اما این اپلیکیشن چت، با یک مشکل بزرگ در ورود به سیستم، مواجه است. متأسفانه، این اپلیکیشن، قابلیت ورود به کد QR را در همان صفحهای که برای اضافه کردن دوست با کد QR استفاده میشود، قرار داده است. حالا تصور کنید که یک مهاجم، کد QR ورود به سیستم را شبیهسازی کرده باشد و آن را به جای کد QR خودش به شما نشان دهد تا او را به فهرست دوستان خودتان، اضافه کنید. به همین راحتی مهاجم میتوان حساب کاربری شما را هایجک کند.
هایجک کردن یا سرقت نشست را میتوان مهمترین مشکل QRLJacking دانست. مهاجم با هایجک کردن حساب کاربری قربانی، کنترل کامل حساب کاربری را در اختیار میگیرد. به علاوه، مهاجم میتواند از طریق QRLJacking، اطلاعات قربانی مثل موقعیت جغرافیایی، اطلاعات سیمکارت، نوع دستگاه و دیگر اطلاعات حساس را سرقت کند.
بهترین کاری که میتوانید برای محافظت از خود در مقابل حملات QRLJacking انجام دهید، استفاده نکردن از کدهای QR در مواقع غیرضروری برای ورود به حساب کاربری است. روشهای دیگری نیز برای مقابله با این حملات وجود دارد که در زیر، به بعضی از آنها، اشاره میکنیم:
این مقاله صرفا جهت آگاهیرسانی کاربران بوده و دغدغهی ما بالا بردن سطح دانش شما در مقابل حملات این چنینی است تا همواره امنیت شما در فضای مجازی تامین شود. سایبرنو هیچگونه مسئولیتی در قبال سوءاستفاده از آموزشهای این مقاله را به عهده نمیگیرد.
امیدواریم از لحاظ رعایت نکات امنیتی همواره اطلاعات خود را بهروز نگهدارید و از این مقاله لذت برده باشید.