بازرگانان و تمامی مدیران عزیز
پرستاشاپ آگاه از این میباشد که عوامل مخرب راهی برای سوء استفاده از یک آسیب پذیری امنیتی بزرگ برای اجرای کد دلخواه در سرورهایی که برخی از وب سایت های پرستاشاپ را اجرا می کنند، پیدا کرده اند. به نظر می رسد که این مشکل فقط به فروشگاه هایی مربوط می شود که در برابر حمله تزریق SQL آسیب پذیر هستند.
یک نفوذ امنیتی از نوع SQL Injection در پرستاشاپ تشخیص داده شده. اگر از نسخه ۱.۶.۰.۱۰ تا ۱.۷.۸.۲ استفاده میکنید ممکن است تحت این حمله قرار داشته باشید.
به لطف کار مشترک نگهبانان پرستاشاپ فرانسه و انجمن پرستاشاپ ، وصله ای برای اصلاح نقص شناسایی شده اکنون در دسترس است. برای جلوگیری از حمله به فروشگاه های شما، اکیداً توصیه می کنیم آنها را ارتقا دهید.
لطفاً توجه داشته باشید که این وصله آسیبپذیری شناسایی شده توسط پرستاشاپ را برطرف میکند، اما اگر فروشگاهی قبلاً توسط هکرها مورد حمله قرار گرفته باشد، وصله امنیت آن را بازیابی نمیکند. توصیه می کنیم با یک متخصص تماس بگیرید تا مغازه خود را ممیزی کند، مشخص کنید که آیا مورد حمله قرار گرفته است یا خیر و در صورت نیاز پاکسازی لازم را انجام دهید.
نگهبانان پرستاشاپ به بررسی و ارزیابی روش های دیگر برای سوء استفاده از این آسیب پذیری که مهاجمان می توانند پیدا کنند، ادامه خواهند داد. اگر قرار بود مشکل دیگری شناسایی شود، بلافاصله آن را علامت گذاری می کنیم.
پرستاشاپ می خواهد بر اهمیت به روز نگه داشتن سیستم ها برای ایمن نگه داشتن فروشگاه ها از حملات تاکید کند. این به معنای به روز رسانی منظم پلت فرم پرستاشاپ و ماژول های آن و همچنین محیط های سرور است.
احتمالاً این حمله از طریق MySQL Smarty Cache انجام میگیرد که به طور پیشفرض در پرستاشاپ خاموش میباشد اما ممکن است هکر به صورت ریموت آن را فعال کند.
این حمله برای دزدیدن اطلاعات بانکی کاربران استفاده میگردد (توجه کنید این نوع از حمله با هدف تغییر در صفحه پرداخت فروشگاه جهت سرقت از مشتریان فروشگاه انجام میشود. به دلیل نبود پرداخت با کارتهای اعتباری بین المللی در ایران کاربران ایرانی از این نوع حمله متضرر نخواهند شد).
نحوه عملکرد حمله از دید سایت پرستاشاپ
این حمله مستلزم آن است که فروشگاه در برابر اکسپلویت های تزریق SQL آسیب پذیر باشد. تا جایی که ما می دانیم، آخرین نسخه پرستاشاپ و ماژول های آن عاری از این آسیب پذیری ها هستند. ما معتقدیم که مهاجمان با استفاده از نرمافزار یا ماژولهای قدیمی، ماژولهای آسیبپذیر شخص ثالث یا آسیبپذیریهایی که هنوز کشف نشدهاند، مغازهها را هدف قرار میدهند.
با توجه به صحبتهای ما با صاحبان فروشگاه و توسعهدهندگان، شیوه عملکرد تکرارشونده به این صورت است:
مهاجم یک درخواست POST را به نقطه پایانی آسیب پذیر در برابر تزریق SQL ارسال می کند.
پس از تقریباً یک ثانیه، مهاجم یک درخواست GET را بدون هیچ پارامتری به صفحه اصلی ارسال می کند. این منجر به ایجاد یک فایل PHP به نام blm.phpدر ریشه دایرکتوری فروشگاه می شود.
مهاجم اکنون یک درخواست GET را به فایل جدیدی که ایجاد شده است ارسال می کند، blm.phpو به آنها اجازه می دهد دستورالعمل های دلخواه را اجرا کنند.
پس از اینکه مهاجمان با موفقیت کنترل یک مغازه را به دست آوردند، یک فرم پرداخت جعلی را در صفحه تسویه حساب جلوی دفتر تزریق کردند. در این سناریو، مشتریان فروشگاه ممکن است اطلاعات کارت اعتباری خود را در فرم جعلی وارد کنند و ناآگاهانه آن را برای مهاجمان ارسال کنند.
در حالی که به نظر می رسد این الگوی رایج است، مهاجمان ممکن است از الگوی متفاوتی استفاده کنند، با قرار دادن نام فایل متفاوت، اصلاح سایر قسمت های نرم افزار، قرار دادن کدهای مخرب در جای دیگر، یا حتی پاک کردن مسیرهای خود پس از موفقیت آمیز بودن حمله.
برای ایمن نگه داشتن فروشگاه خود چه کاری باید انجام دهید؟
اول از همه، مطمئن شوید که فروشگاه شما و همه ماژول های شما به آخرین نسخه خود به روز شده اند. این باید از قرار گرفتن فروشگاه شما در معرض آسیبپذیریهای تزریق SQL شناخته شده و فعالانه جلوگیری کند.
با توجه به درک فعلی ما از این اکسپلویت، مهاجمان ممکن است از ویژگیهای ذخیرهسازی حافظه پنهان MySQL Smarty به عنوان بخشی از بردار حمله استفاده کنند. این ویژگی به ندرت استفاده می شود و به طور پیش فرض غیرفعال است، اما مهاجم می تواند آن را از راه دور فعال کند. تا زمانی که یک پچ منتشر نشده است، توصیه می کنیم این ویژگی را در کد پرستاشاپ به صورت فیزیکی غیرفعال کنید تا زنجیره حمله را از بین ببرید.
برای انجام این کار، فایل config/smarty.config.inc.php
را در نصب پرستاشاپ خود پیدا کنید و خطوط 43-46 (PrestaShop 1.7) یا 40-43 (PrestaShop 1.6) را حذف کنید:
if (Configuration::get('PS_SMARTY_CACHING_TYPE') == 'mysql') {
include _PS_CLASS_DIR_.'Smarty/SmartyCacheResourceMysql.php';
$smarty->caching_type = 'mysql';
}
چگونه بفهمیم که تحت تاثیر حمله قرار گرفته اید؟
رای مشاهده الگوی حمله توضیح داده شده در بالا، به گزارش دسترسی سرور خود نگاه کنید. این نمونه ای است که توسط یکی از اعضای انجمن به اشتراک گذاشته شده است:
(توجه: مسیر ماژول آسیب پذیر به دلایل امنیتی اصلاح شده است)
توجه داشته باشید که پیدا نکردن این الگو در لاگ های شما لزوماً به این معنی نیست که فروشگاه شما تحت تأثیر حمله قرار نگرفته است: پیچیدگی سوء استفاده به این معنی است که چندین روش برای انجام آن وجود دارد و مهاجمان نیز ممکن است سعی کنند ردپای خود را پنهان کنند. .
برای بررسی کامل سایت خود با یک متخصص تماس بگیرید و مطمئن شوید که هیچ فایلی اصلاح نشده یا کد مخربی اضافه نشده است.
برای فهمیدن این موضوع که تحت حمله هستید یا خیر، به فایل access log سرور مراجعه کنید و مورد مشابه زیر را بررسی کنید:
- [14/Jul/2022:16:20:56 +0200] "POST /modules/XXX/XXX.php HTTP/1.1" 200 82772 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14"
- [14/Jul/2022:16:20:57 +0200] "GET / HTTP/1.1" 200 63011 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36"
- [14/Jul/2022:16:20:58 +0200] "POST /blm.php HTTP/1.1" 200 82696 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
البته عدم وجود این موارد در اکسس لاگ به معنای قطعی عدم نفوذ هکر نیست! بهتر است از مسئول سرور خود بخواهید بررسی کاملی انجام دهد.
برای رفع مشکل راه حل موقت تا انتشار patch امنیتی:
۱. مطمئن شوید پرستاشاپ و ماژول های شما به آخرین نسخه آپدیت شده باشند.
۲. در محل نصب پرستاشاپ خود به مسیر
config/smarty.config.inc.php
مراجعه کرده و جهت غیر فعال کردن MySQL Smarty Cache Storage خط ۴۰ تا ۴۳ (برای پرستاشاپ ۱.۶) یا خط ۴۳ تا ۴۶ (برای پرستاشاپ ۱.۷) را حذف نمایید:
if (Configuration::get('PS_SMARTY_CACHING_TYPE') == 'mysql') {
include _PS_CLASS_DIR_.'Smarty/SmartyCacheResourceMysql.php';
$smarty->caching_type = 'mysql';
}
همواره پرستاشاپ و ماژول های خود را به روز نگه دارید.
منابع و اطلاعیه رسمی پرستاشاپ :
- https://build.prestashop.com/news/major-security-vulnerability-on-prestashop-websites/
- ( کانال رسمی تلگرام ای پرستا )
- ایمیل تیم پرستاشاپ